我有一个简单的目标,即打开一封电子邮件(在 Outlook 2016 中),其中为 Windows 10 UWP 应用程序中的多个收件人配置了“收件人”字段。
我尝试了3种方法
1)推荐的方式,如UWP示例中的demod,使用EmailMessage
var emailMessage = new Windows.ApplicationModel.Email.EmailMessage();
emailMessage.Body = "";
foreach (Person p in SelectedPeople)
{
if (string.IsNullOrEmpty(p.Email) == false)
{
var emailRecipient = new Windows.ApplicationModel.Email.EmailRecipient(p.Email);
emailMessage.To.Add(emailRecipient);
}
}
await Windows.ApplicationModel.Email.EmailManager.ShowComposeNewEmailAsync(emailMessage);
这会导致出现一个电子邮件窗口,其中收件人以逗号分隔,然后无法解析。设置允许逗号分隔符的选项似乎是一个答案,但事实证明,除非也有空格可以分隔,否则这不起作用?
2)建立一个mailto:[电子邮件受保护] /cdn-cgi/l/email-protection;[电子邮件受保护] /cdn-cgi/l/email-protectionURI 并启动它。
var uri = new Uri("mailto:[email protected] /cdn-cgi/l/email-protection;[email protected] /cdn-cgi/l/email-protection");
var success = await Windows.System.Launcher.LaunchUriAsync(uri);
但是,尝试使用多个recipitns 创建 URI 会引发 URI 主机名无效的异常
3)与上面相同,但使用方案mailto:[电子邮件受保护] /cdn-cgi/l/email-protection;[电子邮件受保护] /cdn-cgi/l/email-protection
它被正确解析为 URI,但启动时 Outlook 显示空的收件人列表。通过测试,使用 CC= 确实会在 CC 字段中显示收件人
所以,现在我想知道如何向商店应用程序的多个收件人发送电子邮件?