![]() |
sOutlook 2010 - Mail Betreff auslesen und Anhang speichern
Hallo!
Mal wieder Outlook! Jep Ich weiß!:lol: Leider habe ich im Forum nichts passendes zu finden können. Hat jemand von Euch eine Idee oder einen Tipp zu folgendem Problem.....: Ich möchte gerne ein Programm schreiben der Outlook auf eingehende Mails überwacht und dabei den enstprechenden Betreff beachtet. Wenn der Betreff z.B. : "Spesen" beinhaltet und sich in der Mail noch ein Anhang mit dem Suffix *.docx befindet, dann soll das Programm den Anhang in ein Unterordner speichern wo sich das Programm befindet! Muss man das mit MAPI machen? Wozu ist das eig. gut? Ein Beispiel habe ich unter ![]() Ich hoffe Ihr könnt mir helfen:thumb: Dankeschön |
AW: sOutlook 2010 - Mail Betreff auslesen und Anhang speichern
Ich würde sowas eher per Outlook-Regel versuchen zu lösen.
|
AW: sOutlook 2010 - Mail Betreff auslesen und Anhang speichern
Danke für Deine Antwort!
Ich habe mal irgendwann ein VBA im Netz gefunden der das macht. Mit Delphi wollte ich das Dokument aber weiterbearbeiten. |
AW: sOutlook 2010 - Mail Betreff auslesen und Anhang speichern
Ich glaub ein kleinen Ansatz hab ich schon... keine Ahnung ob das funzt! Heute Abend mal probieren...
Delphi-Quellcode:
var Outlook: OLEVariant;
MailItem: Variant; begin Outlook:=GetActiveOleObject('Outlook.Application'); MailItem := Outlook.MailItemXXX(olMailItem); //Befehl vergessen..... ;-) If (MailItem.Subject = 'Spesen') and (MailItem.Attachment = '*.docx') then Attachments.SaveAsFile(......; end; |
AW: sOutlook 2010 - Mail Betreff auslesen und Anhang speichern
Hallo! Das werk ist nun vollbracht! Zur Hilfe kam mir dieser Code.
Kann man mit MAPI auch auf "Benutzerdefinierte Ordner" zugreifen? ![]()
Delphi-Quellcode:
:-D
function ManageAttachments(SendersName, AttachmentPath: string;
MailDelete: Boolean): Boolean; var oApp: Variant; oNs: Variant; oFolder: Variant; oMsg: Variant; AtC: Variant; AttFilename: Variant; FileName: string; CheckSender: string; Counter: integer; MailCounter: integer; begin try oApp := CreateOLEObject('outlook.application'); try oNs := oApp.GetNamespace('MAPI'); ofolder := oNS.GetDefaultFolder(6); // FolderTypeEnum (olFolderInbox) MailCounter := 1; // If there is any email in the Inbox if ofolder.Items.Count > 0 then begin repeat // Get the first Email oMsg := ofolder.Items(MailCounter); // Check the name or Email // Use CheckSender := oMsg.subject to search on Subject; CheckSender := oMsg.sendername; if CheckSender = SendersName then // Remove this line to backup all your attachments. begin // Check how many attachments atc := oMsg.Attachments.Count; if atc > 0 then begin // Get all the attachments and save them for Counter := 1 to atc do begin AttFilename := oMsg.Attachments.item(Counter).FileName; //filename := IncludeTrailingBackslash(AttachmentPath)+AttFilename; {Use this line for D5)} FileName := AttachmentPath + '\' + AttFilename; oMsg.Attachments.Item(Counter).SaveAsFile(FileName); end; end; if MailDelete then begin oMsg.Delete; // There's 1 Email less, so MailCounter - 1 Dec(MailCounter); end; end; // Get the next Email Inc(MailCounter); // Do until there is no more Email to check until MailCounter > ofolder.Items.Count; end; finally oApp.quit; end; except Result := False; Exit; end; Result := True; end; procedure TForm1.Button1Click(Sender: TObject); begin // ManageAttachments(Email or name, Backup directory, MailDelete yes or no) ManageAttachments('info@cleys.com', 'F:\test', False); end; |
AW: sOutlook 2010 - Mail Betreff auslesen und Anhang speichern
....Zooooom.....
Kann man auch Benutzerdefinierte Ordner wählen, oder kann man nur auf die Outlook spezifischen ordner zugreifen? Outlook spezifisch:
Delphi-Quellcode:
:-D
olFolderDeletedItems = $00000003;
olFolderOutbox = $00000004; olFolderSentMail = $00000005; olFolderInbox = $00000006; olFolderCalendar = $00000009; olFolderContacts = $0000000A; olFolderJournal = $0000000B; olFolderNotes = $0000000C; olFolderTasks = $0000000D; olFolderDrafts = $00000010; |
AW: sOutlook 2010 - Mail Betreff auslesen und Anhang speichern
kleine Anmerkung - es sauberer OleVariant zu verwenden.
Delphi-Quellcode:
var
oApp: OleVariant; oNs: OleVariant; ... |
AW: sOutlook 2010 - Mail Betreff auslesen und Anhang speichern
Danke für den Tipp!
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:50 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