Класс для отправки сообщений по 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-03-13 » Стратегии SEO на 2024 год
- 2024-03-13 » Как использовать анимацию с помощью JavaScript-библиотеки GSAP
- 2024-03-13 » Использование GSAP 3 для веб-анимации
- 2024-03-13 » Cогласование топографической съёмки с эксплуатирующими организациями
- 2024-02-19 » Теряются лиды? Как настроить сквозную аналитику
- 2024-02-17 » Мерч и IT: на что обратить внимание в 2024 году
- 2024-02-16 » Копируем с RSync: основные примеры синхронизации файлов
- 2024-02-15 » Лучшие noCode AI платформы для создания диалоговых ботов
- 2024-02-14 » Факторы ранжирования Google 2024 — исследование Semrush
- 2024-02-12 » Перенос сайта на другой хостинг
- 2024-02-05 » В России сформирован реестр хостинг-провайдеров
- 2024-02-04 » Использование SSH для подключения к удаленному серверу Ubuntu
- 2024-02-03 » Подключаемся к серверу за NAT при помощи туннеля SSH. Простая и понятная инструкция
- 2024-02-02 » Настройка CI/CD для Gitlab-репозитория: схемы и гайд по шагам
- 2024-02-01 » GitLab CI Pipeline. Запуск сценария через SSH на удаленном сервере
- 2024-01-29 » Introduction to GitLab’s CI/CD for Continuous Deployments
- 2024-01-26 » Настройка GitLab CI/CD
- 2024-01-25 » Установка shell gitlab runner
- 2024-01-25 » Установка и регистрация gitlab-runner в docker контейнере
- 2024-01-25 » Переменные Gitlab-Ci
- 2024-01-25 » Настройка CI/CD в GitLab для синхронизации проекта с веб-серверами
- 2024-01-25 » Копирование файлов scp
- 2024-01-21 » Бездепозитные бонусы от казино: обзор условий и правил использования
- 2024-01-18 » Современная обработка ошибок в PHP
- 2024-01-18 » Пример шаблона проектирования MVC в PHP
- 2024-01-18 » Мифический человеко-DevOps
- 2023-12-28 » Google подвел итоги 2023 года в поиске
- 2023-12-28 » 5 ошибок отдела продаж, из-за которых вы теряете клиентов
- 2023-12-28 » Американский суд признал монополию Google на рынках дистрибуции Android-приложений
- 2023-12-28 » Хостинг-провайдер GoDaddy перестанет оказывать услуги пользователям из России
Постановка целей, приближение к ним день за днем и, наконец, их достижение — это и есть ключ к счастью Трейси Брайан - - современный американский профессиональный лектор-преподаватель |
Мы создаем сайты, которые работают! Профессионально обслуживаем и продвигаем их , а также по всей России и ближнему зарубежью с 2006 года!
Как мы работаем
Заявка
Позвоните или оставьте заявку на сайте.
Консультация
Обсуждаем что именно Вам нужно и помогаем определить как это лучше сделать!
Договор
Заключаем договор на оказание услуг, в котором прописаны условия и обязанности обеих сторон.
Выполнение работ
Непосредственно оказание требующихся услуг и работ по вашему заданию.
Поддержка
Сдача выполненых работ, последующие корректировки и поддержка при необходимости.