C# E-Mail mit Anhang und Signatur öffnen

-Rayz-

Lieutenant
Registriert
Okt. 2010
Beiträge
897
Hallo,

ich generiere aus einem Objekt eine XML Datei. Anschließend öffne ich das Standard E-Mail Programm und hinterlege vorher den Betreff, Body, Empfänger und die Datei.
Das klappt mit MapiMailMessage auch alles ganz gut soweit. Allerdings funktioniert leider eine Sache nicht und zwar wird meine hinterlegte Signatur in der neuen E-Mail nicht angezeigt.Innerhalb von der Mapi finde ich auch keine Funktion die das können würde.

Gibt es irgendwie andere Möglichkeiten an die Signatur zu kommen? E-Mail Client ist der David von TobitSoftware.

C#:
MapiMailMessage message = new MapiMailMessage(Subject, Body);
            message.Recipients.Add(Email);
            message.Files.Add(_filePath);
            message.();

Vielen Dank
 
über Google finde ich aber nur so Zeugs wo beschrieben steht, dass es nicht geht... zumindest nicht mit Mapi.
Da wir eine Software einsetzen, welche das beschriebene Verhalten kann, muss es ja eine Möglichkeit geben. (außerhalb von Mapi)

Evtl. ist Mapi generell der falsche Ansatz aber mit mailto bekomme ich keine Anhänge.
 
Mir persönlich wäre kein Weg bekannt wie man das so machen könnte. Vielleicht liest er die Signatur aus dem Programm aus und hängt sie selbst wieder dran?
 
Ergo müsste ich mal fragen, wie ich an die Signatur vom David Client komme. Nun gut diese wird ja sicher irgendwo gespeichert.
 
Um das hier noch aufzulösen.
Die Signature bzw. die komplette E-Mail ist ja nur ein HTML Konstrukt. Also habe ich die Signatur + StandardText für den Body als html Datei gespeichert und diese lade ich mit ReadAllText.
Leider unterstützt MapiMailMessage kein UTF-8. Das Problem lässt sich aber lösen in dem man den Body auf null setzt und die html Datei als File übergibt.
Wird die E-Mail geöffnet, so wurde der Body mit der html Datei ausgetauscht. Da ich aber im Anhang nur die Xml Datei haben will, lösche ich anschließend die html wieder.

Code:
var dict = Directory.GetCurrentDirectory() + @"\Resources\body.html";
                MapiMailMessage message = new MapiMailMessage(Subject, null);
                message.Recipients.Add(Email);
                message.Files.Add(_filePath);        
                message.Files.Add(dict);

                message.Files.RemoveAt(1);
                message.ShowDialog();


Umständlich aber es funktioniert.

PS: es reicht auch den Body auf null zu setzen und es wird die Standardsignatur genommen... :p
 
Zuletzt bearbeitet:
Zurück
Oben