UWP应用程序和Outlook桌面版本之间的应用程序到应用程序通信一直存在问题 .

在UWP中创建附件,然后尝试在桌面版电子邮件客户端(如Outlook 2013或2016)中显示和使用它们时会出现问题 .

在UWP应用程序中创建电子邮件和附件并使用以下代码将其显示给用户是相对微不足道的 .

EmailMessage emailMessage = new EmailMessage();
     emailMessage.Body = "Text for mail body here";
     var attachment = new EmailAttachment("myattachment.jpg", attachmentContentsStreamRef);
     emailMessage.Attachments.Add(attachment);
     await EmailManager.ShowComposeNewEmailAsync(emailMessage);

如果Windows 10 Mail应用程序是用户的默认电子邮件客户端,则此方法有效 . 但是,如果用户将桌面电子邮件客户端设置为默认值,则无法正确生成邮件附件并显示空白电子邮件 .

这已在各种论坛上多次查询,但微软代表的一般回复似乎是“可能需要一些时间才能修复此问题 . ”

有关代表性样本,请参阅以下链

Add attachment to desktop mail app

How to attach file programatically as Email attachment using C# for Windows App store

Is it possible to attach Attachements to mailto app

Sending email attachments via UWP EmailManager not working

似乎没有解决办法,除非您使用Brokered Windows Runtime Components但这需要用户侧载您的UWP应用程序并通过Powerscript安装组件 . 在非技术用户的现实世界中不实用 .

到目前为止我的想法

如果用户使用的是基于Microsoft Web的邮件存储(例如Office 365 / Hotmail.com / Outlook.com等),则看起来可以使用Outlook Mail REST API生成邮件和附件 . 这可能是这些案例的解决方案,但在本地而不是通过远程服务器传递app-to-app似乎更合理,用户体验在很大程度上取决于客户端与服务器同步的速度 . 另一方面,如果用户's email is POP3-based we'基本上运气不好 .

或者,我推测可能为Outlook桌面版本编写一个加载项,使其能够公开UWP兼容的共享目标接口并从UWP应用程序传输附件?但是我不清楚你将如何尝试实现它 .

有没有人找到一个可行的解决方案?