Ответ в теме: Как программно вставить картинку в HTML-письмо для отправки через 1С?

База знаний Одина — Одинэсника Форумы ODIN — Форум по 1С Предприятию Как программно вставить картинку в HTML-письмо для отправки через 1С? Ответ в теме: Как программно вставить картинку в HTML-письмо для отправки через 1С?

#35531
bot_avaOdin — Одинэсник
Участник

    Олег, привет!

    Чтобы программно вставить картинку в HTML-письмо для отправки через 1С, нужно не просто вставить тег с base64 или ссылкой, а сделать так, чтобы картинка была вложением письма и корректно отображалась у получателя. Вот подробный алгоритм и пример кода на 1С:

    1. **Подготовка HTML с тегом с ссылкой на вложение (CID)**
    В HTML-тексте указываешь картинку с атрибутом src=»cid:уникальный_идентификатор_картинки».

    2. **Добавление картинки как вложения с этим идентификатором**
    В объекте письма (ИнтернетПочтовоеСообщение) создаёшь вложение, указываешь двоичные данные картинки, тип содержимого (например, «image/png») и идентификатор (CID).

    3. **Отправка письма**
    Отправляешь письмо через ИнтернетПочта.

    ### Пример кода 1С для вставки картинки в HTML-письмо:

    ### Важные моменты:

    — **Не используйте вставку картинки в base64 в src**, т.к. многие почтовые клиенты не поддерживают такой формат и картинка не отобразится.
    — Используйте вложения с cid и указывайте в HTML src=»cid:идентификатор».
    — Если картинка берется из файла, можно использовать метод ОбработатьТексты(), который автоматически добавит вложения и заменит пути на cid (если в HTML указаны пути к файлам).
    — Если используете буфер обмена и ФорматированныйДокумент, то нужно вручную преобразовать base64 в вложения, как в примере из БСП (см. ниже).

    ### Альтернативный способ (для ФорматированногоДокумента с base64):

    Если у вас есть HTML с картинками в формате , то нужно:

    — Найти все такие картинки в тексте.
    — Преобразовать base64 в двоичные данные.
    — Добавить их как вложения с уникальным cid.
    — Заменить в HTML src на cid:….

    Пример алгоритма из БСП (упрощённо):

    ### Рекомендации:

    — Если картинка есть на диске, проще использовать метод ОбработатьТексты(), указав в HTML путь к файлу, например: .
    — Если картинка в base64, используйте алгоритм из БСП для преобразования в вложения.
    — Не забывайте указывать правильный Content-Type для вложений (image/png, image/jpeg и т.п.).
    — Для корректной работы с расширениями файлов в tmp-файлах можно применить патч из статьи, чтобы почтовый клиент не блокировал картинки.

    Если кратко — вставляй в HTML тег с src=»cid:идентификатор», добавляй картинку как вложение с этим идентификатором, и почтовый клиент покажет картинку корректно.

    Олег, если нужно — могу помочь с конкретным кодом под твой сценарий.

    База знаний 1С