【问题标题】:How do I send an email from a Windows Phone 8 application?如何从 Windows Phone 8 应用程序发送电子邮件?
【发布时间】:2013-02-04 06:08:12
【问题描述】:

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

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

【问题讨论】:

    标签: c# windows-phone-8 smtpclient mailmessage


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

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

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

      Windows Phone 上没有可用的 SMTP API。

      【讨论】:

        【解决方案3】:

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

        【讨论】:

          【解决方案4】:

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

          【讨论】:

          • 我们可以在此处而不是在任务 UI 中附加文件吗?
          【解决方案5】:

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

          【讨论】:

            【解决方案6】:

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

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

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

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

            【讨论】:

            • 这不是问题的答案。
            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2014-07-31
            • 1970-01-01
            • 2013-03-13
            • 1970-01-01
            • 1970-01-01
            • 2010-12-20
            相关资源
            最近更新 更多