使用一些 html 从 Qt 中打开默认邮件应用程序
Open default mail app from within Qt with some html
如何在 Qt 应用程序中从用户的邮件应用程序打开默认撰写邮件 window?
我发现有一些 class 用于带有 Qtmobility 的移动设备,但我无法访问此 class,因为我正在开发桌面应用程序。
我还发现人们使用带有 mailto 的 URL sheme。这对我不起作用,因为 html 在某些时候被剥离,可能是因为 url 太长并且 html 没有在 html 中呈现,而是在纯文本。
如何在 Qt 中预先编写邮件并打开默认邮件应用程序?
Qt 中没有内置的方法来发送 HTML 格式的电子邮件。 Mailto 方法适用于未格式化的文本,例如
QDesktopServices::openUrl(QUrl("mailto:?to=recipient@example.com&subject=The subject of an email&body=Here is some email body text", QUrl::TolerantMode));
但是这个 cannot be used 用于 html 格式的文本。
如果您绝对需要 HTML,则需要查看适用于您的平台的选项:
- MAPI for Windows
- AppleScript and Mail.app 在 OSX
- Mail 在 Linux
老话题但是:
您也可以像我一样尝试另一种方式,使用网络服务。
我有一个 php 网络服务,可以将电子邮件发送到特定的邮件地址,所以我只需将消息数据发送到该网络服务,它将为我处理其余的事情。
这是为了让您自己使用大多数时候用户没有的桌面软件(反正我们都使用 gmail,所以您知道……)。
在 php 中:
// sending mail to my@address.com
$headers ='From: sender@address.com'."\n";
$headers .="Reply-To: replyto@address.com"."\n";
$headers .='Content-Type: text/plain; charset="iso-8859-1"'."\n";
$headers .='Content-Transfer-Encoding: 8bit';
mail('my@address.com', '[TAG] mail subject', "some body text.", $headers);
注意安全!
如何在 Qt 应用程序中从用户的邮件应用程序打开默认撰写邮件 window?
我发现有一些 class 用于带有 Qtmobility 的移动设备,但我无法访问此 class,因为我正在开发桌面应用程序。
我还发现人们使用带有 mailto 的 URL sheme。这对我不起作用,因为 html 在某些时候被剥离,可能是因为 url 太长并且 html 没有在 html 中呈现,而是在纯文本。
如何在 Qt 中预先编写邮件并打开默认邮件应用程序?
Qt 中没有内置的方法来发送 HTML 格式的电子邮件。 Mailto 方法适用于未格式化的文本,例如
QDesktopServices::openUrl(QUrl("mailto:?to=recipient@example.com&subject=The subject of an email&body=Here is some email body text", QUrl::TolerantMode));
但是这个 cannot be used 用于 html 格式的文本。
如果您绝对需要 HTML,则需要查看适用于您的平台的选项:
- MAPI for Windows
- AppleScript and Mail.app 在 OSX
- Mail 在 Linux
老话题但是:
您也可以像我一样尝试另一种方式,使用网络服务。 我有一个 php 网络服务,可以将电子邮件发送到特定的邮件地址,所以我只需将消息数据发送到该网络服务,它将为我处理其余的事情。
这是为了让您自己使用大多数时候用户没有的桌面软件(反正我们都使用 gmail,所以您知道……)。 在 php 中:
// sending mail to my@address.com
$headers ='From: sender@address.com'."\n";
$headers .="Reply-To: replyto@address.com"."\n";
$headers .='Content-Type: text/plain; charset="iso-8859-1"'."\n";
$headers .='Content-Transfer-Encoding: 8bit';
mail('my@address.com', '[TAG] mail subject', "some body text.", $headers);
注意安全!