{"id":55001007,"date":"2015-10-01T00:00:00","date_gmt":"2020-05-22T19:12:06","guid":{"rendered":"http:\/\/access-im-unternehmen.aix-dev.de\/aiu\/?p=1007"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-30T00:00:00","slug":"OutlookMails_nach_Empfang_archivieren","status":"publish","type":"post","link":"https:\/\/access-im-unternehmen.de\/OutlookMails_nach_Empfang_archivieren\/","title":{"rendered":"Outlook-Mails nach Empfang archivieren"},"content":{"rendered":"<p><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/vg07.met.vgwort.de\/na\/6f1c8f1e8dc74c7c8800950951ec7e0b\" width=\"1\" height=\"1\" alt=\"\"><\/p>\n<p><b>In der Beitragsreihe &#8222;Outlook-Mails in Access archivieren&#8220; haben wir gezeigt, wie Sie die E-Mails aus kompletten und auch untergeordneten Outlook-Ordnern in eine Access-Datenbank importieren. Das ist die L&ouml;sung f&uuml;r den Start der Archivierung. Interessant wird es erst, wenn Sie diese Daten direkt nach dem Eingang in Outlook archivieren. Der vorliegende Beitrag zeigt, wie Sie Outlook so erweitern, dass jede in vorgegebenen Ordnern eingehenende E-Mail direkt in unsere Access-Mail-Archiv weitergeleitet wird.<\/b><\/p>\n<p>Um das vorgegebene Ziel zu erreichen, sind einige &auml;nderungen am VBA-Projekt von Outlook erforderlich. Sprich: Wir verwenden in diesem Beitrag Access nur zur Bereitstellung der Datenbank, in die wir die Outlook-Mails exportieren m&ouml;chten. Diese Datenbank haben wir in der Beitragsreihe <b>Outlook-Mails in Access archivieren <\/b>(<b>www.access-im-unternehmen.de\/985<\/b>, <b>990 <\/b>und <b>997<\/b>) ausf&uuml;hrlich vorgestellt.<\/p>\n<p>Von dort ben&ouml;tigen wir drei Tabellen (siehe auch Bild 1):<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2015_05\/pic_1007_001.png\" alt=\"Tabellen der Access-Seite der L&ouml;sung\" width=\"500\" height=\"446,7213\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 1: Tabellen der Access-Seite der L&ouml;sung<\/span><\/b><\/p>\n<ul>\n<li><b>tblOptionen<\/b>: Enth&auml;lt die vom Benutzer definierten Outlook-Ordner, die beim Archivieren von E-Mails ber&uuml;cksichtigt werden sollen, und gibt beispielsweise den Ordnerpfad und die Einbeziehung von Unterordnern an.<\/li>\n<li><b>tblMailItems<\/b>: Ziel des Exports. Hier werden die Metadaten der E-Mails gespeichert. Die eigentlichen Mails, also die .msg-Dateien, landen dort in einem eigenen Anlagefeld oder aber im Dateisystem.<\/li>\n<li><b>tblAnlagen<\/b>: Speichert, sofern so konfiguriert, die Anlagen der E-Mails. Alternativ landen diese in der Verzeichnisstruktur.<\/li>\n<\/ul>\n<h2>Outlook vorbereiten<\/h2>\n<p>Damit Sie von Outlook aus auf die Elemente der Access-Objektbibliothek sowie auf die DAO-Bibliothek zugreifen k&ouml;nnen (in diesem Fall die neuere Version der DAO-Bibliothek, n&auml;mlich die <b>Microsoft Office x.0 Access Database Engine Object Library<\/b>), legen Sie im VBA-Projekt von Outlook zun&auml;chst zwei Verweise an. Der <b>Verweise<\/b>-Dialog (VBA-Editor, <b>Extras|Verweise<\/b>) sollte danach etwa wie in Bild 2 aussehen.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2015_05\/pic_1007_002.png\" alt=\"Verweise f&uuml;r den Export nach Access\" width=\"425\" height=\"330,5555\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 2: Verweise f&uuml;r den Export nach Access<\/span><\/b><\/p>\n<p>Den VBA-Editor &ouml;ffnen Sie unter Outlook &uuml;brigens &uuml;ber die Tastenkombination <b>Alt + F11<\/b>. Die Kombination <b>Strg + G <\/b>funktioniert im Gegensatz zu Access nicht.<\/p>\n<p>Der VBA-Editor pr&auml;sentiert, sofern der Projekt-Explorer sichtbar ist, unter dem Ordner <b>Microsoft Outlook Objekte <\/b>die Klasse <b>ThisOutlookSession<\/b>. In dieser Klasse landen die ersten Codezeilen dieser L&ouml;sung. Die erste lautet wie folgt und deklariert die Konstante zum Speichern des Verzeichnisses f&uuml;r die Ziel-Datenbank. Dazu ermitteln Sie zun&auml;csht den Speicherort der Datenbank, in der Sie die eingehenden E-Mails speichern wollen &#8211; zum Beispiel <b>c:\\Outlook\\Outlook_III.accdb<\/b>. Legen Sie dann die folgende Zeile im Kopf der Klasse an:<\/p>\n<pre>Const cStrExportdatenbank<span style=\"color:blue;\"> As String<\/span> =  \"C:\\Outlook\\Outlook_III.accdb\"<\/pre>\n<p>Au&szlig;erdem deklarieren wir hier noch eine <b>Collection<\/b>, deren Sinn wir weiter unten erl&auml;utern werden:<\/p>\n<pre><span style=\"color:blue;\">Dim <\/span>colFolders<span style=\"color:blue;\"> As <\/span>Collection<\/pre>\n<h2>Neue Mails abfangen<\/h2>\n<p>Bevor wir weitermachen, ben&ouml;tigen wir ein paar theoretische Grundlagen. Wenn eine Mail abgerufen wird, landet diese in einem der Mail-Ordner in Outlook. Welcher das ist, h&auml;ngt von den festgelegten Regeln ab. Normalerweise ist der Ordner Posteingang das Ziel einer neu eingetroffenen E-Mail.<\/p>\n<p>Sie k&ouml;nnen jedoch festlegen, dass E-Mails mit bestimmten Eigenschaften direkt in einem anderen Ordner landen &#8211; beispielsweise solche mit bestimmten E-Mail-Adressen oder solche, die einen bestimmten Text im Betreff enthalten.<\/p>\n<p>Um dies festzulegen, ben&ouml;tigen Sie eine sogenannte Regel. Zum Definieren dieser Regel suchen Sie sich am besten eine E-Mail, welche die betroffene Eigenschaft aufweist. Klicken Sie mit der rechten Maustaste auf die E-Mail und w&auml;hlen Sie den Kontextmen&uuml;-Eintrag <b>Regeln|Regel erstellen <\/b>aus. Nun erscheint der Dialog aus Bild 3. Dieser zeigt bereits einige m&ouml;glichen Ausdr&uuml;cke zum Formulieren der Regel an. In diesem Fall wollen wir, dass alle E-Mails, die wie die aktuelle das Schl&uuml;sselwort <b>Outlooktest <\/b>im Betreff enthalten, von der Regel betroffen sind.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2015_05\/pic_1007_003.png\" alt=\"Anlegen einer neuen Regel f&uuml;r den Posteingang\" width=\"500\" height=\"279,1829\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 3: Anlegen einer neuen Regel f&uuml;r den Posteingang<\/span><\/b><\/p>\n<p>Diese Mails sollen in einen bestimmten Outlook-Ordner verschoben werden, daher aktivieren Sie unten die Optioni <b>Element in Ordner verschieben<\/b>. Nach einem Klick auf <b>Ordner ausw&auml;hlen <\/b>erscheint nun der Dialog aus Bild 4, wo Sie den Zielordner festlegen. Ist diese Aufgabe erledigt, k&ouml;nnen Sie sich bereits eine Test-E-Mail mit genau diesem Betreff zusenden. Sie wird dann beim Abrufen wie erwartet in den angegebenen Ordner verschoben.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2015_05\/pic_1007_004.png\" alt=\"Ausw&auml;hlen des Zielordners\" width=\"425\" height=\"352,6099\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 4: Ausw&auml;hlen des Zielordners<\/span><\/b><\/p>\n<h2>Maileingang erkennen<\/h2>\n<p>Nun landet eine Mail also in einem von mehreren Ordnern, die wir in der Datenbank in der Tabelle <b>tblOptionen <\/b>festgelegt haben. All diese Ordner wollen wir nun st&auml;ndig auf den Eingang von E-Mails &uuml;berpr&uuml;fen.<\/p>\n<p>Dies gelingt nur, wenn wir herausfinden, welches Ereignis beim Maileingang ausgel&ouml;st wird, und dieses f&uuml;r die entsprechenden Elemente implementieren. Das Ganze muss nat&uuml;rlich dynamisch ausgelegt werden, da ja zuvor noch nicht feststeht, welche Ordner der Benutzer &uuml;berhaupt f&uuml;r die &uuml;berpr&uuml;fung vorgesehen hat.<\/p>\n<p>Um es vorwegzunehmen: Es ist nicht das <b>Folder<\/b>-Objekt, das beim Maileingang ein Ereignis ausl&ouml;st, sondern das <b>Items<\/b>-Objekt, also das Objekt, das die in einem Folder enthaltenen Objekte auflistet.<\/p>\n<p>Andererseits k&ouml;nnen Sie Ereignisprozeduren f&uuml;r Objekte wie etwa einen Mailordner oder eine Liste wie <b>Items <\/b>nur innerhalb von Klassenprozeduren implementieren. Also wollen wir zu einer Technik greifen, die wir bereits in einigen anderen Beitr&auml;gen umgesetzt haben. Wir werden eine Klasse erstellen, welche einen Verweis auf ein <b>Items<\/b>-Objekt aufnehmen kann. Diese implementiert genau f&uuml;r dieses <b>Items<\/b>-Objekt, nennen wir es <b>obj-Items<\/b>, das Ereignis <b>ItemAdd<\/b>. Dieses Ereignis liefert ein <b>Item<\/b>-Objekt, das in unserem Fall in der Regel den Typ <b>MailItem <\/b>aufweisen sollte. Dies ist schon der Verweis auf die E-Mail, der wir nun die f&uuml;r das Archivieren in der Datenbank ben&ouml;tigten Daten entnehmen k&ouml;nnen.<\/p>\n<p>Nun m&uuml;ssen wir nur noch ein oder mehrere dieser Klassen instanzieren, und zwar eine f&uuml;r jeden Ordner, der in der Tabelle <b>tblOptionen <\/b>der Archivdatenbank f&uuml;r die E-Mails enthalten ist. Diese sollen nach dem Erstellen nicht im Nirvana verschwinden, daher verwenden wir ein <b>Collection<\/b>-Objekt, um diese Objekte zu speichern &#8211; eben jenes, das wir weiter oben bereits deklariert haben.<\/p>\n<h2>Ordner-Klassen instanzieren<\/h2>\n<p>Die Klassen mit den zu &uuml;berwachenden Ordnern sollen direkt beim Start von Outlook erstellt werden. Dazu legen Sie eine Prozedur namens <b>Application_Startup <\/b>in der Klasse <b>ThisOutlookSession <\/b>an (s. Listing 1). Diese wird gleich beim &ouml;ffnen von Outlook ausgef&uuml;hrt &#8211; vorausgesetzt, Sie haben die Ausf&uuml;hrung von Makros nicht aus Sicherheitsgr&uuml;nden deaktiviert.<\/p>\n<pre><span style=\"color:blue;\">Public Sub <\/span>Application_Startup()\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>objFolder<span style=\"color:blue;\"> As <\/span>Outlook.Folder\r\n     <span style=\"color:blue;\">Dim <\/span>objFolderArchiv<span style=\"color:blue;\"> As <\/span>clsFolderArchiv\r\n     <span style=\"color:blue;\">Set<\/span> db = DBEngine.OpenDatabase(cStrExportdatenbank)\r\n     <span style=\"color:blue;\">Set<\/span> rst = db.OpenRecordset(\"SELECT * FROM tblOptionen\", dbOpenDynaset)\r\n     <span style=\"color:blue;\">Set<\/span> colFolders = <span style=\"color:blue;\">New<\/span> Collection\r\n     <span style=\"color:blue;\">Do While<\/span> <span style=\"color:blue;\">Not<\/span> rst.EOF\r\n         <span style=\"color:blue;\">Set<\/span> objFolderArchiv = <span style=\"color:blue;\">New<\/span> clsFolderArchiv\r\n         <span style=\"color:blue;\">With<\/span> objFolderArchiv\r\n             <span style=\"color:blue;\">Set<\/span> objFolder = GetFolderByPath(rst!Verzeichnis)\r\n             <span style=\"color:blue;\">If <\/span>objFolder Is Nothing<span style=\"color:blue;\"> Then<\/span>\r\n                 <span style=\"color:blue;\">MsgBox<\/span> \"Der in der Export-Datenbank ''\" & cStrExportdatenbank & \"'' angegebene Outlook-Ordner ''\" _\r\n                     & rst!Verzeichnis & \"'' ist nicht in Outlook vorhanden.\"\r\n                 <span style=\"color:blue;\">Exit Sub<\/span>\r\n             <span style=\"color:blue;\">End If<\/span>\r\n             <span style=\"color:blue;\">Set<\/span> .Folder = objFolder\r\n             .AnlagenSpeichern = rst!AnlagenSpeichern\r\n             <span style=\"color:blue;\">Set<\/span> .Database = db\r\n             .NeuEinlesen = rst!NeuEinlesen\r\n             .Groesse = Nz(rst!Groesse)\r\n         End <span style=\"color:blue;\">With<\/span>\r\n         colFolders.Add objFolderArchiv\r\n         <span style=\"color:blue;\">If <\/span>rst!Rekursiv<span style=\"color:blue;\"> Then<\/span>\r\n             UnterordnerInstanzieren objFolder, db, Nz(rst!Groesse), rst!NeuEinlesen, rst!AnlagenSpeichern, colFolders\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;\">End Sub<\/span><\/pre>\n<p><!--30percent--><\/p>\n<p><b><span style=\"color:darkgrey;\">Listing 1: Diese Prozedur wird beim Start von Outlook automatisch ausgel&ouml;st.<\/span><\/b><\/p>\n<p>Die Prozedur erstellt zun&auml;chst eine Referenz auf das <b>Database<\/b>-Objekt der Zieldatenbank zum Exportieren der E-Mails. Wir ben&ouml;tigen zwei besondere Variablen: <b>objFolderArchiv <\/b>hat den Typ <b>clsFolderArchiv<\/b>. Dies ist die Klasse, die wir gleich im Anschluss f&uuml;r jeden zu beobachtenden Mailordner erstellen und die das mit der anderen Variablen <b>objFolder <\/b>referenzierte <b>Folder<\/b>-Objekt entgegennehmen wird.<\/p>\n<p>Um in Access auf die aktuell ge&ouml;ffnete Datenbank zuzugreifen, w&uuml;rden wir die Funktion <b>CurrentDb <\/b>verwenden, aber von Outlook aus ist ein anderer Befehl n&ouml;tig, n&auml;mlich die <b>OpenDatabase<\/b>-Methode des <b>DBEngine<\/b>-Objekts. Dieser &uuml;bergeben Sie den Namen der gew&uuml;nschten Datenbankdatei, den wir ja bereits f&uuml;r die Konstante <b>cStrExportdatenbank <\/b>definiert haben.<\/p>\n<p>Im Anschluss &ouml;ffnet die Prozedur ein Recordset auf Basis der Tabelle <b>tblOptionen<\/b>, die ja die Outlook-Ordner enth&auml;lt, deren E-Mails archiviert werden sollen. Die Collection <b>colFolders<\/b> m&uuml;ssen wir vor dem Hinzuf&uuml;gen des ersten Objekts instanzieren, was wir mit der <b>New<\/b>-Anweisung erledigen.<\/p>\n<p>Dann durchl&auml;uft die Prozedur in einer <b>Do While<\/b>-Schleife alle Datens&auml;tze der Tabelle <b>tblOptionen<\/b>. In der Schleife erstellt sie jeweils ein neues Objekt auf Basis der Klasse <b>clsFolderArchiv<\/b>. Diese stellt, wie weiter unten beschrieben, einige Eigenschaften bereit.<\/p>\n<p>Diese f&uuml;llt die Prozedur mit den folgenden Anweisungen. Zuvor ermittelt sie jedoch noch das Outlook-Folder-Objekt f&uuml;r den Outlook-Ordner aus dem Feld <b>Verzeichnis <\/b>des aktuellen Datensatzes. Dazu verwendet sie die Hilfsfunktion <b>GetFolderByPath<\/b>, die Sie im Modul <b>mdl-Outlook <\/b>finden.<\/p>\n<p>Es kann aus verschiedenen Gr&uuml;nden geschehen, dass der in der Tabelle angegebene Ordner nicht gefunden wird. <b>objFolder <\/b>kann dann nat&uuml;rlich nicht mit einem Verweis auf diesen Ordner gef&uuml;llt werden.<\/p>\n<p>Diesem tr&auml;gt die folgende <b>If&#8230;Then<\/b>-Bedingung Rechnung, indem sie pr&uuml;ft, ob <b>objFolder <\/b>gef&uuml;llt ist, und gegebenenfalls eine entsprechende Meldung ausgibt. Die Prozedur wird dann abgebrochen.<\/p>\n<p>Anderenfalls &uuml;bergibt die Prozedur das Objekt aus <b>objFolder <\/b>an die Eigenschaft <b>Folder <\/b>von <b>objFolderArchiv<\/b>. Die Inhalte einiger weiterer Felder tr&auml;gt die Prozedur ebenfalls f&uuml;r die entsprechenden Eigenschaften des Objekts auf Basis der Klasse <b>clsFolderArchiv <\/b>ein.<\/p>\n<p>So landen etwa die Inhalt der Felder <b>AnlagenSpeichern<\/b>, <b>NeuEinlesen <\/b>und <b>Groesse <\/b>in den gleichnamigen Eigenschaften der Klasse.<\/p>\n<p>Au&szlig;erdem &uuml;bergibt die Prozedur auch noch einen Verweis auf das <b>Database<\/b>-Objekt an die Instanz der Klasse, da diese ja beim Eingang einer Mail auf die Datenbank zugreifen und dort einen neuen Datensatz anlegen soll.<\/p>\n<p>Hier k&ouml;nnte man gegebenenfalls nur den Pfad zur Datenbank &uuml;bergeben und beim Eingang einer Mail eine neue Verbindung aufbauen, um diese nicht st&auml;ndig ge&ouml;ffnet zu haben.<\/p>\n<p>Nach dem Erstellen des Objekts <b>objFolderArchiv <\/b>f&uuml;r den aktuellen Ordner f&uuml;gen wir dieses noch zur Collection <b>colFolders <\/b>hinzu, damit es nach dem Beenden der Prozedur nicht im Nirwana verschwindet.<\/p>\n<p>Schlie&szlig;lich kann es noch sein, dass der Benutzer f&uuml;r diesen Outlook-Ordner die Eigenschaft <b>Rekursiv <\/b>auf <b>True <\/b>eingestellt hat. In diesem Fall m&uuml;ssen wir nat&uuml;rlich auch noch die Unterordner des aktuellen Ordners ber&uuml;cksichtigen. Dazu pr&uuml;ft die Prozedur, ob <b>rst!Rekursiv <\/b>den Wert <b>True <\/b>enth&auml;lt, und ruft dann die rekursiv definierte Prozedur <b>UnterordnerInstanzieren <\/b>auf.<\/p>\n<p>Diese Prozedur legen wir ebenfalls im Modul <b>This-Out-look-Session <\/b>an (s. Listing 2). Die Prozedur erwartet einen Verweis auf den &uuml;bergeordneten Ordner (objParent) und auf das <b>Database<\/b>-Objekt sowie die f&uuml;r den Hauptordner festgelegten Eigenschaften als Parameter.<\/p>\n<pre><span style=\"color:blue;\">Public Sub <\/span>UnterordnerInstanzieren(objParent<span style=\"color:blue;\"> As <\/span>Outlook.Folder, db<span style=\"color:blue;\"> As <\/span>DAO.Database, lngSize<span style=\"color:blue;\"> As Long<\/span>, _\r\n         bolNeuEinlesen<span style=\"color:blue;\"> As Boolean<\/span>, bolAnlagenSpeichern<span style=\"color:blue;\"> As Boolean<\/span>, colFolders<span style=\"color:blue;\"> As <\/span>Collection)\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>objFolderArchiv<span style=\"color:blue;\"> As <\/span>clsFolderArchiv\r\n     For Each objFolder In objParent.Folders\r\n         <span style=\"color:blue;\">Set<\/span> objFolderArchiv = <span style=\"color:blue;\">New<\/span> clsFolderArchiv\r\n         <span style=\"color:blue;\">With<\/span> objFolderArchiv\r\n             .AnlagenSpeichern = bolAnlagenSpeichern\r\n             <span style=\"color:blue;\">Set<\/span> .Database = db\r\n             <span style=\"color:blue;\">Set<\/span> .Folder = objFolder\r\n             .Groesse = lngSize\r\n             .NeuEinlesen = bolNeuEinlesen\r\n         End <span style=\"color:blue;\">With<\/span>\r\n         colFolders.Add objFolderArchiv\r\n         UnterordnerInstanzieren objFolder, db, lngSize, bolNeuEinlesen, bolAnlagenSpeichern, colFolders\r\n     <span style=\"color:blue;\">Next<\/span> objFolder\r\n<span style=\"color:blue;\">End Sub<\/span><\/pre>\n<p><b><span style=\"color:darkgrey;\">Listing 2: Rekursives Hinzuf&uuml;gen untergeordneter Verzeichnisse<\/span><\/b><\/p>\n<p>Auch hier deklarieren wir wieder <b>objFolder <\/b>und <b>objFolder-Archiv<\/b>. Diesmal durchlaufen wir allerdings nicht die Datens&auml;tze der Tabelle <b>tblOptionen<\/b>, sondern die Auflistung <b>Folders <\/b>der Unterordner des mit <b>objParent <\/b>&uuml;bergebenen <b>Folder<\/b>-Objekts.<\/p>\n<p>Innerhalb dieser <b>For Each<\/b>-Schleife erstellt die Prozedur jeweils wieder ein neues Objekt auf Basis der Klasse <b>clsFolderArchiv <\/b>und f&uuml;llt diese mit den relevanten Daten, bevor sie diese zur Collection <b>colFolders <\/b>hinzuf&uuml;gt. Au&szlig;erdem ruft sie sich selbst auf, und zwar f&uuml;r jedes in der Schleife durchlaufene <b>Folder<\/b>-Objekt. Auf diese Weise gelangen wir in die hintersten Winkel noch so verschachtelter Ordner-Strukturen.<\/p>\n<h2>Die Klasse clsFolderArchiv<\/h2>\n<p>Damit ist es nun an der Zeit, einen Blick auf die so oft erw&auml;hnte Klasse zu werfen. Um diese zu erstellen, legen Sie im Outlook-VBA-Projekt mit <b>Einf&uuml;gen|Klassenmodul <\/b>ein neues Klassenmodul an, und &auml;ndern seinen Namen auf <b>clsFolderArchiv<\/b>.<\/p>\n<p>Die Klasse verwendet eine Reihe von Variablen, die von au&szlig;en &uuml;ber entsprechende Eigenschaften gef&uuml;llt werden sollen. Diese Variablen kennzeichnen wir mit einem f&uuml;hrenden <b>m <\/b>plus Unterstrich:<\/p>\n<pre><span style=\"color:blue;\">Private <\/span>m_db<span style=\"color:blue;\"> As <\/span>DAO.Database\r\n<span style=\"color:blue;\">Private <\/span>m_Groesse<span style=\"color:blue;\"> As Long<\/span>\r\n<span style=\"color:blue;\">Private <\/span>m_NeuEinlesen<span style=\"color:blue;\"> As Boolean<\/span>\r\n<span style=\"color:blue;\">Private <\/span>m_Verzeichnis<span style=\"color:blue;\"> As String<\/span>\r\n<span style=\"color:blue;\">Private <\/span>m_AnlagenSpeichern<span style=\"color:blue;\"> As Boolean<\/span><\/pre>\n<p>Wie oben erl&auml;utert, &uuml;bergeben wir der Klasse auch jeweils ein <b>Folder<\/b>-Objekt. Dieses speichern wir aber nicht in einer Member-Variablen, sondern entnehmen dieser die <b>Items<\/b>-Auflistung und speichern diese in der wie folgt deklarierten Variablen:<\/p>\n<pre><span style=\"color:blue;\">Private <\/span>WithEvents objItems<span style=\"color:blue;\"> As <\/span>Outlook.Items<\/pre>\n<p>Diese Variable ist auch die, f&uuml;r die wir das Ereignis implementieren, das beim Eingang einer E-Mail ausgel&ouml;st wird &#8211; daher m&uuml;ssen wir das Schl&uuml;sselwort <b>WithEvents <\/b>nutzen.<\/p>\n<p>Schauen wir uns doch erst die <b>Property Let<\/b>&#8211; und <b>Property Get<\/b>-Methoden f&uuml;r die &uuml;bergabe der Eigenschaften an. Diese nehmen jeweils den Eigenschaftswert entgegen und tragen diesen in die jeweilige Member-Variable ein:<\/p>\n<pre><span style=\"color:blue;\">Public Property <span style=\"color:blue;\">Set<\/span> <\/span>Database(db<span style=\"color:blue;\"> As <\/span>DAO.Database)\r\n     <span style=\"color:blue;\">Set<\/span> m_db = db\r\n<span style=\"color:blue;\">End Property<\/span>\r\n<span style=\"color:blue;\">Public Property Let <\/span>Groesse(lngGroesse<span style=\"color:blue;\"> As Long<\/span>)\r\n     m_Groesse = lngGroesse\r\n<span style=\"color:blue;\">End Property<\/span>\r\n<span style=\"color:blue;\">Public Property Let <\/span>NeuEinlesen(bolNeuEinlesen<span style=\"color:blue;\"> As Boolean<\/span>)\r\n     m_NeuEinlesen = bolNeuEinlesen\r\n<span style=\"color:blue;\">End Property<\/span>\r\n<span style=\"color:blue;\">Public Property Let <\/span>AnlagenSpeichern(m_AnlagenSpeichern _\r\n        <span style=\"color:blue;\"> As Boolean<\/span>)\r\n     m_AnlagenSpeichern = m_AnlagenSpeichern\r\n<span style=\"color:blue;\">End Property<\/span><\/pre>\n<p>Die <b>Property Get<\/b>-Prozedur zum Entgegennehmen des <b>Folder<\/b>-Objekts sieht etwas anders aus. Sie tr&auml;gt den &uuml;bergebenen Wert nicht in eine Variable gleichen Typs ein, sondern speichert einen Verweis auf die <b>Items<\/b>-Auflistung des <b>Folder<\/b>-Objekts in der Variablen <b>objItems<\/b>:<\/p>\n<pre><span style=\"color:blue;\">Public Property <span style=\"color:blue;\">Set<\/span> <\/span>Folder(objFolder<span style=\"color:blue;\"> As <\/span>Outlook.Folder)\r\n     <span style=\"color:blue;\">Set<\/span> objItems = objFolder.Items\r\n<span style=\"color:blue;\">End Property<\/span><\/pre>\n<p>Damit gelangen wir gleich zu der Prozedur, die durch das Ereignis <b>ItemAdd <\/b>der <b>Items<\/b>-Auflistung aus <b>objItems <\/b>ausgel&ouml;st wird &#8211; also beim Eingang einer E-Mail.<\/p>\n<p>Die Ereignisprozedur liefert mit dem Parameter <b>Item<\/b> einen Verweis auf das eingegangene Element. Dieses untersuchen wir, indem wir die <b>TypeName<\/b>-Methode auf das Objekt anwenden und es mit dem Ausdruck <b>MailItem <\/b>vergleichen. Es ist zwar nicht anzunehmen, dass andere Objekttypen als <b>MailItem <\/b>in diesen Ordnern landen, aber wir wollen m&ouml;gliche Fehler ausschlie&szlig;en und wenden die folgenden Anweisungen nur auf <b>Mail-Item<\/b>-Objekte an. Dazu weisen wir das mit <b>Item <\/b>gelieferte Objekt zun&auml;chst der Objektvariablen <b>objMailItem <\/b>zu und rufen damit dann die Prozedur <b>MailEinlesen <\/b>auf, der wir einige Informationen per Parameter &uuml;bergeben:<\/p>\n<pre><span style=\"color:blue;\">Private Sub <\/span>objItems_ItemAdd(ByVal Item<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;\">If <\/span>TypeName(Item) = \"MailItem\"<span style=\"color:blue;\"> Then<\/span>\r\n         <span style=\"color:blue;\">Set<\/span> objMailItem = Item\r\n         MailEinlesen objMailItem, m_Verzeichnis, m_db, _\r\n             m_Groesse, m_NeuEinlesen, m_AnlagenSpeichern\r\n     <span style=\"color:blue;\">End If<\/span>\r\n<span style=\"color:blue;\">End Sub<\/span><\/pre>\n<h2>Einlesen einer E-Mail<\/h2>\n<p>Wird dieses Ereignis ausgel&ouml;st, erledigt also die Prozedur <b>MailEinlesen <\/b>die Hauptarbeit (s. Listing 3). Die Prozedur erwartet einen Verweis auf das zu archivierende <b>Mail-Item<\/b>-Objekt, den Pfad zum Outlook-Ordner, die Zieldatenbank, die maximale Gr&ouml;&szlig;e, bis zu der <b>.msg<\/b>-Dateien als Anlage gespeichert werden sollen (alternativ im Dateisystem) und die Angabe, ob die Anlagen zus&auml;tzlich im Dateisystem landen sollen.<\/p>\n<pre><span style=\"color:blue;\">Public Sub <\/span>MailEinlesen(objMailItem<span style=\"color:blue;\"> As <\/span>Outlook.MailItem, strFolderpath<span style=\"color:blue;\"> As String<\/span>, db<span style=\"color:blue;\"> As <\/span>DAO.Database, _\r\n         lngSize<span style=\"color:blue;\"> As Long<\/span>, bolAnlagenSpeichern<span style=\"color:blue;\"> As Boolean<\/span>)\r\n     <span style=\"color:blue;\">Dim <\/span>strAbsender<span style=\"color:blue;\"> As String<\/span>, strEmpfaenger<span style=\"color:blue;\"> As String<\/span>, strSQL<span style=\"color:blue;\"> As String<\/span>\r\n     <span style=\"color:blue;\">Dim <\/span>objRecipient<span style=\"color:blue;\"> As <\/span>Outlook.Recipient\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>i<span style=\"color:blue;\"> As Integer<\/span>\r\n     <span style=\"color:blue;\">Dim <\/span>lngError<span style=\"color:blue;\"> As Long<\/span>, lngMailItemID<span style=\"color:blue;\"> As Long<\/span>\r\n     <span style=\"color:blue;\">With<\/span> objMailItem\r\n         strAbsender = .SenderEmailAddress\r\n         For i = 1 To .Recipients.Count\r\n             <span style=\"color:blue;\">Set<\/span> objRecipient = .Recipients(i)\r\n             Select Case objRecipient.Type\r\n                 <span style=\"color:blue;\">Case <\/span>olTo\r\n                     strEmpfaenger = strEmpfaenger & \";\" & objRecipient.Address\r\n                 <span style=\"color:blue;\">Case Else<\/span>\r\n             <span style=\"color:blue;\">End Select<\/span>\r\n         <span style=\"color:blue;\">Next<\/span> i\r\n         strSQL = \"INSERT INTO tblMailItems(EntryID, Betreff, Body, HTMLBody, Absender, &quot; _\r\n             &amp; &quot;Empfaenger, Pfad,  Erhalten, Groesse) VALUES(''\" & .EntryID & \"'', ''\" _\r\n             & <span style=\"color:blue;\">Replace<\/span>(.Subject, \"''\", \"''''\") & \"'', ''\" & <span style=\"color:blue;\">Replace<\/span>( .Body, \"''\", \"''''\") _\r\n             & \"'', ''\" & <span style=\"color:blue;\">Replace<\/span>(.HTMLBody, \"''\", \"''''\") & \"'', ''\" & <span style=\"color:blue;\">Replace<\/span>(strAbsender, \"''\",  \"''''\") _\r\n             & \"'', ''\" & <span style=\"color:blue;\">Replace<\/span>(strEmpfaenger, \"''\", \"''''\") & \"'', ''\" & strFolderpath & \"'', \" _\r\n             & ISODatum( .ReceivedTime) & \", \" & .Size & \")\"\r\n         On Error Resume <span style=\"color:blue;\">Next<\/span>\r\n         db.Execute strSQL, dbFailOnError\r\n         lngError = Err.Number\r\n         <span style=\"color:blue;\">On Error GoTo<\/span> 0\r\n         <span style=\"color:blue;\">If <\/span>lngError = 3035<span style=\"color:blue;\"> Then<\/span>\r\n             <span style=\"color:blue;\">Set<\/span> rst = db.OpenRecordset(\"SELECT * FROM tblMailItems WHERE 1 = 2\", dbOpenDynaset)\r\n             rst.Add<span style=\"color:blue;\">New<\/span>\r\n             rst!EntryID = .EntryID\r\n             rst!Betreff = .Subject\r\n             rst!Body = .Body\r\n             rst!HTMLBody = .HTMLBody\r\n             rst!Absender = strAbsender\r\n             rst!Empfaenger = strEmpfaenger\r\n             rst!Pfad = strFolderpath\r\n             rst!Erhalten = .ReceivedTime\r\n             rst!Groesse = .Size\r\n             lngMailItemID = rst!MailitemID\r\n             rst.Update\r\n         <span style=\"color:blue;\">Else<\/span>\r\n             lngMailItemID = db.OpenRecordset(\"SELECT @@IDENTITY\").Fields(0)\r\n         <span style=\"color:blue;\">End If<\/span>\r\n         <span style=\"color:blue;\">If <\/span>bolAnlagenSpeichern<span style=\"color:blue;\"> Then<\/span>\r\n             MailAnlagenSpeichern objMailItem, db, strAbsender, lngMailItemID\r\n         <span style=\"color:blue;\">End If<\/span>\r\n         MailItemSpeichern objMailItem, db, lngMailItemID, lngSize\r\n     End <span style=\"color:blue;\">With<\/span>\r\n<span style=\"color:blue;\">End Sub<\/span><\/pre>\n<p><b><span style=\"color:darkgrey;\">Listing 3: Archivieren einer E-Mail<\/span><\/b><\/p>\n<p>Die Prozedur speichert zun&auml;chst den Inhalt der Eigenschaft <b>SenderEMailAddress<\/b>, also die Absenderadresse, in der Variablen <b>strAbsender<\/b>. Dann durchl&auml;uft sie alle Elemente der Auflistung <b>Recipients<\/b>, wobei sie alle Adressen, deren Eigenschaft <b>Type <\/b>den Wert <b>olTo <\/b>(f&uuml;r <b>An<\/b>) enth&auml;lt, durch Semikola getrennt an die Zeichenkette <b>strEmpfaenger <\/b>anh&auml;ngt.<\/p>\n<p>Danach stellt sie eine SQL-Abfrage zum Einf&uuml;gen eines neuen Datensatzes in die Tabelle <b>tblMailItems <\/b>zusammen, die alle vorhandenen Informationen in die entsprechenden Felder schreibt. Hier kann es geschehen, dass ein Fehler auftritt, weil der Inhalt der Mail zu lang ist, um ihn per <b>INSERT INTO <\/b>in das Memo-Feld <b>Body <\/b>einzuf&uuml;gen. Dies l&ouml;st den Fehler mit der Nummer <b>3035 <\/b>aus (<b>Nicht gen&uuml;gend Systemressourcen<\/b>). Zum Gl&uuml;ck gibt es f&uuml;r diesen Fall eine Alternative, n&auml;mlich das Hinzuf&uuml;gen des Datensatzes &uuml;ber die DAO-Methoden <b>AddNew <\/b>und <b>Update<\/b>. Warum wir diese nicht gleich verwenden Weil es in der Regel mit <b>INSERT INTO <\/b>schneller geht.<\/p>\n<p>Wenn der Fehler nicht auftritt, ermittelt eine nachfolgende Anweisung &uuml;ber die Abfrage <b>SELECT @@IDENTITY <\/b>den Wert des Prim&auml;rschl&uuml;sselfeldes des neu hinzugef&uuml;gten Datensatzes, im Falle des Fehlers liest die Prozedur diesen einfach &uuml;ber den Wert des Feldes <b>MailItemID <\/b>des neu angelegten <b>Recordset<\/b>-Objekts aus.<\/p>\n<p>Wenn der Parameter <b>bolAnlagenSpeichern <\/b>den Wert <b>True <\/b>enth&auml;lt, ruft die Prozedur eine weitere Routine namens <b>MailAnlagenSpeichern <\/b>auf, welche sich um das Ablegen der Anlage im Dateisystem k&uuml;mmert. Diese Prozedur entspricht der in den vorherigen Teilen der Beitragsreihe beschriebenen Version.<\/p>\n<p>Au&szlig;erdem soll auch die komplette E-Mail, sprich die <b>.msg<\/b>-Datei, zwecks m&ouml;glicher Wiederherstellung gespeichert werden. Dies erledigt die ebenfalls bereits bekannte Prozedur <b>MailItemSpeichern<\/b>.<\/p>\n<h2>Integration in Outlook<\/h2>\n<p>Der Download zu diesem Beitrag enth&auml;lt die Module <b>ThisOutlookSession<\/b>, <b>mdlOutlook<\/b>, <b>mdlTools <\/b>und <b>clsFolder-Archiv<\/b>. Diese m&uuml;ssen Sie zum Outlook-VBA-Projekt hinzuf&uuml;gen &#8211; am einfachsten, indem Sie die entsprechenden Dateien einfach aus dem Windows Explorer in den Projekt-Manager ziehen.<\/p>\n<p>Au&szlig;erdem ben&ouml;tigen Sie noch die beiden Verweise, die Sie wie eingangs beschrieben anlegen.<\/p>\n<p>Wichtig ist auch, dass Sie die Konstante f&uuml;r den Namen der Zieldatenbank im Modul <b>ThisOutlookSession <\/b>an den von Ihnen gew&auml;hlten Speicherort anpassen.<\/p>\n<h3>Downloads zu diesem Beitrag<\/h3>\n<p>Enthaltene Beispieldateien:<\/p>\n<p>OutlookMailsNachEmpfangArchivieren.zip<\/p>\n<p><a href=\"..\/fileadmin\/beispiele\/{7D04A727-E644-4A1A-9753-C66756A63483}\/aiu_1007.zip\">Download<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>In der Beitragsreihe &#8222;Outlook-Mails in Access archivieren&#8220; haben wir gezeigt, wie Sie die E-Mails aus kompletten und auch untergeordneten Outlook-Ordnern in eine Access-Datenbank importieren. Das ist die L&ouml;sung f&uuml;r den Start der Archivierung. Interessant wird es erst, wenn Sie diese Daten direkt nach dem Eingang in Outlook archivieren. Der vorliegende Beitrag zeigt, wie Sie Outlook so erweitern, dass jede in vorgegebenen Ordnern eingehenende E-Mail direkt in unsere Access-Mail-Archiv weitergeleitet wird.<\/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":[662015,66052015,44000027],"tags":[],"class_list":["post-55001007","post","type-post","status-publish","format-standard","hentry","category-662015","category-66052015","category-Loesungen"],"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>Outlook-Mails nach Empfang archivieren - 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\/OutlookMails_nach_Empfang_archivieren\/\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Outlook-Mails nach Empfang archivieren\" \/>\n<meta property=\"og:description\" content=\"In der Beitragsreihe &quot;Outlook-Mails in Access archivieren&quot; haben wir gezeigt, wie Sie die E-Mails aus kompletten und auch untergeordneten Outlook-Ordnern in eine Access-Datenbank importieren. Das ist die L&ouml;sung f&uuml;r den Start der Archivierung. Interessant wird es erst, wenn Sie diese Daten direkt nach dem Eingang in Outlook archivieren. Der vorliegende Beitrag zeigt, wie Sie Outlook so erweitern, dass jede in vorgegebenen Ordnern eingehenende E-Mail direkt in unsere Access-Mail-Archiv weitergeleitet wird.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/access-im-unternehmen.de\/OutlookMails_nach_Empfang_archivieren\/\" \/>\n<meta property=\"og:site_name\" content=\"Access im Unternehmen\" \/>\n<meta property=\"article:published_time\" content=\"2020-05-22T19:12:06+00:00\" \/>\n<meta property=\"og:image\" content=\"http:\/\/vg07.met.vgwort.de\/na\/6f1c8f1e8dc74c7c8800950951ec7e0b\" \/>\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\\\/OutlookMails_nach_Empfang_archivieren\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/OutlookMails_nach_Empfang_archivieren\\\/\"},\"author\":{\"name\":\"Andr\u00e9 Minhorst\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#\\\/schema\\\/person\\\/13395c4bcd7d7963efe33be9c584d93f\"},\"headline\":\"Outlook-Mails nach Empfang archivieren\",\"datePublished\":\"2020-05-22T19:12:06+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/OutlookMails_nach_Empfang_archivieren\\\/\"},\"wordCount\":2537,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/OutlookMails_nach_Empfang_archivieren\\\/#primaryimage\"},\"thumbnailUrl\":\"http:\\\/\\\/vg07.met.vgwort.de\\\/na\\\/6f1c8f1e8dc74c7c8800950951ec7e0b\",\"articleSection\":[\"2015\",\"5\\\/2015\",\"L\u00f6sungen\"],\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/access-im-unternehmen.de\\\/OutlookMails_nach_Empfang_archivieren\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/OutlookMails_nach_Empfang_archivieren\\\/\",\"url\":\"https:\\\/\\\/access-im-unternehmen.de\\\/OutlookMails_nach_Empfang_archivieren\\\/\",\"name\":\"Outlook-Mails nach Empfang archivieren - Access im Unternehmen\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/OutlookMails_nach_Empfang_archivieren\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/OutlookMails_nach_Empfang_archivieren\\\/#primaryimage\"},\"thumbnailUrl\":\"http:\\\/\\\/vg07.met.vgwort.de\\\/na\\\/6f1c8f1e8dc74c7c8800950951ec7e0b\",\"datePublished\":\"2020-05-22T19:12:06+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/OutlookMails_nach_Empfang_archivieren\\\/#breadcrumb\"},\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/access-im-unternehmen.de\\\/OutlookMails_nach_Empfang_archivieren\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/OutlookMails_nach_Empfang_archivieren\\\/#primaryimage\",\"url\":\"http:\\\/\\\/vg07.met.vgwort.de\\\/na\\\/6f1c8f1e8dc74c7c8800950951ec7e0b\",\"contentUrl\":\"http:\\\/\\\/vg07.met.vgwort.de\\\/na\\\/6f1c8f1e8dc74c7c8800950951ec7e0b\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/OutlookMails_nach_Empfang_archivieren\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/access-im-unternehmen.de\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Outlook-Mails nach Empfang archivieren\"}]},{\"@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":"Outlook-Mails nach Empfang archivieren - 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\/OutlookMails_nach_Empfang_archivieren\/","og_locale":"de_DE","og_type":"article","og_title":"Outlook-Mails nach Empfang archivieren","og_description":"In der Beitragsreihe \"Outlook-Mails in Access archivieren\" haben wir gezeigt, wie Sie die E-Mails aus kompletten und auch untergeordneten Outlook-Ordnern in eine Access-Datenbank importieren. Das ist die L&ouml;sung f&uuml;r den Start der Archivierung. Interessant wird es erst, wenn Sie diese Daten direkt nach dem Eingang in Outlook archivieren. Der vorliegende Beitrag zeigt, wie Sie Outlook so erweitern, dass jede in vorgegebenen Ordnern eingehenende E-Mail direkt in unsere Access-Mail-Archiv weitergeleitet wird.","og_url":"https:\/\/access-im-unternehmen.de\/OutlookMails_nach_Empfang_archivieren\/","og_site_name":"Access im Unternehmen","article_published_time":"2020-05-22T19:12:06+00:00","og_image":[{"url":"http:\/\/vg07.met.vgwort.de\/na\/6f1c8f1e8dc74c7c8800950951ec7e0b","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\/OutlookMails_nach_Empfang_archivieren\/#article","isPartOf":{"@id":"https:\/\/access-im-unternehmen.de\/OutlookMails_nach_Empfang_archivieren\/"},"author":{"name":"Andr\u00e9 Minhorst","@id":"https:\/\/access-im-unternehmen.de\/#\/schema\/person\/13395c4bcd7d7963efe33be9c584d93f"},"headline":"Outlook-Mails nach Empfang archivieren","datePublished":"2020-05-22T19:12:06+00:00","mainEntityOfPage":{"@id":"https:\/\/access-im-unternehmen.de\/OutlookMails_nach_Empfang_archivieren\/"},"wordCount":2537,"commentCount":0,"publisher":{"@id":"https:\/\/access-im-unternehmen.de\/#organization"},"image":{"@id":"https:\/\/access-im-unternehmen.de\/OutlookMails_nach_Empfang_archivieren\/#primaryimage"},"thumbnailUrl":"http:\/\/vg07.met.vgwort.de\/na\/6f1c8f1e8dc74c7c8800950951ec7e0b","articleSection":["2015","5\/2015","L\u00f6sungen"],"inLanguage":"de","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/access-im-unternehmen.de\/OutlookMails_nach_Empfang_archivieren\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/access-im-unternehmen.de\/OutlookMails_nach_Empfang_archivieren\/","url":"https:\/\/access-im-unternehmen.de\/OutlookMails_nach_Empfang_archivieren\/","name":"Outlook-Mails nach Empfang archivieren - Access im Unternehmen","isPartOf":{"@id":"https:\/\/access-im-unternehmen.de\/#website"},"primaryImageOfPage":{"@id":"https:\/\/access-im-unternehmen.de\/OutlookMails_nach_Empfang_archivieren\/#primaryimage"},"image":{"@id":"https:\/\/access-im-unternehmen.de\/OutlookMails_nach_Empfang_archivieren\/#primaryimage"},"thumbnailUrl":"http:\/\/vg07.met.vgwort.de\/na\/6f1c8f1e8dc74c7c8800950951ec7e0b","datePublished":"2020-05-22T19:12:06+00:00","breadcrumb":{"@id":"https:\/\/access-im-unternehmen.de\/OutlookMails_nach_Empfang_archivieren\/#breadcrumb"},"inLanguage":"de","potentialAction":[{"@type":"ReadAction","target":["https:\/\/access-im-unternehmen.de\/OutlookMails_nach_Empfang_archivieren\/"]}]},{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/access-im-unternehmen.de\/OutlookMails_nach_Empfang_archivieren\/#primaryimage","url":"http:\/\/vg07.met.vgwort.de\/na\/6f1c8f1e8dc74c7c8800950951ec7e0b","contentUrl":"http:\/\/vg07.met.vgwort.de\/na\/6f1c8f1e8dc74c7c8800950951ec7e0b"},{"@type":"BreadcrumbList","@id":"https:\/\/access-im-unternehmen.de\/OutlookMails_nach_Empfang_archivieren\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/access-im-unternehmen.de\/"},{"@type":"ListItem","position":2,"name":"Outlook-Mails nach Empfang archivieren"}]},{"@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\/55001007","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=55001007"}],"version-history":[{"count":0,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/posts\/55001007\/revisions"}],"wp:attachment":[{"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/media?parent=55001007"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/categories?post=55001007"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/tags?post=55001007"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}