{"id":55001295,"date":"2021-04-01T00:00:00","date_gmt":"2021-07-31T10:18:09","guid":{"rendered":"http:\/\/access-im-unternehmen.aix-dev.de\/aiu\/?p=1295"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-30T00:00:00","slug":"EMails_verwalten_mit_dem_Outlook_View_Control","status":"publish","type":"post","link":"https:\/\/access-im-unternehmen.de\/EMails_verwalten_mit_dem_Outlook_View_Control\/","title":{"rendered":"E-Mails verwalten mit dem Outlook View Control"},"content":{"rendered":"<p><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/vg07.met.vgwort.de\/na\/17084ceb97cd4d1c93b6cc69e813aa25\" width=\"1\" height=\"1\" alt=\"\"><\/p>\n<p><b>Im Beitrag &#8222;Outlook-Folder in Access anzeigen&#8220; haben wir gezeigt, wie Sie das Outlook View Control in ein Formular integrieren, um damit die Ordner von Outlook anzuzeigen. Im vorliegenden Beitrag bauen wir auf den dort vorgestellten Techniken auf und gehen genauer auf den Umgang mit dem E-Mail-Ordnern ein. Dabei wollen wir Details wie den Betreff, den Inhalt oder den Empf&auml;nger oder Absender der aktuell markierten E-Mail in entsprechenden Steuerelementen anzeigen. Au&szlig;erdem wollen wir die Anzeige der Outlook-Ordner in ein TreeView-Steuerelement verlagern.<\/b><\/p>\n<p>Das <b>Outlook View Control <\/b>ist eine tolle Erweiterung, wenn Sie beispielsweise die Outlook-Ordner zur Anzeige von E-Mails wie <b>Posteingang<\/b>, <b>Postausgang<\/b>, <b>Gesendete <\/b>Elemente oder auch benutzerdefinierte Ordner in einer Access-Anwendung anzeigen wollen.<\/p>\n<p>Das <b>Outlook View Control <\/b>k&ouml;nnen Sie jedoch nicht einfach zu einem Access-Formular hinzuf&uuml;gen, sondern Sie m&uuml;ssen es in ein <b>Frame<\/b>-Steuerelement einbetten. Wie das gelingt, zeigen wir im Beitrag <b>Outlook-Folder in Access anzeigen <\/b>(<b>www.access-im-unternehmen.de\/****<\/b>).<\/p>\n<p>In diesem Beitrag haben wir gezeigt, wie Sie die Outlook-Ordner in ein Listenfeld einlesen und ihre Inhalte durch Anklicken des jeweiligen Listeneintrags im <b>Outlook View Control <\/b>anzeigen.<\/p>\n<p>Da die Anzeige in einem Listenfeld wenig professionell aussieht, haben wir in einem weiteren Beitrag namens <b>TreeView f&uuml;r Outlook-Ordner <\/b>ein <b>TreeView<\/b>-Steuerelement zum Formular hinzugef&uuml;gt, das alle Ordner mit E-Mails anzeigt (<b>www.access-im-unternehmen.de\/****<\/b>). Der Zwischenstand nach diesem Beitrag sieht wie in Bild 1 aus.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2021_02\/pic_1295_001.png\" alt=\"Outlook-Ordner und der Inhalt eines E-Mail-Ordners\" width=\"700\" height=\"312,5927\"\/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 1: Outlook-Ordner und der Inhalt eines E-Mail-Ordners<\/span><\/b><\/p>\n<p>Damit kommen wir zum Ziel des vorliegenden Beitrags. Hier wollen wir die &uuml;brigen Elemente, die f&uuml;r den Umgang mit E-Mails notwendig sind, hinzuf&uuml;gen. Dazu geh&ouml;ren die folgenden:<\/p>\n<ul>\n<li>Gew&auml;hlten Ordner aus dem <b>TreeView<\/b>-Steuerelement im <b>Outlook View Control <\/b>anzeigen<\/li>\n<li>Zuletzt angezeigten Ordner speichern und wiederherstellen<\/li>\n<li>Inhalt der aktuell markierten E-Mail anzeigen (Absender, Empf&auml;nger, Betreff, Inhalt, Eingangsdatum)<\/li>\n<li>Empfangen von E-Mails<\/li>\n<li>Erstellen einer neuen E-Mail im Outlook-Inspektor<\/li>\n<li>&Ouml;ffnen einer E-Mail mit dem dazugeh&ouml;rigen Outlook-Inspektor<\/li>\n<li>L&ouml;schen von E-Mails<\/li>\n<\/ul>\n<h2>Gew&auml;hlten Ordner im Outlook View Control anzeigen<\/h2>\n<p>Das Formluar <b>frmEMailDetails <\/b>enth&auml;lt das <b>TreeView<\/b>-Steuerelement namens <b>ctlTreeView <\/b>sowie ein <b>Frame<\/b>-Objekt und ein <b>ViewCtl<\/b>-Objekt. Das <b>ViewCtl<\/b>-Objekt ist in das <b>Frame<\/b>-Objekt eingebettet.<\/p>\n<p>Das <b>Frame<\/b>&#8211; und das <b>ViewCtl<\/b>-Objekt deklarieren wir im Kopf des Klassenmoduls des Formulars wie folgt:<\/p>\n<pre><span style=\"color:blue;\">Private <\/span>objFrame<span style=\"color:blue;\"> As <\/span>Frame\r\n<span style=\"color:blue;\">Private <\/span>WithEvents objView<span style=\"color:blue;\"> As <\/span>ViewCtl<\/pre>\n<p>In der beim Laden des Formulars ausgel&ouml;sten Prozedur <b>Form_Load <\/b>ini-tialisieren wir das <b>TreeView<\/b>-Steuerelement (siehe Beitrag <b>TreeView f&uuml;r Outlook-Ordner<\/b>) und weisen den beiden Variablen die Elemente zu:<\/p>\n<pre><span style=\"color:blue;\">Private Sub <\/span>Form_Load()\r\n     InitializeTreeView\r\n     <span style=\"color:blue;\">Set<\/span> objFrame = Me!ctlFrame.Object\r\n     <span style=\"color:blue;\">Set<\/span> objView = objFrame.Controls(0)\r\n<span style=\"color:blue;\">End Sub<\/span><\/pre>\n<p>Nun wollen wir daf&uuml;r sorgen, dass der vom Benutzer im <b>TreeView<\/b>-Steuerelement angeklickte Ordner im <b>Outlook View Control <\/b>angezeigt wird. Dazu legen wir eine Ereignisprozedur an, die beim Anklicken eines der Elemente des <b>TreeView<\/b>-Steuerelements ausgel&ouml;st wird:<\/p>\n<pre><span style=\"color:blue;\">Private Sub <\/span>ctlTreeView_NodeClick(ByVal Node<span style=\"color:blue;\"> As Object<\/span>)\r\n     <span style=\"color:blue;\">Dim <\/span>objNode<span style=\"color:blue;\"> As <\/span>MSComctlLib.Node\r\n     <span style=\"color:blue;\">Set<\/span> objNode = Node\r\n     objView.Folder = objNode.Key\r\n<span style=\"color:blue;\">End Sub<\/span><\/pre>\n<p>Das wir das mit dem Parameter <b>Node <\/b>&uuml;bergebene <b>Node<\/b>-Objekt noch einer Variablen des Typs <b>MSComctlLib.Node <\/b>zuweisen, liegt daran, dass wir so die IntelliSense-Funktion f&uuml;r diese Variable nutzen k&ouml;nnen. So k&ouml;nnen wir den in der <b>Key<\/b>-Eigenschaft des <b>Node<\/b>-Elements gespeicherten Outlook-Pfad wie zum Beispiel <b>\\\\Outlook\\Posteingang <\/b>nutzen und diesen der <b>Folder<\/b>-Eigenschaft des <b>Outlook View Control<\/b>-Steuerelements zuweisen.<\/p>\n<h2>Zuletzt gew&auml;hlten Ordner speichern und beim &Ouml;ffnen wiederherstellen<\/h2>\n<p>Nun, da das <b>Outlook View Control <\/b>den Outlook-Ordner anzeigt, den der Benutzer im <b>TreeView<\/b>-Steuerelement ausgew&auml;hlt hat, wollen wir diesen auch speichern, damit dieser beim n&auml;chsten &Ouml;ffnen auch wieder angezeigt werden kann. Dazu legen wir eine Optionen-Tabelle namens <b>tblOptions <\/b>an. Diese soll lediglich zwei Felder enthalten &#8211; ein Prim&auml;rschl&uuml;sselfeld namens <b>OptionID <\/b>und ein Textfeld namens <b>CurrentMailfolder<\/b>. Den Entwurf dieser Tabelle zeigen wir in Bild 2.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2021_02\/pic_1295_002.png\" alt=\"Tabelle zum Speichern von Optionen\" width=\"549,6265\" height=\"322,8635\"\/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 2: Tabelle zum Speichern von Optionen<\/span><\/b><\/p>\n<p>Wann speichern wir den zuletzt gew&auml;hlten Outlook-Ordner in der Optionen-Tabelle Am sichersten ist es, diesen nach jeder Auswahl erneut zu speichern. Wir k&ouml;nnen den Speichervorgang also direkt in die oben vorgestellte Ereignisprozedur integrieren, die beim Anklicken eines der <b>Node<\/b>-Elemente im <b>TreeView<\/b>-Steuerelement ausgel&ouml;st wird. Diese erweitern wir um den Aufruf einer Prozedur namens <b>SaveCurrentMailfolder<\/b>, der wir den Pfad zum angeklickten Ordner als Parameter &uuml;bergeben:<\/p>\n<pre><span style=\"color:blue;\">Private Sub <\/span>ctlTreeView_NodeClick(ByVal Node<span style=\"color:blue;\"> As Object<\/span>)\r\n     ...\r\n     SaveCurrentMailFolder objNode.Key\r\n<span style=\"color:blue;\">End Sub<\/span><\/pre>\n<p>Die Prozedur <b>SaveCurrentMailfolder<\/b> finden Sie in Listing 1. Sie nimmt mit dem Parameter <b>strFolder <\/b>den zuletzt aufgerufenen Ordner entgegen. Dann f&uuml;hrt sie eine <b>UPDATE<\/b>-Abfrage aus, die das Feld <b>CurrentMailfolder <\/b>der Tabelle <b>tblOptions <\/b>auf den &uuml;bergebenen Wert einstellt. Es kann sein, dass die Tabelle leer ist, weil Sie diese beispielsweise vor dem Weitergeben an einen Benutzer geleert haben. In diesem Fall liefert die folgende Abfrage der von der <b>UPDATE<\/b>-Abfrage betroffenen Datens&auml;tze den Wert <b>0<\/b>. In dem dann ausgel&ouml;sten Zweig der <b>If&#8230;Then<\/b>-Bedingung legen wir diesen Datensatz dann einfach neu an und weisen dem Feld <b>CurrentMailfolder <\/b>den Wert aus <b>strFolder <\/b>zu.<\/p>\n<pre><span style=\"color:blue;\">Private Sub <\/span>SaveCurrentMailfolder(strFolder<span style=\"color:blue;\"> As String<\/span>)\r\n     <span style=\"color:blue;\">Dim <\/span>db<span style=\"color:blue;\"> As <\/span>DAO.Database\r\n     <span style=\"color:blue;\">Set<\/span> db = CurrentDb\r\n     db.Execute \"UPDATE tblOptions SET CurrentMailfolder = ''\" & strFolder & \"''\", dbFailOnError\r\n     <span style=\"color:blue;\">If <\/span>db.RecordsAffected = 0<span style=\"color:blue;\"> Then<\/span>\r\n         db.Execute \"INSERT INTO tblOptions(CurrentMailfolder) VALUES(''\" & strFolder & \"'')\", dbFailOnError\r\n     <span style=\"color:blue;\">End If<\/span>\r\n<span style=\"color:blue;\">End Sub<\/span><\/pre>\n<p><b><span style=\"color:darkgrey;\">Listing 1: Prozedur zum Speichern des aktuell gew&auml;hlten Mail-Ordners<\/span><\/b><\/p>\n<p>Nach dem Speichern des Wertes sieht die Tabelle <b>tblOptions <\/b>beispielsweise wie in Bild 3 aus.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2021_02\/pic_1295_003.png\" alt=\"Zuletzt verwendeter Ordner in der Tabelle tblOptions\" width=\"424,7115\" height=\"162,0838\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 3: Zuletzt verwendeter Ordner in der Tabelle tblOptions<\/span><\/b><\/p>\n<h2>Zuletzt gew&auml;hlten Ordner beim &Ouml;ffnen markieren und anzeigen<\/h2>\n<p>Die so gespeicherte Information wollen wir nat&uuml;rlich beim n&auml;chsten &Ouml;ffnen des Formulars nutzen, indem wir den entsprechenden Eintrag im <b>TreeView<\/b>-Steuerelement selektieren und im <b>Outlook View Control <\/b>den passenden Ordner anzeigen. Dazu legen wir eine neue Prozedur namens <b>SetCurrentMailfolder <\/b>an, den wir in der Prozedur <b>Form_Load <\/b>beim Laden des Formulars aufrufen:<\/p>\n<pre><span style=\"color:blue;\">Private Sub <\/span>Form_Load()\r\n     ...\r\n     SetCurrentMailfolder\r\n<span style=\"color:blue;\">End Sub<\/span><\/pre>\n<p>Diese Prozedur liefert Listing 2. Die Prozedur ermittelt zun&auml;chst den Wert des Feldes <b>CurrentMailFolder <\/b>aus der Tabelle <b>tblOptions<\/b> und schreibt diesen in die Variable <b>strFolder<\/b>. Wenn noch kein Eintrag in dieser Tabelle vorliegt oder das Feld leer ist, sorgt die <b>Nz<\/b>-Funktion daf&uuml;r, dass <b>strFolder <\/b>mit einer leeren Zeichenkette gef&uuml;llt wird.<\/p>\n<pre><span style=\"color:blue;\">Private Sub <\/span>SetCurrentMailfolder()\r\n     <span style=\"color:blue;\">Dim <\/span>strFolder<span style=\"color:blue;\"> As String<\/span>\r\n     <span style=\"color:blue;\">Dim <\/span>objTreeView<span style=\"color:blue;\"> As <\/span>MSComctlLib.TreeView\r\n     strFolder = Nz(DLookup(\"CurrentMailfolder\", \"tblOptions\"), \"\")\r\n     <span style=\"color:blue;\">If <\/span><span style=\"color:blue;\">Len<\/span>(strFolder) = 0<span style=\"color:blue;\"> Then<\/span>\r\n        strFolder = GetDefaultFolder(olFolderInbox)\r\n     <span style=\"color:blue;\">End If<\/span>\r\n     objView.Folder = strFolder\r\n     <span style=\"color:blue;\">Set<\/span> objTreeView = ctlTreeView.Object\r\n     objTreeView.SelectedItem = objTreeView.Nodes(strFolder)\r\n     Me!ctlTreeView.SetFocus\r\n<span style=\"color:blue;\">End Sub<\/span><\/pre>\n<p><b><span style=\"color:darkgrey;\">Listing 2: Prozedur zum Ausw&auml;hlen des zuletzt betrachteten E-Mail-Ordners<\/span><\/b><\/p>\n<p>Die folgende <b>If&#8230;Then<\/b>-Bedingung pr&uuml;ft, ob <b>strFolder <\/b>eine leere Zeichenkette enth&auml;lt und somit kein zuletzt ge&ouml;ffneter E-Mail-Ordner in der Tabelle <b>tblOptions <\/b>vorliegt. In diesem Fall f&uuml;llt sie <b>strFolder <\/b>mit dem Ergebnis der Funktion <b>GetDefaultFolder<\/b>. Diese finden Sie in Listing 3.<\/p>\n<pre><span style=\"color:blue;\">Private Function <\/span>GetDefaultFolder(intFolder<span style=\"color:blue;\"> As <\/span>Outlook.OlDefaultFolders)<span style=\"color:blue;\"> As String<\/span>\r\n     <span style=\"color:blue;\">Dim <\/span>objOutlook<span style=\"color:blue;\"> As <\/span>Outlook.Application\r\n     <span style=\"color:blue;\">Dim <\/span>objNamespace<span style=\"color:blue;\"> As <\/span>Outlook.Namespace\r\n     <span style=\"color:blue;\">Dim <\/span>objFolder<span style=\"color:blue;\"> As <\/span>Outlook.Folder\r\n     <span style=\"color:blue;\">Set<\/span> objOutlook = <span style=\"color:blue;\">New<\/span> Outlook.Application\r\n     <span style=\"color:blue;\">Set<\/span> objNamespace = objOutlook.GetNamespace(\"MAPI\")\r\n     <span style=\"color:blue;\">Set<\/span> objFolder = objNamespace.GetDefaultFolder(intFolder)\r\n     GetDefaultFolder = objFolder.FolderPath\r\n<span style=\"color:blue;\">End Function<\/span><\/pre>\n<p><b><span style=\"color:darkgrey;\">Listing 3: Funktion zum Ermitteln eines Standardordners<\/span><\/b><\/p>\n<p><b>GetDefaultFolder <\/b>erwartet eine der Konstanten der Auflistung <b>Outlook.OlDefaultFolders <\/b>als Parameter. Es gibt bereits eine Methode namens <b>GetDefaultFolder<\/b>, die zum <b>Namespace<\/b>-Objekt geh&ouml;rt. Um dieses zu referenzieren, ben&ouml;tigen wir zuvor noch ein <b>Outlook.Application<\/b>-Objekt. Die von uns definierte Funktion <b>GetDefaultFolder <\/b>vereinfacht den Zugriff auf einen der Standardordner von Outlook, indem es das Erstellen einer Instanz von <b>Outlook.Application <\/b>und das Zuweisen des MAPI-Namespace an die Variable <b>objNamespace <\/b>kapselt und das <b>Folder<\/b>-Objekt ermittelt, das dem Parameter <b>intFolder <\/b>entspricht, also beispielsweise <b>olFolderInbox <\/b>f&uuml;r den Posteingang. Die Funktion <b>GetDefaultFolder <\/b>gibt schlie&szlig;lich den Pfad zu dem angegebenen Ordner zur&uuml;ck.<\/p>\n<p>Dadurch, dass wir den Parameter mit dem Typ <b>Outlook.OlDefaultFolders <\/b>deklarieren, k&ouml;nnen wir beim Aufruf per IntelliSense aus der Liste der verf&uuml;gbaren Werte ausw&auml;hlen (siehe Bild 4).<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2021_02\/pic_1295_004.png\" alt=\"Auswahl des gew&uuml;nschten Standardordners per IntelliSense\" width=\"599,593\" height=\"393,7497\"\/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 4: Auswahl des gew&uuml;nschten Standardordners per IntelliSense<\/span><\/b><\/p>\n<p>Diesen nimmt die Prozedur <b>SetCurrentMailFolder <\/b>entgegen und speichert ihn in der Variablen <b>strFolder<\/b>. Damit stellt sie nun zun&auml;chst die <b>Folder<\/b>-Eigenschaft des <b>Outlook View Controls <\/b>ein. Danach referenziert sie das <b>TreeView<\/b>-Steuerelement mit der Variablen <b>objTreeView <\/b>und stellt die Eigenschaft <b>SelectedItem <\/b>auf das <b>Node<\/b>-Element ein, dass die <b>Nodes<\/b>-Auflistung f&uuml;r den als Parameter verwenden Wert aus <b>strFolder <\/b>(zum Beispiel <b>\\\\Outlook\\Posteingang<\/b>) liefert.<\/p>\n<p>Schlie&szlig;lich wird der Fokus auf das <b>TreeView<\/b>-Steuerelement verschoben, damit der Benutzer direkt den selektierten Ordner erkennen kann.<\/p>\n<p>M&uuml;ssen wir die &uuml;bergeordneten Ordner aufklappen, damit der markierte Eintrag sichtbar wird Es kann ja auch sein, dass der Benutzer einen Ordner ausw&auml;hlt und dann alle Ordner einklappt, sodass der gew&auml;hlte Ordner nicht mehr im <b>TreeView<\/b>-Steuerelement sichtbar ist. Hier besteht kein Grund zur Sorge: Das <b>TreeView<\/b>-Steuerelement klappt automatisch alle Elemente bis zum aktuell selektierten Element auf.<\/p>\n<h2>Inhalt der aktuell markierten E-Mail anzeigen<\/h2>\n<p><!--30percent--><\/p>\n<p>Nun wollen wir die Inhalte der aktuell im <b>Outlook View Control <\/b>ausgew&auml;hlten E-Mail in daf&uuml;r vorgesehenen Steuerelementen anzeigen. In Outlook sieht der Bereich wie in Bild 5 aus. Die Ansicht im <b>Outlook View Control <\/b>liefert leider nur den oberen Teil mit der Liste der E-Mails, sodass wir den Rest selbst anlegen m&uuml;ssen.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2021_02\/pic_1295_005.png\" alt=\"Anzeige einer E-Mail in Outlook\" width=\"649,559\" height=\"416,3196\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 5: Anzeige einer E-Mail in Outlook<\/span><\/b><\/p>\n<p>Wir wollen uns dabei auf folgende Elemente beschr&auml;nken:<\/p>\n<ul>\n<li>Absender<\/li>\n<li>Empf&auml;nger<\/li>\n<li>Betreff<\/li>\n<li>Inhalt<\/li>\n<li>Datum und Zeit des Eingangs<\/li>\n<li>Schaltfl&auml;chen zum Antworten an einen Empf&auml;nger, an alle Empf&auml;nger und zum Weiterleiten<\/li>\n<\/ul>\n<p>Um auch nur eine dieser Informationen anzuzeigen, ben&ouml;tigen wir nicht nur die entsprechenden Steuerelemente, sondern wir m&uuml;ssen auch erst einmal an die betreffenden Daten kommen. Sprich: Wir ben&ouml;tigen das <b>MailItem<\/b>-Objekt, das sich hinter dem selektierten Eintrag befindet.<\/p>\n<p>Doch zuerst zu den Steuerelementen. Diese f&uuml;gen wir wie in Bild 6 hinzu. Die Textfelder hei&szlig;en von oben nach unten <b>txtSubject<\/b>, <b>txtFrom<\/b>, <b>txtTo <\/b>und <b>txtBody<\/b>. Rechts befindet sich <b>txtReceived<\/b>. Die drei Schaltfl&auml;chen hei&szlig;en <b>cmdReply<\/b>, <b>cmdReplyAll <\/b>und <b>cmdForward<\/b>.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2021_02\/pic_1295_006.png\" alt=\"Hinzuf&uuml;gen von Steuerelementen zum Anzeigen einer E-Mail\" width=\"700\" height=\"366,2791\"\/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 6: Hinzuf&uuml;gen von Steuerelementen zum Anzeigen einer E-Mail<\/span><\/b><\/p>\n<p>Anschlie&szlig;end k&uuml;mmern wir uns um eine Prozedur, die beim Ausw&auml;hlen eines der Eintr&auml;ge des <b>Outlook View Control<\/b>-Steuerelements ausgel&ouml;st wird. Diese f&uuml;gen wir hinzu, indem wir im Codefenster des Klassenmoduls des Formulars im linken Kombinationsfelder den Eintrag <b>objView <\/b>ausw&auml;hlen und im rechten den Eintrag <b>SelectionChange<\/b>. Diese f&uuml;llen wir lediglich mit einem einzigen Befehl, der eine weitere Prozedur namens <b>ShowMail <\/b>aufruft.<\/p>\n<pre><span style=\"color:blue;\">Private Sub <\/span>objView_SelectionChange()\r\n     ShowMail\r\n<span style=\"color:blue;\">End Sub<\/span><\/pre>\n<p>Die Prozedur <b>ShowMail<\/b> finden Sie in Listing 4. Sie ermittelt mit der Funktion <b>GetFirstSelectedMailItem <\/b>die aktuell selektierte E-Mail. Ist <b>objMailItem <\/b>danach nicht leer, wurde also ein <b>MailItem<\/b>-Element markiert, stellt die Prozedur die Textfelder des Formulars auf die Eigenschaften des <b>MailItem<\/b>-Elements ein. Dabei f&uuml;llt sie <b>txtFrom <\/b>mit dem Namen des Absenders gefolgt von der E-Mail-Adresse in Klammern. Die &uuml;brigen Textfelder werden mit den Werten der Eigenschaften <b>To<\/b>, <b>Body<\/b>, <b>Subject <\/b>und <b>ReceivedTime <\/b>best&uuml;ckt. Au&szlig;erdem aktiviert die Prozedur die drei Schaltfl&auml;chen. Hat <b>objMailItem <\/b>hingegen den Wert <b>Nothing<\/b>, leert die Prozedur im <b>Else<\/b>-Zweig der Bedingung die Textfelder und deaktiviert die drei Schaltfl&auml;chen.<\/p>\n<pre><span style=\"color:blue;\">Private Sub <\/span>ShowMail()\r\n     <span style=\"color:blue;\">Dim <\/span>objMailItem<span style=\"color:blue;\"> As <\/span>Outlook.MailItem\r\n     <span style=\"color:blue;\">Set<\/span> objMailItem = GetFirstSelectedMailItem\r\n     <span style=\"color:blue;\">If <\/span><span style=\"color:blue;\">Not<\/span> objMailItem Is Nothing<span style=\"color:blue;\"> Then<\/span>\r\n         Me!txtFrom = objMailItem.SenderName & \" (\" & objMailItem.SenderEmailAddress & \")\"\r\n         Me!txtTo = objMailItem.To\r\n         Me!txtBody = objMailItem.Body\r\n         Me!txtSubject = objMailItem.Subject\r\n         Me!txtReceived = objMailItem.ReceivedTime\r\n         Me!cmdForward.Enabled = <span style=\"color:blue;\">True<\/span>\r\n         Me!cmdReply.Enabled = <span style=\"color:blue;\">True<\/span>\r\n         Me!cmdReplyAll.Enabled = <span style=\"color:blue;\">True<\/span>\r\n     <span style=\"color:blue;\">Else<\/span>\r\n         Me!txtFrom = \"\"\r\n         Me!txtTo = \"\"\r\n         Me!txtBody = \"\"\r\n         Me!txtSubject = \"\"\r\n         Me!txtReceived = \"\"\r\n         Me!cmdForward.Enabled = <span style=\"color:blue;\">False<\/span>\r\n         Me!cmdReply.Enabled = <span style=\"color:blue;\">False<\/span>\r\n         Me!cmdReplyAll.Enabled = <span style=\"color:blue;\">False<\/span>\r\n     <span style=\"color:blue;\">End If<\/span>\r\n<span style=\"color:blue;\">End Sub<\/span><\/pre>\n<p><b><span style=\"color:darkgrey;\">Listing 4: Prozedur zum Anzeigen der Daten einer E-Mail<\/span><\/b><\/p>\n<p>Die von <b>ShowMail <\/b>aufgerufene Funktion <b>GetFirstSelectedMailItem <\/b>deklariert Variablen zum Referenzieren des <b>Selection<\/b>-Objekts sowie eines <b>MailItem<\/b>-Objekts von Outlook (siehe Listing 5). Die Variable <b>objSelection <\/b>f&uuml;llt sie mit der aktuellen Auswahl im <b>Outlook View Control<\/b>. Dann pr&uuml;ft sie in einer <b>If&#8230;Then<\/b>-Bedingung, ob die Auswahl &uuml;berhaupt mindestens ein Element enth&auml;lt. Falls ja, untersucht sie in einer <b>Select Case<\/b>-Bedingung den Typ des ersten Elements der aktuellen Auswahl, das sie mit <b>objSelection.Item(1) <\/b>referenziert. Die <b>TypeName<\/b>-Funktion liefert den Namen des Typs des Elements. Dieses sollte in der Regel <b>MailItem <\/b>hei&szlig;en. In diesem Fall referenziert die Prozedur das Element mit der Variablen <b>objMailItem<\/b>. Anschlie&szlig;end stellt die Funktion den R&uuml;ckgabewert <b>GetFirstSelectedMailItem <\/b>auf den Inhalt von <b>objMailItem <\/b>ein.<\/p>\n<pre><span style=\"color:blue;\">Private Function <\/span>GetFirstSelectedMailItem()<span style=\"color:blue;\"> As <\/span>MailItem\r\n     <span style=\"color:blue;\">Dim <\/span>objSelection<span style=\"color:blue;\"> As <\/span>Outlook.Selection\r\n     <span style=\"color:blue;\">Dim <\/span>objMailItem<span style=\"color:blue;\"> As <\/span>Outlook.MailItem\r\n     <span style=\"color:blue;\">Set<\/span> objSelection = objView.Selection\r\n     <span style=\"color:blue;\">If <\/span><span style=\"color:blue;\">Not<\/span> objSelection.Count = 0<span style=\"color:blue;\"> Then<\/span>\r\n         Select Case TypeName(objSelection.Item(1))\r\n             <span style=\"color:blue;\">Case <\/span>\"MailItem\"\r\n                 <span style=\"color:blue;\">Set<\/span> objMailItem = objSelection.Item(1)\r\n         <span style=\"color:blue;\">End Select<\/span>\r\n         <span style=\"color:blue;\">Set<\/span> GetFirstSelectedMailItem = objMailItem\r\n     <span style=\"color:blue;\">End If<\/span>\r\n<span style=\"color:blue;\">End Function<\/span><\/pre>\n<p><b><span style=\"color:darkgrey;\">Listing 5: Funktion zum Ermitteln der aktuell markierten E-Mail<\/span><\/b><\/p>\n<p>Das Formular sieht nach der Auswahl wie in Bild 7 aus. Hier ist je nach den Anforderungen des Benutzers noch Finetuning m&ouml;glich. Zum Beispiel wird hier nicht gepr&uuml;ft, ob die Mail im Text- oder HTML-Format kommt und auch in der E-Mail enthaltene Anlagen werden noch nicht angezeigt. Schlie&szlig;lich haben wir unter Access nur die M&ouml;glichkeit, eines der Steuerelemente oben und unten gleichzeitig zu verankern, sodass sich seine Gr&ouml;&szlig;e beim &Auml;ndern der Gr&ouml;&szlig;e des Formulars anpasst. Wir k&ouml;nnen also in der aktuellen Konstellation nur entweder das <b>Outlook View Control <\/b>oder das Textfeld <b>txtBody <\/b>vergr&ouml;&szlig;erbar gestalten.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2021_02\/pic_1295_007.png\" alt=\"Anzeige von Ordnern, Ordnerinhalt und Mailinhalt\" width=\"700\" height=\"366,2791\"\/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 7: Anzeige von Ordnern, Ordnerinhalt und Mailinhalt<\/span><\/b><\/p>\n<h2>Funktionen der Schaltfl&auml;chen zum Antworten und Weiterleiten<\/h2>\n<p>Die Schaltfl&auml;chen haben wir mit passenden Icons versehen. Au&szlig;erdem haben wir die Eigenschaft <b>Hintergrundart <\/b>auf den Wert <b>Transparent <\/b>eingestellt. Nachfolgend erl&auml;utern wir die Ereignisprozeduren dieser Schaltfl&auml;chen.<\/p>\n<h2>Dem Sender der E-Mail antworten<\/h2>\n<p>Die Schaltfl&auml;che <b>cmdReply <\/b>soll die gleiche Funktion erf&uuml;llen wie die entsprechende Schaltfl&auml;che in Outlook. Dort wird eine neue E-Mail erstellt, die automatisch mit einigen Voreinstellungen versehen wird &#8211; der Sender der urspr&uuml;nglichen E-Mail wird als Empf&auml;nger eingestellt, der Inhalt wird als Zitat eingef&uuml;gt et cetera. Das k&ouml;nnen wir mit wenigen Zeilen Code abbilden. Dazu verwenden wir zwei <b>MailItem<\/b>-Variablen namens <b>objMailItem <\/b>und <b>objMailItemReply<\/b>.<\/p>\n<p>Die Variable <b>objMailItem <\/b>f&uuml;llen wir mit einem Verweis auf die aktuell im <b>Outlook View Control <\/b>markierte E-Mail, deren Eigenschaften in den Steuerelementen im unteren Bereich des Formulars angezeigt werden. Dazu verwenden wir die bereits weiter oben verwendete Funktion <b>GetFirstSelectedMailItem<\/b>. Liefert diese ein <b>MailItem<\/b>-Objekt zur&uuml;ck, sind zwei Schritte n&ouml;tig:<\/p>\n<ul>\n<li>Die Prozedur ruft die <b>Replay<\/b>-Methode des <b>MailItem<\/b>-Objekts aus <b>objMailItem <\/b>auf und schreibt das Ergebnis in die Variable <b>objMailItemReply<\/b>.<\/li>\n<li>Dann sorgt sie mit dem Aufruf der Methode <b>Display <\/b>daf&uuml;r, dass die neue Antwortmail im entsprechenden Outlook-Inspektor angezeigt wird (siehe Bild 8).<\/li>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2021_02\/pic_1295_008.png\" alt=\"Anzeige einer Antwort-E-Mail\" width=\"499,6607\" height=\"520,442\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 8: Anzeige einer Antwort-E-Mail<\/span><\/b><\/p>\n<\/ul>\n<p>Die Prozedur sieht wie folgt aus:<\/p>\n<pre><span style=\"color:blue;\">Private Sub <\/span>cmdReply_Click()\r\n     <span style=\"color:blue;\">Dim <\/span>objMailItem<span style=\"color:blue;\"> As <\/span>Outlook.MailItem\r\n     <span style=\"color:blue;\">Dim <\/span>objMailItemReply<span style=\"color:blue;\"> As <\/span>Outlook.MailItem\r\n     <span style=\"color:blue;\">Set<\/span> objMailItem = GetFirstSelectedMailItem\r\n     <span style=\"color:blue;\">If <\/span><span style=\"color:blue;\">Not<\/span> objMailItem Is Nothing<span style=\"color:blue;\"> Then<\/span>\r\n         <span style=\"color:blue;\">Set<\/span> objMailItemReply = objMailItem.Reply\r\n         objMailItemReply.Display\r\n     <span style=\"color:blue;\">End If<\/span>\r\n<span style=\"color:blue;\">End Sub<\/span><\/pre>\n<h2>Allen Beteiligten einer E-Mail antworten<\/h2>\n<p>Die Prozedur zum Versenden einer Antwort an alle Beteiligten, also auch an die per <b>Cc: <\/b>angegebenen Empf&auml;nger, wird durch die Schaltfl&auml;che <b>cmdReplyAll <\/b>ausgel&ouml;st und sieht wie folgt aus. Diese Prozedur unterscheidet sich lediglich durch den Aufruf der Methode <b>ReplyAll <\/b>statt <b>Reply <\/b>von der zuvor beschriebenen Prozedur &#8211; und durch die Benennung der Variablen f&uuml;r das neue <b>MailItem<\/b>-Objekt:<\/p>\n<pre><span style=\"color:blue;\">Private Sub <\/span>cmdReplyAll_Click()\r\n     <span style=\"color:blue;\">Dim <\/span>objMailItem<span style=\"color:blue;\"> As <\/span>Outlook.MailItem\r\n     <span style=\"color:blue;\">Dim <\/span>objMailItemReplyAll<span style=\"color:blue;\"> As <\/span>Outlook.MailItem\r\n     <span style=\"color:blue;\">Set<\/span> objMailItem = GetFirstSelectedMailItem\r\n     <span style=\"color:blue;\">If <\/span><span style=\"color:blue;\">Not<\/span> objMailItem Is Nothing<span style=\"color:blue;\"> Then<\/span>\r\n         <span style=\"color:blue;\">Set<\/span> objMailItemReplyAll = objMailItem.ReplyAll\r\n         objMailItemReplyAll.Display\r\n     <span style=\"color:blue;\">End If<\/span>\r\n<span style=\"color:blue;\">End Sub<\/span><\/pre>\n<h2>Weiterleiten der aktuellen E-Mail<\/h2>\n<p>Fehlt noch die Prozedur zum Weiterleiten einer E-Mail. Auch ihr Aufbau erfordert lediglich den Aufruf einer anderen Methode &#8211; in diesem Fall <b>Forward<\/b>:<\/p>\n<pre><span style=\"color:blue;\">Private Sub <\/span>cmdForward_Click()\r\n     <span style=\"color:blue;\">Dim <\/span>objMailItem<span style=\"color:blue;\"> As <\/span>Outlook.MailItem\r\n     <span style=\"color:blue;\">Dim <\/span>objMailItemForward<span style=\"color:blue;\"> As <\/span>Outlook.MailItem\r\n     <span style=\"color:blue;\">Set<\/span> objMailItem = GetFirstSelectedMailItem\r\n     <span style=\"color:blue;\">If <\/span><span style=\"color:blue;\">Not<\/span> objMailItem Is Nothing<span style=\"color:blue;\"> Then<\/span>\r\n         <span style=\"color:blue;\">Set<\/span> objMailItemForward = objMailItem.Forward\r\n         objMailItemForward.Display\r\n     <span style=\"color:blue;\">End If<\/span>\r\n<span style=\"color:blue;\">End Sub<\/span><\/pre>\n<p>Damit haben wir das Antworten und Weiterleiten einer E-Mail wie in Outlook abgebildet.<\/p>\n<h2>E-Mail beim &Ouml;ffnen des Formulars anzeigen<\/h2>\n<p>Wir haben das Formular bereits so eingerichtet, dass es nach dem &Ouml;ffnen den gleichen Ordner anzeigt, der bei der letzten Verwendung angezeigt wurde. Allerdings liefert das Formular aktuell noch nicht die erste E-Mail des angezeigten Ordners, sodass beim &Ouml;ffnen die Steuerelemente im unteren Bereich leer bleiben.<\/p>\n<p>Das m&ouml;chten wir so anpassen, dass direkt die Daten der obersten Nachricht in den daf&uuml;r vorgesehenen Steuerelementen angezeigt werden. Dazu erweitern wir die Prozedur <b>Form_Load <\/b>um den Aufruf der Prozedur <b>ShowMail<\/b>:<\/p>\n<pre><span style=\"color:blue;\">Private Sub <\/span>Form_Load()\r\n     ...\r\n     ShowMail\r\n<span style=\"color:blue;\">End Sub<\/span><\/pre>\n<p>Damit wird gleich nach dem &Ouml;ffnen des Formulars der Inhalt der ersten Mail des angezeigten Ordners eingeblendet.<\/p>\n<h2>E-Mail beim Wechseln des Ordners anzeigen<\/h2>\n<p>Damit fehlt noch eine Aktion, die das Anzeigen einer E-Mail ausl&ouml;sen sollte, n&auml;mlich das Wechseln des Orders im <b>TreeView<\/b>-Steuerelement. Dazu f&uuml;gen wir den Aufruf der Prozedur <b>ShowMail <\/b>auch noch der Prozedur <b>ctlTreeView_NodeClick <\/b>hinzu:<\/p>\n<pre><span style=\"color:blue;\">Private Sub <\/span>ctlTreeView_NodeClick(ByVal Node<span style=\"color:blue;\"> As Object<\/span>)\r\n     ...\r\n     ShowMail\r\n<span style=\"color:blue;\">End Sub<\/span><\/pre>\n<h2>Empfangen von E-Mails<\/h2>\n<p>Damit kommen wir zu einigen Funktionen, die wir an verschiedenen Stellen im Ribbon von Outlook vorfinden. Diese wollen wir in Form entsprechender Schaltfl&auml;chen im oberen Teil des Formulars einbauen. Die erste Schaltfl&auml;che soll den Abruf neuer E-Mails vom Server initiieren, sodass wie in Bild 9 der Dialog zur Nachrichten&uuml;bermittlung erscheint und die E-Mails abgerufen werden.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2021_02\/pic_1295_009.png\" alt=\"Abrufen von E-Mails\" width=\"700\" height=\"411,2784\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 9: Abrufen von E-Mails<\/span><\/b><\/p>\n<p>Dazu legen wir wir in der Abbildung eine neue Schaltfl&auml;che namens <b>cmdSendReceive <\/b>an. Diese soll beim Anklicken die folgende Prozedur ausl&ouml;sen:<\/p>\n<pre><span style=\"color:blue;\">Private Sub <\/span>cmdSendReceive_Click()\r\n     <span style=\"color:blue;\">Dim <\/span>objOutlook<span style=\"color:blue;\"> As <\/span>Outlook.Application\r\n     <span style=\"color:blue;\">Dim <\/span>objNamespace<span style=\"color:blue;\"> As <\/span>Outlook.Namespace\r\n     <span style=\"color:blue;\">Set<\/span> objOutlook = <span style=\"color:blue;\">New<\/span> Outlook.Application\r\n     <span style=\"color:blue;\">Set<\/span> objNamespace = objOutlook.GetNamespace(\"MAPI\")\r\n     objNamespace.SendAndReceive <span style=\"color:blue;\">True<\/span>\r\n<span style=\"color:blue;\">End Sub<\/span><\/pre>\n<p>Die <b>SendAndReceive<\/b>-Methode ist eine Methode des MAPI-Namespaces. Daher referenzieren wir ein aktives oder noch zu erstellendes <b>Outlook.Application<\/b>-Objekt und dann den enthaltenen MAPI-Namespace. Die Methode <b>SendAndReceive <\/b>hat einen optionalen Parameter namens <b>ShowProgressDialog<\/b>. Diesen stellen wir auf <b>True <\/b>ein, damit die Fortschrittsanzeige f&uuml;r das Senden und Empfangen eingeblendet wird.<\/p>\n<h2>Erstellen einer neuen E-Mail im Outlook-Inspektor<\/h2>\n<p>F&uuml;r das Erstellen einer neuen E-Mail legen wir eine weitere Schaltfl&auml;che direkt neben der Schaltfl&auml;che <b>cmdSendReceive <\/b>an. Diese nennen wir <b>cmdNewMail<\/b>. Diese Schaltfl&auml;che l&ouml;st die folgende Prozedur aus:<\/p>\n<pre><span style=\"color:blue;\">Private Sub <\/span>cmdNewMail_Click()\r\n     <span style=\"color:blue;\">Dim <\/span>objOutlook<span style=\"color:blue;\"> As <\/span>Outlook.Application\r\n     <span style=\"color:blue;\">Dim <\/span>objMailItem<span style=\"color:blue;\"> As <\/span>Outlook.MailItem\r\n     <span style=\"color:blue;\">Set<\/span> objOutlook = <span style=\"color:blue;\">New<\/span> Outlook.Application\r\n     <span style=\"color:blue;\">Set<\/span> objMailItem = objOutlook.CreateItem(olMailItem)\r\n     objMailItem.Display\r\n<span style=\"color:blue;\">End Sub<\/span><\/pre>\n<p>Die Prozedur referenziert ein bestehendes oder neues <b>Outlook.Application<\/b>-Objekt und erzeugt mit seiner <b>CreateItem<\/b>-Methode und dem Parameter <b>olMailItem <\/b>ein neues <b>MailItem<\/b>-Objekt. Dieses zeigt die Prozedur dann mit der <b>Display<\/b>-Methode an (siehe Bild 10). Der Benutzer braucht die Mail nur noch mit Inhalt zu f&uuml;llen und diese dann mit einem Klick auf die <b>Senden<\/b>-Schaltfl&auml;che abzusenden.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2021_02\/pic_1295_010.png\" alt=\"Neue E-Mail anlegen\" width=\"700\" height=\"418,8287\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 10: Neue E-Mail anlegen<\/span><\/b><\/p>\n<h2>L&ouml;schen von E-Mails<\/h2>\n<p>Wenn Sie eine E-Mail l&ouml;schen m&ouml;chten, k&ouml;nnen Sie das durch Markieren und Bet&auml;tigen der <b>Entf<\/b>-Taste erledigen.<\/p>\n<p>Manch ein Benutzer mag es jedoch expliziter und verwendet lieber eine Schaltfl&auml;che statt einer Taste. Daher f&uuml;gen wir dem Formular auch noch eine Schaltfl&auml;che mit der Beschriftung <b>E-Mail l&ouml;schen <\/b>hinzu. Diese soll die aktuell markierten E-Mails l&ouml;schen und l&ouml;st dazu die folgende Ereignisprozedur aus:<\/p>\n<pre><span style=\"color:blue;\">Private Sub <\/span>cmdDeleteMail_Click()\r\n     <span style=\"color:blue;\">Dim <\/span>objItem<span style=\"color:blue;\"> As Object<\/span>\r\n     For Each objItem In objView.Selection\r\n         objItem.Delete\r\n     <span style=\"color:blue;\">Next<\/span> objItem\r\n<span style=\"color:blue;\">End Sub<\/span><\/pre>\n<p>Die Prozedur durchl&auml;uft alle aktuell selektierten Elemente des <b>Outlook View Control<\/b>-Steuerelements und ruft f&uuml;r jedes einmal die <b>Delete<\/b>-Methode auf. Warum gehen wir hier nicht explizit auf Objekte des Typs <b>Outlook.MailItem <\/b>ein Weil es unter Umst&auml;nden auch andere Objekttypen im Mailordner gibt wie zum Beispiel solche des Typs <b>Meeting-Item<\/b>.<\/p>\n<h2>&Ouml;ffnen einer E-Mail mit dem dazugeh&ouml;rigen Outlook-Inspektor<\/h2>\n<p>Gegebenenfalls m&ouml;chte der Benutzer auf weitere Details einer E-Mail zugreifen, beispielsweise um die enthaltenen Anlagen einzusehen. Dann kann er einfach doppelt auf die jeweilige E-Mail im Ordner des <b>Outlook View Control<\/b>-Steuerelements klicken.<\/p>\n<p>Auch hier wollen wir noch eine passende Schaltfl&auml;che hinzuf&uuml;gen. Diese hei&szlig;t <b>cmdDisplayMail <\/b>und l&ouml;st die folgende Prozedur aus:<\/p>\n<pre><span style=\"color:blue;\">Private Sub <\/span>cmdDisplayMail_Click()\r\n     <span style=\"color:blue;\">Dim <\/span>objMailItem<span style=\"color:blue;\"> As <\/span>Outlook.MailItem\r\n     <span style=\"color:blue;\">Set<\/span> objMailItem = GetFirstSelectedMailItem\r\n     objMailItem.Display\r\n<span style=\"color:blue;\">End Sub<\/span><\/pre>\n<h2>Spam l&ouml;schen<\/h2>\n<p>Wer den handels&uuml;blichen Methoden zum Entfernen von Spam nicht traut, kann nat&uuml;rlich auch eine eigene Prozedur daf&uuml;r programmieren. Das gelingt besonders einfach, wenn wir in unserer Lieblingsanwendung Access arbeiten. <\/p>\n<p>Wir k&ouml;nnen also eigene Bedingungen formulieren, unter denen E-Mails aussortiert werden sollen &#8211; beispielsweise direkt in den Ordner der gel&ouml;schten Elemente oder in einen speziellen Ordner etwa namens <b>Spam<\/b>.<\/p>\n<p>Am einfachsten ist es, die Mails im Posteingang zu untersuchen. Dazu legen wir eine Tabelle mit Schl&uuml;sselw&ouml;rtern an, mit denen wir eine E-Mail als Spam identifizieren, wenn diese im Betreff oder im Inhalt vorkommen. Zus&auml;tzlich k&ouml;nnen wir E-Mail-Adressen oder Teile davon definieren, bei denen wir davon ausgehen, dass es sich um Spam handelt.<\/p>\n<p>Wir wollen uns hier nur um den Betreff und den Inhalt der E-Mail k&uuml;mmern. Dazu legen wir eine Tabelle namens <b>tblSpamKeywords <\/b>mit den beiden Feldern <b>Spam-Key-word-ID <\/b>und <b>SpamKeyword <\/b>an. Diese sieht nach dem F&uuml;llen mit ein paar Beispielkeywords wie in Bild 11 aus.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2021_02\/pic_1295_011.png\" alt=\"Die Tabelle tblSpamKeywords\" width=\"424,7115\" height=\"170,7694\"\/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 11: Die Tabelle tblSpamKeywords<\/span><\/b><\/p>\n<p>Eine weitere Schaltfl&auml;che namens <b>cmdFilterSpam <\/b>l&ouml;st die Prozedur aus Listing 6 aus. &Uuml;ber das <b>Outlook View Control<\/b>-Steuerelement k&ouml;nnen wir nur auf alle selektierten Elemente zugreifen, aber nicht auf alle Elemente eines Ordners. Daher ermitteln wir &uuml;ber das TreeView-Steuerelement den Pfad zu dem aktuell angezeigten Ordner und lesen diesen in ein <b>Outlook.Folder<\/b>-Objekt ein. Dann &ouml;ffnen wir ein Recordset auf Basis der Tabelle <b>tblSpamKeywords<\/b>. In einer <b>For Each<\/b>-Schleife durchlaufen wir alle Elemente des angezeigten Outlook-Ordners, in einer darin enthaltenen <b>Do While<\/b>-Schleife alle Eintr&auml;ge der Tabelle <b>tblSpamKeywords<\/b>. Dabei pr&uuml;fen wir per InStr-Funktion, ob das aktuelle Spam-Schl&uuml;sselwort aus der Tabelle im Betreff der aktuellen E-Mail enthalten ist. Falls ja, stellen wir die Variable <b>bolSpam <\/b>auf <b>True <\/b>ein und verlassen die <b>Do While<\/b>-Schleife. Die folgende <b>If&#8230;Then<\/b>-Bedingung pr&uuml;ft, ob <b>bolSpam <\/b>den Wert <b>True <\/b>hat und l&ouml;scht die aktuelle E-Mail in diesem Fall.<\/p>\n<pre><span style=\"color:blue;\">Private Sub <\/span>cmdFilterSpam_Click()\r\n     <span style=\"color:blue;\">Dim <\/span>objOutlook<span style=\"color:blue;\"> As <\/span>Outlook.Application\r\n     <span style=\"color:blue;\">Dim <\/span>objNamespace<span style=\"color:blue;\"> As <\/span>Outlook.Namespace\r\n     <span style=\"color:blue;\">Dim <\/span>objFolder<span style=\"color:blue;\"> As <\/span>Outlook.Folder\r\n     <span style=\"color:blue;\">Dim <\/span>objItem<span style=\"color:blue;\"> As Object<\/span>\r\n     <span style=\"color:blue;\">Dim <\/span>objMailItem<span style=\"color:blue;\"> As <\/span>Outlook.MailItem\r\n     <span style=\"color:blue;\">Dim <\/span>db<span style=\"color:blue;\"> As <\/span>DAO.Database\r\n     <span style=\"color:blue;\">Dim <\/span>rst<span style=\"color:blue;\"> As <\/span>DAO.Recordset\r\n     <span style=\"color:blue;\">Dim <\/span>bolSpam<span style=\"color:blue;\"> As Boolean<\/span>\r\n     <span style=\"color:blue;\">Dim <\/span>strFolder<span style=\"color:blue;\"> As String<\/span>\r\n     <span style=\"color:blue;\">Set<\/span> objOutlook = <span style=\"color:blue;\">New<\/span> Outlook.Application\r\n     <span style=\"color:blue;\">Set<\/span> objNamespace = objOutlook.GetNamespace(\"MAPI\")\r\n     strFolder = Me!ctlTreeView.Object.SelectedItem.Key\r\n     <span style=\"color:blue;\">Set<\/span> objFolder = GetFolder(objNamespace, strFolder)\r\n     <span style=\"color:blue;\">Set<\/span> db = CurrentDb\r\n     <span style=\"color:blue;\">Set<\/span> rst = db.OpenRecordset(\"SELECT * FROM tblSpamKeywords\", dbOpenDynaset)\r\n     For Each objItem In objFolder.Items\r\n         Select Case TypeName(objItem)\r\n             <span style=\"color:blue;\">Case <\/span>\"MailItem\"\r\n                 bolSpam = <span style=\"color:blue;\">False<\/span>\r\n                 rst.MoveFirst\r\n                 <span style=\"color:blue;\">Set<\/span> objMailItem = objItem\r\n                 <span style=\"color:blue;\">Do While<\/span> <span style=\"color:blue;\">Not<\/span> rst.EOF\r\n                     <span style=\"color:blue;\">If <\/span><span style=\"color:blue;\">Not<\/span> <span style=\"color:blue;\">InStr<\/span>(1, objMailItem.Subject, rst!spamKeyword) = 0<span style=\"color:blue;\"> Then<\/span>\r\n                         bolSpam = <span style=\"color:blue;\">True<\/span>\r\n                         <span style=\"color:blue;\">Exit Do<\/span>\r\n                     <span style=\"color:blue;\">End If<\/span>\r\n                     rst.Move<span style=\"color:blue;\">Next<\/span>\r\n                 <span style=\"color:blue;\">Loop<\/span>\r\n                 <span style=\"color:blue;\">If <\/span>bolSpam = <span style=\"color:blue;\">True<\/span><span style=\"color:blue;\"> Then<\/span>\r\n                     objMailItem.Delete\r\n                 <span style=\"color:blue;\">End If<\/span>\r\n         <span style=\"color:blue;\">End Select<\/span>\r\n     <span style=\"color:blue;\">Next<\/span> objItem\r\n<span style=\"color:blue;\">End Sub<\/span><\/pre>\n<p><b><span style=\"color:darkgrey;\">Listing 6: Prozedur zum L&ouml;schen von Spam-Mails<\/span><\/b><\/p>\n<p>Auf diese Weise werden alle E-Mails mit relevanten Schl&uuml;sselw&ouml;rtern im Betreff gel&ouml;scht.<\/p>\n<h2>Zusammenfassung und Ausblick<\/h2>\n<p>Dieser Beitrag beschreibt, wie Sie ein rudiment&auml;res Mail-Programm in einem Access-Formular unterbringen k&ouml;nnen. Die grundlegenden Funktionen wie die Anzeige von Mail-Ordnern, E-Mails und ihrer Inhalte sind abgedeckt, au&szlig;erdem k&ouml;nnen Sie Mails abrufen, neue Mails erstellen oder Mails l&ouml;schen. Als Bonbon haben wir eine kleine Spamfilter-Funktion eingebaut. Diese werden wir sicher in einer der n&auml;chsten Ausgaben ausbauen.<\/p>\n<h2>Downloads zu diesem Beitrag<\/h2>\n<p>Enthaltene Beispieldateien:<\/p>\n<p>OutlookInAccessIntegrieren.accdb<\/p>\n<p><a href=\"..\/fileadmin\/beispiele\/A8F220A4-751F-4223-B8E3-E04A98472275\/aiu_1295.zip\">Download<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Im Beitrag &#8222;Outlook-Folder in Access anzeigen&#8220; haben wir gezeigt, wie Sie das Outlook View Control in ein Formular integrieren, um damit die Ordner von Outlook anzuzeigen. Im vorliegenden Beitrag bauen wir auf den dort vorgestellten Techniken auf und gehen genauer auf den Umgang mit dem E-Mail-Ordnern ein. Dabei wollen wir Details wie den Betreff, den Inhalt oder den Empf&auml;nger oder Absender der aktuell markierten E-Mail in entsprechenden Steuerelementen anzeigen. Au&szlig;erdem wollen wir die Anzeige der Outlook-Ordner in ein TreeView-Steuerelement verlagern.<\/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":[66022021,662021,44000027],"tags":[],"class_list":["post-55001295","post","type-post","status-publish","format-standard","hentry","category-66022021","category-662021","category-Loesungen"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v20.9 (Yoast SEO v27.4) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>E-Mails im Outlook View Control in einem Access Formular<\/title>\n<meta name=\"description\" content=\"Lernen Sie, wie Sie E-Mails aus einem Outlook-Ordner mit dem Outlook View Control in einem Access-Formular anzeigen.\" \/>\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\/EMails_verwalten_mit_dem_Outlook_View_Control\/\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"E-Mails verwalten mit dem Outlook View Control\" \/>\n<meta property=\"og:description\" content=\"Lernen Sie, wie Sie E-Mails aus einem Outlook-Ordner mit dem Outlook View Control in einem Access-Formular anzeigen.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/access-im-unternehmen.de\/EMails_verwalten_mit_dem_Outlook_View_Control\/\" \/>\n<meta property=\"og:site_name\" content=\"Access im Unternehmen\" \/>\n<meta property=\"article:published_time\" content=\"2021-07-31T10:18:09+00:00\" \/>\n<meta property=\"og:image\" content=\"http:\/\/vg07.met.vgwort.de\/na\/17084ceb97cd4d1c93b6cc69e813aa25\" \/>\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=\"20\u00a0Minuten\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/EMails_verwalten_mit_dem_Outlook_View_Control\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/EMails_verwalten_mit_dem_Outlook_View_Control\\\/\"},\"author\":{\"name\":\"Andr\u00e9 Minhorst\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#\\\/schema\\\/person\\\/13395c4bcd7d7963efe33be9c584d93f\"},\"headline\":\"E-Mails verwalten mit dem Outlook View Control\",\"datePublished\":\"2021-07-31T10:18:09+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/EMails_verwalten_mit_dem_Outlook_View_Control\\\/\"},\"wordCount\":3325,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/EMails_verwalten_mit_dem_Outlook_View_Control\\\/#primaryimage\"},\"thumbnailUrl\":\"http:\\\/\\\/vg07.met.vgwort.de\\\/na\\\/17084ceb97cd4d1c93b6cc69e813aa25\",\"articleSection\":[\"2\\\/2021\",\"2021\",\"L\u00f6sungen\"],\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/access-im-unternehmen.de\\\/EMails_verwalten_mit_dem_Outlook_View_Control\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/EMails_verwalten_mit_dem_Outlook_View_Control\\\/\",\"url\":\"https:\\\/\\\/access-im-unternehmen.de\\\/EMails_verwalten_mit_dem_Outlook_View_Control\\\/\",\"name\":\"E-Mails im Outlook View Control in einem Access Formular\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/EMails_verwalten_mit_dem_Outlook_View_Control\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/EMails_verwalten_mit_dem_Outlook_View_Control\\\/#primaryimage\"},\"thumbnailUrl\":\"http:\\\/\\\/vg07.met.vgwort.de\\\/na\\\/17084ceb97cd4d1c93b6cc69e813aa25\",\"datePublished\":\"2021-07-31T10:18:09+00:00\",\"description\":\"Lernen Sie, wie Sie E-Mails aus einem Outlook-Ordner mit dem Outlook View Control in einem Access-Formular anzeigen.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/EMails_verwalten_mit_dem_Outlook_View_Control\\\/#breadcrumb\"},\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/access-im-unternehmen.de\\\/EMails_verwalten_mit_dem_Outlook_View_Control\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/EMails_verwalten_mit_dem_Outlook_View_Control\\\/#primaryimage\",\"url\":\"http:\\\/\\\/vg07.met.vgwort.de\\\/na\\\/17084ceb97cd4d1c93b6cc69e813aa25\",\"contentUrl\":\"http:\\\/\\\/vg07.met.vgwort.de\\\/na\\\/17084ceb97cd4d1c93b6cc69e813aa25\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/EMails_verwalten_mit_dem_Outlook_View_Control\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/access-im-unternehmen.de\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"E-Mails verwalten mit dem Outlook View Control\"}]},{\"@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":"E-Mails im Outlook View Control in einem Access Formular","description":"Lernen Sie, wie Sie E-Mails aus einem Outlook-Ordner mit dem Outlook View Control in einem Access-Formular anzeigen.","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\/EMails_verwalten_mit_dem_Outlook_View_Control\/","og_locale":"de_DE","og_type":"article","og_title":"E-Mails verwalten mit dem Outlook View Control","og_description":"Lernen Sie, wie Sie E-Mails aus einem Outlook-Ordner mit dem Outlook View Control in einem Access-Formular anzeigen.","og_url":"https:\/\/access-im-unternehmen.de\/EMails_verwalten_mit_dem_Outlook_View_Control\/","og_site_name":"Access im Unternehmen","article_published_time":"2021-07-31T10:18:09+00:00","og_image":[{"url":"http:\/\/vg07.met.vgwort.de\/na\/17084ceb97cd4d1c93b6cc69e813aa25","type":"","width":"","height":""}],"author":"Andr\u00e9 Minhorst","twitter_card":"summary_large_image","twitter_misc":{"Verfasst von":"Andr\u00e9 Minhorst","Gesch\u00e4tzte Lesezeit":"20\u00a0Minuten"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/access-im-unternehmen.de\/EMails_verwalten_mit_dem_Outlook_View_Control\/#article","isPartOf":{"@id":"https:\/\/access-im-unternehmen.de\/EMails_verwalten_mit_dem_Outlook_View_Control\/"},"author":{"name":"Andr\u00e9 Minhorst","@id":"https:\/\/access-im-unternehmen.de\/#\/schema\/person\/13395c4bcd7d7963efe33be9c584d93f"},"headline":"E-Mails verwalten mit dem Outlook View Control","datePublished":"2021-07-31T10:18:09+00:00","mainEntityOfPage":{"@id":"https:\/\/access-im-unternehmen.de\/EMails_verwalten_mit_dem_Outlook_View_Control\/"},"wordCount":3325,"commentCount":0,"publisher":{"@id":"https:\/\/access-im-unternehmen.de\/#organization"},"image":{"@id":"https:\/\/access-im-unternehmen.de\/EMails_verwalten_mit_dem_Outlook_View_Control\/#primaryimage"},"thumbnailUrl":"http:\/\/vg07.met.vgwort.de\/na\/17084ceb97cd4d1c93b6cc69e813aa25","articleSection":["2\/2021","2021","L\u00f6sungen"],"inLanguage":"de","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/access-im-unternehmen.de\/EMails_verwalten_mit_dem_Outlook_View_Control\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/access-im-unternehmen.de\/EMails_verwalten_mit_dem_Outlook_View_Control\/","url":"https:\/\/access-im-unternehmen.de\/EMails_verwalten_mit_dem_Outlook_View_Control\/","name":"E-Mails im Outlook View Control in einem Access Formular","isPartOf":{"@id":"https:\/\/access-im-unternehmen.de\/#website"},"primaryImageOfPage":{"@id":"https:\/\/access-im-unternehmen.de\/EMails_verwalten_mit_dem_Outlook_View_Control\/#primaryimage"},"image":{"@id":"https:\/\/access-im-unternehmen.de\/EMails_verwalten_mit_dem_Outlook_View_Control\/#primaryimage"},"thumbnailUrl":"http:\/\/vg07.met.vgwort.de\/na\/17084ceb97cd4d1c93b6cc69e813aa25","datePublished":"2021-07-31T10:18:09+00:00","description":"Lernen Sie, wie Sie E-Mails aus einem Outlook-Ordner mit dem Outlook View Control in einem Access-Formular anzeigen.","breadcrumb":{"@id":"https:\/\/access-im-unternehmen.de\/EMails_verwalten_mit_dem_Outlook_View_Control\/#breadcrumb"},"inLanguage":"de","potentialAction":[{"@type":"ReadAction","target":["https:\/\/access-im-unternehmen.de\/EMails_verwalten_mit_dem_Outlook_View_Control\/"]}]},{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/access-im-unternehmen.de\/EMails_verwalten_mit_dem_Outlook_View_Control\/#primaryimage","url":"http:\/\/vg07.met.vgwort.de\/na\/17084ceb97cd4d1c93b6cc69e813aa25","contentUrl":"http:\/\/vg07.met.vgwort.de\/na\/17084ceb97cd4d1c93b6cc69e813aa25"},{"@type":"BreadcrumbList","@id":"https:\/\/access-im-unternehmen.de\/EMails_verwalten_mit_dem_Outlook_View_Control\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/access-im-unternehmen.de\/"},{"@type":"ListItem","position":2,"name":"E-Mails verwalten mit dem Outlook View Control"}]},{"@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\/55001295","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=55001295"}],"version-history":[{"count":3,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/posts\/55001295\/revisions"}],"predecessor-version":[{"id":88072243,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/posts\/55001295\/revisions\/88072243"}],"wp:attachment":[{"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/media?parent=55001295"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/categories?post=55001295"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/tags?post=55001295"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}