使用 QDesktopServices::openUrl 发送带换行符的邮件

Sending mail with line breaks using QDesktopServices::openUrl

我尝试使用 Qt 发送一封电子邮件,其中包含准备好的主题、收件人和正文。邮件在系统默认的邮件客户端打开。我正在使用 KMail 和 Qt 5.5 在 Linux 上进行测试。

这是我打算使用的代码:

QDesktopServices::openUrl(QUrl("mailto:?to=test@test.com&subject=Test&body=line1%0D%0Aline2", QUrl::TolerantMode));

邮件window打开,主题和收件人都可以。不幸的是,正文中的换行符不起作用。我也试过 <br>, \n, \r\n 但其中 none 有效。我还尝试了其他构建 QUrl 的方法,但情况只会变得更糟。

这似乎不是 KMail 的问题,因为当将以下内容写入 HTML 文档时,在 firefox 中打开它并单击浏览器中的 link,它完全符合我的要求(包括正文中的换行符):

<a href="mailto:?to=test@test.com&subject=test&body=line1%0D%0Aline2">test</a>

如何解决换行问题?

更新: kmail "mailto:?to=test@test.com&subject=test&body=line1%0D%0Aline2" 也不起作用。似乎是与 KMail 相关的问题。人们告诉我上面的语法适用于 thunderbird。

原来这是一个 KMail 错误:https://bugs.kde.org/show_bug.cgi?id=366981