Есть ли способ узнать, успешно ли ретранслируется электронная почта с C #? - PullRequest
3 голосов
/ 17 сентября 2010

Есть ли способ узнать, была ли электронная почта успешно передана с C #?

Я использую System.Net.Mail.

Ответы [ 3 ]

2 голосов
/ 17 сентября 2010

Используйте сервис, такой как Почтовый штемпель , который позволяет отправлять через smtp или API и может уведомлять ваше приложение о сбойных сообщениях с помощью веб-хука.

Использование почтовых штемпелей PowerMTA , шлюз электронной почты, способный обнаруживать нежелательную маркировку, отскок и т. Д. Вы можете напрямую переходить через PowerMTA, но Postmark прекрасно с этим справляется.

2 голосов
/ 17 сентября 2010

установить для свойства DeliveryNotificationOptions MailMessage значение
System.Net.Mail.DeliveryNotificationOptions.OnSuccess;

или попробуйте:

static void ReadReceipts()
{
//create the mail message
MailMessage mail = new MailMessage();

//set the addresses
mail.From = new MailAddress("me@mycompany.com");
mail.To.Add("you@yourcompany.com");

//set the content
mail.Subject = "This is an email";
mail.Body = "this is the body content of the email.";

//To request a read receipt, we need add a custom header named 'Disposition-Notification-To'
//in this example, read receipts will go back to 'someaddress@mydomain.com'
//it's important to note that read receipts will only be sent by those mail clients that 
//a) support them
//and
//b)have them enabled.
mail.Headers.Add("Disposition-Notification-To", "<someaddress@mydomain.com>");


//send the message
SmtpClient smtp = new SmtpClient("127.0.0.1");
smtp.Send(mail);
}
2 голосов
/ 17 сентября 2010

Единственный способ узнать, получил ли кто-то электронное письмо, - попросить его сообщить вам каким-либо образом (прочитайте получение или подобное).

Именно поэтому во всех схемах подтверждения по электронной почте всегда есть, что вам нужно нажать на ссылку, чтобы подтвердить, что это ваш электронный адрес.

...