Получить непрочитанные письма через протокол IMAP в 1С

1. Stanislav1993 12.07.19 14:53 Сейчас в теме
Добрый день, товарищи!
Уже как два дня, я в пытках получить непрочитанные письма.
Использовал две функции получения: ПолучитьЗаголовки(), ПолучитьИдентификаторы()
Тезисно: загрузка получения писем занимает длительное время несмотря на отбор условия получения.
Подскажите пож-та в чем может быть проблема. Заранее спасибо.
&НаКлиенте
Процедура ПолучитьПрофиль()
	Профиль = новый ИнтернетПочтовыйПрофиль;
	Профиль.АутентификацияSMTP = СпособSMTPАутентификации.Login;
	
	Профиль.Пользователь = "блабла";
	Профиль.Пароль = "блабала2*";
	Профиль.АдресСервераPOP3 = "pop.yandex.ru";
	Профиль.АдресСервераSMTP = "smtp.yandex.ru";
	Профиль.ПортSMTP = 465;
	Профиль.ПортIMAP = 993;
	Профиль.ИспользоватьSSLIMAP=Истина;
	Профиль.ИспользоватьSSLSMTP=Истина;
	
	//Попытка
		Сообщить("Попытка подключения к серверу почты "+Профиль.АдресСервераPOP3);
		Состояние("Подключение к серверу "+Профиль.АдресСервераPOP3);
		Почта = Новый ИнтернетПочта;
		Почта.Подключиться(Профиль);
		Сообщить("Ура");
		МассивПисем(Почта);
	//Исключение
	//	
	//	Сообщить("Ошибка подключения к серверу!");
	//	Сообщить(""+ОписаниеОшибки());
	//	Возврат;
		
	//КонецПопытки;
	Почта.Отключиться();	
КонецПроцедуры

&НаКлиенте
Функция МассивПисем(МояПочта)
ПараметрыОтбораЗаголовков = Новый Структура;
ПараметрыОтбораЗаголовков.Вставить("Прочитанные",Ложь);
Заголовки = МояПочта.ПолучитьИдентификаторы(,ПараметрыОтбораЗаголовков);
МассивСообщений = Новый Массив;
МассивСообщений = МояПочта.Выбрать(Ложь,Заголовки,Истина);
    Для Индекс = 0 По МассивСообщений.Количество()-1 Цикл
        стр = МоиПисьма.Добавить();
        стр.Заголовок =МассивСообщений[Индекс].Тема;
    КонецЦикла;
КонецФункции // МассивПисем()

Показать
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
7. spacecraft 12.07.19 15:33 Сейчас в теме
(1)
Уже как два дня, я в пытках получить непрочитанные письма.
Использовал две функции получения: ПолучитьЗаголовки(), ПолучитьИдентификаторы()
Тезисно: загрузка получения писем занимает длительное время несмотря на отбор условия получения.

отбор работает только по протоколу IMAP. У вас POP3.
Переделывайте на подключение по IMAP и будет работать отбор.
8. Stanislav1993 13.07.19 10:36 Сейчас в теме
(7) Если бы, но увы ошибка Данная операция не может быть выполнена, так как адрес POP3 сервера не указан.



Профиль = новый ИнтернетПочтовыйПрофиль;
	Профиль.АдресСервераIMAP = "imap.yandex.ru";
	Профиль.ПортIMAP = 993;
	Профиль.ПользовательIMAP = "блабла";
	Профиль.ПарольIMAP = "блабла*";
	
	
	//Попытка
	Сообщить("Попытка подключения к серверу почты "+Профиль.АдресСервераIMAP);
	Состояние("Подключение к серверу "+Профиль.АдресСервераIMAP);
	Почта = Новый ИнтернетПочта;
	Почта.Подключиться(Профиль);
	Сообщить("Ура");
	
	ПараметрыОтбораЗаголовков = Новый Структура;
	ПараметрыОтбораЗаголовков.Вставить("Seen",Ложь);
	Заголовки = Почта.ПолучитьИдентификаторы(,ПараметрыОтбораЗаголовков);
	МассивСообщений = Новый Массив;
	МассивСообщений = Почта.Выбрать(Ложь,МассивСообщений,Истина);
	Для Индекс = 0 По МассивСообщений.Количество()-1 Цикл
		стр = МоиПисьма.Добавить();
		стр.Заголовок =МассивСообщений[Индекс].Тема;
	КонецЦикла;

Показать
9. spacecraft 13.07.19 10:39 Сейчас в теме
(8) правильно выдает ошибку, так как продолжаете пытаться подключить через POP3.
СП:
Подключиться(<ПочтовыйПрофиль>, <ПротоколПолученияПочты>)
Параметры:

