C# – E-Mail mit Outlook erstellen

Veröffentlicht von

Eine E-Mail erzeugen und anzeigen.

Zuerst binden wir Outlook ein:

using Outlook = Microsoft.Office.Interop.Outlook;

Vorher sollten wir die Referenz darauf dem Projekt hinzufügen:

Anschließend können wir eine E-Mail erzeugen, ein Beispiel mit Anhang:

var app = new Outlook.Application();
Outlook.MailItem mailItem = app.CreateItem(Outlook.OlItemType.olMailItem);

//Empfänger festlegen, mit ; getrennt
mailItem.To = "andy.dunkel@ekiwi.de";

mailItem.Subject = "Betreff";

//das Format der E-Mail, z.B. Plain oder HTML
mailItem.BodyFormat = Outlook.OlBodyFormat.olFormatPlain;

//der Textinhalt, ansonsten gibt es auch noch den HTML-Body
mailItem.Body = "Ich bin ein Textinhalt";

//Anhang anfügen
mailItem.Attachments.Add("c:\\datei.log", Outlook.OlAttachmentType.olByValue, Type.Missing, Type.Missing);

//E-Mail anzeigen
mailItem.Display(false);

Fertig, die E-Mail wird angezeigt, der Anwender kann diese ergänzen und dann auch abschicken.

4 Kommentare

  1. Moin,
    die Vorgehensweise funktioniert einwandfrei. Habe damit intern für unsere Abteilung ein kleines „Ticketsystem“ geschrieben. Jetzt würde ich noch gerne einen Log dafür machen. Gibt es eine Möglichkeit, dass Outlook einen Wert zurückgibt in dem steht ob die E-Mail tatsächlich abgeschickt wurde?

    Mit freundlichen Grüßen
    Hagen

  2. Leider steigt das Programm in der Zeile
    Outlook.MailItem mailItem = app.CreateItem(Outlook.OlItemType.olMailItem);
    mit Fehler aus:
    System.InvalidCastException: „Das COM-Objekt des Typs „Microsoft.Office.Interop.Outlook.ApplicationClass“ kann nicht in den Schnittstellentyp „Microsoft.Office.Interop.Outlook._Application“ umgewandelt werden
    Verweise auf Outlook ist gesetzt, Outlook ist auch geöffnet.
    Irgendeine Idee?

    1. Du könntest das Outlook.MailItem mailItem = app.CreateItem(Outlook.OlItemType.olMailItem); mal als „var mailItem“ deklarieren und schauen ob es dann weiter geht.

      Gruß
      Andy

Kommentar hinterlassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert