Внешняя компонента для работы с электронной почтой (DLL с возможностью подключения к 1С), пример кода на 7.7

Файл: ROM-Mail.rar размер: 315 КB

Автор:

Сайт: http://rom1c.narod.ru/rom_mail.html

Этот адрес электронной почты защищен от спам-ботов. У вас должен быть включен JavaScript для просмотра. и Этот адрес электронной почты защищен от спам-ботов. У вас должен быть включен JavaScript для просмотра.

 

Описание:

Внешняя компонента "ROM-Mail.dll" содержит только один объект "AddInMail".Загрузка внешней компоненты выполняется примерно так:

ЗагрузитьВнешнююКомпоненту("ROM-Mail.dll");

ВК=СоздатьОбъект("AddIn.AddInMail");

 

Внешняя компонента не использует MAPI интерфейс, и работаетпо протоколам Smtp и Pop3. Другими словами, это самостоятельный почтовый клиент работающий под 1С. Компонента имеет страницу свойств, атрибуты которой устанавливаются из меню "Сервис-Параметры" 1С:Предприятия.

 

Компонентой поддерживается:

стандарты MIME, UU-ENCODE

кодирование Base64 и QuotedPrintable

поддерживаются основные таблицы кодировок кириллицы: DOS, Windows-1251, KOI8-R, MAC

сообщения, состоящие из нескольких частей (multipart)

отправка, получение, сохранение вложенных файлов (attachment)

отправка тела сообщения в форматах ТЕКСТ(plain/text), HTML(plain/html), RTF(richable).

доступ как к указанной строке тела сообщения (построчное чтение) так и получение всего тела сразу

использование полей CC(копия), BCC(скрытая копия)

настройка параметров соединения на странице свойств компоненты

сохранение соединения (keep alive)

настройка аутентификации на странице свойств

возможность установки произвольного значения полей АдресОтправителя (From) и ИмяОтправителя (FromName), в т.ч. оставлять эти значения пустыми

выбор вида аутентификации при входе на SMTP-сервер (None, Login)

возможность выбора: забирать или оставлять сообщения на сервере

возможность установки каталога для сохранения вложений

пометка/снятие пометки на удаление.

 

В качестве дополнительного сервиса реализованы методы:

Перекодировать (Строка, Флаг) - метод реализует 20 направлений перекодировки в различные таблицы кодировок.

Ping (host) - возвращает процент потерь. Атрибут PingText содержит строку-результат выполнения метода Ping.

При использовании страницы свойств создавать объект и инициализировать компоненту следует в глобальном модуле.

Последняя версия внешней компоненты (1.4.1)

Версия (1.4.1) + ALS-описание + ini-файл

 


Данная компонента позволяет отправлять и получать почту напрямую через протоколы SMTP и POP3. Это очень важно так всем известная компонента v7plus работает через системный MAPI интерфейс, что неудобно для пользователя, т.к. ему приходится подтверждать доступ при каждой отправке почты.
Рассмотрим пример отправки и получения почты с использованием компонеты ROM-Mail.


Процедура ОтправитьПочту()

//Пытаемся подключить компоненту. она должна находится в каталоге программы или каталоге базы
Если ЗагрузитьВнешнююКомпоненту("ROM-Mail.dll")=0 Тогда
Сообщить("Не удалось загрузить внешнюю компоненту ROM-Mail.dll");
Возврат;
Конецесли;


//Подключаемся к почте с указанными параметрами
Почта = СоздатьОбъект("AddIn.AddInMail");
Почта.СерверОтправки = "192.168.100.1";
Почта.ПортОтправки = "25";
Почта.Логин = Логин; //при необходимости
Почта.Пароль = Пароль;//при необходимости


//Если подключение не удачное прерываем обработку
Если Почта.Соединение = 0 Тогда
Если Почта.Подключиться("Отправка")=0 Тогда
Сообщить("Не удалось подключиться к почтовому серверу","!");
Возврат;
Конецесли;
Конецесли;

//Формируем сообщение
Почта.Важность = 0;
Почта.Кодировка = "windows-1251";
Почта.ТипПисьма = 2;
Почта.АдресОтправителя = "АдресОтправителя";
Почта.ИмяОтправителя = "Вася";

//указываем получателей письма
Почта.ДобавитьАдрес("АдресПолучателя",ИмяПолучателя,АдресПолучателя);

//если необходимо добавляем вложения
Почта.Вложения = ФайлВложения;

Почта.Тема = "Тема письма ";
Почта.Тело = "Текст письма";

//Пытаемся отправить
Если Почта.Соединение=0 Тогда
Сообщить("Соединение потеряно","!");
ИначеЕсли Почта.Отправить()=1 Тогда
Сообщить("Почтовое сообщение отправлено","i");
Иначе
Сообщить("Не удалось отправить сообщение","!");
Конецесли;

//Отключаемся
Почта.Отключиться();
КонецПроцедуры


Процедура ПолучитьПочту()

//Пытаемся подключить компоненту
Если ЗагрузитьВнешнююКомпоненту("ROM-Mail.dll")=0 Тогда
Сообщить("Не удалось загрузить внешнюю компоненту ROM-Mail.dll");
Возврат;
Конецесли;

//Подключаемся к почте с указанными параметрами
Почта = СоздатьОбъект("AddIn.AddInMail");
Почта.СерверПриема = "pop3.mail.ru";
Почта.ПортПриема = "110";
Почта.Логин = Логин; //при необходимости
Почта.Пароль = Пароль;//при необходимости
Почта.ОставлятьНаСервере = 0; //необходимо ли оставлять письма в ящике

//Если подключение не удачное прерываем обработку
Если Почта.Соединение = 0 Тогда
Если Почта.Подключиться("Прием")=0 Тогда
Сообщить("Не удалось подключиться к почтовому серверу","!");
Возврат;
Конецесли;
Конецесли;

ПринятыйФайл = "";
Для й = 1 По Почта.КоличествоСообщений() Цикл

//Читаем заголовки писем
Если Почта.ПолучитьЗаголовок(й) = 1 Тогда

//Читаем тексты писем
Если Почта.ПолучитьТело(й)=1 Тогда

//Выбираем вложения писем
Для ф = 1 По Почта.КоличествоФайлов() Цикл

//сохраняем вложение
Почта.СохранитьФайл(ф,"");
Конеццикла;
Конецесли;
Конецесли;
Конеццикла;

//Отключаемся
Почта.Отключиться();

КонецПроцедуры