Библиотека для отправки электронных сообщений

TMail

Библиотека для отправки электронных сообщений.

Описание

Библиотека на OneScript для отправки сообщений через элктронную почту.

Установка

Установка через пакетный менеджер opm командой:

opm install tmail

Для отправки почты используется стандартные компоненты - COM-Объекты CDO.Configuration и CDO.Message:

Попытка
    loConfig = Новый COMОбъект("CDO.Configuration");
    loCdoMessage = Новый COMОбъект("CDO.Message");
Исключение
    ТекстОшибки = ОписаниеОшибки();
    Возврат Ложь;
КонецПопытки;

Соответственно, приложение работает только в ОС семейства Windows.

Использование библиотеки

Библиотека подключается как отдельный класс. Экземпляр класса используется для отправки сообщений с указанного профиля.

Подключение библиотеки:

#Использовать TMail

Создание класса:

УправлениеЭП = Новый ТУправлениеЭлектроннойПочтой();

Параметры класса:

  • УчетнаяЗаписьЭП - Структура параметров запуска, состав:
    • АдресSMTP - Адрес SMTP-сервера
    • ПортSMTP - Порт SMTP-сервера
    • ПользовательSMTP - Имя пользователя SMTP-сервера
    • ПарольSMTP - Пароль пользователя SMTP-сервера
    • ИспользоватьSSL - Использование SSL
  • СтруктураСообщения - Структура отправляемого сообщения, состав:
    • АдресЭлектроннойПочтыПолучателя - Адрес электронной почты получателя сообщения. Может содержать несколько адресов, разделеных знаком ";"
    • АдресЭлектроннойПочтыОтправителя - Адрес электронной почты отправителя сообщения
    • ТемаСообщения - Тема сообщения
    • ТипТекстаПочтовогоСообщения - "HTML" или "Строка", по умолчанию "Строка"
    • ТекстСообщения - Текст сообщения
    • Вложения - Строка или СписокЗначений, состоящий из строк - Путь к вложениями сообщения
  • ТекстОшибки - Переменная для возврата ошибки, если таковая имела место быть

Экспортные процедуры класса:

Процедура НачатьТекстСообщенияHTML(Знач Заголовок="",Кодировка="Windows-1251")

  • Создает начальные теги текста сообщения для HTML-документа.
  • Параметры:
    • Заголовок - Строка - Заголовок страницы. Если не указан, используется тема сообщения.
    • Кодировка - Строка - Кодировка страницы.

Процедура ДобавитьВТекстСообщенияHTML(СтрокаДляДобавления="") Экспорт

  • Добавляет строку в текст сообщения для HTML-документа, оборачивая строку в тег <p>
  • Параметры:
    • СтрокаДляДобавления - Строка - Строка для добавления в файл

Процедура ЗавершитьТекстСообщенияHTML()

  • Создает завершающие теги текста сообщения для HTML-документа

Функция ОтправитьСообщение()

  • Отправить электронное сообщение с помощью CDO.Message.
  • В качестве параметров используются глобальные переменные:
    • СтруктураСообщения - Структура - струкутура отправляемого сообщения:
      • АдресЭлектроннойПочтыПолучателя - Строка - Адрес электронной почты получателя сообщения. Может содержать несколько адресов, разделеных знаком ";".
      • АдресЭлектроннойПочтыОтправителя - Строка - Адрес электронной почты отправителя сообщения.
      • ТемаСообщения - Строка - Тема сообщения.
      • ТипТекстаПочтовогоСообщения - Строка - "HTML" или "Строка"
      • ТекстСообщения - Строка - Текст сообщения
      • Вложения - Строка или СписокЗначений, состоящий из строк - Путь к вложениями сообщения
    • УчетнаяЗаписьЭП - Структура - структура учетной записи электронной почты для отправки:
      • АдресSMTP - Строка - Адрес SMTP-сервера
      • ПортSMTP - Строка - Порт SMTP-сервера
      • ПользовательSMTP - Строка - Имя пользвоателя SMTP-сервера
      • ПарольSMTP - Строка - Пароль пользвователя SMTP-сервера
      • ИспользоватьSSL - Булево - Использовать протокол SSL
    • ТекстОшибки - Строка - В данный параметр записывается текст ошибки, если не удалось отправить сообщение
  • Возвращаемое значение:
    • Булево - Результат отправки сообщения:
      • Истина - Сообщение успешно отправлено.
      • Ложь - Ошибка отправки собщения

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

#Использовать TMail 

// Создадим объект
УправлениеЭП = Новый ТУправлениеЭлектроннойПочтой();

// Введем параметры ЭП
УчетнаяЗаписьЭП = УправлениеЭП.УчетнаяЗаписьЭП;
УчетнаяЗаписьЭП.АдресSMTP = "smtp.mydomen.com";
УчетнаяЗаписьЭП.ПортSMTP = 465;  
УчетнаяЗаписьЭП.ПользовательSMTP = "report@mydomen.com";
УчетнаяЗаписьЭП.ПарольSMTP = "pass_mail";
УчетнаяЗаписьЭП.ИспользоватьSSL = Истина;

// Структура сообщения
СтруктураСообщения = УправлениеЭП.СтруктураСообщения;
СтруктураСообщения.АдресЭлектроннойПочтыПолучателя = "admin@mydomen.com;";

// Флаг наличия ошибок
БылиОшибки = Ложь;

// Создадим необходимые файлы
Если РабочийКаталог = "" Тогда
    РабочийКаталог = ".\";
КонецЕсли;
РабочийКаталог = ОбъединитьПути(РабочийКаталог,"Test_TMail");

// Создадим файл для вложения
СоздатьКаталог(РабочийКаталог);
ИмяФайлаДляВложения = ОбъединитьПути(РабочийКаталог,"TestFile.txt");
ЗаписьТекста = Новый ЗаписьТекста;
ЗаписьТекста.Открыть(ИмяФайлаДляВложения,,,Истина);
ЗаписьТекста.ЗаписатьСтроку("Это текст файла вложения");
ЗаписьТекста.Закрыть();	

// Заполним структуру сообщения
СтруктураСообщения = УправлениеЭП.СтруктураСообщения;
СтруктураСообщения.Вложения = ИмяФайлаДляВложения;
СтруктураСообщения.АдресЭлектроннойПочтыОтправителя = УправлениеЭП.УчетнаяЗаписьЭП.ПользовательSMTP;
СтруктураСообщения.ТемаСообщения = "Проверка работы библиотеки TMail";
СтруктураСообщения.ТипТекстаПочтовогоСообщения = "HTML";
УправлениеЭП.НачатьТекстСообщенияHTML();
УправлениеЭП.ДобавитьВТекстСообщенияHTML();
УправлениеЭП.ДобавитьВТекстСообщенияHTML("Проверка работы библиотеки TMail");
УправлениеЭП.ДобавитьВТекстСообщенияHTML();
УправлениеЭП.ЗавершитьТекстСообщенияHTML();

// Отправим сообщение
Если УправлениеЭП.ОтправитьСообщение() Тогда
    Сообщить("ОтправитьСообщение: УСПЕШНО");
Иначе
    Сообщить("ОтправитьСообщение: " + УправлениеЭП.ТекстОшибки);
    БылиОшибки = Истина;
КонецЕсли;

УдалитьФайлы(ИмяФайлаДляВложения); 
УдалитьФайлы(РабочийКаталог); 

Результат:

Скриншот1 Скриншот2

Доступные версии пакета

В разработке

Репозиторий

https://github.com/oscript-library/TMail

Актуальная версия

TMail-2018.5.11