Отправить почту можно на прямую работая с 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