Qt:使用“ mailto:”打开用户的电子邮件客户端无法使用gmail

时间:2018-08-15 21:54:07

标签: c++ qt mailto

我使用Qt的openUrl()和“ mailto”链接来打开用户的电子邮件客户端,如here的最高答案所示。这对于Outlook来说效果很好,但是如果用户的电子邮件客户端被Chrome配置为在收到mailto:链接时打开gmail,则整个收件人,主题和正文都将落在电子邮件的“收件人”字段中。

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

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

1 个答案:

答案 0 :(得分:4)

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

根据this answer,应将&subject更改为?subject,以使其正常工作。

因此您的代码应为:

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

我刚刚使用 Qt 5.10.0 Chrome 68.0.3440.106 进行了测试,并且可以正常工作。