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

How can I send a message via a specified email client?

本文关键字:客户端 消息 电子邮件 何通过      更新时间:2023-10-16

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

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

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

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

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

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

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