Announcement

Collapse
No announcement yet.

EMail aus Programm aufrufen

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • EMail aus Programm aufrufen

    Hallo. Ich möchte gerne aus einem Programm den EMail-Aufruf von Outlook
    starten können und dabei eine Datei als Anhang übergeben. Dies versuche ich über ein CreateOleObject von Outlook zu realisieren. Leider finde ich nirgends Informationen über die möglichen Eigenschaften+Methoden von Outlook. Oder ich gehe falsch vor. Danke. Michael M.

  • #2
    Hallo,

    das folgende Beispiel demonstriert, wie man mit Delphi 4/5 eine eMail über Outlook-Automation aus dem eigenen Programm heraus verschicken kann. Generell gilt bei allen Automation-Servern, das der Hersteller dieses Servers für die Dokumentation zuständig ist. Im Fall von Outlook sind Unmengen von Infos sowie eine vollständige Beschreibung im <i>MSDN</i> (Web oder CDROMs) bzw. im Softwarepaket <i>Microsoft Office 2000 Developer</i> zu finden.
    <pre>
    { Diese Programmvariante greift auf die Typbibliothek von Outlook zu.
    Das hat mindestens drei Vorteile:
    1. Die Konstanten sind bereits in der Typbibliothek deklariert
    2. Die Delphi-Programmierhilfe sowie die strenge Typprüfung des
    Compilers ist wirksam.
    3. Die Ausführungsgeschwindigkeit des Programms ist höher. }

    uses ComObj, Outlook_TLB;

    var
    dwStart, dwEnd : DWord; // Ausführungszeit stoppen

    { Aufgabe 1: eMail verschicken }

    procedure TFormMain.BitBtnMailClick(Sender: TObject);
    var
    aOutlook : Application_;
    aMAPI : NameSpace;
    aOutbox : MAPIFolder;
    aMail : MailItem;
    aReci : Recipient;
    begin
    StatusBar1.SimpleText := 'eMail wird über Outlook verschickt...';
    dwStart := GetTickCount;
    Screen.Cursor := crHourglass;
    aOutLook := CoApplication_.Create;
    try
    aMAPI := aOutlook.GetNameSpace('MAPI');
    aOutbox := aMAPI.GetDefaultFolder(olFolderOutbox);
    aMail := aOutbox.Items.Add(olMailItem) as MailItem;
    aReci := aMail.Recipients.Add(EditMailAddress.Text);
    aReci.Type_ := olTo;
    // Empfänger prüfen (falls nicht bekannt -> Exception)
    aReci.Resolve;
    aMail.Subject := EditMailSubject.Text;
    aMail.Body := MemoMailBody.Text;
    // eMail senden
    aMail.Send;
    finally
    aOutlook := nil;
    Screen.Cursor := crDefault;
    end;
    dwEnd := GetTickCount;
    StatusBar1.SimpleText := Format('Ausführungszeit: %d Windows-Ticks',
    [dwEnd - dwStart]);
    end;
    </pre>

    P.S: Die Suche nach der Zeichenkette "Outlook" sollte auch hier im FORUM einige Treffer ergeben

    Comment

    Working...
    X