Имя: Пароль:
1C
 
ИнтернетПочта 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", Ложь);
Прочитано было письмо, и статус естественно у письма Прочитано = Истина