我使用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等以前的版本。)
答案 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 进行了测试,并且可以正常工作。