ИнтернетПочта IMAP отбор по Дате
☑
0
spiller26
11.04.18
✎
15:28
Пытаюсь получить почту с отбором по Дате, но всё равно выбирает все.
Хотя другие параметры отбора работают.
&НаСервере
Процедура ПолучитьНаСервере()
Профиль = Новый ИнтернетПочтовыйПрофиль;
Профиль.АутентификацияPOP3 = Ложь;
Профиль.АутентификацияSMTP = Ложь;
// IMAP
Профиль.ИспользоватьSSLIMAP = Истина;
Профиль.АдресСервераIMAP = Объект.АдресСервераIMAP;
Профиль.ПортIMAP = Объект.ПортIMAP;
Профиль.ПользовательIMAP = Объект.ПользовательIMAP;
Профиль.ПарольIMAP = Объект.ПарольIMAP;
Профиль.ТолькоЗащищеннаяАутентификацияIMAP = Ложь;
ПочтаIMAP = Новый ИнтернетПочта;
Сообщ = Новый СообщениеПользователю();
Попытка
ПочтаIMAP.Подключиться(Профиль, ПротоколИнтернетПочты.IMAP); //ПротоколИнтернетПочты.POP3
ПараметрыОтбораIMAP = Новый Структура;
ПараметрыОтбораIMAP.Вставить("Seen", Ложь);
ПараметрыОтбораIMAP.Вставить("Deleted", Ложь);
ПараметрыОтбораIMAP.Вставить("PostDating", Дата("20180410"));
ПочтаIMAP.ПолучитьЗаголовки(ПараметрыОтбораIMAP);
МассивСообщений = Новый Массив;
МассивСообщений = ПочтаIMAP.Выбрать(Ложь);
Исключение
Сообщ.Текст = " - Ошибка при подключении или приеме" + ОписаниеОшибки();
Сообщ.Сообщить();
Возврат;
КонецПопытки;
МассивСообщенийОбмена = Новый Массив;
Если МассивСообщений.Количество() = 0 Тогда
Сообщ.Текст = "Сообщений в почтовом ящике нет.";
Сообщ.Сообщить();
Возврат;
КонецЕсли;
Для Индекс = 0 По МассивСообщений.Количество() - 1 Цикл
//
КонецЦикла;
Сообщ.Текст = "Сообщения получены!";
Сообщ.Сообщить();
ПочтаIMAP.Отключиться();
КонецПроцедуры
1
mehfk
11.04.18
✎
15:33
Вообще, ПолучитьЗаголовки не комильфо, по возможности лучше использовать ПолучитьИдентификаторы.
2
mehfk
11.04.18
✎
15:36
ПочтаIMAP.ПолучитьЗаголовки(ПараметрыОтбораIMAP);
МассивСообщений = Новый Массив;
МассивСообщений = ПочтаIMAP.Выбрать(Ложь);
Ну получил ты Заголовки, никуда не сохранил, а выбираешь-то ты все равно все письма.
3
mehfk
11.04.18
✎
15:36
Сделай так, что-ли.
МассивЗаголовковСообщенийИлиИдентификаторов = ПочтаIMAP.ПолучитьЗаголовки(ПараметрыОтбораIMAP);
МассивСообщений = Новый Массив;
МассивСообщений = ПочтаIMAP.Выбрать(Ложь, МассивЗаголовковСообщенийИлиИдентификаторов);
4
spiller26
11.04.18
✎
15:42
(3) Не прокатило
5
mehfk
11.04.18
✎
15:46
Се ля ви.
6
Azverin
11.04.18
✎
15:50
на сколько помню, там хитро с этим - читать справку.
7
spiller26
11.04.18
✎
16:00
(5, 6) Вот где загвоздка была
ПараметрыОтбораIMAP.Вставить("Seen", Ложь);
Прочитано было письмо, и статус естественно у письма Прочитано = Истина
Я не хочу быть самым богатым человеком на кладбище. Засыпать с чувством, что за день я сделал какую-нибудь потрясающую вещь — вот что меня интересует. Стив Джобс