ИнтернетПочтовоеВложение.ТипСодержимого

Свойства · MIMEType

Тип: Строка. Содержит MIME тип вложения. Если свойство при отправке сообщения не заполнено, то производится попытка автоматически определить MIME тип вложения. Если автоматически определить тип не получилось, для такого вложения используется тип "application/octet-stream".

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

ИнтернетПочтовоеВложение.ТипСодержимого (InternetMailAttachment.MIMEType)

ИнтернетПочтовоеВложение (InternetMailAttachment)

ТипСодержимого (MIMEType)

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

Использование:
Чтение и запись.
Описание:
Тип: Строка.
Содержит MIME тип вложения.
Если свойство при отправке сообщения не заполнено, то производится попытка автоматически определить MIME тип вложения. Если автоматически определить тип не получилось, для такого вложения используется тип "application/octet-stream".
Доступность:

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

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

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

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

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

Прикрепить JSON в памяти и прочитать собственные байты

Вложения.Добавить принимает ДвоичныеДанные. Имя вложения — имя для почтового клиента, а не разрешение записывать файл по этому пути.

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

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

Подготовка

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

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

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

Письмо = Новый ИнтернетПочтовоеСообщение;
Письмо.Кодировка = "UTF-8";
Письмо.Отправитель = "guide@example.invalid";
Письмо.ИмяОтправителя = "Учебный магазин";
Письмо.Получатели.Добавить("student@example.invalid");
Письмо.Тема = "Учебные товары";
Письмо.Тексты.Добавить("Книга: 3; Ручка: 1", ТипТекстаПочтовогоСообщения.ПростойТекст);
JSON = "{""code"":""A-01"",""quantity"":3}";
БайтыJSON = ПолучитьДвоичныеДанныеИзСтроки(JSON, КодировкаТекста.UTF8, Ложь);
Вложение = Письмо.Вложения.Добавить(БайтыJSON, "products.json");
Вложение.Имя = "products.json";
Вложение.Кодировка = "UTF-8";
Вложение.ТипСодержимого = "application/json";
Вложение.СпособКодирования = СпособКодированияИнтернетПочтовогоВложения.MIME;
Вложение.Идентификатор = "products@guide";
Сообщить(Письмо.Вложения.Количество() = 1);
Сообщить(Вложение.Имя = "products.json");
Сообщить(Вложение.Кодировка = "UTF-8");
Сообщить(Вложение.ТипСодержимого = "application/json");
Сообщить(Вложение.СпособКодирования = СпособКодированияИнтернетПочтовогоВложения.MIME);
Сообщить(Вложение.Идентификатор = "products@guide");
Сообщить(ПолучитьСтрокуИзДвоичныхДанных(Вложение.Данные, КодировкаТекста.UTF8) = JSON);
Сообщить("ИмяФайла, сообщённое платформой: " + Вложение.ИмяФайла);

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

  1. Собственный JSON преобразуем в UTF-8 без BOM и передаём двоичные данные.

  2. MIME-тип и кодировка задаются отдельно; способ MIME не является шифрованием.

  3. Проверяем байты обратным преобразованием. ИмяФайла только выводим, не присваиваем и не используем для записи на диск.

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

  1. Семь сравнений Истина; диагностическая строка ИмяФайла может зависеть от способа добавления.

  2. Файл products.json на диске не создавался.

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

Одно JSON-вложение создано без файловой системы и отправки.

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

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

  2. MIME-кодирование не защищает данные от прочтения третьими лицами.

  3. Имя и MIME-тип неизвестного вложения не доказывают его фактический формат или безопасность.

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

Прикрепить собственное письмо как вложенное сообщение

Перегрузка Добавить принимает ИнтернетПочтовоеСообщение, а Данные вложения могут быть письмом или двоичными данными. Тип проверяем до чтения Тема.

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

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

Подготовка

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

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

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

Письмо = Новый ИнтернетПочтовоеСообщение;
Письмо.Кодировка = "UTF-8";
Письмо.Отправитель = "guide@example.invalid";
Письмо.ИмяОтправителя = "Учебный магазин";
Письмо.Получатели.Добавить("student@example.invalid");
Письмо.Тема = "Учебные товары";
Письмо.Тексты.Добавить("Книга: 3; Ручка: 1", ТипТекстаПочтовогоСообщения.ПростойТекст);
Внутреннее = Новый ИнтернетПочтовоеСообщение;
Внутреннее.Отправитель = "guide@example.invalid";
Внутреннее.Получатели.Добавить("mentor@example.invalid");
Внутреннее.Тема = "Учебное пояснение";
Внутреннее.Тексты.Добавить("Количество книги равно 3", ТипТекстаПочтовогоСообщения.ПростойТекст);
Вложение = Письмо.Вложения.Добавить(Внутреннее, "explanation.eml");
Вложение.ТипСодержимого = "message/rfc822";
ДанныеВложения = Письмо.Вложения.Получить(0).Данные;
Если ТипЗнч(ДанныеВложения) <> Тип("ИнтернетПочтовоеСообщение") Тогда
    ВызватьИсключение "Для этой перегрузки ожидался собственный объект письма";
КонецЕсли;
Сообщить(ДанныеВложения.Тема = "Учебное пояснение");
Сообщить(Письмо.Тема = "Учебные товары");
Сообщить(Письмо.Вложения.Количество() = 1);

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

  1. Внутреннее письмо тоже полностью собственное и не отправлено.

  2. Добавить получает объект письма, не путь к существующему EML.

  3. Проверяем тип Данные перед обращением к Тема. MIME-roundtrip этого вложения здесь не выполнялся.

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

  1. Три сообщения Истина: внутренняя тема, внешняя тема, одно вложение.

  2. Внешнее и внутреннее письма не перепутаны; файлов explanation.eml на диске нет.

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

Прикреплено собственное письмо с отдельной темой и текстом.

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

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

  2. После разбора входного MIME представление Данные может отличаться: всегда проверяйте фактический тип.

  3. Вложенный From не подтверждает происхождение внешнего письма.

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

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

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

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

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