Как отправить электронное письмо из приложения Windows Phone 8?

В проекте Windows Forms я использовал класс SmtpClient и MailMessage для отправки информации по электронной почте.

Есть ли аналог для Windows Phone 8?


person user2087149    schedule 19.02.2013    source источник


Ответы (6)


Вы можете использовать Microsoft.Phone.Tasks.EmailComposeTask для составления электронного письма с помощью встроенного почтового клиента:

  var task = new EmailComposeTask {To = email};
  task.Show();

В качестве альтернативы вы можете отправить данные в стороннюю службу, например SendGrid, чтобы отправить электронное письмо через API.

В Windows Phone недоступны API SMTP.

person LewisBenge    schedule 20.02.2013
comment
Спасибо за ваш ответ! - person user2087149; 20.02.2013

Это действительно просто! Это из 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();
person Reza Shayestehpour    schedule 27.09.2013
comment
можем ли мы прикрепить файл здесь, а не в пользовательском интерфейсе задачи? - person Nilesh Moradiya; 04.02.2014

Вам нужно использовать sharing функциональность. Это позволит вам создать шаблон электронной почты (установить тему, тело, получателя и т. д.) и открыть его для пользователя, чтобы он или она могли просто нажать «отправить». Нет такой вещи, как smtp-клиент, к лучшему или к худшему. Вот хорошее описание ваших вариантов отправки чего-либо из Windows Phone 8.

person Haspemulator    schedule 19.02.2013

Вы также можете использовать стороннюю библиотеку LiveMailMessage. Вы должны заплатить за это, но это позволит вам отправлять электронные письма без запуска EmailComposeTask. Это также позволит вам добавлять вложения и тому подобное, если вам нужно.

person Joel Shea    schedule 20.02.2013

Если вы разрабатываете универсальное приложение 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);
person Rem's    schedule 01.10.2014

Насколько я ищу об этом, нет System.Net.Mail не доступен в Windows Phone

Во многих других случаях (особенно в формах обратной связи) лучше подключиться к специальной веб-службе, а не использовать электронную почту.

И если вы пишете почтовый клиент и вам конкретно нужно подключиться к почтовому серверу, то в коробке ничего нет, поэтому вам нужно либо подключиться к API для конкретной службы (многие современные почтовые службы поддерживают REST-клиенты), либо реализовать SMTP самостоятельно.

Будет легко создать API для отправки Json на сервер, и там будет настроен SMTP.

person Yksh    schedule 05.08.2015
comment
это не ответ на вопрос. - person DeshDeep Singh; 05.08.2015