用例很簡單。在一定的時間點,我需要能夠與如何使用用戶的默認電子郵件客戶端彈出撰寫/創建郵件對話框?
- 領域的,像,主題已經充滿了一定的應用確定的值顯示給用戶他所熟悉的撰寫電子郵件對話框(Outlook或其他)。
- 電子郵件也會隨附一個附件。
郵件不應該發送,除非用戶明確地確定它。
我曾經在OL'VB6的日子回來過..現在不知道現在怎麼做..我只記得這很容易。
託管的應用程序,C#,.NET 3.0+
更新#1:是啊,似乎例如mailto對附件的支持刪除(如安全風險嗎?)。我試過
您需要包含ShellExecute簽名as described here。所有我從這個得到的是一個5 SE_ERR_ACCESSDENIED
和2只爲一些品種
string sMailToLink = @"mailto:[email protected]?subject=Hey&body= yeah yeah yeah";
IntPtr result = ShellExecute(IntPtr.Zero, "open", sMailToLink, "", "", ShowCommands.SW_SHOWNORMAL);
Debug.Assert(result.ToInt32() > 32, "Shell Execute failed with return code " + result.ToInt32());
同樣MailtoLink用的Process.Start工程完美...但只要你不可不提的附件。
System.Diagnostics.Process.Start(sMailToLink);
其他的選項是使用Outlook對象模型來做到這一點..但我已經被告知,這需要您根據所安裝的Outlook的確切版本添加組件引用。如果用戶不喜歡電子郵件,這也會爆炸。
下一個選項是Mapi和Mapi33 ..狀態仍在進行中。耳朵仍然接受建議。
耶發現這個通過谷歌搜索的文件。然而,ShellExecute現在不想和我說話。 :) – Gishu 2009-01-16 12:29:10