График : Пн-Пт: 9.30 - 18.00


Прием почты из 1С.

    Предисловие

Все описанное ниже предполагает использование стандартной библиотеки v7plus.dll, входящей в комплект поставки 1С:Предприятия 7.7.

В модуле, который будет принимать почту, вне функций должна быть определена переменная "Почта", в которой будет храниться ссылка на объект "V7Mail".

Письмо загружается из почтовой программы, определенной в системе используемой по умолчанию. Нижеприведенные тексты проверялись с программами: Microsoft Outlook Express (5, 6), Microsoft Outlook 2000.

 

Назначение

Чтение почты непосредственно из 1С необходимо в разных ситуациях. Например, можно организовать получение заказов или отчетов почтой одновременно с их обработкой и загрузкой в информационную базу. Или можно создать своего почтового клиента, встроенного в 1С для уменьшения числа программ, используемых пользователями.

 

Инициализация

Перед использованием почты необходимо загрузить внешнюю компоненту. Это делает следующая процедура.

Функция Инит()	
                        Если ЗагрузитьВнешнююКомпоненту(КаталогИБ()+"v7plus.dll")=0 Тогда
                            Если ЗагрузитьВнешнююКомпоненту("v7plus.dll")=0 Тогда
                                Сообщить("Не удалось обнаружить компоненту V7Plus.dll!"); 
                                Возврат 0;
                            КонецЕсли;
                        КонецЕсли;
                        Попытка
                            Почта = СоздатьОбъект("AddIn.V7Mail");
                        Исключение 
                            Сообщить("Не удалось создать объект Addin.V7Mail!");
                            Возврат 0;
                        КонецПопытки;
                        Возврат 1;
                    КонецФункции

 

Чтение

В этом примере реализован прием почты, поиск заказов от клиентов, которые распознаются по ключевому слову "заказ" в теме письма, сохранение приколотых файлов с заказами и их дальнейшая обработка в функции "Загрузить".

Процедура ПрочитатьПочту()
                        Если Инит()=0 тогда
                            Возврат;
                        КонецЕсли;
                        Почта.Подключиться();
                        Почта.ВыбратьСообщения();
                        Пока Почта.ПолучитьСообщение()=1 Цикл
                            Если Лев(НРег(Почта.Заголовок),5)="заказ" Тогда
                                //потенциально нужный нам файл
                                Сообщить("Обнаружен заказ от "+Почта.АдресОтправителя());
                                Почта.ПрочитатьСообщение();
                                Имя=""; Кат="";
                                Пока Почта.ПолучитьФайл(Имя,Кат)=1 Цикл
                                    ИмяФайла=Кат+Имя;
                                    Загрузить(ИмяФайла);
                                    Имя=""; Кат="";
                                КонецЦикла;
                            КонецЕсли;
                        КонецЦикла;
                        Почта.Отключиться();
                        Почта=0;
                    КонецПроцедуры
Нашли ошибку на сайте? Напишите о ней нам!
Наверх Обратный звонок