Mewex |
Дата: Понедельник, 10.04.2017, 21:59 | Сообщение # 1
|
STEAM SELLER
Сообщений: 475
Статус: Offline
|
Класс 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.
Параметры:
Host – name или IP сервера; Port – Порт сервера; User – имя учётки; Password – пароль учётки; From – адрес отправителя почты; To – адрес получателя почты; CC – список адресов получателей копии электронной почты, если список пуст, то передается пустая строка; CodePage – определяет данную кодировку параметров From, To, по умолчанию 20866 (koi8-r). Формат строки представления адреса получателя и отправителя:
“<E-Mail>[,<DisplayName>]” Формат строки представления, список получателей копии электронной почты:
“[<E-Mail[,<E-Mail>, … , <E-Mail>]”
где
E-Mail – адрес почты; 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 //****************************************
using System; using SM;
...
// создаем объект
Mail oSM = new Mail("67.13.256.48", 25, "ssk/cnt_notif", "adm", "Sidorov@fsk.sdd,Сидоров Иван Иванович", "Petrov@fsk.sdd,Петров Алексей Николаевич");
// отправляем сообщение
if (oSM.MailSend("Тест", "Тестовое сообщение", "d:\test.txt")) Console.WriteLine("Сообщение отправлено"); else Console.WriteLine("Ошибка! " + oSM.Err);
// закрываем соединение и освобождаем занятые ресурсы oSM.MailClose(); ... Код класса
Код using System; using System.Net; using System.Net.Mail; using System.Net.Mime;
namespace SM {
// Класс для отправки сообщений на E-Mail, // с помощью протокола SMTP (Simple Mail Transfer Protocol) public class Mail { private SmtpClient Client; private MailMessage Message; private string Error;
//************************************************************* //* Function: Mail //* Notes: Конструктор класса //*
public Mail (string Host, int Port, string User, string Password, string From, 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, //* в любом другом случае. //*
public bool 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; return false; } this.Message.Attachments.Clear(); return true; }
//*** End of MailSend ***********
//************************************************************* //* Function: MailClose //* Notes: Закрывает текущее соединение с почтовым сервером по протоколу SMTP. //* Освобождает все занятые ресурсы. //*
public void MailClose () { this.Client = null; this.Message.Dispose(); this.Message = null; }
//*** End of MailClose ***********
// получить ошибку при передачи сообщения public string Err { get { return this.Error; } }
}
} Добавлено (10.04.2017, 21:59) --------------------------------------------- Ап
|
|
|
|