如何以编程方式从UWP App添加附件到Outlook邮件?

时间:2016-11-25 10:47:29

标签: outlook uwp windows-10 windows-10-universal uwp-xaml

我正在开发一个UWP应用程序,我想以编程方式从UWP应用程序添加一个附件到Outlook

如果有任何替代方案,请您告诉我。

期待您的回复。

2 个答案:

答案 0 :(得分:-1)

您可以使用共享合同将一些数据发送到合规应用程序(包括outlook)。它允许您与任何兼容的应用程序共享一些文本和数据。

要激活共享,您只需注册DataRequested事件并显示共享UI:

DataTransferManager.GetForCurrentView().DataRequested += OnDataRequested;
DataTransferManager.ShowShareUI();

然后,在事件处理程序中:

private async void OnDataRequested(DataTransferManager sender, DataRequestedEventArgs args)
{
    var deferral    = args.Request.GetDeferral();

    try
    {   
        args.Request.Data.Properties.Title          = "Share Title"
        args.Request.Data.Properties.Description    = "Share some data/file";
        var file                                    = await ApplicationData.Current.TemporaryFolder.GetFileAsync("myFileToShare.xxx");
        args.Request.Data.SetStorageItems(new IStorageItem[] { logFile });
    }
    catch
    {
         args.Request.FailWithDisplayText("Unable to share data");
    }
    finally
    {
        deferral.Complete();
        sender.DataRequested    -= OnDataRequested;
    }
}

完成后,系统将显示共享UI,用户可以在其中选择所需的应用程序。此应用将收到发送的数据。

答案 1 :(得分:-1)

虽然@ Vincent的回答是完美的,当你想使用Share Contract时,如果你想使用Just Email并附上文件,下面是一个简单的方法,我在我的一个应用程序中使用。

internal async void ShowEmail(string body, string subject, StorageFile attachment)
{
    EmailMessage email = new EmailMessage();
    email.Subject = subject;
    email.Body = body;

    var stream = RandomAccessStreamReference.CreateFromFile(attachment);
    email.SetBodyStream(EmailMessageBodyKind.Html, stream);

    await EmailManager.ShowComposeNewEmailAsync(email);
}

上述方法是从Here

中删除示例