Получить непрочитанные письма через протокол 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 32 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 Сейчас в теме
По практике скажу, что, например, от работы с почтой в УПП отказались из-за нестабильной ее работы, а в Документообороте все качественно - нет претензий. Это, что касается Яндекс-почты конкретно.
Оставьте свое сообщение
Вакансии
1С аналитик
Москва
зарплата от 210 000 руб.
Полный день

Руководитель направления 1С
Москва
зарплата от 350 000 руб.
Полный день

1С Программист
Москва
зарплата от 180 000 руб.
Полный день

Программист 1С
Москва
зарплата от 180 000 руб. до 220 000 руб.
Полный день

Аналитик 1С / Бизнес-аналитик
Нижний Новгород
зарплата от 100 000 руб. до 250 000 руб.
Временный (на проект)