用例很简单。在一定的时间点,我需要能够与如何使用用户的默认电子邮件客户端弹出撰写/创建邮件对话框?
- 领域的,像,主题已经充满了一定的应用确定的值显示给用户他所熟悉的撰写电子邮件对话框(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