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网络的邮件存储(例如Office 365 / Hotmail.com / Outlook.com等),则看起来可以使用{{3来生成邮件和附件}}。这可能是这些案例的解决方案,但在本地而不是通过远程服务器传递app-to-app似乎更合理,用户体验在很大程度上取决于客户端与服务器同步的速度。另一方面,如果用户的电子邮件是基于POP3的,我们基本上没有运气。
或者,我推测可能为Outlook桌面版本编写一个加载项,使其能够公开UWP兼容的共享目标接口并从UWP应用程序传输附件?但是我不清楚你将如何尝试实现它。
有没有人找到解决这个问题的可行办法?