Метод ПолучитьЗагловки() объекта ИнтернетПочта позволяет получать с сервера только заголовки сообщений. Благодаря этому, например, можно получить информацию о теме, отправителе и т.д. и решить, принимать-ли это письмо, или сразу удалить его.
Данный метод возвращает массив объектов типа ИнтернетПочтовоеСообщение. Каждый объект содержит информацию из заголовка сообщения. Вложения и тексты с сервера не принимаются.
Например, требуется получить все заголовки почтовых сообщений:
Копировать в буфер обменаПрофиль = Новый ИнтернетПочтовыйПрофиль; Профиль.АдресСервераPOP3 = "pop3.foo.org"; Профиль.Пользователь = "user"; Профиль.Пароль = "password"; // Подключиться к почтовому серверу. Почта = Новый ИнтернетПочта; Почта.Подключиться(Профиль); // Принять заголовки всех писем, находящихся на сервере. // ЗаголовкиСообщений - это массив с объектами типа ИнтернетПочтовоеСообщение ЗаголовкиСообщений = Почта.ПолучитьЗаголовки();
Например, после просмотра заголовков необходимо принять первые 10 сообщений:
Копировать в буфер обмена// Удалить из массива все сообщения кроме первых десяти. Для Инд = 10 По ЗаголовкиСообщений.Количество() - 1 Цикл ЗаголовкиСообщений.Удалить(ЗаголовкиСообщений.Количество() - 1); КонецЦикла; Попытка // Получить "полные" сообщения. // Полученные сообщения будут находится в массиве // ПолученныеСообщения. ПолученныеСообщения = Почта.Выбрать(Ложь, ЗаголовкиСообщений); Исключение Сообщить(ОписаниеОшибки()); КонецПопытки;
Например, после анализа полученных заголовков, необходимо удалить все сообщения кроме первых десяти. Делается это так:
Копировать в буфер обмена// Удалить из массива первые десять объектов. Для Инд = 0 По 9 Цикл ЗаголовкиСообщений.Удалить(0); КонецЦикла; Попытка // Удалить с сервера сообщения, указанные в массиве ЗаголовкиСообщений. Почта.УдалитьСообщения(ЗаголовкиСообщений); Исключение Сообщить(ОписаниеОшибки()); КонецПопытки;
Используя метод ПолучитьЗаголовки(), можно получать сообщения по-одному. Кроме того, можно заключить процедуру получения в операторы Попытка ... Исключение, что позволит продолжить получение, если при приеме определенного сообщения произошла ошибка. Так же можно поместить в форме индикатор для графического отображения процесса получения сообщений:
Копировать в буфер обменаПолучаемоеСообщение = Новый Массив; // Получить заголовки. ЗаголовкиСообщений = Почта.ПолучитьЗаголовки(); Для инд = 0 По Заголовки.Количество() - 1 Цикл // Поместить очередной заголовок в массив ПолучаемоеСообщение.Добавить(ЗаголовкиСообщений[инд]); Попытка // Получить "полное" сообщение, которое находится в // массиве ПолученноеСообщение. ПолученноеСообщение = Почта.Выбрать(Ложь, ПолучаемоеСообщение); Исключение // В случае если произошла ошибка, сообщить о ней // пользователю и продолжить прием сообщений. Сообщить(ОписаниеОшибки()); КонецПопытки; // Очистить массив от предыдущего заголовка ПолучаемоеСообщение.Очистить(); КонецЦикла;