Класс для отправки сообщений по E-mail

Автор: Александр Уваров
22 ноября 2012 года

Класс Mail предназначен для отправки сообщений на E-Mail сервер с помощью протокола SMTP (Simple Mail Transfer Protocol).

Конструктор класса

public Mail (string Host, int Port, string User, string Password, string From, string To, string CC = “”, int CodePage = 20866);

Инициализирует параметры соединения с почтовым сервером, который позволяет отправлять сообщения по протоколу SMTP (Simple Mail Transfer Protocol).

Параметры:

  • Host – имя или IP адрес почтового сервера;
  • Port – номер порта почтового сервера;
  • User – имя учетной записи;
  • Password – пароль учетной записи;
  • From – адрес отправителя электронной почты;
  • To – адрес получателя электронной почты;
  • CC – список адресов получателей копии электронной почты, если список пуст, то передается пустая строка;
  • CodePage – кодовая страница, определяет кодировку параметров From, To, по умолчанию 20866 (koi8-r).

Формат строки представления адреса получателя и отправителя:

“<E-Mail>[,<DisplayName>]”

Формат строки представления, списка получателей копии электронной почты:

“[<E-Mail[,<E-Mail>, … , <E-Mail>]”

гдеб

  1. E-Mail – адрес электронной почты;
  2. DisplayName - отображаемое имя.

Методы класса

public bool MailSend (string Subject, string Body, string AttachFile)

Отправляет указанное сообщение на сервер SMTP, для доставки получателем.

Параметры:

  • Body – сообщение;
  • Subject – тема сообщения;
  • AttachFile – полное имя вложенного файла в сообщение или пустая строка, если его нет.

Возвращаемый результат:

  • True – сообщение отправлено успешно или False, если произошла ошибка.

public void MailClose()

Закрывает текущее соединение с почтовым сервером по протоколу SMTP. Освобождает все занятые ресурсы.

Свойства класса

public string Err { get; }

Возвращает строку с сообщением об ошибке, возникшей при отправке почтового сообщения, или пустую строку, если ошибок нет.

Пример использования класса Mail

Код:

//****************************************
// Пример использования класса Mail
//****************************************

usingSystem;
usingSM;

...

// создаем объект

Mail oSM =new Mail("67.13.256.48", 25, "ssk/cnt_notif", "adm",
 " Этот e-mail адрес защищен от спам-ботов, для его просмотра у Вас должен быть включен Javascript ,Сидоров Иван Иванович",
 " Этот e-mail адрес защищен от спам-ботов, для его просмотра у Вас должен быть включен Javascript ,Петров Алексей Николаевич");

// отправляем сообщение

if(oSM.MailSend("Тест", "Тестовое сообщение", "d:\test.txt"))
 Console.WriteLine("Сообщение отправлено");
else
 Console.WriteLine("Ошибка! "+ oSM.Err);

// закрываем соединение и освобождаем занятые ресурсы
oSM.MailClose();
...
 

Код класса

Код:

usingSystem;
usingSystem.Net;
usingSystem.Net.Mail;
usingSystem.Net.Mime;

namespace SM {

// Класс для отправки сообщений на E-Mail,
// с помощью протокола SMTP (Simple Mail Transfer Protocol)
publicclass Mail {
  private SmtpClient Client;
  private MailMessage Message;
  privatestring Error;

  //*************************************************************
  //* Function: Mail
  //* Notes: Конструктор класса
  //*

  public Mail (string Host, int Port, string User, string Password,
               stringFrom, string To, string CC ="", int CodePage =20866){
    int Index =0;
    MailAddress from;
    MailAddress to;
    NetworkCredential Credentials =new NetworkCredential(User, Password);

    this.Client=new SmtpClient(Host, Port);
    this.Client.Credentials= Credentials;
    Index =From.IndexOf(',');
    if(Index >=0){
      from=new MailAddress(From.Substring(0, Index),
                             From.Substring(Index +1),
                             System.Text.Encoding.GetEncoding(CodePage));
    }
    else{
      from=new MailAddress(From);
    }
    Index = To.IndexOf(',');
    if(Index >=0){
      to =new MailAddress(To.Substring(0, Index),
                           To.Substring(Index +1),
                           System.Text.Encoding.GetEncoding(CodePage));
    }
    else{
      to =new MailAddress(To);
    }
    this.Message=new MailMessage(from, to);
    if(!String.IsNullOrEmpty(CC)){
      this.Message.CC.Add(CC);
    }
    this.Error="";
  }

  //*** End of Mail ***********

  //*************************************************************
  //* Function: MailSend
  //* Notes: Отправляет указанное сообщение Body на сервер SMTP для
  //*        доставки получателем.
  //           Subject    - тема сообщения.
  //*          AttachFile - полное имя вложенного файла в сообщение или
  //*                       пустая строка, если его нет.
  //* Функция возвращает true, если сообщение отправлено успешно или false,
  //* в любом другом случае.
  //*

  publicbool MailSend (string Subject, string Body, string AttachFile){
    Attachment data =new Attachment(AttachFile, MediaTypeNames.Text.Plain);

    this.Error="";
    this.Message.Subject= Subject;
    this.Message.Body= Body;
    this.Message.Attachments.Add(data);
    try{
      this.Client.Send(Message);
    }
    catch(Exception e){
      this.Error= e.Message;
      returnfalse;
    }
    this.Message.Attachments.Clear();
    returntrue;
  }

  //*** End of MailSend ***********

  //*************************************************************
  //* Function: MailClose
  //* Notes: Закрывает текущее соединение с почтовым сервером по протоколу SMTP.
  //*        Освобождает все занятые ресурсы.
  //*

  publicvoid MailClose (){
    this.Client=null;
    this.Message.Dispose();
    this.Message=null;
  }

  //*** End of MailClose ***********

  // получить ошибку при передачи сообщения
  publicstring Err {
    get {
      returnthis.Error;
    }
  }

}

}

Источник: http://feedproxy.google.com/~r/codenet/read/~3/68pAGfsRZf8/

Читать комменты и комментировать

Добавить комментарий / отзыв



Защитный код
Обновить

Класс для отправки сообщений по E-mail | | 2012-12-11 23:55:27 | | Программирование | | Автор: Александр Уваров22 ноября 2012 годаКласс Mail предназначен для отправки сообщений на E-Mail сервер с помощью протокола SMTP (Simple Mail Transfer Protocol).Конструктор классаpublic Mail | РэдЛайн, создание сайта, заказать сайт, разработка сайтов, реклама в Интернете, продвижение, маркетинговые исследования, дизайн студия, веб дизайн, раскрутка сайта, создать сайт компании, сделать сайт, создание сайтов, изготовление сайта, обслуживание сайтов, изготовление сайтов, заказать интернет сайт, создать сайт, изготовить сайт, разработка сайта, web студия, создание веб сайта, поддержка сайта, сайт на заказ, сопровождение сайта, дизайн сайта, сайт под ключ, заказ сайта, реклама сайта, хостинг, регистрация доменов, хабаровск, краснодар, москва, комсомольск |
 
Поделиться с друзьями: