2

我正在开发一个地铁应用程序,我有要求:-

我需要通过电子邮件从我的应用程序向最终用户发送一些信息,我正在通过代码以编程方式为该电子邮件生成信息或内容。

我所做的第一件事是以这种方式在我的应用程序中启动 mailto 应用程序:-

using Windows.System;

//starts the default mail app with a subject, cc, bcc, and body
Launcher.LaunchUriAsync(new Uri("mailto:windows8devs@almostbeta.com?subject=Code Request&cc=kevin@almostbeta.com&bcc=admin@almostbeta.com&body=Hi!"));

然后我发现如果您以这种方式启动邮件应用程序,我无法通过代码以编程方式将附件附加到此邮件应用程序。

其次,我从事共享合同,我可以将我的应用程序生成的内容共享到其他应用程序(也像 mailto 应用程序......)

我能够成功分享我的内容,这意味着:-

使用这个我可以将一个文件(我通过代码生成)附加到mailto应用程序,如果我指定邮件地址并发送它,它工作正常并成功交付)

但是现在我发现如果我使用共享合同来共享文件,我无法设置我共享内容的邮件应用程序的主题或正文。

所以我的疑问是:-

1)首先,如果我使用共享合同共享文件,有什么方法可以设置我共享内容的邮件应用程序的主题或正文?

2)我是否错过了任何其他选择/是否有任何其他可能的方式使用 Metro 应用程序发送电子邮件?

3)如果不是,我可以通过什么解决方法来实现我的目标(发送一封电子邮件,通过该电子邮件我可以通过代码以编程方式附加文件并设置正文,主题)

提前致谢。

4

2 回答 2

2

我有很多好消息要告诉你:

  1. 您可以打开 Win-RT 邮件应用程序并使用 mailto 准备电子邮件。

    Launcher.LaunchUriAsync(new Uri("mailto:[email]?subject=[subject]&body=[body]?"));

  2. 见 1

  3. 最好的选择是将文件上传到某处并发送电子邮件,其中包含指向电子邮件正文中附件的链接

对于其他邮件属性,请查看:

http://email.about.com/library/misc/blmailto_encoder.htm

希望能帮助到你!

于 2012-11-11T14:55:07.990 回答
0

不幸的是,在使用份额合约时,由份额目标决定如何使用您设置的值。你对此没有任何控制权。正如您所注意到的,当您添加附件时,内置邮件客户端不会使用其他共享值。

我能想到的唯一选择是使用 SMTP 直接从您的代码发送邮件。缺点是SmtpClient.NET 中没有适用于 Windows 应用商店应用程序的类,而且我也无法快速找到您可以使用的此功能的另一个 .NET 实现,因此您似乎只能靠自己了。同样在这种情况下,您需要用户在您的应用程序中配置他的 SMTP 服务器。

考虑到所有这些,最好的方法可能是在您的应用程序的在线组件中发送电子邮件,即您创建一个服务并将其托管在某个地方。然后,您将邮件的数据从应用程序发送到您的服务,并使用常规 .NET 从那里发送邮件SmtpClient

于 2012-11-10T05:39:20.280 回答