Предисловие
Все описанное ниже предполагает использование стандартной библиотеки 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; КонецПроцедуры