{"id":55000226,"date":"2004-08-01T00:00:00","date_gmt":"2020-12-17T20:04:02","guid":{"rendered":"http:\/\/access-im-unternehmen.aix-dev.de\/aiu\/?p=226"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-30T00:00:00","slug":"Mail_verwenden_ohne_Outlook","status":"publish","type":"post","link":"https:\/\/access-im-unternehmen.de\/Mail_verwenden_ohne_Outlook\/","title":{"rendered":"Mail verwenden ohne Outlook"},"content":{"rendered":"<p><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/vg04.met.vgwort.de\/na\/f243dfc249a9445782c5d0195549da9f\" width=\"1\" height=\"1\" alt=\"\"><\/p>\n<p><b>Andr&eacute; Minhorst, Duisburg<\/b><\/p>\n<p><b>Die M&ouml;glichkeit, Mails ohne die Verwendung von Outlook zu versenden, w&uuml;rde vielen Access-Anwendungen gut zu Gesicht stehen. Wo auch immer der direkte Versand von Informationen interessant ist, tritt normalerweise Outlook auf den Plan. Das ist aber nicht immer gew&uuml;nscht, denn warum sollte man denn einen Umweg gehen, wenn man auch direkt auf die entsprechenden Funktionen des Betriebssystems &#8211; in diesem Fall auf die Bibliothek Winsock.dll &#8211; zugreifen kann<\/b><\/p>\n<p>Wer einmal von Access aus versucht hat, mit Hilfe von Microsoft Outlook automatisiert Mails zu verschicken, und sich ein wenig mit SMTP auskennt, der wei&szlig;, dass er dabei mit Kanonen auf Spatzen schie&szlig;t. Dabei &ouml;ffnet man n&auml;mlich eine Riesenanwendung, nur um ein paar Zeilen an einen Mailserver zu schicken. Wenn man Outlook nur zu diesem Zweck startet und anschlie&szlig;end wieder schlie&szlig;t, fri&szlig;t dieser Vorgang durchaus einige Sekunden.<\/p>\n<p>Warum also nicht einmal ein wenig in der Geheimniskiste kramen und E-Mails versenden, ohne den Umweg &uuml;ber Outlook in Kauf zu nehmen Wenn man auf den &#8211; zugegebenerma&szlig;en vorhandenen &#8211; Komfort von Outlook verzichten kann und einfach nur zu bestimmten Anl&auml;ssen eine Mail direkt &uuml;ber die Datenbankanwendung versenden lassen m&ouml;chte, ist das bestimmt eine gewisse Vorarbeit wert.<\/p>\n<p>Anwendungsf&auml;lle daf&uuml;r gibt es genug. Das Verschicken einer Rundmail an ein paar hundert Kunden aus der Kontakte-Tabelle geht damit sicher wesentlich schneller als mit Outlook, aber das ist noch nicht einmal der wichtigste Grund, Access in einen Mail- beziehungsweise SMTP-Client umzubauen. Viel interessanter ist beispielsweise das automatisierte Verschicken einer Mail, wenn zum Beispiel der Lagerbestand einer bestimmten Ware einen kritischen Wert erreicht oder wenn Fehlfunktionen auftreten.<\/p>\n<p>Dazu bedarf es allerdings einiger grundlegender Kenntnisse &uuml;ber Winsock, SMTP sowie den Aufbau von Mails im Allgemeinen. Die nachfolgenden Kapitel behandeln diese Themen in der notwendigen Tiefe.<\/p>\n<p>Schlie&szlig;lich folgen zum Schluss einige Beispiele f&uuml;r den Praxiseinsatz von SMTP innerhalb von Access-Datenbanken.<\/p>\n<p>Auf Windows-Betriebssystemen verwendet man zum Versenden von E-Mails in der Regel Microsoft Outlook, Outlook Express oder einen &auml;hnlichen Mail-Client.<\/p>\n<p>Diese Anwendungen verf&uuml;gen &uuml;ber eine Menge wichtige und weniger wichtige Funktionen, die dem Anwender den Gro&szlig;teil der Arbeit abnehmen. Der muss in der Regel nur noch den oder die Adressaten, die Betreffzeile und den Text eingeben und auf den Senden-Button klicken, um eine Mail zu versenden. In manchen F&auml;llen gibt&#8220;s noch eine Beilage in Form eines so genannten Attachments, das aber ebenfalls bequem per Dialog zu ermitteln ist.<\/p>\n<p><IMG height=\"249\" src=\"..\/fileadmin\/_temp_\/{191FEA1C-8A1E-4E7F-9641-F4699A161DBD}\/pic001.png\" width=\"500\" border=\"0\"><\/p>\n<p><b><\/b><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 1:  Der SMTP-Server ist zur Eingabe bereit.<\/span><\/b><\/p>\n<p>Wenn man von Access aus eine Mail versenden m&ouml;chte, kann man dies mit Microsoft Outlook ab der Version 2000 ohne Probleme per Automatisierung erledigen. Per VBA lassen sich dann leicht die Methoden, Ereignisse und Eigenschaften des Outlook-Objektmodells ansprechen und von Access aus fernsteuern.<\/p>\n<p>Outlook selbst verwendet dann das zur Familie der TCP\/IP-Protokolle geh&ouml;rende SMTP (Simple Mail Transfer Protocol), um eine E-Mail an den entsprechenden SMTP-Server zu schicken. Dieser bef&ouml;rdert diese E-Mail dann gegebenenfalls &uuml;ber weitere SMTP-Server zum Zielrechner, von wo der Adressat die E-Mail dann mit seiner eigenen E-Mail-Software per POP3 auf seinen Rechner holt. Diesen letzten Schritt behandelt der vorliegende Beitrag indes nicht, obwohl auch das automatisierte Abholen und Auswerten von E-Mails sicher seinen Reiz h&auml;tte.<\/p>\n<p>Den SMTP-Server, auch MTA (Mail Transfer Agent) genannt, stellt in der Regel der Provider zur Verf&uuml;gung, &uuml;ber den man auch die Verbindung zum Internet herstellt. Wer &uuml;ber eine eigene Internetseite oder &uuml;ber Webspace f&uuml;r andere Zwecke verf&uuml;gt, kann m&ouml;glicherweise auf eine eigene E-Mail-Adresse und damit auf einen alternativen SMTP-Server zugreifen. Und wer es auf die Spitze treibt, hat vielleicht sogar einen eigenen Server gemietet oder gekauft, auf dem er seinen pers&ouml;nlichen Mailserver mit entsprechendem SMTP-Dienst betreibt.<\/p>\n<p>Wenn nun beispielsweise Microsoft Outlook eine Mail an einen SMTP-Server schicken soll, baut es zun&auml;chst eine Verbindung zum Zielrechner auf. Daf&uuml;r ist die Winsock-Schnittstelle zust&auml;ndig, deren Funktionen sich in der Datei Wsock32.dll befinden. Diese Schnittstelle ist nicht nur die Grundlage f&uuml;r das SMTP-Protokoll, sondern auch f&uuml;r weitere Dienste wie Telnet oder FTP.<\/p>\n<p>Ist eine Verbindung via Winsock eingerichtet, k&ouml;nnen die verbundenen Rechner Nachrichten hin- und herschicken. Im vorliegenden Fall sind das SMTP-Befehle und die entsprechenden Antworten. Mit den SMTP-Befehlen &uuml;bergibt der sendende Rechner alle Informationen &uuml;ber die zu versendende Mail &#8211; angefangen von den wichtigsten Daten, n&auml;mlich der Absender- und der Empf&auml;ngeradresse bis hin zum eigentlichen Inhalt. Dieser wiederum kann sich &auml;u&szlig;erst vielf&auml;ltig gestalten &#8211; von der einfachen Textmail &uuml;ber eine HTML-Mail bis hin zu Mails mit Anh&auml;ngen oder mehreren unterschiedlichen Inhaltsarten, die der empfangende Client je nach seinen M&ouml;glichkeiten anzeigt.<\/p>\n<p>Das Simple Mail Transfer Protocol ist recht einfach zu &uuml;berschauen. Nachfolgend ist ein Beispiel skizziert, das dessen Anwendung in der Praxis erl&auml;utert und gleichzeitig die Einfachheit verdeutlicht. <\/p>\n<p>Dabei verwendet man die Eingabeaufforderung von Windows, um per Tastatur eine komplette Mail an einen beliebigen Adressaten zu versenden.<\/p>\n<p>Nach dem &ouml;ffnen der Eingabeaufforderung startet man zun&auml;chst eine Verbindung zum Mailserver, und zwar &uuml;ber den Port 25. Die entsprechende Anweisung sieht folgenderma&szlig;en aus (im Beispiel f&uuml;r den Mailserver von Strato):<\/p>\n<pre>telnet post.strato.de 25<\/pre>\n<p>Die Angabe des Ports, also der 25, ist besonders wichtig. L&auml;sst man diese Information weg, geht Telnet von Port 23 aus, was in der Regel nicht zum Erfolg f&uuml;hrt. Daraufhin meldet sich der SMTP-Server des jeweils angegebenen Providers mit einer Ausgabe wie in Bild 1.<\/p>\n<p>Anschlie&szlig;end kann man direkt mit der Eingabe der gew&uuml;nschten SMTP-Befehle beginnen. Quellcode 1 enth&auml;lt eine beispielhafte Kommunikation zwischen Client und SMTP-Server.<\/p>\n<p>Zun&auml;chst begr&uuml;&szlig;t man den Server mit dem Befehl HELO &lt;Rechnername&gt;. Der SMTP-Server antwortet mit einem lockeren &#8222;&#8230;pleased to meet you&#8220; &#8211; je nach Server kann man aber auch eine andere Floskel lesen.<\/p>\n<p>Anschlie&szlig;end folgen die drei eigentlichen Elemente einer E-Mail:<\/p>\n<li>Envelope: enth&auml;lt den Sender und Empf&auml;nger der Mail<\/li>\n<li>Header: enth&auml;lt Daten wie From, To, Subject, Date oder Message-ID<\/li>\n<li>Body: enth&auml;lt die eigentliche Nachricht<\/li>\n<h3>Der Umschlag der Mail<\/h3>\n<p>Danach folgen die beiden wichtigsten Informationen: Die &uuml;bermittlung des Adressaten sowie des Absenders der Mail. In beiden F&auml;llen ist man mit der Gro&szlig;schreibung der Befehle, dem Einfassen der Adressen in spitzen Klammern und dem Verzicht auf Leerzeichen zwischen Doppelpunkt und Adresse auf der sicheren Seite. Soweit der SMTP-Server alle bisherigen Angaben akzeptiert, sendet er jeweils den Code 250 als Best&auml;tigung der Ausf&uuml;hrung der Kommandos zur&uuml;ck &#8211; unter Umst&auml;nden erg&auml;nzt durch weitere, serverabh&auml;ngige Floskeln.<\/p>\n<h3>Der Briefkopf<\/h3>\n<p>Anschlie&szlig;end leitet man durch die Anweisung DATA die Eingabe der Header-Informationen und des eigentlichen Inhalts der Mail ein.<\/p>\n<p>W&auml;hrend die soeben genannten Daten quasi den Briefumschlag der Mail darstellen und f&uuml;r die eigentliche Versendung wichtig sind, folgen nun einige Daten, die bei einem normalen Brief auch innerhalb des Umschlags auf dem Brief selbst stehen w&uuml;rden. Dazu geh&ouml;ren folgende Informationen:<\/p>\n<li>From: Senderadresse, eventuell mit vollem Namen und anschlie&szlig;ender, in spitze Klammern gesetzter E-Mail-Adresse<\/li>\n<li>To: Empf&auml;ngeradresse, Syntax wie From<\/li>\n<li>Subject: Betreff der E-Mail<\/li>\n<li>Date: Datum der Mail, muss f&uuml;r eine korrekte &uuml;bernahme in den Mail-Client ein bestimmtes Format haben, das sp&auml;ter beschrieben wird<\/li>\n<li>Reply-To: Wenn der Empf&auml;nger einer Mail Antworten nicht an den Absender, sondern eine andere Adresse senden soll, kann man diesen Header verwenden.<\/li>\n<h3>Hinweis<\/h3>\n<p>Es gibt noch eine Reihe weiterer Header, deren Beschreibung allerdings den Rahmen dieses Beitrags sprengen w&uuml;rde. Weitere Informationen findet man unter der folgenden Internetadresse (ohne Zeilenumbruch):  http:\/\/sites.inka.de\/ancalagon\/faq\/headerfaq.html <\/p>\n<h3>Der Inhalt<\/h3>\n<p>Nach den Headerzeilen folgt in der Regel der eigentliche Inhalt einer Mail. Diesen schreibt man einfach ohne weitere Angaben in die dem letzten Header folgende Zeile. Dabei kann man beliebige Zeichen und auch Leerzeilen verwenden.<\/p>\n<p>Das Absenden der Mail initiiert man durch die Eingabe eines einzelnen Punktes in einer Zeile. Der Server akzeptiert die Mail dann entweder mit dem Code 250 oder &#8222;meckert&#8220;, wenn ein Header nicht den Konventionen entsprechen sollte.<\/p>\n<p>In ersterem Fall ist die Mail damit verschickt und trifft in K&uuml;rze beim Empf&auml;nger ein &#8211; zumindest, sofern nicht vorher ein Viren- oder Spamprogramm auf den Plan tritt und die Mail aussortiert, ansonsten muss man die eingegebenen Daten &uuml;berpr&uuml;fen.<\/p>\n<pre>220 post.webmailer.de ESMTP Sendmail 8.12.10\/8.12.10; Thu, 8 Jul 2004 09:44:57 +0200 (MEST)\r\nHELO Mein Rechnername\r\n250 post.webmailer.de Hello pD9561037.dip.t-dialin.net [217.86.16.55], pleased to meet you\r\nMAIL FROM:&lt;andre@minhorst.com&gt;\r\n250 2.1.0 &lt;andre@minhorst.com&gt;... Sender ok\r\nRCPT TO:&lt;info@access-im-unternehmen.de&gt;\r\n250 2.1.5 &lt;info@access-im-unternehmen.de&gt;... Recipient ok\r\nDATA\r\n354 Start mail input; end with &lt;CRLF&gt;.&lt;CRLF&gt;\r\nFrom:Andr&eacute; Minhorst &lt;andre@minhorst.com&gt;\r\nTo:Info &lt;info@access-im-unternehmen.de&gt;\r\nSubject:Beispielmail f&uuml;r Access im Unternehmen\r\nDate:Thu, 8 Jul 2004 09:44:57 +0200\r\nHallo Access im Unternehmen,\r\ndies ist eine Beispielmail.\r\nViele Gr&uuml;&szlig;e\r\nAndr&eacute; Minhorst\r\n.\r\n250 2.0.0 i687ivHP001747 Message accepted for delivery<\/pre>\n<p><b>Quellcode 1<\/b><\/p>\n<p>Damit sind die Grundlagen f&uuml;r das Versenden einer Mail per SMTP gekl&auml;rt. Sp&auml;ter kommen noch einige Informationen hinzu, wie man beispielsweise Dateien an eine Mail anh&auml;ngen oder eine Mail gleichzeitig im Text- und HTML-Format verschicken kann.<\/p>\n<p>Die Grundlage f&uuml;r das Versenden von Mails direkt von Access aus ist die Herstellung einer Verbindung zwischen dem verschickenden Rechner und dem Zielrechner, also dem SMTP-Server. Diese Verbindung realisiert man &uuml;ber die Winsock-Schnittstelle von Microsoft Windows.<\/p>\n<p>Die Prozeduren und Funktionen in den nachfolgenden Beispielen basieren auf der Arbeit von John Rhoton. Er beschreibt in seinem Buch Programmer&#8220;s Guide to Internet Mail (Digital Press, 1999) unter anderem ausf&uuml;hrlich die Funktionsweise von Winsock und SMTP. Die diesem Beitrag zugrunde liegenden Funktionen k&ouml;nnen dem Download f&uuml;r Visual Basic unter der folgenden Adresse entnommen werden (ohne Zeilenumbruch): http:\/\/www.winsite.com\/bin\/Info500000022279. <\/p>\n<p>Die Verwendung der Winsock-Schnittstelle ist auf den ersten Blick eine sehr umfangreiche und un&uuml;bersichtliche Geschichte. Dank der Arbeit von John Rhoton reduziert sich das Ganze aber auf einige wesentliche Punkte. In den Beispieldaten, die er eigentlich f&uuml;r die Verwendung in Visual Basic zusammengestellt hat, findet man unter anderem eine recht gro&szlig;e Sammlung an API-Funktionen.<\/p>\n<p><!--30percent--><\/p>\n<p>Wer den Umgang mit solchen Funktion nicht gewohnt ist, verstrickt sich dort leicht. Gl&uuml;cklicherweise hat John Rhoton eine Menge Wrapper-Funktionen hinzugef&uuml;gt, die den eigentlichen Aufruf der API-Funktionen &uuml;bernehmen und dabei nur die wirklich ben&ouml;tigten Informationen als Parameter erwarten. Die verwendeten API-Funktionen geh&ouml;ren bis auf wenige Ausnahmen der Windows-Bibliothek wsock32.dll an.<\/p>\n<p>Die Beispieldatenbanken zu diesem Beitrag enthalten einige Module, deren Routinen nachfolgend kurz erl&auml;utert werden.<\/p>\n<p><b>Das Modul mdlWinsock<\/b><\/p>\n<p>Dieses Modul enth&auml;lt die bereits weiter oben erw&auml;hnten Deklarationen der API-Funktionen f&uuml;r die Verwendung der Winsock-Schnittstelle.<\/p>\n<p>Au&szlig;erdem findet man hier die Wrapperfunktionen, die die Arbeit mit API-Funktionen vereinfachen.<\/p>\n<h3>Starten von Winsock<\/h3>\n<p>Die Funktion StartWinsock erwartet keine Parameter und startet Winsock. Wenn der Start erfolgreich verl&auml;uft, gibt die Funktion einige Statusmeldungen im Testfenster aus.<\/p>\n<h3>Aktuelle IP-Adresse ermitteln<\/h3>\n<p>Die Funktion GetIPAdress ermittelt die IP-Adresse des zu verwendenden SMTP-Servers.<\/p>\n<h3>Verbindung erstellen<\/h3>\n<p>Das Verbinden zum SMTP-Server erfolgt durch den Aufruf der beiden Funktionen CreateSocket und ConnectSocket. Die erste sorgt f&uuml;r die Voraussetzung auf dem Client, indem sie ein Handle auf ein Socket von Winsock ermittelt. Die zweite Funktion baut die Verbindung zum SMTP-Server auf, dessen IP-Adresse die Funktion GetIPadress zuvor ermittelt hat.<\/p>\n<h3>Daten senden und empfangen<\/h3>\n<p>Der eigentliche Verkehr erfolgt dann durch die beiden Funktionen SendSocket und ReceiveSocket. Die Funktion SendSocket schickt jeweils eine Anweisung an den SMTP-Server.<\/p>\n<p>Die Funktion ReceiveSocket liest die Antwort des SMTP-Servers auf die gesendete Anweisung.<\/p>\n<h3>Socket verabschieden<\/h3>\n<p>Die Funktion ReleaseSocket beendet schlie&szlig;lich die Verbindung zwischen dem Client und dem SMTP-Server.<\/p>\n<p><b>Das Modul mdlFileDialog<\/b><\/p>\n<p>Eine der Beispielanwendungen bietet die M&ouml;glichkeit zum Anh&auml;ngen einer Datei an eine Mail. Mit den Funktionen des Moduls mdlFileDialog kann man den Dialog zur Auswahl der anzuh&auml;ngenden Datei aufrufen. Weitere Informationen zu diesen Funktionen finden Sie unter dem folgenden Link (ohne Zeilenumbruch): http:\/\/www.access-im-unternehmen.de:8080\/192.0.html<\/p>\n<p><b>Das Klassenmodul MIMEMessage<\/b><\/p>\n<p>Diese Klasse enth&auml;lt die Methoden zum Zusammensetzen des eigentlichen Inhalts der Mail, also der Header und des Body. Eine Beschreibung der notwendigen Funktionen folgt weiter unten in Kapitel 7.<\/p>\n<p><b>Das KlassenmodulMIMEAttachment<\/b><\/p>\n<p>In dieser Klasse findet man einige Funktionen, mit denen man Dateien in Mail-taugliche Datenpakete umwandelt. Eine Beschreibung dieser Funktionen w&uuml;rde den Rahmen des vorliegenden Beitrags sprengen.<\/p>\n<p>Die nachfolgenden Abschnitte stellen vier unterschiedliche Variationen f&uuml;r den Einsatz von SMTP unter Access vor:<\/p>\n<li>Versenden einer Textmail<\/li>\n<li>Versenden einer Mail mit Text- und HTML-Inhalt, der je nach Client in dem einen oder anderen Format erscheint<\/li>\n<li>Versenden einer Mail mit einer angeh&auml;ngten Datei<\/li>\n<li>Versenden einer Mail an mehrere Empf&auml;nger<\/li>\n<pre>Private Sub Form_Open(Cancel As Integer)\r\n    Me.txtSMTPServer = \"smtp.beispielserver.de\"\r\n    Me.txtFrom = \"info@beispielserver.de\"\r\n    Me.txtTo = \"info@access-im-unternehmen.de\"\r\n    Me.txtSubject = \"Testmail\"\r\n    Me.txtPlaintext = \"Dies ist eine Testmail.\"\r\n    Me.txtPort = 25\r\n    Me.txtSendername = \"Andr&eacute; Minhorst\"\r\n    Me.txtSenderEMail = \"info@beispielserver.de\"\r\n    Debug.Print StartWinSock\r\nEnd Sub<\/pre>\n<p><b>Quellcode 1<\/b><\/p>\n<p><IMG height=\"320\" src=\"..\/fileadmin\/_temp_\/{191FEA1C-8A1E-4E7F-9641-F4699A161DBD}\/pic002.png\" width=\"500\" border=\"0\"><\/p>\n<p><b><\/b><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 2:  Das Formular zum Versenden einer E-Mail<\/span><\/b><\/p>\n<p><IMG height=\"289\" src=\"..\/fileadmin\/_temp_\/{191FEA1C-8A1E-4E7F-9641-F4699A161DBD}\/pic003.png\" width=\"500\" border=\"0\"><\/p>\n<p><b><\/b><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 3:  Das ausgef&uuml;llte Formular zum Versenden einer Textmail<\/span><\/b><\/p>\n<p>Es folgt nun eine ausf&uuml;hrliche Beschreibung des ersten Beispiels, das als Grundlage f&uuml;r die nachfolgenden Beispiele dient.<\/p>\n<p>Die Erl&auml;uterung der Besonderheiten der anderen Beispiele folgt im Anschluss.<\/p>\n<p><b>Versenden einer Textmail<\/b><\/p>\n<p>Wie weiter oben deutlich wurde, erfordert der Versand einer Mail einer Mail eine ganze Menge Informationen. Die Beispiele enthalten jeweils ein Formular, in das der Benutzer die notwendigen Informationen eintragen kann. Das Formular f&uuml;r das erste Beispiel hei&szlig;t frmEinzelmailText und sieht in der Entwurfsansicht wie in Bild 2 aus.<\/p>\n<p>Das Formular ist in dieser Version nicht an eine Tabelle gebunden. Wenn man das Formular als Grundlage f&uuml;r ein Tool zum Versenden von E-Mails verwenden m&ouml;chte, w&uuml;rde man vermutlich eine oder mehrere Tabellen mit den relevanten Daten erstellen und das Formular an diese binden.<\/p>\n<p>F&uuml;r Demozwecke reicht allerdings das ungebundene Formular aus. Ein Tipp: Wenn man beim Ausprobieren nicht immer wieder die Daten neu eingeben m&ouml;chte, tr&auml;gt man diese in die jeweilige Standardwert-Eigenschaft der einzelnen Steuerelemente ein.<\/p>\n<p>Noch einfacher ist es, die Beispielwerte in der Beim &ouml;ffnen-Ereignisprozedur unterzubringen, so kann man die Eintr&auml;ge sp&auml;ter auf einen Rutsch wieder entfernen. Quellcode 1 zeigt die erforderlichen Zeilen. Die Anweisung StartWinsock muss das Formular beim &ouml;ffnen allerdings auf jeden Fall aufrufen. In Bild 3 ist das mit der Routine aus Quellcode 1 ausgef&uuml;llte Formular zu sehen.<\/p>\n<p>Die Schaltfl&auml;che mit der Beschriftung Senden l&ouml;st bei Bet&auml;tigung eine Ereigniseigenschaft die die E-Mail mit den angegebenen Daten versendet. Die entsprechende Ereignisprozedur ist in Quellcode 2 zu finden.<\/p>\n<pre>Private Sub cmdSend_Click()\r\n    DoCmd.Hourglass True\r\n    Dim lngSMTPSocket As Long\r\n    Dim lngServerAddress As Long\r\n    Dim strServerName As String\r\n    Dim strServerResponse As String\r\n    Dim mmsgCurrentMessage As New MIMEMessage\r\n    Dim strCurrentLine\r\n    Dim intStatus As Boolean\r\n    lngSMTPSocket = 0\r\n    strServerName = Me.txtSMTPServer\r\n    intStatus = GetIPAddress(lngServerAddress, strServerName)\r\n    intStatus = CreateSocket(lngSMTPSocket, 0)\r\n    intStatus = ConnectSocket(lngSMTPSocket, lngServerAddress, Me.txtPort)\r\n    intStatus = ReceiveSocket(lngSMTPSocket, strServerResponse)\r\n    intStatus = SendSocket(lngSMTPSocket, \"HELO \" + Me.txtSMTPServer)\r\n    intStatus = ReceiveSocket(lngSMTPSocket, strServerResponse)\r\n    intStatus = SendSocket(lngSMTPSocket, \"mail from:&lt;\" + Me.txtFrom + \"&gt;\")\r\n    intStatus = ReceiveSocket(lngSMTPSocket, strServerResponse)\r\n    intStatus = SendSocket(lngSMTPSocket, \"rcpt to:&lt;\" + Me.txtTo + \"&gt;\")\r\n    intStatus = ReceiveSocket(lngSMTPSocket, strServerResponse)\r\n    intStatus = SendSocket(lngSMTPSocket, \"data\")\r\n    intStatus = ReceiveSocket(lngSMTPSocket, strServerResponse)\r\n    mmsgCurrentMessage.AddHeader \"From\", Me!txtSendername & \" &lt;\" _        & Me!txtSenderEMail & \"&gt;\"\r\n    mmsgCurrentMessage.AddHeader \"To\", Me!txtTo\r\n    mmsgCurrentMessage.AddHeader \"Subject\", Me!txtSubject\r\n    mmsgCurrentMessage.AddHeader \"Date\", Choose(Weekday(Date), \"Sun\", \"Mon\", \"Tue\", _        \"Wed\", \"Thu\", \"Fri\", \"Sat\") & \", \" & Format(Now, \"d\") & \" \" _        & Choose(Month(Date), \"Jan\", \"Feb\", \"May\", \"Apr\", \"May\", \"Jun\", \"Jul\", _        \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\") & \" \" & Format(Now, \"yyyy\") & \" \" _        & Format(Now, \"hh:nn:ss\") & \" +0200\"\r\n    mmsgCurrentMessage.BodyLines.Add Me.txtPlaintext\r\n    mmsgCurrentMessage.ComposeSimple\r\n    For Each strCurrentLine In mmsgCurrentMessage.Lines\r\n        intStatus = SendSocket(lngSMTPSocket, CStr(strCurrentLine))\r\n    Next\r\n    intStatus = SendSocket(lngSMTPSocket, \".\")\r\n    intStatus = ReceiveSocket(lngSMTPSocket, strServerResponse)\r\n    intStatus = SendSocket(lngSMTPSocket, \"quit\")\r\n    intStatus = ReceiveSocket(lngSMTPSocket, strServerResponse)\r\n    intStatus = ReleaseSocket(lngSMTPSocket)\r\n    DoCmd.Hourglass False\r\nEnd Sub<\/pre>\n<p><b>Quellcode 2<\/b><\/p>\n<p>Diese Routine hat keine andere Aufgabe, als die Schritte zu erledigen, die auch in Quellcode 1 durchgef&uuml;hrt werden &#8211; dort allerdings bei bestehender und direkter Verbindung zum SMTP-Server via Telnet.<\/p>\n<pre>Public Sub ComposeSimple()\r\n    Dim rhdrCurrentHeader\r\n    Dim mattCurrentAttachment\r\n    For Each rhdrCurrentHeader In Headers\r\n        Lines.Add CStr(rhdrCurrentHeader.Label) + \": \" _            + CStr(rhdrCurrentHeader.Value)\r\n    Next\r\n    Lines.Add \"MIME-Version: 1.0\"\r\n    Lines.Add \"CONTENT-TYPE: text\/plain; \" _        & \"charset=\"\"ISO-8859-1\"\"\"\r\n    Lines.Add \"\"\r\n    Dim CurrentLine\r\n    For Each CurrentLine In BodyLines\r\n        Lines.Add CStr(CurrentLine)\r\n    Next\r\nEnd Sub<\/pre>\n<p><b>Quellcode 3<\/b><\/p>\n<p>Per VBA ist selbstverst&auml;ndlich ein wenig mehr Aufwand vonn&ouml;ten. Die Prozedur startet und endet mit dem Ein- und Ausblenden der Sanduhr anstelle des Mauszeigers, damit der Benutzer wei&szlig;, dass gerade etwas passiert.<\/p>\n<p>Anschlie&szlig;end deklariert die Routine einige Variablen, unter anderem auch eine Instanz der Klasse MIMEMessage. Dann liest sie den Namen des SMTP-Servers aus dem Textfeld txtSMTPServer ein und ermittelt &uuml;ber die Funktion GetIPAdress die IP-Adresse des Servers. Die bereits weiter oben erl&auml;uterten Funktionen CreateSocket und ConnectSocket stellen die Verbindung zum Server her.<\/p>\n<h3>Envelope senden<\/h3>\n<p>Danach sendet die Routine die HELO-Anweisung sowie die Informationen &uuml;ber den Sender und den Adressaten der Mail. Zu allen Sendevorg&auml;ngen ermittelt die Prozedur die erforderlichen Parameter aus den jeweiligen Textfeldern des Formulars.<\/p>\n<p>Nach dem Senden der DATA-Anweisung setzt die Routine die eigentliche Nachricht im MIMEMessage-Objekt zusammen.<\/p>\n<h3>Headerdaten zusammenstellen<\/h3>\n<p>Um die Header-Daten zusammenzustellen, ruft die Prozedur jeweils die AddHeader-Methode des MIMEMessage-Objekts auf. Diese erwartet als Parameter die Bezeichnung des Headers (ohne Doppelpunkt) und den zu &uuml;bergebenden Wert.<\/p>\n<p>Interessant ist die &uuml;bergabe des Datums: F&uuml;r eine zuverl&auml;ssige Anzeige in allen g&auml;ngigen E-Mail-Clients ist die Verwendung eines speziellen Formats erforderlich. Dieses sieht beispielsweise folgenderma&szlig;en aus:<\/p>\n<pre>Thu, 8 Jul 2004 13:36:15 +0200<\/pre>\n<h3>Der Body<\/h3>\n<p>Nach den Headern folgt der Body der Mail. Der dementsprechende Inhalt des Textfeldes txtPlaintext wird dazu mit der Add-Methode an die Bodylines-Auflistung des MIMEMessage-Objektes angeh&auml;ngt.<\/p>\n<p>Nun kommt die Methode ComposeSimple der MIMEMessage-Klasse zum Zuge (s. Quellcode 3).<\/p>\n<p>Sie schnappt sich alle bisher &uuml;bergebenen Header samt Bezeichnung und Inhalt, f&uuml;gt noch die beiden Header<\/p>\n<pre>MIME-Version: 1.0<\/pre>\n<p>und<\/p>\n<pre>CONTENT-TYPE: text\/plain; charset=\"ISO-8859-1\"<\/pre>\n<p>hinzu und erg&auml;nzt das Ganze um den Body.<\/p>\n<p>Das auf diese Weise &#8211; wie beispielsweise in Quellcode 4 &#8211; zusammengesetzte Gebilde schickt die Routine cmdSend_Click dann Zeile f&uuml;r Zeile mit der SendSocket-Funktion an den SMTP-Server.<\/p>\n<p>Bleibt noch, den Punkt (.) als abschlie&szlig;endes Zeichen zu schicken und mit der Anweisung quit den Datenverkehr mit dem SMTP-Server zu beenden.<\/p>\n<pre>From: Andr&eacute; Minhorst &lt;info@andre-minhorst.de&gt;\r\nTo: info@access-im-unternehmen.de\r\nSubject: Testmail\r\nSend was OK.\r\nDate: Thu, 8 Jul 2004 13:51:55 +0200\r\nMIME-Version: 1.0\r\nCONTENT-TYPE: text\/plain; charset=\"ISO-8859-1\"\r\nHallo Freunde,\r\ndies ist eine Testmail.\r\nViele Gr&uuml;&szlig;e\r\nEuer Andr&eacute;<\/pre>\n<p><b>Quellcode 4<\/b><\/p>\n<p><IMG height=\"308\" src=\"..\/fileadmin\/_temp_\/{191FEA1C-8A1E-4E7F-9641-F4699A161DBD}\/pic004.png\" width=\"500\" border=\"0\"><\/p>\n<p><b><\/b><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 4:  Formular zum Versenden von Mails mit Anhang<\/span><\/b><\/p>\n<p><b>Versenden einer Textmail mitAttachment<\/b><\/p>\n<p>Das Versenden einer Mail mit Attachment unterscheidet sich nicht wesentlich vom Versenden einer einfachen Mail. Im Formular zur Eingabe der Daten kann man neben den bereits bekannten Informationen noch ein Attachment ausw&auml;hlen (siehe Bild 4).<\/p>\n<p>Die zum Versenden notwendige Routine unterscheidet sich lediglich an einer Stelle von der aus Quellcode 2. Statt der Zeile<\/p>\n<pre>mmsgCurrentMessage.ComposeSimple<\/pre>\n<p>kommen die folgenden Anweisungen zum Einsatz:<\/p>\n<pre>If Me.txtAttachment &lt;&gt; \"\" And _    Dir(Me.txtAttachment) &lt;&gt; \"\" Then\r\n    mmsgCurrentMessage.AddAttachment _        Me.txtAttachment, \"Base64\"\r\nEnd If\r\nmmsgCurrentMessage. _    ComposeSimpleWithAttachment<\/pre>\n<p>Dabei &uuml;berpr&uuml;ft die Routine zun&auml;chst, ob der Benutzer ein Attachment angegeben hat und ruft dann die Methode AddAttachment der Klasse MIMEMessage auf. Diese reicht die Aufgabe direkt an die Klasse MIMEAttachment weiter, die Datei in ein versendbares Format umwandelt.<\/p>\n<p>Au&szlig;erdem kommt statt der Methode ComposeSimple (s. Quellcode 5) des Klassenmoduls MIMEMessage die Methode ComposeSimpleWithAttachment zum Zuge.<\/p>\n<p>Diese Methode unterscheidet sich wesentlich von der Methode ComposeSimple. Sie erstellt eine etwas kompliziertere Kombination aus Header und Body (s. Quellcode 6).<\/p>\n<p>Um die Vorgehensweise zu verstehen, ist ein etwas tieferer Einblick in den Aufbau von E-Mails notwendig, die aus mehreren Teilen bestehen &#8211; in dem Fall aus einem Textteil und einem Anhang.<\/p>\n<p>Um in einer E-Mail mehrere Teile unterzubringen, muss man zun&auml;chst f&uuml;r den Header CONTENT-TYPE den Wert multipart\/mixed verwenden. Zus&auml;tzlich ermittelt man eine Zeichenkette f&uuml;r den Parameter boundary. Dieser muss unbedingt eindeutig sein, um Verwechselungen mit eventuell vorhandenen untergeordneten mehrteiligen Body-Teilen zu vermeiden.<\/p>\n<pre>Public Sub ComposeSimpleWithAttachment()\r\n    Dim strAttachmentBoundary As String\r\n    Dim rhdrCurrentHeader\r\n    Dim mattCurrentAttachment\r\n    Randomize\r\n    strAttachmentBoundary = \"--Boundary\" + Trim(str(Rnd)) + Trim(str(Rnd)) + \"--\"\r\n    For Each rhdrCurrentHeader In Headers\r\n        Lines.Add CStr(rhdrCurrentHeader.Label) + \": \" + CStr(rhdrCurrentHeader.Value)\r\n    Next\r\n    Lines.Add \"MIME-Version: 1.0\"\r\n    Lines.Add \"CONTENT-TYPE: multipart\/mixed; \" _\r\n              + \"boundary=\"\"\" + strAttachmentBoundary + \"\"\"\"\r\n    Lines.Add \"\"\r\n    Lines.Add \"--\" + strAttachmentBoundary\r\n    Lines.Add \"\"\r\n    Dim CurrentLine\r\n    For Each CurrentLine In BodyLines\r\n        Lines.Add CStr(CurrentLine)\r\n    Next\r\n    Lines.Add \"\"\r\n    For Each mattCurrentAttachment In Attachments\r\n        Lines.Add \"--\" + strAttachmentBoundary\r\n        Lines.Add \"Content-Type: application\/octet-stream; name=\"\"\" _            + Dir(mattCurrentAttachment.Filename) + \"\"\"\"\r\n        Lines.Add \"Content-Transfer-Encoding: base64\"\r\n        Lines.Add \"\"\r\n        For Each CurrentLine In mattCurrentAttachment.Lines\r\n            Lines.Add CStr(CurrentLine)\r\n        Next\r\n        Lines.Add \"\"\r\n    Next\r\n    Lines.Add \"--\" + strAttachmentBoundary + \"--\"\r\nEnd Sub<\/pre>\n<p><b>Quellcode 5<\/b><\/p>\n<p>Ist diese Zeichenkette einmal ermittelt (wie im Beispiel &#8211;Boundary.7682531.4953315&#8211;), verwendet man diese, um weitere neue Bestandteile einer mehrteiligen Mail einzuleiten.<\/p>\n<p>Dabei stellt man dem Ausdruck zwei Minuszeichen voran (&#8211;). Um das Ende des letzten Teilabschnitts des Body zu kennzeichnen, verwendet man erneut diesen Ausdruck, schlie&szlig;t ihn aber in dem Fall in doppelte Minuszeichen ein.<\/p>\n<p>Der Inhalt von Quellcode 6 zeigt dies recht deutlich: Nach dem einf&uuml;hrenden &#8212;-Boundary&#8230; folgt zun&auml;chst der Textteil der Mail, den der E-Mail-Client auch als Inhalt anzeigt. Die gleiche Zeichenkette leitet auch den danach folgenden Teil ein. Dieser Teil enth&auml;lt den Hinweis, dass es sich bei dem Inhalt um einen anderen Content-Type handelt, n&auml;mlich application\/octet-stream. Der nachfolgende Parameter Content-Transfer-Encoding gibt das Format des Inhalts an. Anschlie&szlig;end folgt der eigentliche Inhalt in Form einer Base64-codierten Zeichenfolge. Der empfangende Mail-Client erzeugt daraus wieder das urspr&uuml;ngliche Format.<\/p>\n<pre>From: Andr&eacute; Minhorst &lt;info@andre-minhorst.de&gt;\r\nTo: info@access-im-unternehmen.de\r\nSubject: Testmail\r\nDate: Thu, 8 Jul 2004 18:41:36 +0200\r\nMIME-Version: 1.0\r\nCONTENT-TYPE: multipart\/mixed; boundary=\"--Boundary.7682531.4953315--\"\r\n----Boundary.7682531.4953315--\r\nDies ist eine Testmail.\r\n----Boundary.7682531.4953315--\r\nContent-Type: application\/octet-stream; name=\"Codezone.zip\"\r\nContent-Transfer-Encoding: base64\r\nUEsDBBQAAAAIAOGJ2DA30HG8ogEAAN8CAAAKAAAAYXV0aG9yLnhtbHVS207jMBB9X2n\/IfK765Sm\r\nUJAbtqVUQuLywPIBxp4mFokd2RPa7h\/vX+wkKdCuhBQlM2duZ85EXu\/qKnmHEK13czYepSwBp72x\r\nrpizu+cnPptNL\/mYJRGVM6ryDubMeXad\/\/whtXcIDhPcN4Q21MU7llBHFz\/c0S4adjKAJhStNXM2\r\nzS5u1reLCb9Z3GY8u1hc8uVskvLlarxerleT6XI9obm+DRruKL9EbK6E2G63I6U1xMhtzVtiEByU\r\n...\r\nNbiRAcFyWQOqXKLFCvKFM+Fv8mBd6UNEKQZUGog62AaJksjlMIGMNlT01gFUF1kphPwsTTOenvOz\r\n7HeaXvWPFCcZslIRXxpD9vcV\/+X0HO+9VkTGgBRH7oemR9FTRP6xTcfS4r7jjgEAO5\/6Fj5YiOS8\r\n----Boundary.7682531.4953315----\r\n.<\/pre>\n<p><b>Quellcode 6<\/b><\/p>\n<p><b>Versenden einer kombinierten Mail mit Plain Text und HTML<\/b><\/p>\n<p>Wer seinen Mail-Editor im Textmodus betreibt, der sch&uuml;ttelt sich gelegentlich beim Anblick diverser Mails, die unter Umst&auml;nden m&uuml;hevoll im HTML-Format erstellt wurden, aber im Textmodus einfach nur schauderhaft aussehen. um dies zu verhindern, kann man auch eine Text- und eine HTML-Version des Inhalts in einer Mail versenden, wobei der E-Mail-Client sich dann unter normalerweise die richtige Version heraussucht. Und wenn der Leser einen textbasierten Client verwendet, findet man die HTML-Version im Anhang der Mail vor und kann sie per Doppelklick im Browser anzeigen.<\/p>\n<p>Das Formular aus Bild 5 dient Versenden einer Mail, die den Inhalt im Text- und im HTML-Format enth&auml;lt. Dazu enth&auml;lt das Formular zwei entsprechende Eingabefelder.<\/p>\n<p>Die Technik zur Zusammenstellung der Mail ist &auml;hnlich der beim Versenden von Mails mit Anh&auml;ngen. Man gibt lediglich als Content-Type den Wert multipart\/alternative an und f&uuml;gt den HTML-Part als zweiten, gleichberechtigten Inhalt des Mailbody ein. Die entsprechenden Routinen sind im Klassenmodul des Formulars frmEinzelmailTextUndHTML und im Klassenmodul MIMEMessage (ComposeSimpleHTMLAndPlain) zu finden.<\/p>\n<p><b>Versenden einer Mail an mehrere Empf&auml;nger<\/b><\/p>\n<p>Bleibt noch die M&ouml;glichkeit, eine Mail an mehrere Absender zu versenden, beispielsweise um andere Empf&auml;nger als CC: oder BCC: zu ber&uuml;cksichtigen. Das Formular aus Bild 6 greift dies auf und enth&auml;lt eine Funktion, mit der man einer Mail neben dem Hauptempf&auml;nger mehrere weitere E-Mail-Adressen hinzuf&uuml;gen kann. Dabei dienen die beiden Kombinationsfelder Quelltabelle und Quellfeld dazu, eine Tabelle und aus dieser Tabelle das Feld mit einer E-Mail-Adresse auszuw&auml;hlen.<\/p>\n<p><IMG height=\"405\" src=\"..\/fileadmin\/_temp_\/{191FEA1C-8A1E-4E7F-9641-F4699A161DBD}\/pic005.png\" width=\"500\" border=\"0\"><\/p>\n<p><b><\/b><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 5:  Gleichzeitiges Versenden von Plain Text und HTML<\/span><\/b><\/p>\n<p><IMG height=\"404\" src=\"..\/fileadmin\/_temp_\/{191FEA1C-8A1E-4E7F-9641-F4699A161DBD}\/pic006.png\" width=\"500\" border=\"0\"><\/p>\n<p><b><\/b><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 6:  Formular zum Versenden von Mail an mehrere Empf&auml;nger<\/span><\/b><\/p>\n<p>Technisch gesehen passiert hier nicht mehr, als dass in der Routine zur Durchf&uuml;hrung des Mailverkehrs zum SMTP-Servers um die Stelle, an der der Empf&auml;nger mit RCPT TO: festgelegt wird, eine Schleife l&auml;uft, die nacheinander alle im Listenfeld angezeigten E-Mail-Adressen eintr&auml;gt. Dabei verschickt die Anwendung die Mail zwar wie gehabt nur einmal, diese geht aber an alle angegebenen Adressaten. Dadurch verliert die Mail nat&uuml;rlich die pers&ouml;nliche Note, weil jeder Adressat die gleiche, im Header angegebene Adresse sieht. Wenn alle Mails mit einem individuellen Empf&auml;nger ausgestattet sein sollen, w&uuml;rde man eine Schleife um den kompletten Sendevorgang legen und dabei den Empf&auml;nger sowohl beim Envelope unter RCPT TO als auch beim Header unter To eintragen. Dann kann man auch direkt eine pers&ouml;nliche Anrede im Body unterbringen. Dadurch dauert der Vorgang nat&uuml;rlich je nach der Anzahl der Adressaten m&ouml;glicherweise recht lange. Anderenfalls soll an dieser Stelle auch erw&auml;hnt werden, dass eine Mail mit mehreren Adressaten zwar in einem Rutsch zum SMTP-Server gelangen, aber irgendwann ja auch mal in unterschiedliche Mails f&uuml;r die verschiedenen Empf&auml;nger aufgeteilt werden m&uuml;ssen.<\/p>\n<p>Die hier vorgestellten Grundlagen und Methoden decken nat&uuml;rlich noch nicht alle M&ouml;glichkeiten ab, bilden aber eine solide Grundlage f&uuml;r die Integration von Funktionen zum Versenden von Mail in eigene Anwendungen. Damit k&ouml;nnte man beispielsweise Anwendungen ausstatten, die beim Kunden laufen und beim Auftreten von Fehlern direkt den Hersteller benachrichtigen sollen &#8211; nat&uuml;rlich nicht ohne Erlaubnis des Kunden. Mit der in einer der n&auml;chsten Ausgaben vorgestellten POP3-Funktionalit&auml;t kann man die so gesendeten Benachrichtigungen direkt per Datenbank vom Mailserver abholen und zur Verarbeitung vorbereiten.<\/p>\n<h3>Downloads zu diesem Beitrag<\/h3>\n<p>Enthaltene Beispieldateien:<\/p>\n<p>AccessMails2000.mdb<\/p>\n<p><a href=\"..\/fileadmin\/beispiele\/5158D41E-C36E-4895-9577-C638B16429FB\/aiu_226.zip\">Download<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Die M&ouml;glichkeit, Mails ohne die Verwendung von Outlook zu versenden, w&uuml;rde vielen Access-Anwendungen gut zu Gesicht stehen. Wo auch immer der direkte Versand von Informationen interessant ist, tritt normalerweise Outlook auf den Plan. Das ist aber nicht immer gew&uuml;nscht, denn warum sollte man denn einen Umweg gehen, wenn man auch direkt auf die entsprechenden Funktio-nen des Betriebssystems &#8211; in diesem Fall auf die Bibliothek Winsock.dll &#8211; zugreifen kann<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"om_disable_all_campaigns":false,"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"_uf_show_specific_survey":0,"_uf_disable_surveys":false,"footnotes":""},"categories":[662004,66042004,44000030,44000027,44000033],"tags":[],"class_list":["post-55000226","post","type-post","status-publish","format-standard","hentry","category-662004","category-66042004","category-Internet","category-Loesungen","category-Outlook"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v20.9 (Yoast SEO v27.3) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Mail verwenden ohne Outlook - Access im Unternehmen<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/access-im-unternehmen.de\/Mail_verwenden_ohne_Outlook\/\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Mail verwenden ohne Outlook\" \/>\n<meta property=\"og:description\" content=\"Die M&ouml;glichkeit, Mails ohne die Verwendung von Outlook zu versenden, w&uuml;rde vielen Access-Anwendungen gut zu Gesicht stehen. Wo auch immer der direkte Versand von Informationen interessant ist, tritt normalerweise Outlook auf den Plan. Das ist aber nicht immer gew&uuml;nscht, denn warum sollte man denn einen Umweg gehen, wenn man auch direkt auf die entsprechenden Funktio-nen des Betriebssystems - in diesem Fall auf die Bibliothek Winsock.dll - zugreifen kann\" \/>\n<meta property=\"og:url\" content=\"https:\/\/access-im-unternehmen.de\/Mail_verwenden_ohne_Outlook\/\" \/>\n<meta property=\"og:site_name\" content=\"Access im Unternehmen\" \/>\n<meta property=\"article:published_time\" content=\"2020-12-17T20:04:02+00:00\" \/>\n<meta property=\"og:image\" content=\"http:\/\/vg04.met.vgwort.de\/na\/f243dfc249a9445782c5d0195549da9f\" \/>\n<meta name=\"author\" content=\"Andr\u00e9 Minhorst\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Verfasst von\" \/>\n\t<meta name=\"twitter:data1\" content=\"Andr\u00e9 Minhorst\" \/>\n\t<meta name=\"twitter:label2\" content=\"Gesch\u00e4tzte Lesezeit\" \/>\n\t<meta name=\"twitter:data2\" content=\"22\u00a0Minuten\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Mail_verwenden_ohne_Outlook\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Mail_verwenden_ohne_Outlook\\\/\"},\"author\":{\"name\":\"Andr\u00e9 Minhorst\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#\\\/schema\\\/person\\\/13395c4bcd7d7963efe33be9c584d93f\"},\"headline\":\"Mail verwenden ohne Outlook\",\"datePublished\":\"2020-12-17T20:04:02+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Mail_verwenden_ohne_Outlook\\\/\"},\"wordCount\":3763,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Mail_verwenden_ohne_Outlook\\\/#primaryimage\"},\"thumbnailUrl\":\"http:\\\/\\\/vg04.met.vgwort.de\\\/na\\\/f243dfc249a9445782c5d0195549da9f\",\"articleSection\":[\"2004\",\"4\\\/2004\",\"Internet\",\"L\u00f6sungen\",\"Outlook\"],\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/access-im-unternehmen.de\\\/Mail_verwenden_ohne_Outlook\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Mail_verwenden_ohne_Outlook\\\/\",\"url\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Mail_verwenden_ohne_Outlook\\\/\",\"name\":\"Mail verwenden ohne Outlook - Access im Unternehmen\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Mail_verwenden_ohne_Outlook\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Mail_verwenden_ohne_Outlook\\\/#primaryimage\"},\"thumbnailUrl\":\"http:\\\/\\\/vg04.met.vgwort.de\\\/na\\\/f243dfc249a9445782c5d0195549da9f\",\"datePublished\":\"2020-12-17T20:04:02+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Mail_verwenden_ohne_Outlook\\\/#breadcrumb\"},\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/access-im-unternehmen.de\\\/Mail_verwenden_ohne_Outlook\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Mail_verwenden_ohne_Outlook\\\/#primaryimage\",\"url\":\"http:\\\/\\\/vg04.met.vgwort.de\\\/na\\\/f243dfc249a9445782c5d0195549da9f\",\"contentUrl\":\"http:\\\/\\\/vg04.met.vgwort.de\\\/na\\\/f243dfc249a9445782c5d0195549da9f\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Mail_verwenden_ohne_Outlook\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/access-im-unternehmen.de\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Mail verwenden ohne Outlook\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#website\",\"url\":\"https:\\\/\\\/access-im-unternehmen.de\\\/\",\"name\":\"Access im Unternehmen\",\"description\":\"Das Magazin f\u00fcr Datenbankentwickler auf Basis von Microsoft Access\",\"publisher\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/access-im-unternehmen.de\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"de\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#organization\",\"name\":\"Andr\u00e9 Minhorst Verlag\",\"url\":\"https:\\\/\\\/access-im-unternehmen.de\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/access-im-unternehmen.de\\\/wp-content\\\/uploads\\\/2019\\\/09\\\/aiu_wp.png\",\"contentUrl\":\"https:\\\/\\\/access-im-unternehmen.de\\\/wp-content\\\/uploads\\\/2019\\\/09\\\/aiu_wp.png\",\"width\":370,\"height\":111,\"caption\":\"Andr\u00e9 Minhorst Verlag\"},\"image\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#\\\/schema\\\/logo\\\/image\\\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#\\\/schema\\\/person\\\/13395c4bcd7d7963efe33be9c584d93f\",\"name\":\"Andr\u00e9 Minhorst\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/1b9d010cf1716692cb9c34f21554e07d17d461acaea5b61b8cb21cbec678d48a?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/1b9d010cf1716692cb9c34f21554e07d17d461acaea5b61b8cb21cbec678d48a?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/1b9d010cf1716692cb9c34f21554e07d17d461acaea5b61b8cb21cbec678d48a?s=96&d=mm&r=g\",\"caption\":\"Andr\u00e9 Minhorst\"}}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Mail verwenden ohne Outlook - Access im Unternehmen","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/access-im-unternehmen.de\/Mail_verwenden_ohne_Outlook\/","og_locale":"de_DE","og_type":"article","og_title":"Mail verwenden ohne Outlook","og_description":"Die M&ouml;glichkeit, Mails ohne die Verwendung von Outlook zu versenden, w&uuml;rde vielen Access-Anwendungen gut zu Gesicht stehen. Wo auch immer der direkte Versand von Informationen interessant ist, tritt normalerweise Outlook auf den Plan. Das ist aber nicht immer gew&uuml;nscht, denn warum sollte man denn einen Umweg gehen, wenn man auch direkt auf die entsprechenden Funktio-nen des Betriebssystems - in diesem Fall auf die Bibliothek Winsock.dll - zugreifen kann","og_url":"https:\/\/access-im-unternehmen.de\/Mail_verwenden_ohne_Outlook\/","og_site_name":"Access im Unternehmen","article_published_time":"2020-12-17T20:04:02+00:00","og_image":[{"url":"http:\/\/vg04.met.vgwort.de\/na\/f243dfc249a9445782c5d0195549da9f","type":"","width":"","height":""}],"author":"Andr\u00e9 Minhorst","twitter_card":"summary_large_image","twitter_misc":{"Verfasst von":"Andr\u00e9 Minhorst","Gesch\u00e4tzte Lesezeit":"22\u00a0Minuten"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/access-im-unternehmen.de\/Mail_verwenden_ohne_Outlook\/#article","isPartOf":{"@id":"https:\/\/access-im-unternehmen.de\/Mail_verwenden_ohne_Outlook\/"},"author":{"name":"Andr\u00e9 Minhorst","@id":"https:\/\/access-im-unternehmen.de\/#\/schema\/person\/13395c4bcd7d7963efe33be9c584d93f"},"headline":"Mail verwenden ohne Outlook","datePublished":"2020-12-17T20:04:02+00:00","mainEntityOfPage":{"@id":"https:\/\/access-im-unternehmen.de\/Mail_verwenden_ohne_Outlook\/"},"wordCount":3763,"commentCount":0,"publisher":{"@id":"https:\/\/access-im-unternehmen.de\/#organization"},"image":{"@id":"https:\/\/access-im-unternehmen.de\/Mail_verwenden_ohne_Outlook\/#primaryimage"},"thumbnailUrl":"http:\/\/vg04.met.vgwort.de\/na\/f243dfc249a9445782c5d0195549da9f","articleSection":["2004","4\/2004","Internet","L\u00f6sungen","Outlook"],"inLanguage":"de","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/access-im-unternehmen.de\/Mail_verwenden_ohne_Outlook\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/access-im-unternehmen.de\/Mail_verwenden_ohne_Outlook\/","url":"https:\/\/access-im-unternehmen.de\/Mail_verwenden_ohne_Outlook\/","name":"Mail verwenden ohne Outlook - Access im Unternehmen","isPartOf":{"@id":"https:\/\/access-im-unternehmen.de\/#website"},"primaryImageOfPage":{"@id":"https:\/\/access-im-unternehmen.de\/Mail_verwenden_ohne_Outlook\/#primaryimage"},"image":{"@id":"https:\/\/access-im-unternehmen.de\/Mail_verwenden_ohne_Outlook\/#primaryimage"},"thumbnailUrl":"http:\/\/vg04.met.vgwort.de\/na\/f243dfc249a9445782c5d0195549da9f","datePublished":"2020-12-17T20:04:02+00:00","breadcrumb":{"@id":"https:\/\/access-im-unternehmen.de\/Mail_verwenden_ohne_Outlook\/#breadcrumb"},"inLanguage":"de","potentialAction":[{"@type":"ReadAction","target":["https:\/\/access-im-unternehmen.de\/Mail_verwenden_ohne_Outlook\/"]}]},{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/access-im-unternehmen.de\/Mail_verwenden_ohne_Outlook\/#primaryimage","url":"http:\/\/vg04.met.vgwort.de\/na\/f243dfc249a9445782c5d0195549da9f","contentUrl":"http:\/\/vg04.met.vgwort.de\/na\/f243dfc249a9445782c5d0195549da9f"},{"@type":"BreadcrumbList","@id":"https:\/\/access-im-unternehmen.de\/Mail_verwenden_ohne_Outlook\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/access-im-unternehmen.de\/"},{"@type":"ListItem","position":2,"name":"Mail verwenden ohne Outlook"}]},{"@type":"WebSite","@id":"https:\/\/access-im-unternehmen.de\/#website","url":"https:\/\/access-im-unternehmen.de\/","name":"Access im Unternehmen","description":"Das Magazin f\u00fcr Datenbankentwickler auf Basis von Microsoft Access","publisher":{"@id":"https:\/\/access-im-unternehmen.de\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/access-im-unternehmen.de\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"de"},{"@type":"Organization","@id":"https:\/\/access-im-unternehmen.de\/#organization","name":"Andr\u00e9 Minhorst Verlag","url":"https:\/\/access-im-unternehmen.de\/","logo":{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/access-im-unternehmen.de\/#\/schema\/logo\/image\/","url":"https:\/\/access-im-unternehmen.de\/wp-content\/uploads\/2019\/09\/aiu_wp.png","contentUrl":"https:\/\/access-im-unternehmen.de\/wp-content\/uploads\/2019\/09\/aiu_wp.png","width":370,"height":111,"caption":"Andr\u00e9 Minhorst Verlag"},"image":{"@id":"https:\/\/access-im-unternehmen.de\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/access-im-unternehmen.de\/#\/schema\/person\/13395c4bcd7d7963efe33be9c584d93f","name":"Andr\u00e9 Minhorst","image":{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/secure.gravatar.com\/avatar\/1b9d010cf1716692cb9c34f21554e07d17d461acaea5b61b8cb21cbec678d48a?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/1b9d010cf1716692cb9c34f21554e07d17d461acaea5b61b8cb21cbec678d48a?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/1b9d010cf1716692cb9c34f21554e07d17d461acaea5b61b8cb21cbec678d48a?s=96&d=mm&r=g","caption":"Andr\u00e9 Minhorst"}}]}},"_links":{"self":[{"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/posts\/55000226","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/comments?post=55000226"}],"version-history":[{"count":0,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/posts\/55000226\/revisions"}],"wp:attachment":[{"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/media?parent=55000226"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/categories?post=55000226"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/tags?post=55000226"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}