Для отправки сообщения, содержащего форматированный документ, можно использовать следующий фрагмент кода:
&НаКлиенте
Процедура ОтправитьПочту(Команда)
Перем HTML, Картинки;
Профиль = Новый ИнтернетПочтовыйПрофиль;
Профиль.АдресСервераSMTP = СерверSMTP;
Профиль.АдресСервераPOP3 = СерверPOP3;
Профиль.Пользователь = Пользователь;
Профиль.Пароль = Пароль;
Сообщение = Новый ИнтернетПочтовоеСообщение;
Сообщение.Тема = "Форматированный документ ";
Сообщение.Отправитель = ОтправительПочтовогоСообщения;
Сообщение.Получатели.Добавить(ПочтовыйАдресОбмена);
Содержимое.ПолучитьHTML(HTML, Картинки);
Для Каждого Картинка Из Картинки цикл
Вложение = Сообщение.Вложения.Добавить(Картинка.Значение.ПолучитьДвоичныеДанные());
Вложение.Идентификатор = Картинка.Ключ;
HTML = СтрЗаменить(HTML, Картинка.Ключ, "cid:" + Вложение.Идентификатор);
КонецЦикла;
ТекстСообщения = Сообщение.Тексты.Добавить(HTML, ТипТекстаПочтовогоСообщения.HTML);
Почта = Новый ИнтернетПочта;
Сообщ = Новый СообщениеПользователю();
Попытка
Почта.Подключиться(Профиль);
Почта.Послать(Сообщение);
Исключение
Сообщ.Текст = " - Ошибка при отправке почты: ";
Сообщ.Сообщить();
Сообщ.Текст = ОписаниеОшибки();
Сообщ.Сообщить();
Возврат;
КонецПопытки;
Сообщ.Текст = " Сообщение отправлено. ";
Сообщ.Сообщить();
Почта.Отключиться();
Содержимое.Удалить();
КонецПроцедуры
Для отправки содержимого форматированного документа сначала исполь зуется его метод ПолучитьНТМL(), который получает HTML-составляющие форматированного документа - массив картинок и HTML-текст. Затем полученные картинки добавляются как вложения в почтовое сообщение и сопоставляются с текстом письма путем установки свойства Идентификатор объекта ИнтернетПочтовоеВложение. HTML-текст добавляется в массив текстов почтового сообщения с указанием типа текста ТипТекстаПочтовогоСообщения.НТМL.
Остальная работа по отправке сообщения выполняется с помощью методов Подключиться () и Послать () объекта ИнтернетПочта.
Для чтения сообщения, содержащего форматированный документ, можно использовать следующий фрагмент кода:
&НаКлиенте
Процедура ПолучитьПочту(Команда)
Перем HTML, Картинки;
Профиль = Новый ИнтернетПочтовыйПрофиль;
Профиль.АдресСервераPOP3 = СерверPOP3;
Профиль.Пользователь = Пользователь;
Профиль.Пароль = Пароль;
Почта = Новый ИнтернетПочта;
Сообщ = Новый СообщениеПользователю();
Попытка
Почта.Подключиться(Профиль);
// Получаем все сообщения из почтового ящика
МассивСообщений = Новый Массив;
МассивСообщений = Почта.Выбрать(Ложь);
Исключение
// Ошибка при подключении к серверу или при приеме сообщения обмена
Сообщ.Текст = " - Ошибка при подключении или приеме" + ОписаниеОшибки();
Сообщ.Сообщить();
Возврат;
КонецПопытки;
КоличествоСообщений = МассивСообщений.Количество();
Если КоличествоСообщений = 0 Тогда
// Сообщений в почтовом ящике нет
Сообщ.Текст = " - Сообщений в почтовом ящике нет.";
Сообщ.Сообщить();
Возврат;
КонецЕсли;
ТекстФД.Удалить();
Для Индекс = 0 По КоличествоСообщений - 1 Цикл
Сообщ.Текст = "Принято сообщение: " + МассивСообщений[Индекс].Тема;
Сообщ.Сообщить();
// выводим содержимое письма в форматированый документ для последнего сообщения
Если Индекс = КоличествоСообщений - 1 Тогда
//Картинки = Новый Структура();
Для каждого Элемент Из МассивСообщений[Индекс].Тексты Цикл
Если Элемент.ТипТекста = ТипТекстаПочтовогоСообщения.HTML Тогда
//отображение тела сообщения в HTML документе
ТекстHTML = Элемент.Текст;
Если Найти(ТекстHTML, "<HTML>") = 0 Тогда
ТекстHTML = "<HTML><BODY>" + ТекстHTML + "</BODY></HTML>";
КонецЕсли;
//отображение тела сообщения в форматированном документе
//HTML = Элемент.Текст;
//Для каждого Вложение Из МассивСообщений[Индекс].Вложения Цикл
//НомерКартинки = 1;
//КартинкаВложения = Новый Картинка(Вложение.Данные);
//Если КартинкаВложения <> Неопределено Тогда
//Имя = "img" + НомерКартинки;
//НомерКартинки = НомерКартинки + 1;
//Картинки.Вставить(Имя, КартинкаВложения);
//HTML = СтрЗаменить(HTML, "cid:" + Вложение.Идентификатор, Вложение.Имя);
//КонецЕсли;
//КонецЦикла;
//РаботаСДанными.УстановитьТекстHTML(ТекстФД, HTML, Картинки);
КонецЕсли;
КонецЦикла;
КонецЕсли;
КонецЦикла;
Почта.Отключиться();
КонецПроцедуры
Для отображения содержимого полученного сообщения используется элемент формы ТекстНТМ1_ вида Поле HTML документа, связанный с соответствующим строковым реквизитом формы. В этот реквизит помещается HTML- текст прочитанного сообщения.