<ПротоколПолученияПочты> (необязательный)

Тип: ПротоколИнтернетПочты.
Задаёт, какой тип соединения нужно использовать при подключении к Интернет почте.
Если требуется использовать IMAP, то нужно указать соответствующий тип.
Значение по умолчанию: POP3.
Юлия:); Риник; +2 Ответить
10. Stanislav1993 13.07.19 10:53 Сейчас в теме
(9)
Прикрепленные файлы:
11. spacecraft 13.07.19 11:00 Сейчас в теме
(10) вот, уже ошибки по IMAP.
Теперь смотрите что указываете в логин и пароль.
Логин должен быть полным: ИмяПользователя@yandex.ru
12. Stanislav1993 13.07.19 11:02 Сейчас в теме
13. spacecraft 13.07.19 11:03 Сейчас в теме
(12) антивирус стоит?
Проверить настройки брандмауэра.
15. Stanislav1993 13.07.19 12:17 Сейчас в теме
14. spacecraft 13.07.19 11:39 Сейчас в теме
(10) укажите:
Профиль.ИспользоватьSSLIMAP = Истина;

яндекс требует использовать безопасное подключение.
Риник; +1 Ответить
16. Stanislav1993 13.07.19 12:19 Сейчас в теме
(14)
Профиль.ИспользоватьSSLIMAP = Истина;


Прописал, та жа самая ерунда, отбор не работает.
В итоге я получаю тот же самый массив всех писем.
17. spacecraft 13.07.19 12:35 Сейчас в теме
(16) это уже логика выборки в коде. Нужно так:
    Почта = Новый ИнтернетПочта;
    Почта.Подключиться(Профиль, ПротоколИнтернетПочты.IMAP);
    Сообщить("Ура");
    
    ПараметрыОтбораЗаголовков = Новый Структура;
    ПараметрыОтбораЗаголовков.Вставить("Seen",Ложь);
    Заголовки = Почта.ПолучитьЗаголовки(ПараметрыОтбораЗаголовков);
    Если Заголовки.Количество > 0 Тогда
        МассивСообщений = Новый Массив;
        МассивСообщений = Почта.Выбрать(Ложь,Заголовки,Истина);
        Для Индекс = 0 По МассивСообщений.Количество()-1 Цикл
            стр = МоиПисьма.Добавить();
            стр.Заголовок =МассивСообщений[Индекс].Тема;
        КонецЦикла;
    КонецЕсли;
Показать


ps. Изменил код.
18. Stanislav1993 13.07.19 13:08 Сейчас в теме
(17)
ПараметрыОтбораЗаголовков = Новый Структура;
ПараметрыОтбораЗаголовков.Вставить("Seen",Ложь);
Заголовки = Почта.ПолучитьЗаголовки(ПараметрыОтбораЗаголовков);
Если Заголовки.Количество > 0 Тогда
МассивСообщений = Новый Массив;
МассивСообщений = Почта.Выбрать(Ложь,Заголовки,Истина);
Для Индекс = 0 По МассивСообщений.Количество()-1 Цикл
стр = МоиПисьма.Добавить();
стр.Заголовок =МассивСообщений[Индекс].Тема;
КонецЦикла;
КонецЕсли;


Сработало, спасибо, товарищ!)))
19. spacecraft 13.07.19 13:09 Сейчас в теме
(18) вот так:
Если Заголовки.Количество() > 0 Тогда

Код изменяю вручную, возможны опечатки.
20. dakork 33 15.07.19 11:59 Сейчас в теме
(8)
Почта.Подключиться(Профиль);


Попробуйте здесь так

Почта.Подключиться(Профиль, ПротоколИнтернетПочты.IMAP);
Почта.ТекущийПочтовыйЯщик = "INBOX";
2. denic73 12.07.19 15:09 Сейчас в теме
Может дело в настройках почты яндекса?
Прикрепленные файлы:
3. Stanislav1993 12.07.19 15:11 Сейчас в теме
(2) везде я проставил птички
4. denic73 12.07.19 15:18 Сейчас в теме
(3) А в стороннем почтовом клиенте ( Outlook и проч.), если попробовать, стабильно работает?
5. Stanislav1993 12.07.19 15:18 Сейчас в теме
6. denic73 12.07.19 15:21 Сейчас в теме
По практике скажу, что, например, от работы с почтой в УПП отказались из-за нестабильной ее работы, а в Документообороте все качественно - нет претензий. Это, что касается Яндекс-почты конкретно.
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот