我使用带有“mailto”链接的 Qt 的 openUrl() 打开用户的电子邮件客户端,作为最佳答案 here演示。这适用于 Outlook,但如果用户的电子邮件客户端是 Chrome,配置为在收到 mailto: 链接时打开 gmail,则整个收件人、主题和正文最终都会出现在电子邮件的“收件人”字段中。
QDesktopServices::openUrl(QUrl("mailto:" + to + "&subject=" + subject + "&body=" + body, QUrl::TolerantMode));
我尝试先对主题和正文进行编码,但这没有帮助。任何想法如何解决这个问题或替代方法? (使用 Qt 5.9.5,但这也影响了以前的版本,例如 5.7.1。)
最佳答案
这实际上不是 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 测试了它,它可以工作。
关于c++ - Qt:使用 'mailto:' 打开用户的 gmail 电子邮件客户端失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51866978/