{"id":55000865,"date":"2012-12-01T00:00:00","date_gmt":"2020-05-22T21:49:52","guid":{"rendered":"http:\/\/access-im-unternehmen.aix-dev.de\/aiu\/?p=865"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-30T00:00:00","slug":"Kundenkommunikation_per_EMail_verwalten_Teil_1","status":"publish","type":"post","link":"https:\/\/access-im-unternehmen.de\/Kundenkommunikation_per_EMail_verwalten_Teil_1\/","title":{"rendered":"Kundenkommunikation per E-Mail verwalten, Teil 1"},"content":{"rendered":"<p><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/vg05.met.vgwort.de\/na\/3ac84979a5ff406f89ac1840ede3d3eb\" width=\"1\" height=\"1\" alt=\"\"><\/p>\n<p><b>Wenn Sie den E-Mail-Verkehr mit Ihren Kunden im Griff haben wollen, kopieren Sie einfach alle betroffenen E-Mails in Ihre Kundendatenbank. Dort landen diese in einer Tabelle, deren Datens&auml;tze Sie den Kunden zuordnen k&ouml;nnen. Vor dem Zuordnen m&uuml;ssen Sie jedoch noch festlegen, welche E-Mails aus welchen Ordnern importiert werden sollen. Dieser Beitrag zeigt, wie Sie den Zugriff auf Outlook und den Import der E-Mails automatisieren.<\/b><\/p>\n<p>Bevor Sie eine E-Mail &uuml;berhaupt einem Kunden in Ihrer Datenbank zuordnen k&ouml;nnen, m&uuml;ssen Sie diese erstmal lesen und gegebenenfalls die wichtigsten Daten der E-Mail in der Datenbank speichern.<\/p>\n<p>Dies erledigen Sie mit den in diesem Beitrag vorgestellten Techniken. Dabei sind folgende Schritte n&ouml;tig:<\/p>\n<ul>\n<li class=\"aufz-hlung\">Definieren der Ordner, deren E-Mails eingelesen werden sollen, und festlegen, welche davon Ausgangs- und welche Eingangsordner sind<\/li>\n<li class=\"aufz-hlung\">Angabe der eigenen E-Mail-Adressen, um nur gezielt adressierte E-Mails zu importieren<\/li>\n<li class=\"aufz-hlung\">Angabe der E-Mail-Adressen der Kunden, deren E-Mails ber&uuml;cksichtigt werden sollen<\/li>\n<li class=\"aufz-hlung\">Markieren der importierten E-Mails in Outlook, damit diese als eingelesen erkannt und nicht nochmals eingelesen werden<\/li>\n<li class=\"aufz-hlung\">Zuordnen der eingelesenen E-Mails zu den Kunden in der Kundentabelle<\/li>\n<li class=\"aufz-hlung\">Aufbauen einer hierarchischen Struktur aus E-Mails und den passenden Antworten<\/li>\n<li class=\"aufz-hlung\">Anzeige dieser E-Mail-Hierarchie im TreeView-Steuerelement<\/li>\n<\/ul>\n<p><b>Eingangs- und Ausgangsordner festlegen<\/b><\/p>\n<p>Der erste Schritt dient dazu, die zu ber&uuml;cksichtigenden Ordner von Outlook zu ermitteln. Normalerweise verwendet man nur einen Posteingang und einen Ordner, in dem die gesendeten Objekte landen.<\/p>\n<p>Gegebenenfalls haben Sie aber mehrere E-Mail-Adressen eingerichtet oder filtern E-Mails gleich nach dem Eingang oder Ausgang mit entsprechenden Regeln in andere Ordner. Daher erstellen wir gleich zu Beginn eine Tabelle, welche die zu durchsuchenden Ordner speichert, und zwei Formulare, mit denen Sie die gew&uuml;nschten Outlook-Ordner festlegen k&ouml;nnen &#8211; ein einfaches und eines mit der Darstellung der zu pr&uuml;fenden Ordner als TreeView.<\/p>\n<p>Die Tabelle hei&szlig;t <b>tblMailordner <\/b>und enth&auml;lt die folgenden drei Felder:<\/p>\n<ul>\n<li class=\"aufz-hlung\"><b>MailordnerID<\/b>: Prim&auml;rschl&uuml;sselfeld<\/li>\n<li class=\"aufz-hlung\"><b>Mailordner<\/b>: Pfad des Ordners<\/li>\n<\/ul>\n<p>Mit einigen Werten sieht diese Tabelle etwa wie in Bild 1 aus.<\/p>\n<p><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2012_06\/Kundenkommunikation-web-images\/pic002.png\" alt=\"pic002.png\" \/><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 1: Tabelle zum Speichern der Outlook-Ordner<\/span><\/b><\/p>\n<p><b>Ordner ermitteln<\/b><\/p>\n<p>Wie f&uuml;llen Sie diese Tabelle nun mit den Outlook-Ordnern Die einfachste Methode ist, einfach den zur Auswahl von Outlook-Ordnern vorgesehenen Dialog zu verwenden. Nehmen wir an, Sie verwenden ein Formular namens <b>frmMailordner<\/b>, das die in der Tabelle <b>tblMailordner <\/b>enthaltenen Datens&auml;tze in einem Listenfeld namens <b>lstMailordner<\/b> anzeigt. Dann k&ouml;nnen Sie diesem Formular eine Schaltfl&auml;che namens <b>cmdHinzufuegen <\/b>zuweisen, welche die Ereignisprozedur aus Bild 2 &ouml;ffnet.<\/p>\n<p class=\"listingueberschrift\">Listing 1: Hinzuf&uuml;gen eines Mailordners zur Tabelle tblMailordner<\/p>\n<pre>Private Sub cmdHinzufuegen_Click()\r\n    Dim objOutlook As Outlook.Application\r\n    Dim objNamespace As Outlook.NameSpace\r\n    Dim objFolder As Outlook.Folder\r\n    Dim db As DAO.Database\r\n    Set db = CurrentDb\r\n    Set objOutlook = New Outlook.Application\r\n    Set objNamespace = objOutlook.GetNamespace(&quot;MAPI&quot;)\r\n    Set objFolder = objNamespace.PickFolder\r\n    If Not objFolder Is Nothing Then\r\n        db.Execute &quot;INSERT INTO tblMailordner(Mailordner) VALUES(''&quot; _\r\n            &amp; objFolder.FolderPath &amp; &quot;'')&quot;, dbFailOnError\r\n        Me!lstMailordner.Requery\r\n    End If\r\nEnd Sub<\/pre>\n<p><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2012_06\/Kundenkommunikation-web-images\/pic001.png\" alt=\"pic001.png\" \/><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 2: Auswahl von Outlook-Ordnern mit dem daf&uuml;r vorgesehenen Dialog<\/span><\/b><\/p>\n<p>Damit w&auml;hlen Sie einen der Ordner aus und klicken dann auf die Schaltfl&auml;che <b>OK<\/b>. Die Prozedur pr&uuml;ft, ob ein Ordner ausgew&auml;hlt wurde, und schreibt dann den Wert der Eigenschaft <b>FolderPath <\/b>in die Tabelle <b>tblMailordner<\/b>. Die dortigen Ordner werden unmittelbar nach dem Hinzuf&uuml;gen im Listenfeld angezeigt.<\/p>\n<p>Dies ist die einfache Variante und verdeutlicht die grundlegende Technik. F&uuml;r etwas mehr Komfort m&ouml;chten Sie aber vielleicht direkt die Struktur der Outlook-Ordner in einem TreeView innerhalb der Datenbank abbilden und dort mit geeigneten Kontrollk&auml;stchen die zu ber&uuml;cksichtigenden Ordner markieren.<\/p>\n<p><b>Outlook-Ordner-Baum<\/b><\/p>\n<p>Dazu legen Sie zun&auml;chst ein neues Formular namens <b>frmMailordnerTree <\/b>an und f&uuml;gen diesem ein TreeView-Steuerelement hinzu. Nennen Sie das Steuerelement <b>ctlMailordner<\/b> und f&uuml;gen Sie dem Formular eine Ereignisprozedur f&uuml;r das Ereignis <b>Beim Laden <\/b>hinzu.<\/p>\n<p>Diese Prozedur setzt die grundlegenden Einstellungen des TreeView-Steuerelements und ruft die Prozedur zum F&uuml;llen auf. Im Formularmodul ben&ouml;tigen Sie auf jeden Fall eine Objektvariable f&uuml;r das TreeView-Steuerelement, das mit dem Schl&uuml;sselwort <b>WithEvents <\/b>ausgestattet wird, damit Sie auch auf dessen Ereignisse reagieren k&ouml;nnen:<\/p>\n<pre>Dim WithEvents objMailordner As MSComctlLib.TreeView<\/pre>\n<p>Die Prozedur, die beim Laden des Formulars ausgel&ouml;st wird, finden Sie in <span class=\"verweis-ohneumbruch\"><a href=\"#anker-51-anchor\">Listing 2<\/a><\/span>. Sie weist zun&auml;chst der Objektvariablen <b>objMailordner <\/b>einen Verweis auf das TreeView-Steuerelement zu.<\/p>\n<p class=\"listingueberschrift\">Listing 2: Ereignisprozedur beim Laden des Formulars<\/p>\n<pre>Private Sub Form_Load()\r\n    Set objMailordner = Me!ctlMailordner.Object\r\n    With objMailordner\r\n        .Checkboxes = True\r\n        .Font.name = &quot;Calibri&quot;\r\n        .Font.Size = 9\r\n        .LineStyle = tvwRootLines\r\n    End With\r\n    MailordnerEinlesen\r\nEnd Sub<\/pre>\n<p>Danach stellt sie einige Eigenschaften f&uuml;r das TreeView-Steuerelement ein, was eine Einstellung &uuml;ber den Eigenschaften-Dialog dieses Steuerelements er&uuml;brigt. Dabei werden die Kontrollk&auml;stchen aktiviert, die Schriftart angepasst und die Root-Linien f&uuml;r die Root-Elemente eingeblendet. Die letzte Anweisung ruft die Prozedur <b>MailordnerEinlesen <\/b>auf, nach deren Abarbeitung das Formular wie in Bild 3 aussieht.<\/p>\n<p><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2012_06\/Kundenkommunikation-web-images\/pic003.png\" alt=\"pic003.png\" \/><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 3: Outlook-Ordner per TreeView ausw&auml;hlen<\/span><\/b><\/p>\n<p>Diese Prozedur finden Sie in <span class=\"verweis-ohneumbruch\"><a href=\"#anker-52-anchor\">Listing 3<\/a><\/span>. F&uuml;r die <b>Execute<\/b>-Anweisung gleich zu Beginn, die den Wert eines Feldes namens <b>Aktiv <\/b>der Tabelle <b>tblMailordner <\/b>auf <b>False <\/b>einstellt, sind einige erkl&auml;rende Worte n&ouml;tig: Das TreeView-Steuerelement soll alle Outlook-Ordner, die standardm&auml;&szlig;ig Mail-Elemente enthalten, hierarchisch auflisten.<\/p>\n<p class=\"listingueberschrift\">Listing 3: Einlesen der Mailordner und Anhaken der bereits in der Tabelle tblMailordner eingetragenen Ordner<\/p>\n<pre>Public Sub MailordnerEinlesen()\r\n    Dim objOutlook As Outlook.Application\r\n    Dim objNamespace As Outlook.NameSpace\r\n    Dim objFolder As Outlook.Folder\r\n    Dim objNode As MSComctlLib.Node\r\n    Dim db As DAO.Database\r\n    Dim rstMailordner As DAO.Recordset\r\n    Set db = CurrentDb\r\n    db.Execute &quot;UPDATE tblMailordner SET Aktiv = FALSE&quot;, dbFailOnError\r\n    Set objOutlook = New Outlook.Application\r\n    Set objNamespace = objOutlook.GetNamespace(&quot;MAPI&quot;)\r\n    objMailordner.Nodes.Clear\r\n    Set objFolder = objNamespace.GetDefaultFolder(olFolderInbox)\r\n    Set objNode = NodeAnlegen(db, objFolder, &quot;&quot;)\r\n    MailordnerEinlesen_Rek db, objFolder, objNode\r\n    Set objFolder = objNamespace.GetDefaultFolder(olFolderSentMail)\r\n    Set objNode = NodeAnlegen(db, objFolder, &quot;&quot;)\r\n    MailordnerEinlesen_Rek db, objFolder, objNode\r\n    Set rstMailordner = db.OpenRecordset(&quot;SELECT * FROM tblMailordner WHERE Aktiv = FALSE&quot;, _\r\n        dbOpenDynaset)\r\n    Do While Not rstMailordner.EOF\r\n         If MsgBox(&quot;Der Mailordner ''&quot; &amp; rstMailordner!Mailordner _\r\n                 &amp; &quot;'' ist nicht mehr in Outlook vorhanden.&quot; &amp; vbCrLf &amp; vbCrLf _\r\n                &amp; &quot;Ordner auch aus der Datenbank entfernen&quot;, vbYesNo + vbExclamation, _\r\n                &quot;Fehlender Mailordner&quot;) = vbYes Then\r\n            db.Execute &quot;DELETE FROM tblMailordner WHERE MailordnerID = &quot; _\r\n                &amp; rstMailordner!MailordnerID, dbFailOnError\r\n        End If\r\n        rstMailordner.MoveNext\r\n    Loop\r\nEnd Sub<\/pre>\n<p><!--30percent--><\/p>\n<p>Die dabei angezeigten Kontrollk&auml;stchen sollen aktiviert werden, wenn einer der eingelesenen Ordner bereits in der Tabelle <b>tblMailordner <\/b>enthalten ist. Nun kann es aber passieren, dass der Benutzer einen Mailordner ausw&auml;hlt, die Anwendung schlie&szlig;t, dann einen dieser Ordner in Outlook l&ouml;scht und erneut das Formular mit dem TreeView-Steuerelement &ouml;ffnet.<\/p>\n<p>Dann g&auml;be es einen Mailordner in der Tabelle <b>tblMailordner<\/b>, der aber nicht mehr in Outlook vorhanden und dementsprechend und auch nicht mehr im TreeView-Steuerelement angezeigt wird. Um dies zu pr&uuml;fen und den Benutzer gegebenenfalls auf einen solchen Ordner hinzuweisen, wird der Wert des Feldes <b>Aktiv <\/b>der Tabelle <b>tblMailordner <\/b>vor dem F&uuml;llen des TreeViews auf <b>False <\/b>eingestellt. Beim Einlesen der Ordner wird die Eigenschaft <b>Aktiv <\/b>f&uuml;r alle Ordner, die auch in der Tabelle <b>tblMailordner <\/b>enthalten sind, auf <b>True <\/b>eingestellt.<\/p>\n<p>Wenn es nach dem Einlesen aller Ordner noch Datens&auml;tze in <b>tblMailordner <\/b>gibt, deren Feld <b>Aktiv <\/b>den Wert <b>False <\/b>enth&auml;lt, sind diese Ordner nicht mehr in Outlook vorhanden. Dies wird dem Benutzer per Meldungsfenster mitgeteilt, der entsprechende Eintrag kann dann aus der Tabelle <b>tblMailordner <\/b>gel&ouml;scht werden.<\/p>\n<p>Zur&uuml;ck zum Code: Nach dem Einstellen des Feldes <b>Aktiv <\/b>auf den Wert <b>False <\/b>f&uuml;llt die Prozedur die Objektvariablen <b>objOutlook <\/b>und <b>objNamespace <\/b>mit entsprechenden Verweisen. Normalerweise w&uuml;rden wir hier alle <b>Folder<\/b>-Elemente in einer <b>For Each<\/b>-Schleife durchlaufen, aber dies f&uuml;hrte auf meinem System zu Problemen: Dort fand die Prozedur mehr als ein Outlook-Root-Element, wobei diese auch noch die gleiche <b>EntryID <\/b>aufwiesen. Dies f&uuml;hrt, wenn man die <b>EntryID<\/b> als Teil des eindeutigen Schl&uuml;ssels der TreeView-Elemente verwenden m&ouml;chte, zu einem Fehler. Eigentlich interessieren uns aber ohnehin nur die Ordner Posteingang und Postausgang, weshalb wir den Einlesevorgang einmal f&uuml;r den durch <b>objNamespace.GetDefaultFolder(olFolderInbox) <\/b>und einmal f&uuml;r den durch <b>objNamespace.GetDefaultFolder(olFolderSentMail) <\/b>definierten Root-Ordner ausf&uuml;hren.<\/p>\n<p>Dabei ruft die Prozedur f&uuml;r jeden Ordner die Prozedur <b>NodeAnlegen <\/b>mit einem Verweis auf das aktuelle <b>Database<\/b>-Objekt und das <b>Folder<\/b>-Objekt auf. Diese Prozedur legt f&uuml;r jeden Ordner ein <b>Node<\/b>-Element im TreeView-Steuerelement an und f&uuml;hrt einige andere Aufgaben aus &#8211; mehr dazu weiter unten. Anschlie&szlig;end folgt noch ein Aufruf der rekursiven Prozedur <b>MailordnerEinlesen_Rek<\/b>, die sich um die untergeordneten Ordner k&uuml;mmert.<\/p>\n<p><b>Rekursives Einlesen der Ordner<\/b><\/p>\n<p>Die rekursive Prozedur <b>MailordnerEinlesen_Rek <\/b>erwartet als Parameter einen Verweis auf das aktuelle <b>Database<\/b>-Objekt, auf das <b>Folder<\/b>-Objekt, dessen Unterordner nun untersucht werden sollen, sowie auf das <b>Node<\/b>-Objekt, unter dem die weiteren Ordner dargestellt werden sollen (s. <span class=\"verweis-ohneumbruch\"><a href=\"#anker-54-anchor\">Listing 4<\/a><\/span>).<\/p>\n<p class=\"listingueberschrift\">Listing 4: Rekursives Einlesen der unteren Ordner-Ebenen<\/p>\n<pre>Public Sub MailordnerEinlesen_Rek(db As DAO.Database, objParentFolder As Outlook.Folder, _\r\n        objParentNode As MSComctlLib.Node)\r\n    Dim objFolder As Outlook.Folder\r\n    Dim objNode As MSComctlLib.Node\r\n    For Each objFolder In objParentFolder.Folders\r\n     Set objNode = NodeAnlegen(db, objFolder, objParentNode.Key)\r\n        If Not objNode Is Nothing Then\r\n            MailordnerEinlesen_Rek db, objFolder, objNode\r\n        End If\r\n    Next objFolder\r\nEnd Sub<\/pre>\n<p>Die Prozedur durchl&auml;uft in einer <b>For Each<\/b>-Schleife wiederum die in <b>objParentFolder <\/b>enthaltenen <b>Folder<\/b>-Objekte. Sie ruft f&uuml;r jedes Element einmal die Prozedur <b>NodeAnlegen <\/b>auf.<\/p>\n<p>Wenn diese einen Node anlegt und einen Verweis darauf zur&uuml;ckgibt, erfolgt ein weiterer Aufruf der rekursiven Prozedur, um weitere Unterordner einzulesen; anderenfalls wird die Rekursion hier durchbrochen und der n&auml;chste &uuml;bergeordnete Folder bearbeitet.<\/p>\n<p><b>Hinzuf&uuml;gen von Elementen zum TreeView<\/b><\/p>\n<p>Die Funktion <b>NodeAnlegen <\/b>aus <span class=\"verweis-ohneumbruch\"><a href=\"#anker-55-anchor\">Listing 5<\/a><\/span> legt die TreeView-Nodes f&uuml;r die Outlook-Ordner an. Sie erwartet einen Verweis auf die aktuelle Datenbank, einen Verweis auf den Outlook-Ordner, f&uuml;r den ein Node-Element im TreeView-Steuerelement angelegt werden soll, und den <b>Key <\/b>des <b>Node<\/b>-Elements, unter dem das neue Element angelegt werden soll. Es gibt einen Verweis auf das neu erstellte <b>Node<\/b>-Element zur&uuml;ck &#8211; wenn denn eines erstellt wurde.<\/p>\n<p class=\"listingueberschrift\">Listing 5: Anlegen eines Node-Elements f&uuml;r einen Outlook-Ordner<\/p>\n<pre>Private Function NodeAnlegen(db As DAO.Database, objFolder As Outlook.Folder, _\r\n        strParentnode As String) As MSComctlLib.Node\r\n    Dim objNode As MSComctlLib.Node\r\n    Dim lngMailordnerID As Long\r\n    If objFolder.DefaultItemType = 0 Then\r\n        If Len(strParentnode) &gt; 0 Then\r\n            Set objNode = objMailordner.Nodes.Add(strParentnode, tvwChild, _\r\n                &quot;a&quot; &amp; objFolder.EntryID, objFolder.name)\r\n        Else\r\n            Set objNode = objMailordner.Nodes.Add(, , &quot;a&quot; &amp; objFolder.EntryID, objFolder.name)\r\n        End If\r\n        objNode.Expanded = True\r\n        objNode.Tag = objFolder.FolderPath\r\n        lngMailordnerID = Nz(DLookup(&quot;MailordnerID&quot;, &quot;tblMailordner&quot;, &quot;Mailordner = ''&quot; _\r\n            &amp; Replace(objFolder.FolderPath, &quot;''&quot;, &quot;''''&quot;) &amp; &quot;''&quot;), 0)\r\n        If Not lngMailordnerID = 0 Then\r\n            db.Execute &quot;UPDATE tblMailordner SET Aktiv = TRUE WHERE MailordnerID = &quot; _\r\n                &amp; lngMailordnerID, dbFailOnError\r\n            objNode.Checked = True\r\n        End If\r\n        Set NodeAnlegen = objNode\r\n    End If\r\nEnd Function<\/pre>\n<p>Die Prozedur pr&uuml;ft zun&auml;chst den Standard-Elementtyp des <b>Folder<\/b>-Objekts. Dieser muss dem Wert <b>olMailItem <\/b>entsprechen.<\/p>\n<p>Dieser Standard-Elementtyp gilt f&uuml;r Ordner wie <b>Posteingang<\/b>, <b>Postausgang<\/b>, <b>Gesendete Objekte <\/b>und die benutzerdefinierten Ordner.<\/p>\n<p>Wenn <b>strParentNode <\/b>die L&auml;nge <b>0 <\/b>aufweist, erfolgte der Aufruf von der Prozedur <b>MailordnerEinlesen <\/b>aus, was bedeutet, dass der Ordner aus der ersten Ebene stammt und dementsprechend ein <b>Node<\/b>-Element in der obersten Ebene des TreeView-Elements angelegt werden soll.<\/p>\n<p>Anderenfalls soll das neue <b>Node<\/b>-Element unterhalb dem mit <b>strParentNode <\/b>gekennzeichneten Element angelegt werden. Beides erledigt die Methode <b>Add <\/b>der <b>Nodes<\/b>-Auflistung der Objektvariablen <b>objMailordner<\/b>, die das TreeView-Steuerelement referenziert.<\/p>\n<p>Als <b>Key <\/b>des neuen Elements wird die Kombination aus dem Buchstaben <b>a <\/b>und dem Wert der <b>EntryID <\/b>des einzuf&uuml;genden Outlook-Ordners angegeben &#8211; eine Eigenschaft, die beispielsweise den Wert <b>0000000024C04FA8B8AC0D46A53DDB6FDD444F6062800000<\/b> enth&auml;lt.<\/p>\n<p>Somit wird die Eindeutigkeit der <b>Node<\/b>-Elemente im TreeView-Steuerelement gew&auml;hrleistet.<\/p>\n<p>Jedes <b>Node<\/b>-Element wird anschlie&szlig;end &uuml;ber die Eigenschaft <b>Expanded <\/b>so eingestellt, dass es nach dem Anlegen stets aufgeklappt ist und die enthaltenen <b>Node<\/b>-Elemente anzeigt. Die <b>Tag<\/b>-Eigenschaft nimmt den Pfad des <b>Folder<\/b>-Objekts auf, beispielsweise <b>\\\\andre@minhorst.com\\Posteingang<\/b>.<\/p>\n<p>Dann versucht die Prozedur, einen Eintrag mit diesem Pfad in der Tabelle <b>tblMailordner <\/b>zu finden. Ist dieser bereits vorhanden, wird das Kontrollk&auml;stchen f&uuml;r diesen Eintrag markiert. Au&szlig;erdem wird der Wert des Feldes <b>Aktiv <\/b>des entsprechenden Datensatzes der Tabelle <b>tblMailordner <\/b>auf <b>True <\/b>eingestellt und ein Verweis auf das erstellte Node-Objekt an den Funktionswert <b>NodeAnlegen <\/b>&uuml;bergeben.<\/p>\n<p>Dieser bleibt nur leer, wenn der Ordner nicht das Mail-Element als Standard-Elementtyp verwendet.<\/p>\n<p class=\"zwischen-berschrift-oberer-spaltenrand\">Ausw&auml;hlen von Mailordnern<\/p>\n<p>Ein Klick auf das Kontrollk&auml;stchen eines Node-Elements im TreeView-Steuerelement soll den betroffenen Mailordner entweder zur Tabelle <b>tblMailordner <\/b>hinzuf&uuml;gen oder diesen daraus entfernen. Damit dies gleich beim Klick auf das Kontrollk&auml;stchen geschieht, legen Sie eine Prozedur wie die aus <span class=\"verweis-ohneumbruch\"><a href=\"#anker-56-anchor\">Listing 6<\/a><\/span> an.<\/p>\n<p class=\"listingueberschrift\">Listing 6: Anhaken eines Mail-Ordners im TreeView-Steuerelement<\/p>\n<pre>Private Sub objMailordner_NodeCheck(ByVal Node As MSComctlLib.Node)\r\n    Dim db As DAO.Database\r\n    Set db = CurrentDb\r\n    If Node.Checked Then\r\n        db.Execute &quot;INSERT INTO tblMailordner(Mailordner) VALUES(''&quot; &amp; Node.Tag &amp; &quot;'')&quot;, dbFailOnError\r\n    Else\r\n        db.Execute &quot;DELETE FROM tblMailordner WHERE Mailordner = ''&quot; &amp; Node.Tag &amp; &quot;''&quot;, dbFailOnError\r\n    End If\r\nEnd Sub<\/pre>\n<p>Die Prozedur pr&uuml;ft anhand des Wertes der Eigenschaft <b>Checked<\/b>, ob das Kontrollk&auml;stchen des <b>Node<\/b>-Elements soeben markiert oder geleert wurde. Wurde es markiert, wird der Wert der Eigenschaft <b>Tag <\/b>des <b>Node<\/b>-Elements in einen neuen Datensatz der Tabelle <b>tblMailordner <\/b>geschrieben.<\/p>\n<p>Dieser Wert wurde in der Prozedur <b>NodeAnlegen <\/b>mit dem <b>FolderPath <\/b>des <b>Node<\/b>-Elements gef&uuml;llt. Wenn das Kontrollk&auml;stchen geleert wurde, wird der Datensatz mit dem entsprechenden Pfad im Feld <b>Mailordner <\/b>aus der Tabelle <b>tblMailordner <\/b>gel&ouml;scht.<\/p>\n<p><b>Eigene E-Mail-Adressen angeben<\/b><\/p>\n<p>Wenn Sie Ihre Kommunikation mit Ihren Kunden verwalten m&ouml;chten, wollen Sie erst einmal alle E-Mails, die Ihre eigene E-Mail-Adresse als Absender oder Empf&auml;nger enthalten, einlesen.<\/p>\n<p>Dies kann durchaus mehrere E-Mail-Adressen betreffen, wenn Sie beispielsweise Produkte &uuml;ber mehrere Webseiten vertreiben und E-Mails mit der entsprechenden Domain wie etwa <b>access-im-unternehmen.de <\/b>oder <b>access-basics.de <\/b>versenden. Diese E-Mail-Adressen speichern wir ebenfalls in einer Tabelle, um diese flexibel um weitere Eintr&auml;ge erweitern zu k&ouml;nnen. <\/p>\n<p><b>Speichern der E-Mails<\/b><\/p>\n<p>Wir werden in den folgenden Abschnitten Techniken entwickeln, um E-Mails von Outlook einzulesen und diese in Tabellen zu schreiben. Dabei lesen wir sowohl gesendete als auch empfangene E-Mails ein. Beide Sorten von E-Mails werden von Outlook gleich gehandhabt, n&auml;mlich als Mail-Objekte. Ob eine E-Mail eine eingehende oder ausgehende E-Mail ist, l&auml;sst sich nur anhand der E-Mail-Adressen feststellen.<\/p>\n<p>Enth&auml;lt die <b>To<\/b>-Eigenschaft eine eigene E-Mail-Adresse, handelt es sich um eine eingehende E-Mail, sonst um eine ausgehende.<\/p>\n<p>Andersherum verh&auml;lt es sich bei der <b>From<\/b>-Eigenschaft. Dementsprechend speichern wir auch alle E-Mails in einer einzigen Tabelle &#8211; nur dass Ihre E-Mail-Adresse mal als Absender- und mal als Empf&auml;ngeradresse zum Einsatz kommt.<\/p>\n<p>Letztlich sollen die E-Mails samt Betreff, Inhalt und Versanddatum erstmal in einer Tabelle landen, mit der Sie dann andere Dinge anstellen k&ouml;nnen &#8211; zum Beispiel die E-Mail-Konversation einem Kunden zuweisen, um so die Kommunikation mit diesem zu dokumentieren. Also erstellen wir erstmal eine passende Tabelle, die im Entwurf wie in Bild 4 aussieht.<\/p>\n<p><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2012_06\/Kundenkommunikation-web-images\/pic004.png\" alt=\"pic004.png\" \/><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 4: Tabelle zum Speichern von E-Mails<\/span><\/b><\/p>\n<p>Danach legen wir eine Prozedur an, mit der die E-Mails aus den in der Tabelle <b>tblMailordner <\/b>gespeicherten Outlook-Ordnern in die Tabelle <b>tblKommunikation<\/b> geschrieben werden (s. <span class=\"verweis-ohneumbruch\"><a href=\"#anker-58-anchor\">Listing 7<\/a><\/span>).<\/p>\n<p class=\"listingueberschrift\">Listing 7: Einlesen der E-Mails in die Tabelle tblKommunikation<\/p>\n<pre>Public Sub EMailsEinlesen()\r\n    Dim db As DAO.Database, rstMailordner As DAO.Recordset\r\n    Dim objFolder As Outlook.Folder\r\n    Dim obj As Object, objMail As Outlook.MailItem\r\n    Dim objOutlook As Outlook.Application\r\n    Dim strMailordner As String\r\n    Dim i As Integer\r\n    Dim strEmail_From As String, strEMail_To As String\r\n    Dim strBetreff As String, strInhalt As String\r\n    Dim datDatumZeit As Date\r\n    Set objOutlook = New Outlook.Application\r\n    Set db = CurrentDb\r\n    Set rstMailordner = db.OpenRecordset(&quot;SELECT * FROM tblMailordner&quot;, dbOpenDynaset)\r\n    Do While Not rstMailordner.EOF\r\n         strMailordner = rstMailordner!Mailordner\r\n        strMailordner = Mid(strMailordner, 3)\r\n        Set objFolder = GetFolder(objOutlook, strMailordner)\r\n        For Each obj In objFolder.Items\r\n            If TypeName(obj) = &quot;MailItem&quot; Then\r\n                Set objMail = obj\r\n                strEmail_From = objMail.SenderEmailAddress\r\n                strEMail_To = Replace(objMail.To, &quot;''&quot;, &quot;&quot;)\r\n                strBetreff = Replace(objMail.Subject, &quot;''&quot;, &quot;''''&quot;)\r\n                strInhalt = Replace(objMail.Body, &quot;''&quot;, &quot;''''&quot;)\r\n                datDatumZeit = objMail.SentOn\r\n                db.Execute &quot;INSERT INTO tblKommunikation(Email_From, EMail_To, Betreff, Inhalt, &quot; _\r\n                    &amp; &quot;DatumZeit) VALUES(''&quot; &amp; strEmail_From &amp; &quot;'', ''&quot; &amp; strEMail_To &amp; &quot;'', ''&quot; _\r\n                    &amp; strBetreff &amp; &quot;'', ''&quot; &amp; strInhalt &amp; &quot;'', &quot; &amp; ISODatum(datDatumZeit) &amp; &quot;)&quot;, _\r\n                    dbFailOnError\r\n                If db.RecordsAffected = 1 Then\r\n                    ''Aktion\r\n                End If\r\n            End If\r\n        Next obj\r\n        rstMailordner.MoveNext\r\n    Loop\r\n    Set objOutlook = Nothing\r\n    Set db = Nothing\r\nEnd Sub<\/pre>\n<p>Die Prozedur ist ein Arbeitstier: Sie holt &uuml;ber die Funktion <b>GetFolder<\/b> zun&auml;chst einen Verweis auf das zum angegebenen Ordner (etwa <b>\\\\Outlook\\Gesendete Objekte<\/b>) geh&ouml;rende <b>Folder<\/b>-Objekt -und das f&uuml;r jeden ausgew&auml;hlten Ordner. Dann liest sie alle E-Mails im jeweiligen Ordner ein und speichert die enthaltenen Daten in der Tabelle <b>tblKommunikation<\/b>.<\/p>\n<p class=\"zwischen-berschrift-oberer-spaltenrand\">Zusammenfassung und Ausblick<\/p>\n<p>Im zweiten Teil dieser Beitragsreihe k&uuml;mmern wir uns beispielsweise um den Ausbau der Prozedur zum Einlesen der E-Mails. Die eingelesen E-Mails sollen beispielsweise irgendwie markiert oder verschoben werden, damit diese nicht erneut eingelesen werden. Au&szlig;erdem m&uuml;ssen wir einen Algorithmus entwickeln, welcher die E-Mails aufgrund der Absender- und Empf&auml;nger-Adresse der Kommunikation mit einem bestimmten Kunden zuordnet. Dazu m&uuml;ssen wir unter anderem vorsehen, dass ein Kunde mehr als eine E-Mail-Adresse verwenden k&ouml;nnte &#8211; genauso wie Sie auch.<\/p>\n<p>Schlie&szlig;lich sollen die E-Mails in einem entsprechenden Formular passend zum Kunden dargestellt werden.<\/p>\n<h3>Downloads zu diesem Beitrag<\/h3>\n<p>Enthaltene Beispieldateien:<\/p>\n<p>Kundenkommunikation.mdb<\/p>\n<p><a href=\"..\/fileadmin\/beispiele\/{59F5B463-F723-4BFA-A3E0-3C9C8970D440}\/aiu_865.zip\">Download<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Wenn Sie den E-Mail-Verkehr mit Ihren Kunden im Griff haben wollen, kopieren Sie einfach alle betroffenen E-Mails in Ihre Kundendatenbank. Dort landen diese in einer Tabelle, deren Datens&auml;tze Sie den Kunden zuordnen k&ouml;nnen. Vor dem Zuordnen m&uuml;ssen Sie jedoch noch festlegen, welche E-Mails aus welchen Ordnern importiert werden sollen. Dieser Beitrag zeigt, wie Sie den Zugriff auf Outlook und den Import der E-Mails automatisieren.<\/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":[662012,66062012,44000026],"tags":[],"class_list":["post-55000865","post","type-post","status-publish","format-standard","hentry","category-662012","category-66062012","category-Interaktiv"],"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>Kundenkommunikation per E-Mail verwalten, Teil 1 - 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\/Kundenkommunikation_per_EMail_verwalten_Teil_1\/\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Kundenkommunikation per E-Mail verwalten, Teil 1\" \/>\n<meta property=\"og:description\" content=\"Wenn Sie den E-Mail-Verkehr mit Ihren Kunden im Griff haben wollen, kopieren Sie einfach alle betroffenen E-Mails in Ihre Kundendatenbank. Dort landen diese in einer Tabelle, deren Datens&auml;tze Sie den Kunden zuordnen k&ouml;nnen. Vor dem Zuordnen m&uuml;ssen Sie jedoch noch festlegen, welche E-Mails aus welchen Ordnern importiert werden sollen. Dieser Beitrag zeigt, wie Sie den Zugriff auf Outlook und den Import der E-Mails automatisieren.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/access-im-unternehmen.de\/Kundenkommunikation_per_EMail_verwalten_Teil_1\/\" \/>\n<meta property=\"og:site_name\" content=\"Access im Unternehmen\" \/>\n<meta property=\"article:published_time\" content=\"2020-05-22T21:49:52+00:00\" \/>\n<meta property=\"og:image\" content=\"http:\/\/vg05.met.vgwort.de\/na\/3ac84979a5ff406f89ac1840ede3d3eb\" \/>\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=\"15\u00a0Minuten\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Kundenkommunikation_per_EMail_verwalten_Teil_1\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Kundenkommunikation_per_EMail_verwalten_Teil_1\\\/\"},\"author\":{\"name\":\"Andr\u00e9 Minhorst\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#\\\/schema\\\/person\\\/13395c4bcd7d7963efe33be9c584d93f\"},\"headline\":\"Kundenkommunikation per E-Mail verwalten, Teil 1\",\"datePublished\":\"2020-05-22T21:49:52+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Kundenkommunikation_per_EMail_verwalten_Teil_1\\\/\"},\"wordCount\":2265,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Kundenkommunikation_per_EMail_verwalten_Teil_1\\\/#primaryimage\"},\"thumbnailUrl\":\"http:\\\/\\\/vg05.met.vgwort.de\\\/na\\\/3ac84979a5ff406f89ac1840ede3d3eb\",\"articleSection\":[\"2012\",\"6\\\/2012\",\"Interaktiv\"],\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/access-im-unternehmen.de\\\/Kundenkommunikation_per_EMail_verwalten_Teil_1\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Kundenkommunikation_per_EMail_verwalten_Teil_1\\\/\",\"url\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Kundenkommunikation_per_EMail_verwalten_Teil_1\\\/\",\"name\":\"Kundenkommunikation per E-Mail verwalten, Teil 1 - Access im Unternehmen\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Kundenkommunikation_per_EMail_verwalten_Teil_1\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Kundenkommunikation_per_EMail_verwalten_Teil_1\\\/#primaryimage\"},\"thumbnailUrl\":\"http:\\\/\\\/vg05.met.vgwort.de\\\/na\\\/3ac84979a5ff406f89ac1840ede3d3eb\",\"datePublished\":\"2020-05-22T21:49:52+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Kundenkommunikation_per_EMail_verwalten_Teil_1\\\/#breadcrumb\"},\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/access-im-unternehmen.de\\\/Kundenkommunikation_per_EMail_verwalten_Teil_1\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Kundenkommunikation_per_EMail_verwalten_Teil_1\\\/#primaryimage\",\"url\":\"http:\\\/\\\/vg05.met.vgwort.de\\\/na\\\/3ac84979a5ff406f89ac1840ede3d3eb\",\"contentUrl\":\"http:\\\/\\\/vg05.met.vgwort.de\\\/na\\\/3ac84979a5ff406f89ac1840ede3d3eb\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Kundenkommunikation_per_EMail_verwalten_Teil_1\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/access-im-unternehmen.de\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Kundenkommunikation per E-Mail verwalten, Teil 1\"}]},{\"@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":"Kundenkommunikation per E-Mail verwalten, Teil 1 - 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\/Kundenkommunikation_per_EMail_verwalten_Teil_1\/","og_locale":"de_DE","og_type":"article","og_title":"Kundenkommunikation per E-Mail verwalten, Teil 1","og_description":"Wenn Sie den E-Mail-Verkehr mit Ihren Kunden im Griff haben wollen, kopieren Sie einfach alle betroffenen E-Mails in Ihre Kundendatenbank. Dort landen diese in einer Tabelle, deren Datens&auml;tze Sie den Kunden zuordnen k&ouml;nnen. Vor dem Zuordnen m&uuml;ssen Sie jedoch noch festlegen, welche E-Mails aus welchen Ordnern importiert werden sollen. Dieser Beitrag zeigt, wie Sie den Zugriff auf Outlook und den Import der E-Mails automatisieren.","og_url":"https:\/\/access-im-unternehmen.de\/Kundenkommunikation_per_EMail_verwalten_Teil_1\/","og_site_name":"Access im Unternehmen","article_published_time":"2020-05-22T21:49:52+00:00","og_image":[{"url":"http:\/\/vg05.met.vgwort.de\/na\/3ac84979a5ff406f89ac1840ede3d3eb","type":"","width":"","height":""}],"author":"Andr\u00e9 Minhorst","twitter_card":"summary_large_image","twitter_misc":{"Verfasst von":"Andr\u00e9 Minhorst","Gesch\u00e4tzte Lesezeit":"15\u00a0Minuten"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/access-im-unternehmen.de\/Kundenkommunikation_per_EMail_verwalten_Teil_1\/#article","isPartOf":{"@id":"https:\/\/access-im-unternehmen.de\/Kundenkommunikation_per_EMail_verwalten_Teil_1\/"},"author":{"name":"Andr\u00e9 Minhorst","@id":"https:\/\/access-im-unternehmen.de\/#\/schema\/person\/13395c4bcd7d7963efe33be9c584d93f"},"headline":"Kundenkommunikation per E-Mail verwalten, Teil 1","datePublished":"2020-05-22T21:49:52+00:00","mainEntityOfPage":{"@id":"https:\/\/access-im-unternehmen.de\/Kundenkommunikation_per_EMail_verwalten_Teil_1\/"},"wordCount":2265,"commentCount":0,"publisher":{"@id":"https:\/\/access-im-unternehmen.de\/#organization"},"image":{"@id":"https:\/\/access-im-unternehmen.de\/Kundenkommunikation_per_EMail_verwalten_Teil_1\/#primaryimage"},"thumbnailUrl":"http:\/\/vg05.met.vgwort.de\/na\/3ac84979a5ff406f89ac1840ede3d3eb","articleSection":["2012","6\/2012","Interaktiv"],"inLanguage":"de","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/access-im-unternehmen.de\/Kundenkommunikation_per_EMail_verwalten_Teil_1\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/access-im-unternehmen.de\/Kundenkommunikation_per_EMail_verwalten_Teil_1\/","url":"https:\/\/access-im-unternehmen.de\/Kundenkommunikation_per_EMail_verwalten_Teil_1\/","name":"Kundenkommunikation per E-Mail verwalten, Teil 1 - Access im Unternehmen","isPartOf":{"@id":"https:\/\/access-im-unternehmen.de\/#website"},"primaryImageOfPage":{"@id":"https:\/\/access-im-unternehmen.de\/Kundenkommunikation_per_EMail_verwalten_Teil_1\/#primaryimage"},"image":{"@id":"https:\/\/access-im-unternehmen.de\/Kundenkommunikation_per_EMail_verwalten_Teil_1\/#primaryimage"},"thumbnailUrl":"http:\/\/vg05.met.vgwort.de\/na\/3ac84979a5ff406f89ac1840ede3d3eb","datePublished":"2020-05-22T21:49:52+00:00","breadcrumb":{"@id":"https:\/\/access-im-unternehmen.de\/Kundenkommunikation_per_EMail_verwalten_Teil_1\/#breadcrumb"},"inLanguage":"de","potentialAction":[{"@type":"ReadAction","target":["https:\/\/access-im-unternehmen.de\/Kundenkommunikation_per_EMail_verwalten_Teil_1\/"]}]},{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/access-im-unternehmen.de\/Kundenkommunikation_per_EMail_verwalten_Teil_1\/#primaryimage","url":"http:\/\/vg05.met.vgwort.de\/na\/3ac84979a5ff406f89ac1840ede3d3eb","contentUrl":"http:\/\/vg05.met.vgwort.de\/na\/3ac84979a5ff406f89ac1840ede3d3eb"},{"@type":"BreadcrumbList","@id":"https:\/\/access-im-unternehmen.de\/Kundenkommunikation_per_EMail_verwalten_Teil_1\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/access-im-unternehmen.de\/"},{"@type":"ListItem","position":2,"name":"Kundenkommunikation per E-Mail verwalten, Teil 1"}]},{"@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\/55000865","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=55000865"}],"version-history":[{"count":0,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/posts\/55000865\/revisions"}],"wp:attachment":[{"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/media?parent=55000865"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/categories?post=55000865"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/tags?post=55000865"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}