AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Delphi sOutlook 2010 - Mail Betreff auslesen und Anhang speichern

sOutlook 2010 - Mail Betreff auslesen und Anhang speichern

Ein Thema von medirar · begonnen am 2. Jan 2012 · letzter Beitrag vom 4. Jan 2012
Antwort Antwort
medirar

Registriert seit: 4. Feb 2009
Ort: BO
24 Beiträge
 
RAD-Studio 2009 Arc
 
#1

sOutlook 2010 - Mail Betreff auslesen und Anhang speichern

  Alt 2. Jan 2012, 16:03
Hallo!

Mal wieder Outlook! Jep Ich weiß! 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 http://www.delphipraxis.net/71080-ou...speichern.html gefunden das Speichert sämtlichen Inhalt und funktioniert bei mir aber leider nicht!

Ich hoffe Ihr könnt mir helfen

Dankeschön
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.169 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: sOutlook 2010 - Mail Betreff auslesen und Anhang speichern

  Alt 2. Jan 2012, 16:08
Ich würde sowas eher per Outlook-Regel versuchen zu lösen.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
medirar

Registriert seit: 4. Feb 2009
Ort: BO
24 Beiträge
 
RAD-Studio 2009 Arc
 
#3

AW: sOutlook 2010 - Mail Betreff auslesen und Anhang speichern

  Alt 2. Jan 2012, 16:12
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.
  Mit Zitat antworten Zitat
medirar

Registriert seit: 4. Feb 2009
Ort: BO
24 Beiträge
 
RAD-Studio 2009 Arc
 
#4

AW: sOutlook 2010 - Mail Betreff auslesen und Anhang speichern

  Alt 2. Jan 2012, 16:56
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;
  Mit Zitat antworten Zitat
medirar

Registriert seit: 4. Feb 2009
Ort: BO
24 Beiträge
 
RAD-Studio 2009 Arc
 
#5

AW: sOutlook 2010 - Mail Betreff auslesen und Anhang speichern

  Alt 3. Jan 2012, 22:55
Hallo! Das werk ist nun vollbracht! Zur Hilfe kam mir dieser Code.

Kann man mit MAPI auch auf "Benutzerdefinierte Ordner" zugreifen?

http://www.swissdelphicenter.ch/de/showcode.php?id=383

Delphi-Quellcode:
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;
  Mit Zitat antworten Zitat
medirar

Registriert seit: 4. Feb 2009
Ort: BO
24 Beiträge
 
RAD-Studio 2009 Arc
 
#6

AW: sOutlook 2010 - Mail Betreff auslesen und Anhang speichern

  Alt 3. Jan 2012, 22:58
....Zooooom.....

Kann man auch Benutzerdefinierte Ordner wählen, oder kann man nur auf die Outlook spezifischen ordner zugreifen?


Outlook spezifisch:

Delphi-Quellcode:
olFolderDeletedItems = $00000003;
olFolderOutbox = $00000004;
olFolderSentMail = $00000005;
olFolderInbox = $00000006;
olFolderCalendar = $00000009;
olFolderContacts = $0000000A;
olFolderJournal = $0000000B;
olFolderNotes = $0000000C;
olFolderTasks = $0000000D;
olFolderDrafts = $00000010;
  Mit Zitat antworten Zitat
Benutzerbild von sx2008
sx2008

Registriert seit: 16. Feb 2008
Ort: Baden-Württemberg
2.332 Beiträge
 
Delphi 2007 Professional
 
#7

AW: sOutlook 2010 - Mail Betreff auslesen und Anhang speichern

  Alt 3. Jan 2012, 23:20
kleine Anmerkung - es sauberer OleVariant zu verwenden.
Delphi-Quellcode:
var
  oApp: OleVariant;
  oNs: OleVariant; ...
  Mit Zitat antworten Zitat
medirar

Registriert seit: 4. Feb 2009
Ort: BO
24 Beiträge
 
RAD-Studio 2009 Arc
 
#8

AW: sOutlook 2010 - Mail Betreff auslesen und Anhang speichern

  Alt 4. Jan 2012, 10:37
Danke für den Tipp!
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:21 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz