【发布时间】:2018-03-14 01:53:59
【问题描述】:
使用以下 Microsoft 文章,我正在尝试从在我的 Windows 10 桌面上运行的 UWP 应用程序启动默认电子邮件应用程序。如果应用程序是邮件应用程序,它将被打开并将附件添加到新邮件中。
但是,如果默认电子邮件应用程序是 Outlook(在我的情况下是 Outlook 2016,但也可以使用其他版本),则不会添加附件,并且 Outlook 在新电子邮件对话后不久崩溃。也没有添加附件。
这是我正在使用的示例的链接:
https://docs.microsoft.com/en-us/windows/uwp/contacts-and-calendar/sending-email
这是我的代码
private async Task CreateEmail(string messageBody, string archiveFilePath)
{
StorageFile attachmentFile = await StorageFile.GetFileFromPathAsync(archiveFilePath);
var subject = string.Format("Sending file {0}", attachmentFile.DisplayName);
var emailMessage = new Windows.ApplicationModel.Email.EmailMessage();
emailMessage.Body = messageBody;
if (attachmentFile != null)
{
var stream = Windows.Storage.Streams.RandomAccessStreamReference.CreateFromFile(attachmentFile);
var attachment = new Windows.ApplicationModel.Email.EmailAttachment(attachmentFile.Name, stream);
emailMessage.Attachments.Add(attachment);
}
var emailRecepient = new Windows.ApplicationModel.Email.EmailRecipient("me@home.com");
emailMessage.To.Add(emailRecepient);
// call this on main thread; otherwise, no New Email box open
await Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, async () =>
{
await Windows.ApplicationModel.Email.EmailManager.ShowComposeNewEmailAsync(emailMessage);
});
}
这就是我的称呼
private void SendArchiveFile()
{
myLogger.SendArchive(path =>
{
CreateEmail("test", path);
});
}
在将邮件应用设置为默认应用的情况下运行此代码可以正常工作。
但是,将 Outlook 设置为默认应用程序运行它会崩溃 Outlook,新邮件将很快打开,没有添加附件,然后 Outlook 崩溃。
我发现很少有帖子指出你不能在不违反商店政策的情况下从 UWP 应用调用任何 Win32 应用,包括 Outlook。
但这是一个巨大的限制,因为许多企业不能仅仅因为 UWP 不兼容而改变他们的邮件系统。此外,系统应提供兼容的应用程序,例如邮件应用程序或其他已安装的兼容应用程序,而不是仅仅选择默认电子邮件应用程序,包括不支持 UWP 的应用程序,例如 Outlook。
如何处理这个问题?
【问题讨论】:
标签: uwp windows-10 windows-10-universal email-attachments xamarin.uwp