我有一个应用程序,需要将格式化的消息和地址发送到电子邮件客户端(例如Lotus Notes,Outlook等 - 最好是前者)。然后,客户端应该在后台邮寄该消息而不进行任何干预(即,没有人必须按下客户端的发送)。
我收到消息,我有地址,我知道如何选择默认的电子邮件客户端。
如何发送预先格式化的消息和地址(我猜一些MAIL:TO)并让客户端自动发送消息?
该应用程序使用C ++和Qt。我可能需要调用客户端的一些API。他们暴露这些吗?
答案 0 :(得分:0)
这在某种程度上取决于平台,可以用两种方法之一来处理
方式:有一个邮件服务器进程,你连接到(使用
插座);或者,您将输出传输到邮件客户端(mail
或mailx
在Unix下)。管道到邮件客户端通常更简单,但我不是
确定Windows机器有一个随时可用。 (你说你有一个
默认邮件客户端。以什么形式?如果是URL,则需要使用
插座;如果它是本地程序的名称,管道。)
在这两种情况下,您可能都想创建一个streambuf
来处理
输出,以便使用所有格式化的可能性
std::ostream
。
如果你想在后台完成,最可靠的方法是创建一个
单独的进程:将数据写入文件,然后使用system
执行
邮件客户端完成后删除文件(小批量脚本)。
或者,如果您确定,可以在单独的线程中执行此操作
在邮件发送之前,您的流程不会被杀死。