![]() |
email speichern
Hi,
weiß vielleicht jemand, wie man folgendes erreichen kann: die eingegangenen emails (aber nur eines bestimmten Absenders) sollen irgendwo gespeichert werden. Möglichst automatisch. Jetzt weiß ich erstens nicht, wie und wo die gespeichert werden, sobald sie empfangen wurden, welches Dateiformat die haben und was mit den Anhängen überhaupt los ist und wie ich da dran komme. Das empfangen der emails interessiert mich eigentlich nicht. Das kann von mir aus auch Outlook machen, aber danach muß ich diese in der Reihenfolge ihres Eingangs in eine DB schreiben, zwecks Weiterbearbeitung, Sortierung usw. Hoffe, daß das jemand versteht. |
Hi !
Hier eine Variante, wie man das ganze per Automation mit Outlook machen kann : Outlook-Serverkompo auf Form: benötigte Variablen:
Code:
mit Outlook connecten:
var
oNS : NameSpace; foldInbox : MAPIFolder; mItem : Mailitem;
Code:
NameSpace holen:
try
OutApp.Connect; except Prot(''); Prot('FEHLER SCHWERWIEGEND: Verbindung zu Outlook gescheitert !'); Prot('Bitte kontaktieren Sie den Systemadministrator !'); exit; end;
Code:
Logon to NameSpace
oNS := OutApp.GetNamespace('MAPI');
Code:
Folder Posteingang holen
oNS.Logon('','',false,false);
Code:
Anzahl der Mails bestimmen
foldInBox:=oNS.GetDefaultFolder(olFolderInbox);
Code:
Wenn keine Mails dann abbrechen:
AnzMails:=folder.Items.Count;
Code:
abarbeitung der einzelnen Mails.
if AnzMails=0 then
begin Prot(' Es stehen keine Mails zum Import im angegebenen Ordner bereit !!!'); exit; end; Wichtig ist hierbei, dass die Mails in weitere Unterordner verschoben werden, weil ich immer auf die erste Mail im Posteingang zugreife.
Code:
Disconnecten:
i:=1;
while (i<=anzMails) do begin mItem := folder.Items.Item(1) as _MailItem; Prot(' Mail Nr. '+IntToStr(i)); str1:=ANSIUPPERCASE(mItem.SenderName); if str1<>gesuchterAbsender then begin //falscher Absender Prot(' keine Übereinstimmung beim Absender ('+str1+')'); Prot(' Mailverarbeitung abgebrochen !'); Prot(' Mail wurde in den Fehlerordner verschoben !'); inc(anzError); mItem.Move(FolderError); end else begin ...//--> was auch immer Du mit der Mail machen willst mItem.Move(folderImported); end; inc(i); end;
Code:
So, ich hoffe, dass ich nichts vergessen habe und dass dir das weiterhilft.
OutApp.Disconnect;
Wenn Du das Objektmodel von Outlook brauchst, dann sag einfach nochmal bescheid. Will es nicht dranhängen, da es etwas größer ist (PDF-Format). WICHTIG: Die Serverkompos funktionieren nicht mit Outlook-Express !!! Wenn noch fragen sind, einfach posten !!! |
...sonst kannst du das auch relativ einfach mit den Indy-Komponenten machen.
Da ist auch eine Demo bei. Nur das mit dem Speichern der Mails steht dort nicht. Aber da kann man ja eine einfache DAtenbank nehmen. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:21 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz