В проект на 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.
Няма налични SMTP API на Windows Phone.
Наистина е просто! Това е от 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. Освен това ще ви позволи да добавяте прикачени файлове и подобни неща, ако имате нужда.
Ако разработвате универсално 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 ще бъде конфигуриран там.