在UWP应用程序和Outlook桌面之间可靠地桥接

Nic*_*ick 7 outlook uwp

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);
Run Code Online (Sandbox Code Playgroud)

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

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

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

添加附件到桌面邮件应用程序

如何使用C#for Windows App store以编程方式将文件作为电子邮件附件附加

是否可以将附件附加到mailto应用程序

通过UWP EmailManager发送电子邮件附件无法正常工作

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

++

到目前为止我的想法

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

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

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