使用客户端的电子邮件应用程序发送附件附件

Dav*_*eer 12 c++ mailto email qt attachment

我需要在本地安装的胖客户端应用程序(Qt/C++)在客户端的计算机上生成可立即发送的电子邮件:

  • 此消息必须包含相对较小(15K - 200K)二进制文件的内容.
  • 在生成此消息时,我的许多用户都将断开连接,因此电子邮件可能需要在稍后的时间内保留在发件箱中.
  • 此应用程序将在Windows,Mac OS X和各种Linux发行版(Ubuntu/Debian和Fedora的官方支持)上运行,并且不要求需要安装特定的电子邮件客户端.

我已经尝试过了:

  • 打开mailto:使用链路QDesktopServices::openUrl()attach(或attachment)参数.但这些参数并不是协议的正式部分,有些客户端(尤其是Outlook)会忽略它们.
  • 使用Base64对文件进行编码,并将其作为链接body参数的一部分添加mailto:.但mailto链接的长度被某些电子邮件客户端(再次,特别是Outlook)截断,因此这不起作用.

当您从应用程序中发送图片时,Google Picasa可以实现此目的(至少在Windows上;未检查其他操作系统).它会创建一个包含附件和一些预填充文本的消息.然后,您可以编辑消息并在方便时发送.他们是如何做到这一点的任何想法?

Pio*_*ost 7

您可以创建一个.eml文件并打开它,只要在系统中注册了任何电子邮件客户端来处理具有此扩展名的文件,就可以为您提供所需的效果.我确信这不像mailto:计划那样普遍,但如果mailto:不适合你,我认为这可能是第二个尝试的最佳选择.

来自http://www.coolutils.com/Formats/EML

由于EML文件的创建符合行业RFC 822标准,因此它们可用于大多数电子邮件客户端,服务器和应用程序.除了Microsoft Outlook Express,还可以使用大多数电子邮件客户端打开EML文件,例如Microsoft Outlook,Microsoft Entourage,Mozilla Thunderbird,Apple Mail和IncrediMail.

附注
当我在Picasa中单击"电子邮件"时,我会在对话框中选择要向其发送电子邮件的应用程序(Thunderbird或Google Mail).这意味着Picasa知道用于发送电子邮件的特定电子邮件客户端,并且可以使用特定于所选电子邮件客户端的自定义方法发送电子邮件.这当然只是猜测,但可能是Picasa让用户选择电子邮件客户端,因为没有通用的方法可以做你所要求的.