如何通过指定的电子邮件客户端发送消息?

时间:2012-08-24 06:51:27

标签: c++ qt

我有一个应用程序,需要将格式化的消息和地址发送到电子邮件客户端(例如Lotus Notes,Outlook等 - 最好是前者)。然后,客户端应该在后台邮寄该消息而不进行任何干预(即,没有人必须按下客户端的发送)。

我收到消息,我有地址,我知道如何选择默认的电子邮件客户端。

如何发送预先格式化的消息和地址(我猜一些MAIL:TO)并让客户端自动发送消息?

该应用程序使用C ++和Qt。我可能需要调用客户端的一些API。他们暴露这些吗?

1 个答案:

答案 0 :(得分:0)

这在某种程度上取决于平台,可以用两种方法之一来处理 方式:有一个邮件服务器进程,你连接到(使用 插座);或者,您将输出传输到邮件客户端(mailmailx 在Unix下)。管道到邮件客户端通常更简单,但我不是 确定Windows机器有一个随时可用。 (你说你有一个 默认邮件客户端。以什么形式?如果是URL,则需要使用 插座;如果它是本地程序的名称,管道。)

在这两种情况下,您可能都想创建一个streambuf来处理 输出,以便使用所有格式化的可能性 std::ostream

如果你想在后台完成,最可靠的方法是创建一个 单独的进程:将数据写入文件,然后使用system执行 邮件客户端完成后删除文件(小批量脚本)。 或者,如果您确定,可以在单独的线程中执行此操作 在邮件发送之前,您的流程不会被杀死。