Получить непрочитанные письма через протокол IMAP в 1С
Добрый день, товарищи!
Уже как два дня, я в пытках получить непрочитанные письма.
Использовал две функции получения: ПолучитьЗаголовки(), ПолучитьИдентификаторы()
Тезисно: загрузка получения писем занимает длительное время несмотря на отбор условия получения.
Подскажите пож-та в чем может быть проблема. Заранее спасибо.
Уже как два дня, я в пытках получить непрочитанные письма.
Использовал две функции получения: ПолучитьЗаголовки(), ПолучитьИдентификаторы()
Тезисно: загрузка получения писем занимает длительное время несмотря на отбор условия получения.
Подскажите пож-та в чем может быть проблема. Заранее спасибо.
&НаКлиенте
Процедура ПолучитьПрофиль()
Профиль = новый ИнтернетПочтовыйПрофиль;
Профиль.АутентификацияSMTP = СпособSMTPАутентификации.Login;
Профиль.Пользователь = "блабла";
Профиль.Пароль = "блабала2*";
Профиль.АдресСервераPOP3 = "pop.yandex.ru";
Профиль.АдресСервераSMTP = "smtp.yandex.ru";
Профиль.ПортSMTP = 465;
Профиль.ПортIMAP = 993;
Профиль.ИспользоватьSSLIMAP=Истина;
Профиль.ИспользоватьSSLSMTP=Истина;
//Попытка
Сообщить("Попытка подключения к серверу почты "+Профиль.АдресСервераPOP3);
Состояние("Подключение к серверу "+Профиль.АдресСервераPOP3);
Почта = Новый ИнтернетПочта;
Почта.Подключиться(Профиль);
Сообщить("Ура");
МассивПисем(Почта);
//Исключение
//
// Сообщить("Ошибка подключения к серверу!");
// Сообщить(""+ОписаниеОшибки());
// Возврат;
//КонецПопытки;
Почта.Отключиться();
КонецПроцедуры
&НаКлиенте
Функция МассивПисем(МояПочта)
ПараметрыОтбораЗаголовков = Новый Структура;
ПараметрыОтбораЗаголовков.Вставить("Прочитанные",Ложь);
Заголовки = МояПочта.ПолучитьИдентификаторы(,ПараметрыОтбораЗаголовков);
МассивСообщений = Новый Массив;
МассивСообщений = МояПочта.Выбрать(Ложь,Заголовки,Истина);
Для Индекс = 0 По МассивСообщений.Количество()-1 Цикл
стр = МоиПисьма.Добавить();
стр.Заголовок =МассивСообщений[Индекс].Тема;
КонецЦикла;
КонецФункции // МассивПисем()
ПоказатьПо теме из базы знаний
Ответы
В избранное
Подписаться на ответы
Сортировка:
Древо развёрнутое
Свернуть все
(1)
отбор работает только по протоколу IMAP. У вас POP3.
Переделывайте на подключение по IMAP и будет работать отбор.
Уже как два дня, я в пытках получить непрочитанные письма.
Использовал две функции получения: ПолучитьЗаголовки(), ПолучитьИдентификаторы()
Тезисно: загрузка получения писем занимает длительное время несмотря на отбор условия получения.
Использовал две функции получения: ПолучитьЗаголовки(), ПолучитьИдентификаторы()
Тезисно: загрузка получения писем занимает длительное время несмотря на отбор условия получения.
отбор работает только по протоколу IMAP. У вас POP3.
Переделывайте на подключение по IMAP и будет работать отбор.
(7) Если бы, но увы ошибка Данная операция не может быть выполнена, так как адрес POP3 сервера не указан.
Профиль = новый ИнтернетПочтовыйПрофиль;
Профиль.АдресСервераIMAP = "imap.yandex.ru";
Профиль.ПортIMAP = 993;
Профиль.ПользовательIMAP = "блабла";
Профиль.ПарольIMAP = "блабла*";
//Попытка
Сообщить("Попытка подключения к серверу почты "+Профиль.АдресСервераIMAP);
Состояние("Подключение к серверу "+Профиль.АдресСервераIMAP);
Почта = Новый ИнтернетПочта;
Почта.Подключиться(Профиль);
Сообщить("Ура");
ПараметрыОтбораЗаголовков = Новый Структура;
ПараметрыОтбораЗаголовков.Вставить("Seen",Ложь);
Заголовки = Почта.ПолучитьИдентификаторы(,ПараметрыОтбораЗаголовков);
МассивСообщений = Новый Массив;
МассивСообщений = Почта.Выбрать(Ложь,МассивСообщений,Истина);
Для Индекс = 0 По МассивСообщений.Количество()-1 Цикл
стр = МоиПисьма.Добавить();
стр.Заголовок =МассивСообщений[Индекс].Тема;
КонецЦикла;
Показать
(8) правильно выдает ошибку, так как продолжаете пытаться подключить через POP3.
СП:
Подключиться(<ПочтовыйПрофиль>, <ПротоколПолученияПочты>)
Параметры:
<ПротоколПолученияПочты> (необязательный)
Тип: ПротоколИнтернетПочты.
Задаёт, какой тип соединения нужно использовать при подключении к Интернет почте.
Если требуется использовать IMAP, то нужно указать соответствующий тип.
Значение по умолчанию: POP3.
СП:
Подключиться(<ПочтовыйПрофиль>, <ПротоколПолученияПочты>)
Параметры:
<ПротоколПолученияПочты> (необязательный)
Тип: ПротоколИнтернетПочты.
Задаёт, какой тип соединения нужно использовать при подключении к Интернет почте.
Если требуется использовать IMAP, то нужно указать соответствующий тип.
Значение по умолчанию: POP3.
(16) это уже логика выборки в коде. Нужно так:
ps. Изменил код.
Почта = Новый ИнтернетПочта;
Почта.Подключиться(Профиль, ПротоколИнтернетПочты.IMAP);
Сообщить("Ура");
ПараметрыОтбораЗаголовков = Новый Структура;
ПараметрыОтбораЗаголовков.Вставить("Seen",Ложь);
Заголовки = Почта.ПолучитьЗаголовки(ПараметрыОтбораЗаголовков);
Если Заголовки.Количество > 0 Тогда
МассивСообщений = Новый Массив;
МассивСообщений = Почта.Выбрать(Ложь,Заголовки,Истина);
Для Индекс = 0 По МассивСообщений.Количество()-1 Цикл
стр = МоиПисьма.Добавить();
стр.Заголовок =МассивСообщений[Индекс].Тема;
КонецЦикла;
КонецЕсли;
Показатьps. Изменил код.
(17)
Сработало, спасибо, товарищ!)))
ПараметрыОтбораЗаголовков = Новый Структура;
ПараметрыОтбораЗаголовков.Вставить("Seen",Ложь);
Заголовки = Почта.ПолучитьЗаголовки(ПараметрыОтбораЗаголовков);
Если Заголовки.Количество > 0 Тогда
МассивСообщений = Новый Массив;
МассивСообщений = Почта.Выбрать(Ложь,Заголовки,Истина);
Для Индекс = 0 По МассивСообщений.Количество()-1 Цикл
стр = МоиПисьма.Добавить();
стр.Заголовок =МассивСообщений[Индекс].Тема;
КонецЦикла;
КонецЕсли;
ПараметрыОтбораЗаголовков.Вставить("Seen",Ложь);
Заголовки = Почта.ПолучитьЗаголовки(ПараметрыОтбораЗаголовков);
Если Заголовки.Количество > 0 Тогда
МассивСообщений = Новый Массив;
МассивСообщений = Почта.Выбрать(Ложь,Заголовки,Истина);
Для Индекс = 0 По МассивСообщений.Количество()-1 Цикл
стр = МоиПисьма.Добавить();
стр.Заголовок =МассивСообщений[Индекс].Тема;
КонецЦикла;
КонецЕсли;
Сработало, спасибо, товарищ!)))
Вакансии
Аналитик 1С / Бизнес-аналитик
Нижний Новгород
зарплата от 100 000 руб. до 250 000 руб.
Временный (на проект)
Нижний Новгород
зарплата от 100 000 руб. до 250 000 руб.
Временный (на проект)