В проекте 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 недоступны API SMTP.
Это действительно просто! Это из 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.
Вы также можете использовать стороннюю библиотеку LiveMailMessage. Вы должны заплатить за это, но это позволит вам отправлять электронные письма без запуска EmailComposeTask. Это также позволит вам добавлять вложения и тому подобное, если вам нужно.
Если вы разрабатываете универсальное приложение WinRT для Windows Phone, вы можете использовать пространство имен 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.