如何从WinRT/Windows应用商店应用程序发送电子邮件?

12 c# windows-8 windows-runtime winrt-xaml winrt-async

我正在开发Windows应用商店应用程序(Windows 8).

我需要根据存储在应用程序数据中的数据和地址发送电子邮件,而无需用户输入数据或地址.

实现它的正确/简单方法是什么?

EitanB

Agh*_*oub 30

你可以试试

var mailto = new Uri("mailto:?to=recipient@example.com&subject=The subject of an email&body=Hello from a Windows 8 Metro app."); 
await Windows.System.Launcher.LaunchUriAsync(mailto);
Run Code Online (Sandbox Code Playgroud)

  • 首选的方式并不总是分享魅力.当您想要从应用程序共享特定内容时,将使用共享超级按钮.例如,当我在我的应用程序中有联系人列表时,当我选择联系人并按分享时,我会假设我可以分享此联系人的联系方式,而不是向他发送邮件.给他发邮件我会选择联系人并按下使用mailto的应用栏中的邮件图标:并全屏启动邮件应用程序. (4认同)

小智 9

正确的方法是使用共享.您的应用应该创建HTML文档或文本并共享它.用户将从共享魅力中选择邮件,HTML /文本将成为电子邮件的正文.

有关详情,请参阅此处...

http://msdn.microsoft.com/en-us/library/windows/apps/xaml/hh973055.aspx


Gre*_*inn 6

这是用于mailto:link的正确语法(与上面的其他示例不同,mailto:不正确..)

var mailto = new Uri("mailto:yourname@email.com?subject=" + subject + "&body=" + body);
await Launcher.LaunchUriAsync(mailto);
Run Code Online (Sandbox Code Playgroud)

mailto:方法的问题是,如果用户没有与mailto关联的客户端程序:什么都不会发生.

最可靠的方法是使用某种Web服务或WCF服务.在Windows 8上考虑"正确"方式时使用Share Charm并不是最好的,因为用户可能仍然没有安装电子邮件客户端,例如,如果他们依赖gmail.com来发送电子邮件.