我有一个应用程序需要将格式化的消息和地址发送到电子邮件客户端(例如 Lotus Notes、Outlook 等 - 最好是前者)。然后,客户端应在后台发送该消息而无需任何干预(即,任何人都不必在客户端中按下发送按钮)。
我有消息,我有地址,我知道如何选择默认电子邮件客户端。
如何发送预先格式化的消息和地址(我猜是一些 MAIL:TO)并让客户端自动发送消息?
该应用程序使用 C++ 和 Qt。我可能需要调用客户端的一些 API。他们会暴露这些吗?
最佳答案
这在某种程度上依赖于平台,可以通过以下两种方式之一来处理
方法:有一个邮件服务器进程,您可以连接到该进程(使用
socket );或者,您将输出通过管道传输到邮件客户端(mail
或 mailx
在 Unix 下)。到邮件客户端的管道通常更简单,但我不是
确保 Windows 机器有一个现成的。 (你说你有一个
默认电子邮件客户端。以什么形式?如果是 URL,则需要使用
socket ;如果它是本地程序的名称,则为管道。)
在这两种情况下,您可能希望创建一个 streambuf
来处理
输出,为了使用所有的格式化可能性
std::ostream
。
如果你想在后台做,最可靠的方法是创建一个
单独进程:将数据写入文件,然后使用system
执行
邮件客户端并在完成后删除文件(一个小批处理脚本)。
或者,如果您确定
在邮件发送之前,您的进程不会被终止。
关于c++ - 如何通过指定的电子邮件客户端发送消息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12104475/