Win8/WinRT - 如何在电子邮件正文中添加换行符

Jus*_* XL 6 email windows-8 windows-runtime windows-store-apps

在我的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);
Run Code Online (Sandbox Code Playgroud)

当我运行它时,我得到"嗨,你能不能......".换行符被省略.

Tra*_*vis 8

尝试使用"%0d%0a"您的换行符,如

"Hi,%0d%0aCan you please..."
Run Code Online (Sandbox Code Playgroud)

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


Tri*_*ith 5

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

您可以通过UrlEncoding the Environment Newline来解决这个问题:

System.Net.WebUtility.UrlEncode(Environment.NewLine)
Run Code Online (Sandbox Code Playgroud)