Как отправить электронное письмо с приложения Windows Phone 8?
В проекте Windows Forms я использовал класс SmtpClient и MailMessage для отправки информации по электронной почте.
Есть ли эквивалент для Windows Phone 8?
Ответы
Ответ 1
Вы можете использовать Microsoft.Phone.Tasks.EmailComposeTask
для создания электронной почты с помощью встроенного почтового клиента:
var task = new EmailComposeTask {To = email};
task.Show();
В качестве альтернативы вы можете отправлять данные сторонней службе, например SendGrid
, чтобы отправить электронное письмо через API.
В Windows Phone нет доступных SMTP API.
Ответ 2
Это действительно просто! Это от MSDN:
Сначала вы должны добавить:
using Microsoft.Phone.Tasks;
к вашему коду, а затем для персонализации и перехода к почтовому приложению добавьте это:
EmailComposeTask emailComposeTask = new EmailComposeTask();
emailComposeTask.Subject = "message subject";
emailComposeTask.Body = "message body";
emailComposeTask.To = "[email protected]";
emailComposeTask.Cc = "[email protected]";
emailComposeTask.Bcc = "[email protected]";
emailComposeTask.Show();
Ответ 3
Вам нужно использовать функциональность sharing
. Это позволит вам создать шаблон электронной почты (установить тему, тело, получатель и т.д.) И открыть его пользователю, чтобы он или она могли просто нажать "отправить". Там нет такой вещи, как клиент smtp, к лучшему или к худшему. Здесь хорошее описание ваших вариантов отправки чего-либо с Windows Phone 8.
Ответ 4
Вы также можете использовать стороннюю библиотеку LiveMailMesage. Вы должны заплатить за это, но это позволит вам отправлять электронные письма без запуска EmailComposeTask. Он также позволит вам добавлять вложения и т.д., Если вам нужно.
Ответ 5
Если вы разрабатываете универсальное приложение Windows Phone для Windows, вы можете использовать пространство имен Windows.ApplicationModel.Email.EmailMessage
, поскольку пространство имен Microsoft.Phone.Tasks.EmailComposeTask
не работает в приложении WinRT.
Затем этот код используется для создания и запуска нового письма.
// Create your new email message.
var em = new EmailMessage() ;
// Add as much EmailRecipient in it as you need using the following method.
em.To.Add(new EmailRecipient("[email protected]"));
em.Subject = "Your Subject...";
em.Body = "Your email body...";
// You can add an attachment that way.
//em.Attachments.Add(new EmailAttachment(...);
// Show the email composer.
await EmailManager.ShowComposeNewEmailAsync(em);
Ответ 6
Насколько я ищу об этом нет System.Net.Mail не доступен в Windows Phone
Для многих других случаев (особенно форм обратной связи) вы можете лучше подключиться к выделенному веб-сервису, а не обходить электронную почту.
И если вы пишете почтовый клиент и, в частности, должны подключиться к почтовому серверу, в коробке ничего нет, поэтому вам нужно будет подключиться к API-интерфейсу службы (многие современные почтовые службы поддерживают клиенты REST ) или реализовать SMTP самостоятельно.
Будет легко создать API для отправки Json на сервер, и там будет настроен SMTP.