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

在Windows窗体项目中,我使用SmtpClient和MailMessage类来通过电子邮件发送信息。

是否有Windows Phone 8的等价物?

您可以使用Microsoft.Phone.Tasks.EmailComposeTask使用内置邮件客户端撰写电子邮件:

  var task = new EmailComposeTask {To = email}; task.Show(); 

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

Windows Phone上没有可用的SMTP API。

这真的很简单! 这是来自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(); 

您需要使用sharingfunction。 它允许您创建电子邮件模板(设置主题,正文,收件人等)并将其打开给用户,这样他或她就可以单击“发送”。 无论好坏,都没有smtp客户端这样的东西。 这里有一个很好的描述你从Windows Phone 8发送东西的选项。

您还可以使用第三方库LiveMailMesage 。 您必须为此付费,但它允许您在不启动EmailComposeTask的情况下发送电子邮件。 如果需要,它还可以让您添加附件和类似的东西。

如果您正在开发Universal 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); 

至于我搜索这个没有System.Net.Mail在Windows Phone中不可用

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

如果您正在编写电子邮件客户端并且特别需要连接到邮件服务器,那么框中没有任何内容,因此您需要连接到特定于服务的API(许多现代邮件服务支持REST客户端)或实现SMTP自己。

创建一个API以将Json发送到服务器将很容易,并且将在那里配置SMTP。