C#. Отправка почты через SMTP

Всем привет! Сейчас мы посмотрим, как можно отправить письмо из нашего же приложения.

Для начало добавим следующее пространство имен

using System.Net.Mail;


Непосредственно отправка сообщения:

                

                SmtpClient client = new SmtpClient("YOUR SMTP SERVER"); //например, "smtp.gmail.com"
            
                MailAddress from = new MailAddress("MailFrom@gmail.com", "Тема Письма", System.Text.Encoding.UTF8);
                MailAddress to = new MailAddress("MailTo@gmail.com");
            
                MailMessage message = new MailMessage(from, to);
                message.BodyEncoding = System.Text.Encoding.UTF8;
                message.SubjectEncoding = System.Text.Encoding.UTF8;

                message.CC.Add("CopyTo@gmail.com"); // копия письма
                message.Bcc.Add("BccTo@gmail.com");  // скрытая копия

                message.Subject = "Тема Письма";
 
                message.Body = "Содержимое письма";
                client.Send(message);

При необходимости также можно указать порт сервера:

client.Port = 25; // указываете нужный порт

Либо следующим образом

SmtpClient client = new SmtpClient("YOUR SMTP SERVER", 25);

Если для доступа к SMTP требуются логин и пароль:

client.Credentials = new System.Net.NetworkCredential
                        ("Login", "P@ssw0rd");

3 комментария:

  1. Спасибо, помогло!

    ОтветитьУдалить
  2. Есть вопрос, а как указать несколько адресов, которым пойдет рассылка?
    message.CC.Add("CopyTo@gmail.com", "CopyTo@gmail11111111.com" ); ?

    ОтветитьУдалить
    Ответы
    1. например,
      foreach(mail in mails)
      {
      message.CC.Add(mail);
      }

      ну или можно вот так

      var mails = "CopyTo1@gmail.com,CopyTo2@gmail.com,CopyTo3@gmail.com";
      message.CC.Add(mails);

      Удалить