Библиотека для отправки электронных сообщений.
Библиотека на 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-документа.
- Параметры:
- Заголовок - Строка - Заголовок страницы. Если не указан, используется тема сообщения.
- Кодировка - Строка - Кодировка страницы.
- Добавляет строку в текст сообщения для HTML-документа, оборачивая строку в тег
<p>
- Параметры:
- СтрокаДляДобавления - Строка - Строка для добавления в файл
- Создает завершающие теги текста сообщения для HTML-документа
- Отправить электронное сообщение с помощью CDO.Message.
- В качестве параметров используются глобальные переменные:
- СтруктураСообщения - Структура - струкутура отправляемого сообщения:
- АдресЭлектроннойПочтыПолучателя - Строка - Адрес электронной почты получателя сообщения. Может содержать несколько адресов, разделеных знаком ";".
- АдресЭлектроннойПочтыОтправителя - Строка - Адрес электронной почты отправителя сообщения.
- ТемаСообщения - Строка - Тема сообщения.
- ТипТекстаПочтовогоСообщения - Строка - "HTML" или "Строка"
- ТекстСообщения - Строка - Текст сообщения
- Вложения - Строка или СписокЗначений, состоящий из строк - Путь к вложениями сообщения
- УчетнаяЗаписьЭП - Структура - структура учетной записи электронной почты для отправки:
- АдресSMTP - Строка - Адрес SMTP-сервера
- ПортSMTP - Строка - Порт SMTP-сервера
- ПользовательSMTP - Строка - Имя пользвоателя SMTP-сервера
- ПарольSMTP - Строка - Пароль пользвователя SMTP-сервера
- ИспользоватьSSL - Булево - Использовать протокол SSL
- ТекстОшибки - Строка - В данный параметр записывается текст ошибки, если не удалось отправить сообщение
- СтруктураСообщения - Структура - струкутура отправляемого сообщения:
- Возвращаемое значение:
- Булево - Результат отправки сообщения:
- Истина - Сообщение успешно отправлено.
- Ложь - Ошибка отправки собщения
- Булево - Результат отправки сообщения:
#Использовать TMail
// Создадим объект
УправлениеЭП = Новый ТУправлениеЭлектроннойПочтой();
// Введем параметры ЭП
УчетнаяЗаписьЭП = УправлениеЭП.УчетнаяЗаписьЭП;
УчетнаяЗаписьЭП.АдресSMTP = "smtp.mydomen.com";
УчетнаяЗаписьЭП.ПортSMTP = 465;
УчетнаяЗаписьЭП.ПользовательSMTP = "[email protected]";
УчетнаяЗаписьЭП.ПарольSMTP = "pass_mail";
УчетнаяЗаписьЭП.ИспользоватьSSL = Истина;
// Структура сообщения
СтруктураСообщения = УправлениеЭП.СтруктураСообщения;
СтруктураСообщения.АдресЭлектроннойПочтыПолучателя = "[email protected];";
// Флаг наличия ошибок
БылиОшибки = Ложь;
// Создадим необходимые файлы
Если РабочийКаталог = "" Тогда
РабочийКаталог = ".\";
КонецЕсли;
РабочийКаталог = ОбъединитьПути(РабочийКаталог,"Test_TMail");
// Создадим файл для вложения
СоздатьКаталог(РабочийКаталог);
ИмяФайлаДляВложения = ОбъединитьПути(РабочийКаталог,"TestFile.txt");
ЗаписьТекста = Новый ЗаписьТекста;
ЗаписьТекста.Открыть(ИмяФайлаДляВложения,,,Истина);
ЗаписьТекста.ЗаписатьСтроку("Это текст файла вложения");
ЗаписьТекста.Закрыть();
// Заполним структуру сообщения
СтруктураСообщения = УправлениеЭП.СтруктураСообщения;
СтруктураСообщения.Вложения = ИмяФайлаДляВложения;
СтруктураСообщения.АдресЭлектроннойПочтыОтправителя = УправлениеЭП.УчетнаяЗаписьЭП.ПользовательSMTP;
СтруктураСообщения.ТемаСообщения = "Проверка работы библиотеки TMail";
СтруктураСообщения.ТипТекстаПочтовогоСообщения = "HTML";
УправлениеЭП.НачатьТекстСообщенияHTML();
УправлениеЭП.ДобавитьВТекстСообщенияHTML();
УправлениеЭП.ДобавитьВТекстСообщенияHTML("Проверка работы библиотеки TMail");
УправлениеЭП.ДобавитьВТекстСообщенияHTML();
УправлениеЭП.ЗавершитьТекстСообщенияHTML();
// Отправим сообщение
Если УправлениеЭП.ОтправитьСообщение() Тогда
Сообщить("ОтправитьСообщение: УСПЕШНО");
Иначе
Сообщить("ОтправитьСообщение: " + УправлениеЭП.ТекстОшибки);
БылиОшибки = Истина;
КонецЕсли;
УдалитьФайлы(ИмяФайлаДляВложения);
УдалитьФайлы(РабочийКаталог);
Результат: