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

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

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

Прием

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

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

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

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

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

Удаление

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

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

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

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

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

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

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

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