Класс для отправки сообщений по 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>]”
гдеб
- 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
Код:
// Пример использования класса 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.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/
Дайджест новых статей по интернет-маркетингу на ваш email
Новые статьи и публикации
- 2024-11-26 » Капитан грузового судна, или Как начать использовать Docker в своих проектах
- 2024-11-26 » Обеспечение безопасности ваших веб-приложений с помощью PHP OOP и PDO
- 2024-11-22 » Ошибки в Яндекс Вебмастере: как найти и исправить
- 2024-11-22 » Ошибки в Яндекс Вебмастере: как найти и исправить
- 2024-11-15 » Перенос сайта на WordPress с одного домена на другой
- 2024-11-08 » OSPanel 6: быстрый старт
- 2024-11-08 » Как установить PhpMyAdmin в Open Server Panel
- 2024-09-30 » Как быстро запустить Laravel на Windows
- 2024-09-25 » Next.js
- 2024-09-05 » OpenAI рассказал, как запретить ChatGPT использовать содержимое сайта для обучения
- 2024-08-28 » Чек-лист: как увеличить конверсию интернет-магазина на примере спортпита
- 2024-08-01 » WebSocket
- 2024-07-26 » Интеграция с Яндекс Еда
- 2024-07-26 » Интеграция с Эквайринг
- 2024-07-26 » Интеграция с СДЕК
- 2024-07-26 » Интеграция с Битрикс-24
- 2024-07-26 » Интеграция с Travelline
- 2024-07-26 » Интеграция с Iiko
- 2024-07-26 » Интеграция с Delivery Club
- 2024-07-26 » Интеграция с CRM
- 2024-07-26 » Интеграция с 1C-Бухгалтерия
- 2024-07-24 » Что такое сторителлинг: техники и примеры
- 2024-07-17 » Ошибка 404: что это такое и как ее использовать для бизнеса
- 2024-07-03 » Размещайте прайс-листы на FarPost.ru и продавайте товары быстро и выгодно
- 2024-07-01 » Профилирование кода в PHP
- 2024-06-28 » Изучаем ABC/XYZ-анализ: что это такое и какие решения с помощью него принимают
- 2024-06-17 » Зачем вам знать потребности клиента
- 2024-06-11 » Что нового в работе Яндекс Метрики: полный обзор обновления
- 2024-06-11 » Поведенческие факторы ранжирования в Яндексе
- 2024-06-11 » Скорость загрузки сайта: почему это важно и как влияет на ранжирование
Если ты рождён без крыльев, не мешай им расти. (Коко Шанель / ЖИТЕЙСКАЯ МУДРОСТЬ ) |
Мы создаем сайты, которые работают! Профессионально обслуживаем и продвигаем их , а также по всей России и ближнему зарубежью с 2006 года!
Как мы работаем
Заявка
Позвоните или оставьте заявку на сайте.
Консультация
Обсуждаем что именно Вам нужно и помогаем определить как это лучше сделать!
Договор
Заключаем договор на оказание услуг, в котором прописаны условия и обязанности обеих сторон.
Выполнение работ
Непосредственно оказание требующихся услуг и работ по вашему заданию.
Поддержка
Сдача выполненых работ, последующие корректировки и поддержка при необходимости.