【问题标题】:Email Sending Task in Windows Phone Universal AppWindows Phone 通用应用程序中的电子邮件发送任务
【发布时间】:2014-07-31 23:48:57
【问题描述】:

我正在尝试为 Windows Phone 通用应用程序编写电子邮件发送代码。这是我在事件处理程序中编写的代码:

Windows.ApplicationModel.Email.EmailMessage email = new Windows.ApplicationModel.Email.EmailMessage();
email.Subject = "Good morning";
email.Body = "Hello, how are you?";

var emailRecipient = new Windows.ApplicationModel.Email.EmailRecipient(email.Address);

email.To.Add(emailRecipient);

await Windows.ApplicationModel.Email.EmailManager.ShowComposeNewEmailAsync(email);

此代码适用于我的 Windows Phone 8.1 应用程序。但它不适用于通用应用程序。我必须添加任何参考吗?有没有办法让它在通用应用程序中工作?

非常感谢。 :)

【问题讨论】:

  • 那么错误是什么?参考还是方法?
  • 该方法是异步方法。但问题是我在 Windows.ApplicationModel.Email.EmailMessage 中遇到错误。当我声明: var emailMessage = new Windows.ApplicationModel.Email.EmailMessage();我得到一个错误。 Windows.ApplicationModel.Email.EmailMessage 行中的电子邮件下方有一条红线。错误提示 - “类型或名称空间名称 'Email' 不存在于名称空间 'Windows.ApplicationModel' 中(您是否缺少程序集引用?)”
  • 请阅读我的回答。

标签: windows-8.1 windows-phone-8.1 win-universal-app


【解决方案1】:

在 Windows 应用商店应用中,不支持 Windows.ApplicationModel.Email 命名空间。

EmailMessage class in MSDN

您可以使用 ma​​ilto 协议发送邮件,并使用 LaunchUriAsync 方法。像这样:

await Launcher.LaunchUriAsync(
    new Uri(
        "mailto:someemail@somedomain.com?subject=SomeSubject&body=mail content"
        ));

【讨论】:

  • 非常感谢。 :) 你真是个救命恩人。尊重你。 @Chris Shao
  • mailto 协议虽然不支持附件
  • 我在该页面上没有看到任何表明这不适用于 8.x 商店应用程序的内容。此处的文档:msdn.microsoft.com/en-us/library/windows/apps/… 声明同一 Windows.ApplicationModel.Email 命名空间中的 emailmanager 需要 8.x 或 8.x 电话。
【解决方案2】:

在UWP开发中,很多代码还是和Windows Phone 8.1/Windows Store App一样。如下图发送带附件的邮件。

EmailMessage email = new EmailMessage();
email.To.Add(new EmailRecipient("test@developerpublish.com"));
email.Subject = "Blog pos`enter code here`t by @isenthil";
var file = await GetTextFile();
email.Attachments.Add(new EmailAttachment(file.Name, file));
await EmailManager.ShowComposeNewEmailAsync(email);

【讨论】:

  • 这不起作用,因为不支持 Windows.ApplicationModel.Email 命名空间。
  • 这是我在几乎所有你的答案中找到的唯一合理的答案style,虽然它可能解决不了OP问题,但至少还可以。如果你能这样回答所有其他答案就好了。
  • 谢谢。我会改进更多。
猜你喜欢
  • 1970-01-01
  • 2013-02-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多