ИнтернетТекстПочтовогоСообщения.Кодировка

Свойства · Encoding

Тип: Строка. Содержит кодировку текстовых данных сообщения. Если кодировка не указана, будет использоваться значение кодировки из свойства Кодировка.

Полное описание, параметры и ограничения

ИнтернетТекстПочтовогоСообщения.Кодировка (InternetMailText.Encoding)

ИнтернетТекстПочтовогоСообщения (InternetMailText)

Кодировка (Encoding)

Доступен, начиная с версии 8.0.

Использование:
Чтение и запись.
Описание:
Тип: Строка.
Содержит кодировку текстовых данных сообщения. Если кодировка не указана, будет использоваться значение кодировки из свойства Кодировка.
Доступность:

Тонкий клиент, мобильный клиент, сервер, толстый клиент, внешнее соединение, мобильное приложение (клиент), мобильное приложение (сервер), мобильный автономный сервер.

Примечание:
Поддерживаемые коды кодировок (с учетом правил http://www.w3.org/TR/2004/REC-xml-20040204/#NT-EncName):
UTF-8

UTF-16

UTF-16BE

UTF-16LE

ISO-8859-1

US-ASCII

gb18030

iso-8859-2

iso-8859-3

iso-8859-4

iso-8859-5

iso-8859-6

iso-8859-7

iso-8859-8

iso-8859-9

iso-8859-13

iso-8859-15

Shift_JIS

EUC-JP

Big5

Big5-HKSCS

GBK

GB2312

GB_2312-80

EUC-KR

KSC_5601

windows-949

windows-874

cp866

KOI8-R

KOI8-U

windows-1250

windows-1251

windows-1252

windows-1253

windows-1254

windows-1255

windows-1256

windows-1257

windows-1258

macintosh

x-mac-cyrillic

ISO-2022-JP

ISO-2022-KR

ISO-2022-CN

ISO-2022-CN-EXT

HZ-GB-2312

См. также:
ИнтернетПочтовоеСообщение, свойство Кодировка
ИнтернетПочтовыйАдрес, свойство Кодировка
ИнтернетПочтовоеВложение, свойство Кодировка

Использование в версии:

Доступен, начиная с версии 8.0.

Методическая информация

Практические примеры

Задать собственный тип текста application/json

Строковый второй аргумент Добавить задаёт ПроизвольныйТекст. MIME-тип сообщает формат, но сам не проверяет поля JSON.

Где и как запускать

Учебная база: создайте серверный общий модуль УчебныеЗадачи (флаг Сервер). Код без директив вставьте в тело процедуры ВыполнитьПример() Экспорт. Вызовите её из серверного обработчика команды учебной обработки. Не запускайте в рабочей базе.

Подготовка

  1. В учебной базе выполните код на сервере. Письмо создаётся и разбирается в памяти; профиль почты, пароль, SMTP/IMAP и вызов Послать не нужны.

  2. Все адреса заданы на учебном домене example.invalid. Не заменяйте их реальными адресами и не добавляйте отправку при первой проверке.

  3. Письмо о двух учебных товарах не содержит персональных данных, реальных заказов и внешних HTML-ресурсов. Его текст не является счётом или подтверждением доставки.

Письмо = Новый ИнтернетПочтовоеСообщение;
Письмо.Кодировка = "UTF-8";
Письмо.Отправитель = "guide@example.invalid";
Письмо.ИмяОтправителя = "Учебный магазин";
Письмо.Получатели.Добавить("student@example.invalid");
Письмо.Тема = "Учебные товары";
Письмо.Тексты.Добавить("Книга: 3; Ручка: 1", ТипТекстаПочтовогоСообщения.ПростойТекст);
Письмо.Тексты.Очистить();
Часть = Письмо.Тексты.Добавить("{""code"":""A-01"",""quantity"":3}", "application/json");
Часть.Кодировка = "UTF-8";
Сообщить(Часть.ТипТекста = ТипТекстаПочтовогоСообщения.ПроизвольныйТекст);
Сообщить(Часть.ПроизвольныйТипТекста = "application/json");
Часть.ПроизвольныйТипТекста = "application/json; profile=guide";
Сообщить(СтрНайти(Часть.ПроизвольныйТипТекста, "profile=guide") > 0);
Сообщить(Часть.Текст = "{""code"":""A-01"",""quantity"":3}");

Разбор по шагам

  1. JSON задан собственной строкой; двойные кавычки экранированы по правилам BSL.

  2. Строка MIME-типа во втором аргументе меняет ТипТекста на ПроизвольныйТекст.

  3. ПроизвольныйТипТекста можно дополнить собственным параметром; содержимое JSON при этом не меняется.

Как проверить результат

  1. Четыре сообщения Истина.

  2. Получатель ещё не прочитал JSON и не подтвердил его контракт.

Ожидаемый результат

Разделены собственный MIME-тип текстовой части и её строковое содержимое.

На что обратить внимание

  1. Объект письма и успешный разбор MIME не доказывают отправку, доставку, подлинность отправителя или прочтение.

  2. Не используйте MIME-тип как замену ПрочитатьJSON, проверки типов и обязательных полей.

  3. Некоторые почтовые клиенты могут показать такую часть как файл, а не обычный текст.

Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.

Добавить простой и HTML-текст с одинаковым смыслом

Тексты — коллекция частей письма. HTML не читается как BSL и не должен содержать неизвестные внешние ссылки; в уроке только собственный абзац.

Где и как запускать

Учебная база: создайте серверный общий модуль УчебныеЗадачи (флаг Сервер). Код без директив вставьте в тело процедуры ВыполнитьПример() Экспорт. Вызовите её из серверного обработчика команды учебной обработки. Не запускайте в рабочей базе.

Подготовка

  1. В учебной базе выполните код на сервере. Письмо создаётся и разбирается в памяти; профиль почты, пароль, SMTP/IMAP и вызов Послать не нужны.

  2. Все адреса заданы на учебном домене example.invalid. Не заменяйте их реальными адресами и не добавляйте отправку при первой проверке.

  3. Письмо о двух учебных товарах не содержит персональных данных, реальных заказов и внешних HTML-ресурсов. Его текст не является счётом или подтверждением доставки.

Письмо = Новый ИнтернетПочтовоеСообщение;
Письмо.Кодировка = "UTF-8";
Письмо.Отправитель = "guide@example.invalid";
Письмо.ИмяОтправителя = "Учебный магазин";
Письмо.Получатели.Добавить("student@example.invalid");
Письмо.Тема = "Учебные товары";
Письмо.Тексты.Добавить("Книга: 3; Ручка: 1", ТипТекстаПочтовогоСообщения.ПростойТекст);
Письмо.Тексты.Очистить();
Простой = Письмо.Тексты.Добавить("Книга: 3; Ручка: 1", ТипТекстаПочтовогоСообщения.ПростойТекст);
HTML = Письмо.Тексты.Добавить("<p>Книга: <strong>3</strong>; Ручка: <strong>1</strong></p>", ТипТекстаПочтовогоСообщения.HTML);
Простой.Кодировка = "UTF-8";
HTML.Кодировка = "UTF-8";
Сообщить(Письмо.Тексты.Количество() = 2);
Сообщить(Простой.ТипТекста = ТипТекстаПочтовогоСообщения.ПростойТекст);
Сообщить(HTML.ТипТекста = ТипТекстаПочтовогоСообщения.HTML);
Сообщить(СтрНайти(HTML.Текст, "<strong>3</strong>") > 0);
Письмо.Тексты.Удалить(HTML);
Сообщить(Письмо.Тексты.Количество() = 1);
Сообщить(Письмо.Тексты.Получить(0).Текст = "Книга: 3; Ручка: 1");

Разбор по шагам

  1. Убираем исходный текст только в собственном объекте, создаём две явно типизированные части.

  2. Кодировка каждой части задана отдельно; тема и адресные имена имеют кодировку уровня письма.

  3. Удаляем HTML по объекту коллекции, оставляя простой текст. Никакой браузер для проверки не открывается.

Как проверить результат

  1. Шесть сообщений Истина: сначала две части, затем одна простая.

  2. HTML задан только как строка; его отображение в почтовом клиенте здесь не проверяется.

Ожидаемый результат

Подготовлены и изменены две текстовые части собственного письма.

На что обратить внимание

  1. Объект письма и успешный разбор MIME не доказывают отправку, доставку, подлинность отправителя или прочтение.

  2. Не вставляйте пользовательский текст в HTML без экранирования.

  3. Наличие двух частей не обещает конкретную компоновку multipart во всех версиях почтовых клиентов.

Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.

Не хотите разбираться сами?

Адаптируем это решение под вашу базу. Оценка бесплатно.

Оставить задачу

1С, 1С:Предприятие — товарные знаки ООО «1С». Сайт не является официальным представительством фирмы «1С» и не аффилирован с ней.