В проекте Windows Forms я использовал класс SmtpClient и MailMessage для отправки информации по электронной почте.
Есть ли эквивалент для Windows Phone 8?
В проекте Windows Forms я использовал класс SmtpClient и MailMessage для отправки информации по электронной почте.
Есть ли эквивалент для Windows Phone 8?
Вы можете использовать Microsoft.Phone.Tasks.EmailComposeTask
для создания электронной почты с помощью встроенного почтового клиента:
var task = new EmailComposeTask {To = email};
task.Show();
В качестве альтернативы вы можете отправлять данные сторонней службе, например SendGrid
, чтобы отправить электронное письмо через API.
В Windows Phone нет доступных SMTP API.
Это действительно просто! Это от 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();
Вам нужно использовать функциональность sharing
. Это позволит вам создать шаблон электронной почты (установить тему, тело, получатель и т.д.) И открыть его пользователю, чтобы он или она могли просто нажать "отправить". Там нет такой вещи, как клиент smtp, к лучшему или к худшему. Здесь хорошее описание ваших вариантов отправки чего-либо с Windows Phone 8.
Вы также можете использовать стороннюю библиотеку LiveMailMesage. Вы должны заплатить за это, но это позволит вам отправлять электронные письма без запуска EmailComposeTask. Он также позволит вам добавлять вложения и т.д., Если вам нужно.
Если вы разрабатываете универсальное приложение 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);
Насколько я ищу об этом нет System.Net.Mail не доступен в Windows Phone
Для многих других случаев (особенно форм обратной связи) вы можете лучше подключиться к выделенному веб-сервису, а не обходить электронную почту.
И если вы пишете почтовый клиент и, в частности, должны подключиться к почтовому серверу, в коробке ничего нет, поэтому вам нужно будет подключиться к API-интерфейсу службы (многие современные почтовые службы поддерживают клиенты REST ) или реализовать SMTP самостоятельно.
Будет легко создать API для отправки Json на сервер, и там будет настроен SMTP.