13

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

是否有适用于 Windows Phone 8 的等价物?

4

6 回答 6

8

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

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

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

Windows Phone 上没有可用的SMTP API。

于 2013-02-20T00:40:51.830 回答
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();
于 2013-09-27T09:00:34.973 回答
3

您需要使用sharing功能。它将允许您创建一个电子邮件模板(设置主题、正文、收件人等)并将其打开给用户,因此他或她只需单击“发送”。没有 smtp 客户端之类的东西,无论好坏。下面是对从 Windows Phone 8 发送内容的选项的很好描述。

于 2013-02-19T23:21:18.180 回答
2

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

于 2013-02-20T12:05:52.210 回答
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);
于 2014-10-01T12:51:26.577 回答
0

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

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

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

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

于 2015-08-05T09:25:44.903 回答