2

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

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

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

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

4

1 回答 1

0

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

在这两种情况下,您可能都需要创建一个streambuf来处理输出,以便使用 std::ostream.

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

于 2012-08-24T08:31:13.930 回答