Задача отправки электронной почты в универсальном приложении Windows Phone

Я пытался написать код отправки электронной почты для универсального приложения Windows Phone. Это код, который я написал в своем обработчике событий:

Windows.ApplicationModel.Email.EmailMessage email = new Windows.ApplicationModel.Email.EmailMessage();
email.Subject = "Good morning";
email.Body = "Hello, how are you?";

var emailRecipient = new Windows.ApplicationModel.Email.EmailRecipient(email.Address);

email.To.Add(emailRecipient);

await Windows.ApplicationModel.Email.EmailManager.ShowComposeNewEmailAsync(email);

Этот код работает для моего приложения Windows Phone 8.1. Но это не работает в универсальном приложении. Должен ли я добавить какую-либо ссылку? Есть ли способ заставить его работать в универсальном приложении?

Большое спасибо. :)


person Tanvir Sourov    schedule 11.06.2014    source источник
comment
Так в чем ошибка? ссылка или метод?   -  person Chris Shao    schedule 11.06.2014
comment
Метод является асинхронным методом. Но проблема в том, что я получаю сообщение об ошибке в Windows.ApplicationModel.Email.EmailMessage. Когда я объявляю: var emailMessage = new Windows.ApplicationModel.Email.EmailMessage(); Я получаю сообщение об ошибке. Под строкой электронной почты в Windows.ApplicationModel.Email.EmailMessage находится красная линия. Ошибка гласит: Тип или имя пространства имен «Электронная почта» не существует в пространстве имен «Windows.ApplicationModel» (вам не хватает ссылки на сборку?)   -  person Tanvir Sourov    schedule 11.06.2014
comment
Пожалуйста, прочитайте мой ответ.   -  person Chris Shao    schedule 11.06.2014


Ответы (2)


В приложении Магазина Windows пространство имен Windows.ApplicationModel.Email не поддерживается.

См. класс EmailMessage в MSDN.

Вы можете отправлять почту, используя протокол mailto и метод LaunchUriAsync. так:

await Launcher.LaunchUriAsync(
    new Uri(
        "mailto:[email protected]?subject=SomeSubject&body=mail content"
        ));
person Chris Shao    schedule 11.06.2014
comment
Спасибо большое. :) Ты такая живая заставка. Уважение к вам. @Крис Шао - person Tanvir Sourov; 11.06.2014
comment
хотя протокол mailto не поддерживает вложение - person Yuchen; 06.01.2016
comment
Я не вижу на этой странице ничего, что предполагало бы, что это не работает для приложений магазина 8.x. Документация здесь: msdn. microsoft.com/en-us/library/windows/apps/ указывает телефон 8.x или 8.x, необходимый для менеджера электронной почты в том же пространстве имен Windows.ApplicationModel.Email. - person David Hollowell - MSFT; 04.11.2016

В разработке UWP многие коды остались такими же, как и в Windows Phone 8.1/Windows Store App. Как показано ниже, отправьте электронное письмо с вложением.

EmailMessage email = new EmailMessage();
email.To.Add(new EmailRecipient("[email protected]"));
email.Subject = "Blog pos`enter code here`t by @isenthil";
var file = await GetTextFile();
email.Attachments.Add(new EmailAttachment(file.Name, file));
await EmailManager.ShowComposeNewEmailAsync(email);
person Eng Soon Cheah    schedule 31.10.2015
comment
Это не работает, так как пространство имен Windows.ApplicationModel.Email не поддерживается. - person Yuchen; 06.01.2016
comment
Это единственный разумный ответ style, который я нашел среди почти всех ваших ответов, хотя он может и не решить проблему ОП, но, по крайней мере, в порядке. Если бы вы только могли ответить так на все остальные ответы. - person Ian; 21.03.2016
comment
Спасибо. Я улучшу больше. - person Eng Soon Cheah; 21.03.2016