Использование метода ПолучитьЗаголовки() интернет-почты

Метод ПолучитьЗагловки() объекта ИнтернетПочта позволяет получать с сервера только заголовки сообщений. Благодаря этому, например, можно получить информацию о теме, отправителе и т.д. и решить, принимать-ли это письмо, или сразу удалить его.

Данный метод возвращает массив объектов типа ИнтернетПочтовоеСообщение. Каждый объект содержит информацию из заголовка сообщения. Вложения и тексты с сервера не принимаются.

Прием

Например, требуется получить все заголовки почтовых сообщений:


Профиль = Новый ИнтернетПочтовыйПрофиль;
Профиль.АдресСервераPOP3 = "pop3.foo.org";
Профиль.Пользователь = "user";
Профиль.Пароль = "password";

// Подключиться к почтовому серверу.
Почта = Новый ИнтернетПочта;
Почта.Подключиться(Профиль);
// Принять заголовки всех писем, находящихся на сервере.
// ЗаголовкиСообщений - это массив с объектами типа ИнтернетПочтовоеСообщение
ЗаголовкиСообщений = Почта.ПолучитьЗаголовки();


Например, после просмотра заголовков необходимо принять первые 10 сообщений:


// Удалить из массива все сообщения кроме первых десяти.
Для Инд = 10 По ЗаголовкиСообщений.Количество() - 1 Цикл
ЗаголовкиСообщений.Удалить(ЗаголовкиСообщений.Количество() - 1);
КонецЦикла;
Попытка
// Получить "полные" сообщения.
// Полученные сообщения будут находится в массиве
// ПолученныеСообщения.
ПолученныеСообщения = Почта.Выбрать(Ложь, ЗаголовкиСообщений);
Исключение
Сообщить(ОписаниеОшибки());
КонецПопытки;


Удаление

Например, после анализа полученных заголовков, необходимо удалить все сообщения кроме первых десяти. Делается это так:


// Удалить из массива первые десять объектов.
Для Инд = 0 По 9 Цикл
ЗаголовкиСообщений.Удалить(0);
КонецЦикла;
Попытка
// Удалить с сервера сообщения, указанные в массиве ЗаголовкиСообщений.
Почта.УдалитьСообщения(ЗаголовкиСообщений);
Исключение
Сообщить(ОписаниеОшибки());
КонецПопытки;


Пример использования

Используя метод ПолучитьЗаголовки(), можно получать сообщения по-одному. Кроме того, можно заключить процедуру получения в операторы Попытка ... Исключение, что позволит продолжить получение, если при приеме определенного сообщения произошла ошибка. Так же можно поместить в форме индикатор для графического отображения процесса получения сообщений:


ПолучаемоеСообщение = Новый Массив;
// Получить заголовки.
ЗаголовкиСообщений = Почта.ПолучитьЗаголовки();
Для инд = 0 По Заголовки.Количество() - 1 Цикл

// Поместить очередной заголовок в массив
ПолучаемоеСообщение.Добавить(ЗаголовкиСообщений[инд]);

Попытка
// Получить "полное" сообщение, которое находится в
// массиве ПолученноеСообщение.
ПолученноеСообщение = Почта.Выбрать(Ложь, ПолучаемоеСообщение);
Исключение
// В случае если произошла ошибка, сообщить о ней
// пользователю и продолжить прием сообщений.
Сообщить(ОписаниеОшибки());
КонецПопытки;

// Очистить массив от предыдущего заголовка
ПолучаемоеСообщение.Очистить();
КонецЦикла;