【发布时间】:2017-12-04 17:58:37
【问题描述】:
在 Stackoverflow 以及许多其他网站中,有很多帖子展示了如何通过调用默认邮件客户端来发送带有附件的电子邮件。当您在 Windows 资源管理器中右键单击任何文件并从上下文菜单中选择“发送至”->“邮件收件人”时,几乎相同。
我在网上找到的很多这些示例都使用 MAPI,但它们都不起作用。还有一些使用 ShellExecute 和使用 mailto: 协议的示例。后者对我有用,但在我尝试发送附件时不起作用。附件根本不会出现在 Outlook 的“新邮件”窗口中。 MAPI 示例再次不适用于附件。我收到奇怪的错误,比如我是要允许还是拒绝。
如果 Windows 能够做到,那意味着其他应用程序也应该能够做到。有谁知道适用于 Windows 10 的 API 吗?
【问题讨论】:
-
我知道你已经标记了 C++,但是如果你可以利用它,.NET 的 System.Net.Mail 工作得很好 - 并且完全支持附件。
-
是否允许或拒绝对我来说听起来像是一个安全提示,而不是一个奇怪的错误。
-
@GSerg,即使在我允许之后,它也不会继续。并且API调用返回0,表示没有错误...
-
@STLDeveloper,我很确定 .Net 可以工作:) 问题是我的应用程序在 Qt 中,我不想向 .Net 添加依赖项。
-
我不清楚 Windows 是否可以使用任意邮件客户端来做到这一点。 Explorer 中的 SendTo 调用一个 COM 对象,该对象适用于各种 Outlook 风格。 codeproject.com/Articles/3839/SendTo-mail-recipient
标签: c++ email winapi windows-10