Qt:使用'mailto:'打开用户的电子邮件客户端失败

Qt: Use 'mailto:' to open user's email client fails for gmail

本文关键字:电子邮件 客户端 失败 用户 mailto 使用 Qt      更新时间:2023-10-16

我使用Qt的openUrl((和"mailto"链接来打开用户的电子邮件客户端,正如这里最重要的答案所示。这适用于 Outlook,但如果用户的电子邮件客户端配置为在收到 mailto: 链接时打开 gmail,则整个收件人、主题和正文都位于电子邮件的"收件人"字段中。

QDesktopServices::openUrl(QUrl("mailto:" + to + "&subject=" + subject + "&body=" + body, QUrl::TolerantMode));

我尝试先对主题和正文进行编码,但这没有帮助。任何想法如何解决此问题或替代方法?(使用 Qt 5.9.5,但这也会影响以前的版本,例如 5.7.1。

这实际上不是与Qt相关的问题。问题出在HTML代码中。

根据这个答案,您应该将&subject更改为?subject才能使其正常工作。

所以你的代码应该是:

QDesktopServices::openUrl(QUrl("mailto:" + to + "?subject=" + subject + "&body=" + body, QUrl::TolerantMode));

我刚刚用Qt 5.10.0和Chrome 68.0.3440.106测试了它,它可以工作。