如何在Windows 10 Mail App中打开包含附件的新电子邮件

Jon*_*n N 14 .net c# windows email mapi

我正在尝试为我的C#/ .Net应用添加一项功能,以便用户通过电子邮件发送文件.当用户安装了Outlook时,我可以成功使用Outlook互操作API来完成我想要的操作.但是,在新的Windows 10安装中,我无法弄清楚如何在默认的Mail应用程序中打开带有附件的电子邮件,该应用程序来自Windows应用商店.

我试过了:

  1. 使用EML文件,按照/sf/answers/1791039771/

    • Mail应用程序不会注册自己以打开EML文件
  2. 使用MAPI32.dll等(我使用了https://github.com/metageek-llc/inSSIDer-2/blob/master/MetaScanner/UnhandledException/MapiMailMessage.cs中的代码)

    • 弹出一个对话框,说明没有注册电子邮件程序.邮件应用程序似乎不与MAPI交互
  3. 使用mailto:链接.

    • 邮件程序打开,但不尊重Attachment =或Attach =参数

  • Windows.ApplicationModel.Email.EmailMessage似乎只能在手机上使用.

  • 我不想使用SMTP发送消息服务器端.

  • 我还尝试了与Mail应用程序关联的MS-UNISTORE_EMAIL:和OUTLOOKMAIL:url方案,它们的行为与mailto相同:

  • 似乎没有任何方法可以从命令行启动Mail应用程序

STO*_*ORM 0

请尝试以下示例

 private async void SendEmailButton_Click(object sender, RoutedEventArgs e)
        {
            EmailMessage emailMessage = new EmailMessage();
            emailMessage.To.Add(new EmailRecipient("***@***.com"));
            string messageBody = "Hello World";
            emailMessage.Body = messageBody;
            StorageFolder MyFolder = Windows.ApplicationModel.Package.Current.InstalledLocation;
            StorageFile attachmentFile =await MyFolder.GetFileAsync("MyTestFile.txt");
            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);
            }
            await EmailManager.ShowComposeNewEmailAsync(emailMessage);           
        }
Run Code Online (Sandbox Code Playgroud)

ShowComposeNewEmailAsny(...)部分是神奇的部分。