在Windows窗体项目中,我使用SmtpClient和MailMessage类来通过电子邮件发送信息。
是否有Windows Phone 8的等效版本?
答案 0 :(得分:8)
您可以使用Microsoft.Phone.Tasks.EmailComposeTask
使用内置邮件客户端撰写电子邮件:
var task = new EmailComposeTask {To = email};
task.Show();
或者,您可以将数据发布到第三方服务,例如SendGrid
以通过API发送电子邮件。
Windows Phone上没有 SMTP API。
答案 1 :(得分: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();
答案 2 :(得分:3)
您需要使用sharing
功能。它允许您创建电子邮件模板(设置主题,正文,收件人等)并将其打开给用户,这样他或她就可以单击“发送”。无论好坏,都没有smtp客户端这样的东西。 Here很好地描述了从Windows Phone 8发送内容的选项。
答案 3 :(得分:2)
您还可以使用第三方库LiveMailMesage。您必须为此付费,但它允许您在不启动EmailComposeTask的情况下发送电子邮件。如果需要,它还允许您添加附件和类似的东西。
答案 4 :(得分:2)
如果您正在开发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);
答案 5 :(得分:0)
据我搜索没有System.Net.Mail在Windows Phone中不可用
对于许多其他情况(尤其是反馈表单),您最好连接到专用的Web服务,而不是通过电子邮件绕过。
如果您正在编写电子邮件客户端并且特别需要连接到邮件服务器,那么框中没有任何内容,因此您需要连接到特定于服务的API(许多现代邮件服务支持REST客户端) )或自己实施SMTP。
创建一个将Json发送到服务器的API很容易,并且将在那里配置SMTP。