• Outlook-daten (Mails, Folder) auslesen

    Ich suche eine Methode, mit der ich die Ordnerstruktur von Emails und die Emails selbst aus Outlook auslesen kann. Dazu habe ich folgenden Ansatz (in Delphi:)

    [code] var
    Form1: TForm1;
    Outlook: _Application; // OutlookApplication; for D5 users
    NmSpace: NameSpace;

    implementation

    {$R *.dfm}

    procedure TForm1.Button1Click(Sender: TObject);
    var
    Unknown: IUnknown;
    Result: HResult;
    Folder: MAPIFolder;
    begin
    {$IFDEF VER120} // Delphi 4
    Outlook := CoApplication_.Create;
    {$ELSE} // Delphi 5
    Outlook := CoOutlookApplication.Create;
    {$ENDIF}

    NmSpace := Outlook.GetNamespace(\’MAPI\‘);
    NmSpace.Logon(\’\‘, \’\‘, False, False);
    Folder := NmSpace.GetDefaultFolder(olFolderInbox);
    Folder.Display;
    end; [/code]

    Dieser Code ist nach dem Tutorial \“OLE-Automation mit Outlook\  entstanden. Mein Thread im Delphi-Forum, der mich hierher geführt hat: http://www.delphipraxis.net/post753111.html .

    Ich bin recht optimistisch, dass es mit diesem Ansatz funktionieren könnte, da zum Beispiel das Senden einer Mail via Outlook durch dieses Programm (wie im Tutorial beschrieben) funktioniert hat. Nur brauche ich eben noch ein paar Hilfestellungen, die das Tutorial (es ist sehr klein) nicht liefert:

    da ich die Emails aus der Inbox (siehe Code) und aus allen Unterordnern auslesen will, und die Ordnerstruktur auch auslesen will, brauche ich im Grunde folgende Routinen:
    a) alle Unterordner aus einem bestimmten Ordner (Im obigen Code \“Folder\“) auslesen

    b) einen Ordner, zum Beispiel \“Folder\“, einem bestimmten Ordner aus Outlook zuweisen, sodass ich darauf zugreifen kann (Im obigen Code greife ich auf \“Inbox\“ zu; aber das geschieht durch eine Konstante, und da man in Outlook ja auch eigene Folder erstellen kann, die logischweise keine eigene Konstante haben, muss es ja zB auch via Zeichenkette gehen (?)
    ( also zusammengfasst: b) = in einen Ordner in Outlook wechseln )

    c) alle E-Mails eines Ordners auslesen… ich stelle mir das so vor:

    Mit der folgenden Prozedur konnte ich eine Mails absenden. dabei habe ich ein MailItem genutzt:
    [code]procedure TForm1.Button2Click(Sender: TObject);
    var
    MI: MailItem;
    begin
    MI := Outlook.CreateItem(olMailItem) as MailItem;
    MI.Recipients.Add(\’simonjena@gmail.com\‘);
    MI.Subject := \’Greetings, O gorgeous one\‘;
    MI.Body := \’Your web pages fill me with delight\‘;
    MI.Attachments.Add(\’C:\\log.dat\‘, EmptyParam, EmptyParam, EmptyParam);
    MI.Send;
    end; [/code]

    vielleicht kann man für jeden Folder ein array of Mailitems bekommen?

    Ich danke euch vielmals, wenn ihr eine Antwort habt!

Neue Forenthemen

Home-›Foren-›Themen

10 Themen anzeigen - 1 bis 10 (von insgesamt 36,402)
10 Themen anzeigen - 1 bis 10 (von insgesamt 36,402)