2009-11-30 122 views
0

如何使用Windows API调用以编程方式在默认电子邮件客户端(例如Outlook)中打开新的消息窗口?我需要包含一个附件,并且希望以“富文本”(即非简单)格式指定默认消息体。使用默认电子邮件程序创建新电子邮件

+0

不久前,mailto:协议中的附件选项已从所有电子邮件服务器中删除。猖獗的滥用。您需要使用电子邮件的自动化界面才能完成此操作。 – 2009-12-01 20:29:16

回答

2

ShellExecute解决方案很好对于没有附件的简单消息,但是如果您想要更多地控制流程,您可以尝试MAPI;特别参见MAPISendMail函数和MapiMessage结构。

对于更复杂的需求,还有扩展的MAPI,但是我没有在MSDN上找到任何关于它的文档。然而this似乎是扩展MAPI的一个很好的包装。

2

我认为你可以使用ShellExecute来做到这一点。附件应该用作参数:类似这样的东西,但我不记得确实:“mailto:emial @ something?subject = subject?body = body?attachment = ...”

+1

我认为应该是HTTP风格的查询参数:'mailto:email @ something?subject = subject&body = body&attachment = ...' – Thomas 2009-12-01 10:20:13

+0

是的,你是对的。 – sinek 2009-12-01 12:36:31

+0

较新版本的Outlook现在在&attachment参数上引发错误。 – jac 2009-12-02 16:54:45