2010-01-09 47 views
2

我想通過C#將Outlook郵件保存爲msg格式以及附件。如何使用附件保存郵件格式外觀?

我嘗試下面的代碼

using Outlook = Microsoft.Office.Interop.Outlook; 

private void button1_Click(object sender, EventArgs e) 
{ 

Outlook.Application app = new Microsoft.Office.Interop.Outlook.Application(); 
Outlook.NameSpace ns = app.GetNamespace("MAPI"); 
Outlook.MAPIFolder inbox = ns.GetDefaultFolder(Outlook.OlDefaultFolders.olFolderInbox); 

foreach (Outlook.MailItem item in inbox.Items) 
{ 
    item.SaveAs(finename, Outlook.OlSaveAsType.olMSG); 
} 

} 

它可以在郵件保存爲味精,但除去附着部。 SaveAs方法沒有其他重載阿洛斯... :(

如果我試圖挽救從Outlook它嵌入了附件一起保存消息的消息。不知道如何可以做到這一點..?

我使用.NET Framework 3.5和2007 Outolook

回答

0

我相信,你將不得不單獨保存它們。

使用上的MailItem附件屬性通過他們把所有的附件,然後循環,並呼籲SaveAsFile ()爲每個附件。

在下面的鏈接個

例子是基本的,但它應該在C#中工作,以及

的MailItem ::附件 http://msdn.microsoft.com/en-us/library/bb207129.aspx

附件::您正在使用的文件名是什麼SaveAsFile http://msdn.microsoft.com/en-us/library/bb219926.aspx

+0

是的,這是一種可能性......我同意。但是我正在尋找一種附件保持嵌入郵件的方式。考慮一下Outlook如何保存.msg文件;該附件仍然是文件的嵌入元素......對此有任何想法..? – Amit 2010-01-09 17:19:59

2

?它是否以.msg結尾?

我做這樣的事情,它可以作爲你的描述,你希望它太:

Outlook.MailItem msg; 
foreach (object obj in f.Mapi.Items) 
{ 
    try 
    {       
     msg = obj as Outlook.MailItem; 
     // ... set file name using message attributes 
     // string fullPath = "something" + ".msg" 
     msg.SaveAs(fullPath, Outlook.OlSaveAsType.olMSG); 
    } 
} 

的原因,我在你的情況很好奇的是,我想知道我怎麼可以重現自己在做什麼:保存附件後保存郵件項目?

相關問題