Визуально при создании исходящего сообщения форматированный документ отображается следующим образом:



Для отправки сообщения, содержащего форматированный документ, можно использовать следующий фрагмент кода:

&НаКлиенте
Процедура ОтправитьПочту(Команда)

    Перем 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- текст прочитанного сообщения.