1С: проверка почты по протоколу IMAP
Задача: прочитать почту из почтового ящика и обработать её посредством 1С.
Решение: за основу можно взять код что-то вроде:
Профиль = Новый ИнтернетПочтовыйПрофиль;
Профиль.АутентификацияPOP3 = Ложь;
Профиль.АутентификацияSMTP = Ложь;
// IMAP
УстановитьПривилегированныйРежим(Истина);
уз=справочники.УчетныеЗаписиЭлектроннойПочты.НайтиПоНаименованию("Поверка приборов учета");
Пароли = ОбщегоНазначения.ПрочитатьДанныеИзБезопасногоХранилища(уз, "Пароль, ПарольSMTP");
УстановитьПривилегированныйРежим(Ложь);
Профиль.ИспользоватьSSLIMAP = Истина;
Профиль.АдресСервераIMAP = уз.СерверВходящейПочты;
Профиль.ПортIMAP = уз.ПортСервераВходящейПочты;
Профиль.ПользовательIMAP = уз.ПользовательSMTP;
Профиль.ПарольIMAP = Пароли.ПарольSMTP;
Профиль.ТолькоЗащищеннаяАутентификацияIMAP=Ложь;
IПочта = Новый ИнтернетПочта;
Сообщ = Новый СообщениеПользователю();
IПочта.Подключиться(Профиль, ПротоколИнтернетПочты.IMAP); //ПротоколИнтернетПочты.POP3
заголовки=IПочта.ПолучитьЗаголовки();
если заголовки.Количество()>0 тогда
ПоследнийЗаголовок=Новый Массив();
ПоследнийЗаголовок.Добавить(заголовки[заголовки.Количество()-1]);
МассивСообщений = Новый Массив;
МассивСообщений = IПочта.Выбрать(Ложь,ПоследнийЗаголовок);
ТекстСообщения=МассивСообщений[0].тексты[0].Текст;
уд=Новый Массив();
уд.Добавить(МассивСообщений[0]);
IПочта.УдалитьСообщения(уд);
IПочта.ОчиститьУдаленныеСообщения();
иначе
answer.result="писем нет";
конецесли;
IПочта.Отключиться();