6

在我的 Windows 8 应用商店应用程序中,我在页面上有一个发送电子邮件按钮,用户可以单击它并向我们发送电子邮件以进行一些一般查询。

我需要在电子邮件正文中预加载一些文本,但我似乎无法为其添加换行符。我试过Environment.NewLine"\r\n"。它们都不起作用。

var mailto = new Uri("mailto:?to=james.jones@example.com&subject=Hello world&body=Hi," + Environment.NewLine + "Can you please ..."); 
await Windows.System.Launcher.LaunchUriAsync(mailto);

当我运行它时,我得到“嗨,你能...”。换行符被省略。

4

3 回答 3

8

尝试使用"%0d%0a"作为你的换行符,如

"Hi,%0d%0aCan you please..."

这是一个 URL 编码的 ASCII CR/LF 序列。这对我来说适用于内置的邮件应用程序,但你没有任何特别保证它适用于用户将来可能安装的任何邮件应用程序。

于 2012-10-20T00:41:50.643 回答
5

它不起作用的原因是因为您正在启动 Uri,Uris 要求它们的内容是 UrlEncoded / UrlEncodable。在 Environment.Newline 等的情况下,你会得到一个无效的 Uri。

您可以通过 UrlEncoding 环境换行符来解决这个问题,如下所示:

System.Net.WebUtility.UrlEncode(Environment.NewLine)
于 2013-03-05T17:43:22.483 回答
0

您也许应该考虑使用共享合同将您的内容共享到您的邮件应用程序。好处:使用您的软件的用户可以将其共享给其他应用程序,而不仅仅是电子邮件。

于 2012-10-21T09:51:12.283 回答