KostyeFromHelen
17. Отправить письмо на C#
28.12.2011 09:26:58

Напишем программку, которая будет отправлять письмо на почтовый ящик. Для этого нам понадобится следующая ссылка на сборку: using System.Net.Mail; И для того, чтобы можно было использовать потоки: using System.Threading;

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

string mailBody = string.Format("Здравсвуйте {0}, вы добавили статью на сайт Земля для тебя! За что мы вас благодарим. Если ваша статья проходит по требованиям, то вскором времени вы сможете увидеть её на нашем сайте. Спасибо!", author); // это текст письма. Ничего необычного. Переменная author = TextBox1.Text;

String smtpHost = "SMTP.mail.RU"; //Адрес SMTP-сервера. Я использовал smtp сервер mail.ru

int smtpPort = 25; //Порт SMTP-сервера. Стандартный для mail.ru

String smtpUserName = "****@mail.ru"; //Логин. Моя ящик, от лица которого будет приходить письмо.

String smtpUserPass = "*******"; //Пароль к моему ящику.

SmtpClient client = new SmtpClient(smtpHost, smtpPort);//Создание подключения

client.Credentials = new NetworkCredential(smtpUserName, smtpUserPass); //Дословно - удостоверение личности. Мол подходит ли пароль к ящику и так далее.

String msgFrom = "*****@mail.ru"; //Адрес для поля "От"

String msgTo = email; //Адрес для поля "Кому" (адрес получателя). Переменная email, это тоже textbox, где написал ящик автора.

String msgSubject = "Спасибо за статью!"; //Тема письма

String msgBody = mailBody; //Текст письма, который писали выше(для удобства)

MailMessage message = new MailMessage(msgFrom, msgTo, msgSubject, msgBody); //Создание сообщения автору.

MailMessage message2 = new MailMessage(msgFrom, msgFrom, "Добавлена статья", "На earth4you.ru добавлена статья"); //Создание сообщение самому себе, чтобы узнать, что кто-то добавил статью.

try

{

//Отсылаем сообщение, если всё удачно.

client.Send(message);

Thread.Sleep(1000); // Между сообщениями ждём 1 секунду

client.Send(message2);

}

catch

{

Label2.Text = "Письмо не отправлено."; //Если по каким-то причинам произошёл сбой.

}

 

 

Вот и всё, ничего сложного. Куда сложнее отправлять письма напрямую через прокси :)

 




Теги: письмо на C# | C# | smtpmail


 



Программируем на C#, интересные статьи, книги, музыка; Костя Карпов.