如何在Windows Phone 8应用程序中发送电子邮件?

13
在 Windows Forms 项目中,我使用了 SmtpClient 和 MailMessage 类来通过电子邮件发送信息。 在 Windows Phone 8 中是否有相应的等效物?
6个回答

8

这很简单!以下内容来自MSDN

首先,您需要添加:

    using Microsoft.Phone.Tasks;

将以下代码添加到您的代码中,然后进行个性化设置并转到邮件应用程序:

    EmailComposeTask emailComposeTask = new EmailComposeTask();

    emailComposeTask.Subject = "message subject";
    emailComposeTask.Body = "message body";
    emailComposeTask.To = "recipient@example.com";
    emailComposeTask.Cc = "cc@example.com";
    emailComposeTask.Bcc = "bcc@example.com";

    emailComposeTask.Show();

我们能否在这里附加文件而不是在任务界面中? - Nilesh Moradiya

8
您可以使用Microsoft.Phone.Tasks.EmailComposeTask来使用内置邮件客户端撰写电子邮件:
  var task = new EmailComposeTask {To = email};
  task.Show();

或者您可以将数据发布到第三方服务,比如SendGrid通过API发送电子邮件。

Windows Phone上没有可用的SMTP API。


3

您需要使用 共享 功能。它将允许您创建电子邮件模板(设置主题、正文、收件人等),并向用户打开它,以便他或她只需点击“发送”即可。好消息是,没有smtp客户端这样的东西。 在这里有一个很好的描述,介绍了从Windows Phone 8发送内容的选项。


2

您还可以使用第三方库LiveMailMesage。虽然需要付费,但它可以让您在不启动EmailComposeTask的情况下发送电子邮件。如果需要,它还可以让您添加附件等功能。


2

如果您正在开发一款通用的WinRT Windows Phone应用程序,您可以使用Windows.ApplicationModel.Email.EmailMessage命名空间作为Microsoft.Phone.Tasks.EmailComposeTask命名空间在WinRT应用程序中无法使用。

然后,使用以下代码创建并启动新邮件。

// Create your new email message.
var em = new EmailMessage() ;

// Add as much EmailRecipient in it as you need using the following method.
em.To.Add(new EmailRecipient("yourname@yourdomain.com"));
em.Subject = "Your Subject...";
em.Body = "Your email body...";
// You can add an attachment that way.
//em.Attachments.Add(new EmailAttachment(...);

// Show the email composer.
await EmailManager.ShowComposeNewEmailAsync(em);

0

根据我的搜索结果,Windows Phone 中没有可用的 System.Net.Mail

对于许多其他情况(尤其是反馈表单),您最好通过连接到专用的 Web 服务来解决问题,而不要绕道使用电子邮件。

如果您正在编写一个邮件客户端,并且需要直接连接到邮件服务器,那么系统中并没有内置的支持,所以您要么需要连接到特定的 API 服务(许多现代邮件服务支持 REST 客户端),要么自己实现 SMTP。

创建一个 API 来发送 Json 数据到服务器并在那里进行 SMTP 配置将非常容易。


那不是问题的答案。 - DeshDeep Singh

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接