Подтвердить что ты не робот

Отправка вложений электронной почты через UWP EmailManager не работает

Отправка вложения из универсального приложения со следующим кодом не работает, почему?

        Dim emailMessage As New EmailMessage()
        emailMessage.[To].Add(New EmailRecipient("[email protected]"))
        emailMessage.Subject = "Test"
        emailMessage.Body = "Hello World"

        Dim localAppFolder = Windows.Storage.ApplicationData.Current.LocalFolder
        Dim file = Await localAppFolder.CreateFileAsync("SomeFile.txt", Windows.Storage.CreationCollisionOption.ReplaceExisting)
        Await Windows.Storage.FileIO.WriteTextAsync(file, "aaaa")
        Dim fileRef = RandomAccessStreamReference.CreateFromFile(file)
        emailMessage.Attachments.Add(New EmailAttachment(file.Name, fileRef))
        Await EmailManager.ShowComposeNewEmailAsync(emailMessage)

To, тема и тело отображаются в Outlook, но вложение отсутствует: Скриншот Outlook

4b9b3361

Ответ 1

Я считаю, что это потому, что Outlook является настольным приложением. Как я понял, EmailManager.ShowComposeNewEmailAsync использует mailto: protocal для запуска приложения почтового клиента и использования общего доступа для предоставления содержимого электронной почты.

Если вы выбираете приложение почтового магазина, когда запускается диалог выбора приложения по умолчанию, вы сможете увидеть вложение следующим образом: введите описание изображения здесь

Если вы ранее выбрали приложение Desktop Outlook как значение по умолчанию для протокола mailto, вам необходимо изменить приложение по умолчанию для ассоциации mailto: protocol на панели управления.

Ранее ShowComposeNewEmailAsync работает только для приложения Windows для работы с Windows. И он не обновляется в документе, потому что он не включает поддержку win 10.

В Windows 10 mobile он работает без проблем. Но на рабочем столе Windows вы должны выбрать приложение для магазина.