2013-03-21 13 views
5
Datei

aus dem Code Nach skizzierte hereSpeicher ‚MailItem‘ Objekt als msg

Wie kann ich das MailItem Objekt als .msg-Datei speichern?

Oder eine andere Weise, dies zu setzen ist: Wie kann ich eine .msg Datei mit den Attributen (Absender, cc, bcc, Betreff, Körper usw.) eines MailItem Objekts erstellen?

Antwort

5
mailItem.SaveAs(savepath); 

Wo MailItem ist die Outlook MailItem und die savepath ist zum Beispiel:

String savepath = Environment.GetFolderPath(Environment.SpecialFolder.Desktop) + @"\" + filename + ".msg"; 

Wenn Sie das MailItem Subjekt als Dateinamen verwenden möchten Sie möglicherweise ungültige Zeichen für Dateinamen entfernen möchten:

String filename = mailItem.Subject; 
string invalid = new string(Path.GetInvalidFileNameChars()) + new string(Path.GetInvalidPathChars()); 

foreach (char c in invalid) 
{ 
    filename = filename.Replace(c.ToString(), ""); 
} 
+0

danke Toon, Dmitry bekam es zuerst aber – Mikk

+1

Gern geschehen, ich habe gerade ein ziemlich großes Outlook-Add-In selbst geschrieben, das auch diesen Code enthält. –

+0

Ich wähle Ihre Antwort für die zusätzlichen Informationen über das Problem mit ungültigen Zeichen, wenn Sie den Betreff als Dateinamen verwenden. Danke nochmal Toon! – Mikk

2

Verwenden Sie MailItem.SaveAs (..., olMsg) - siehe http://msdn.microsoft.com/en-us/library/office/bb175283(v=office.12).aspx.

Oder möchten Sie eine MSG-Datei von Grund auf ohne ein tatsächliches MailItem-Objekt in einem der Outlook-Ordner erstellen? In diesem Fall können Sie Redemption und seine RDOSession.CreateMessageFromMsgFile Methode verwenden (gibt RDOMail Objekt zurück).

+0

Danke Dmitry! das habe ich erwartet >> Benutze MailItem.SaveAs (..., olMsg)! – Mikk

+0

wäre schön, wenn das in C# wäre. Derzeit ist dies COM-Objekt basiert. –

+0

Was genau haben Sie Probleme beim Übersetzen in C#? –