我正在開發一個應用程序UWP,我想一個附件從UWP應用程序編程如何從UWP應用程序添加一個附件到Outlook郵件程序?
請求添加到Outlook,你要請我知道,如果任何的替代品出現。
期待您的回覆。
我正在開發一個應用程序UWP,我想一個附件從UWP應用程序編程如何從UWP應用程序添加一個附件到Outlook郵件程序?
請求添加到Outlook,你要請我知道,如果任何的替代品出現。
期待您的回覆。
您可以使用共享合同,一些數據發送到兼容的應用程序(包括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,其中用戶可以選擇他想要的應用程序。這個應用程序將收到發送的數據。
雖然文森特@的答案是完美的,當你想使用分享合同,如果你想使用不僅僅是電子郵件和附加文件,下面是一個簡單的方法,我在我的應用程序之一使用。
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
這不會工作,如果(a)你有Outlook作爲默認的電子郵件應用程序(或任何其他的Win32應用程序)和(b)未啓動的Outlook以前或(c)如果您嘗試添加附件 – pixel