Отправка почты(E-mail) на C# .NET Framework с вложением SmtpClient MailMessage | Блог программиста C# .Net, C++

Отправить почту можно на прямую работая с SMTP сервером, отправляя ему команды, а можно воспользоваться готовыми библиотеками, которые делают то же самое. Ну есть ещё пару способов, но они не такие уж и интересные.

Помню раньше, на C++ я реализовывал отправку почты через сокеты, отправляя команды на SMTP сервер, если найду то выложу.

Существует одна проблема, дело в том, что все SMTP сервера требуют авторизации, для отправки почты, а некоторые ещё и требуют некоторую спецификацию, заключающую в том, что бы сначала получить почту, а потом только отправить. И порой бывает, что везде по разному. Работая напрямую с SMTP сервером будет достаточно сложно это учесть, поэтому, лучше воспользваться специальными библиотеками.

В Microsoft .NET Framework есть специальная библиотека, через которую и можно отправить электронную почту E-mail.

Итак начнём, для начало нужно подключить пространства имён

//E-mail using
using System.Web;
using System.Net;
using System.Net.Mail;
using System.Net.Mime;

А вот уже и сама отправка, привёл пример, для отправки письма с вложением.

//Авторизация на SMTP сервере
SmtpClient Smtp = new SmtpClient("smtp.mail.ru", 25);
Smtp.Credentials = new NetworkCredential("login", "pass");
//Smtp.EnableSsl = false;
 
//Формирование письма
MailMessage Message = new MailMessage();
Message.From = new MailAddress("from@mail.ru");
Message.To.Add(new MailAddress("to@mail.ru"));
Message.Subject = "Заголовок";
Message.Body = "Сообщение";
  //Прикрепляем файл string file = "C:\\file.zip"; Attachment attach = new Attachment(file, MediaTypeNames.Application.Octet);
  // Добавляем информацию для файла ContentDisposition disposition = attach.ContentDisposition; disposition.CreationDate = System.IO.File.GetCreationTime(file); disposition.ModificationDate = System.IO.File.GetLastWriteTime(file); disposition.ReadDate = System.IO.File.GetLastAccessTime(file);
  Message.Attachments.Add(attach);
 
Smtp.Send(Message);//отправка

Как видно, тут идёт отправка через почтовый SMTP сервер Mail.ru. Но у Mail.ru есть несколько серверов mail.ru, bk.ru, list.ru, поэтому если почтовый ящик для авторизации на bk.ru, то и в SmtpClient нужно писать smtp.bk.ru

google_bmarks-4849034 bobrdobr-5369690 delicious-7861153 technorati-9121322 news2-ru-9959075 rumark-5985481 memori-3100886 moemesto-6593387 Что можно ещё почитать:

Запись опубликована в рубрике Без рубрики. Добавьте в закладки постоянную ссылку.