helpf.pro
Регистрация
 +1 
Распечатать

Получение почты используя IMAP или POP3

В данном примере используется IMAP и POP3
Для использования POP3 раскомментируйте строки и Профиль.АутентификацияPOP3 = Истина;

Код 1C v 8.2 УП
 &НаКлиенте
Процедура ПолучитьСообщений(Команда)

ПутьСохранения = "D:\temp";

Профиль = Новый ИнтернетПочтовыйПрофиль;

//Профиль.АдресСервераPOP3 = "re05.hc.ru";
//Профиль.ПортPOP3 = "995";
//Профиль.Пользователь = "robot@site.ru";
//Профиль.Пароль = "11223344";
Профиль.АутентификацияPOP3 = Ложь;
Профиль.АутентификацияSMTP = Ложь;


// IMAP
Профиль.ИспользоватьSSLIMAP = Истина;
Профиль.АдресСервераIMAP = "re05.hc.ru";
Профиль.ПортIMAP = "993";
Профиль.ПользовательIMAP = "robot@site.ru";
Профиль.ПарольIMAP = "11223344";
Профиль.ТолькоЗащищеннаяАутентификацияIMAP=Ложь;

Почта = Новый ИнтернетПочта;

Сообщ = Новый СообщениеПользователю();

Попытка
Почта.Подключиться(Профиль, ПротоколИнтернетПочты.IMAP); //ПротоколИнтернетПочты.POP3
// Получаем все сообщения из почтового ящика
МассивСообщений = Новый Массив;
МассивСообщений = Почта.Выбрать(Ложь);
Исключение
// Ошибка при подключении к серверу или при приеме сообщения обмена
Сообщ.Текст = " - Ошибка при подключении или приеме" + ОписаниеОшибки();
Сообщ.Сообщить();
Возврат;
КонецПопытки;

// Массив будет содержать сообщения, которые в последствии будут удалены с сервера
МассивСообщенийОбмена = Новый Массив;

Если МассивСообщений.Количество() = 0 Тогда
// Сообщений в почтовом ящике нет
Сообщ.Текст = "Сообщений в почтовом ящике нет.";
Сообщ.Сообщить();
Возврат;
КонецЕсли;

ИмяФайлаСообщения = "";
Для Индекс = 0 По МассивСообщений.Количество() - 1 Цикл
// Отбираем только сообщения, которые содержат файлы прайсы, остальное спам )
ЧастьТемы = "Price list";
Если Лев(МассивСообщений[Индекс].Тема, СтрДлина(ЧастьТемы)) = ЧастьТемы Тогда
Попытка
// Записываем файл
МассивСообщений[Индекс].Вложения[0].Данные.Записать(ПутьСохранения+"\"+МассивСообщений[Индекс].Вложения[0].ИмяФайла);
Сообщ.Текст = "Принят файл: " + МассивСообщений[Индекс].Вложения[0].ИмяФайла + " с адреса " + Профиль.Пользователь;
Сообщ.Сообщить();
Исключение
Сообщ.Текст = "Похоже нет файла в письме ) ";
Сообщ.Сообщить();
КонецПопытки;
Иначе
Почта.УдалитьСообщения(МассивСообщений[Индекс]);
КонецЕсли;
КонецЦикла;

Сообщ.Текст = "Сообщения получены!";
Сообщ.Сообщить();
Почта.Отключиться();

КонецПроцедуры
Разместил:   Версии: | 8.x | 8.2 УП |  Дата:   Прочитано: 43468
 +1 
Распечатать
Возможно, вас также заинтересует
SMTP greeting failure: 421 SMTP connection broken (reply) 8
Опи­са­ние ошиб­ки: С сен­тяб­ря 2014 Ян­декс.Почта, Mail.ru пе­ре­шли на про­то­кол SSL, что сде­ла­ло их еще более без­опас­ны­ми. Чтобы и даль­ше ра­бо­тать с пись­ма­ми через 1С, Вам нужно из­ме­нить их на­строй­ки и вне­сти до­ра­бот­ки в код
В отчет не попадают данные за последний день… Как исправить? 0
Пользователь выбрал период формирования отчета с 1июля по 31. Почему при формировании отчета в него не попадают данные за 31 число? На самом деле, это одна из самых распространенных ошибок при разработке отчетов. В 1С 8.х дата содержит время с точно
Запись СД из 1С(без ВК и других программ, проверено на ХР/2003) 0
Процедура Сформировать(ДискДляЗаписи=" E:" ,АвтоИзвлечениеСД=0,АвтоЗакрытиеМастера=1) Перем Имя,Каталог; scr=СоздатьОбъект(" MSScriptControl.ScriptControl" ); scr.language=" javascript" ; shell=СоздатьОбъект(" Shell.Application" ); scr.AddOb
Как вывести всплывающее сообщение пользователю? 2
В 8.2 нужно воспользоваться функцией ПоказатьОповещениеПользователя ПоказатьОповещениеПользователя(" Документ не записан!" , " http://doc.ru" , " О правилах заполнения документа, читайте здесь!" , БиблиотекаКартинок.Важно); #Если Клиент Тогд
Как декодировать (преобразовать) Unicode в 1С 0
При разработке очередного обмена с интернет магазином через API столкнулисть что сайт возвращает ответ в виде: {"ok":"true","description":"u0421u0442u0430u0442u0443u0441 u0437u0430u043au0430u0437u0430 u0438u0437u043cu0435u043du043
Посмотреть все результаты поиска похожих
Комментарии
deutsch2016
13.12.2016 15:15Комментарий: 1
deutsch2016

Вложение в почте принимает, а вот не удаляет письмо после его получения :-( 

Вы не можете отправить комментарий анонимно, пожалуйста войдите или зарегистрируйтесь.