Как отправить электронное письмо с вложением в универсальном приложении Windows

Как я могу отправить электронное письмо с вложением в универсальном приложении Windows (Windows Phone 8.1 и Windows 8.1)

Класс Windows.ApplicationModel.Email.EmailMessage доступен только для Windows Phone


person Nopster    schedule 26.09.2014    source источник


Ответы (3)


Не существует прямого встроенного способа отправки электронной почты в приложении Магазина Windows.

Как вы заметили, Windows.ApplicationModel.Email доступен только для приложений среды выполнения Windows Phone. Это один из недостатков универсальных приложений, когда функция доступна на одной платформе, но не на обеих.

Варианты:

  • Используйте контракт на совместное использование вместо явной принудительной отправки электронной почты. В целом это предпочтительный метод, хотя в некоторых случаях он не работает.
  • Подключиться к веб-сервису. Часто это лучшее решение для обратной связи, так как приложение может предоставить настраиваемую форму и не должно подталкивать пользователя к внешнему приложению. Вы также можете использовать веб-службу, которая будет пересылать электронную почту на стороне сервера.
  • Подключайтесь к почтовому серверу напрямую и реализуйте SMTP, POP, IMAP и т. д. Как правило, это лучше всего подходит для приложений, специфичных для службы, которые могут предоставлять свою собственную цель общего доступа.
  • Не имеет значения для вашего случая, но если вам не нужно вложение, вы можете запустить mailto: URI
person Rob Caplan - MSFT    schedule 27.09.2014

Вы можете использовать MailMessage email = new MailMessage(); из System.Net.Mail-Namesapce

person Greenhorn    schedule 26.09.2014
comment
System.Net.Mail также недоступен в Windows Universal 8.1. - person Yuchen; 06.01.2016

Вы можете использовать SMTP для отправки электронной почты в Windows 8:

SmtpMail oMail = new SmtpMail("TryIt");
oSmtp = new SmtpClient();
oMail.From = new MailAddress("[email protected]");
oMail.To.Add(new MailAddress("[email protected]"));
oMail.Subject = "Subject ";
oMail.TextBody = "Here is body";
SmtpServer oServer = new SmtpServer("smtp.gmail.com");
oServer.User = "[email protected]";
oServer.Password = "123456";
oServer.ConnectType = SmtpConnectType.ConnectSSLAuto;
await oSmtp.SendMailAsync(oServer, oMail);
person Hassaan    schedule 29.09.2014