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

Типы · InternetMailAttachment

Вложение в почтовое сообщение представляет собой двоичные данные.

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

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

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

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

Свойства:
Данные (Data)
Идентификатор (CID)
Имя (Name)
ИмяФайла (FileName)
Кодировка (Encoding)
СпособКодирования (EncodingMode)
ТипСодержимого (MIMEType)

Описание:

Вложение в почтовое сообщение представляет собой двоичные данные.

Доступность:

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

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

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

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

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

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

Удалить одно вложение, затем очистить коллекцию письма

Удаление элементов коллекции изменяет только собственный объект письма. Оно не удаляет файлы с диска и не снимает письма с почтового сервера.

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

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

Подготовка

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

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

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

Письмо = Новый ИнтернетПочтовоеСообщение;
Письмо.Кодировка = "UTF-8";
Письмо.Отправитель = "guide@example.invalid";
Письмо.ИмяОтправителя = "Учебный магазин";
Письмо.Получатели.Добавить("student@example.invalid");
Письмо.Тема = "Учебные товары";
Письмо.Тексты.Добавить("Книга: 3; Ручка: 1", ТипТекстаПочтовогоСообщения.ПростойТекст);
ПервыеДанные = ПолучитьДвоичныеДанныеИзСтроки("Книга", КодировкаТекста.UTF8, Ложь);
ВторыеДанные = ПолучитьДвоичныеДанныеИзСтроки("Ручка", КодировкаТекста.UTF8, Ложь);
Первое = Письмо.Вложения.Добавить(ПервыеДанные, "book.txt");
Письмо.Вложения.Добавить(ВторыеДанные, "pen.txt");
Сообщить(Письмо.Вложения.Количество() = 2);
Письмо.Вложения.Удалить(Первое);
Сообщить(Письмо.Вложения.Количество() = 1);
Оставшееся = Письмо.Вложения.Получить(0);
Сообщить(ПолучитьСтрокуИзДвоичныхДанных(Оставшееся.Данные, КодировкаТекста.UTF8) = "Ручка");
Письмо.Вложения.Очистить();
Сообщить(Письмо.Вложения.Количество() = 0);

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

  1. Два вложения создаём из собственных байтов, а не по адресам файлов.

  2. Удалить принимает элемент коллекции или индекс: здесь используем Первое.

  3. После удаления проверяем количество до Получить(0); Очистить убирает оставшуюся коллекцию.

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

  1. Четыре сообщения Истина: 2, 1, осталась Ручка, затем 0.

  2. Ни УдалитьФайлы, ни почтовое удаление сообщений не выполняется.

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

Изменён набор вложений собственного письма без внешнего удаления.

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

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

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

  3. Оставшиеся переменные-ссылки на объект не означают, что он снова входит в коллекцию письма.

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

Прикрепить 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С, 1С:Предприятие — товарные знаки ООО «1С». Сайт не является официальным представительством фирмы «1С» и не аффилирован с ней.