Доброго времени суток, коллеги. Может, кто сталкивался? После отправки почты из 1с в других почтовых клиентах вставленные в письма изображения не отображаются. Отображается квадратик с крестом. Письма уходят с текстом в формате HTML. Если смотреть текст html полученного письма из 1с блок с картинкой будет выглядеть так

```1c
    <img src="cid:39ede869-c592-4d87-882d-c56c42889112"></img>
```

Если отправлять картинку например из тандерберда в html и там же получать. То блок с картинкой будет выглядет так

```1c
    <img src="mailbox-message://4u%40*******%2Eru@pop.yandex.com/Inbox#23?header=saveas∂=1.2&filename=jbemhmphmkoflalo.png" alt=">
```

Пробовал менять в 1с у метода Послать() параметр ОбрабатыватьТексты но результата не дало.
Подскажите как победить? Как сделать так что бы в сторонних почтовых клиентах картинки отображались корректно?
---
Все оказалось проще. При добавлении вложения в письмо, вложению не присваивался идентификатор поэтому cid не работал. Всем спасибо. Навели на нужную мысль
---
так ты уверен что дело в квадратике? Может там есть кнопочка нажал и картинка подгрузилась?)
А вообще картинки в теле письма не рекомендуется отправлять!
А раз отправляешь в теле письма, то как ты хочешь их вставлять в письмо через атач или ссылка на внешний ресурс?
---
Нет кнопки нет. Квадратик с крестом ошибки )
Я хочу что бы при отправке из 1с
строка с картинкой уходила так

```1c
    <img src="mailbox-message://4u%40*******%2Eru@pop.yandex.com/Inbox#23?header=saveas∂=1.2&filename=jbemhmphmkoflalo.png" alt=">
```
 (строка сформировалась из обычного почтового клиента и при получении картинка отображается корректно)
Но как на это повлиять не понятно.
---
ну я так понял через атач.
Ну судя по этой строке нужно добавить атач, а затем формировать тело письма. Проблем с написанием этой строки я не вижу!
Делай шаблон и затем формируй текст.
---
Картинку не правильно вставляете.

```1c
    Письмо=Новый ИнтернетПочтовоеСообщение;
    Письмо.Отправитель = "test@yandex.ru";
    Письмо.Тема="Письмо с картинками";
    Письмо.Получатели.Добавить("test1@yandex.ru");
    Текст = "
    |Картинка:
    |<img src="file:///C:/temp/1.png" />
    |Конец письма.
    |";

    Письмо.Тексты.Добавить(Текст,ТипТекстаПочтовогоСообщения.HTML);
    Письмо.ОбработатьТексты();
```
---
а к письму файл с таким именем 39ede869-c592-4d87-882d-c56c42889112 прикреплен?

cid в в пути картинки - это идентификатор прикрепленного ресурса.
---
Поддерживаю. Сам катал самописную отправку, картинки нужно помещать во вложения, чтобы на них уже можно было ссылаться из текста письма.
---
А были заморочки с base64 при написании или и так работало ?
---
Заморочек не было. Помню схема была такова.
Пользователь в поле форматированного документа вводит текст, вставляет картинки и т.д. Далее я получаю текст html и структуру вложений. А вот потом (точно не помню детали) вложения запихиваю во вложения, после "подключения" вложений к письму, у них появляются некие идентификаторы (или их при помощении можно еще задать), беру эти идентификаторы ищу в тексте html старые ссылки и заменяю на эти идентификаторы + еще меняю название атрибута "src=...." на что-то или наоборот. Как-то так.посмотреть времени нету.
---
Прикреплен, но название чуть другое. Т.е. код письма вот такой

```1c
    <img moz-do-not-send="true"
    src="cid:a86f9751-e09b-45d0-92ff-dcac88dec519">
```

а имя вложения
_a86f9751_e09b_45d0_92ff_dcac88dec519
Пробую при пересылке исправить код, что бы точно совпадало с именем вложения, но положение не исправляется. Я нашел в конфе где формируется строчка с cid. Но в чем ошибка не пойму
---
Спасибо! Помогли! Тоже имя не было присвоено
---
Во всех клиентах отображается неправильно?
Тандерберд крайне капризный клиент...

Нужно проверить как называются вложения, которые идут с письмом
---
А отправка самописаня или типовая?
---
Все оказалось проще. При добавлении вложения в письмо, вложению не присваивался идентификатор поэтому cid не работал. Всем спасибо. Навели на нужную мысль
---
Как его присвоить? Письмо.Вложения.Добавить(Путь,Имя) не добавляет ижентификаторов. Каким способом это сделать?
---
Имя, ИмяФайла и Идентефикатор = "image001"
Но всё равно при обработке текстов выдаёт ошибку: {ОбщийМодуль._Почте.Модуль(392)}: Ошибка при вызове метода контекста (ОбработатьТексты): Файл не обнаружен '\image001'
---
Хоть и поздновато отвечать почти через год, но может кому и пригодиться:

1. В HTML-тексте ссылка (src) должна быть на локальный файл (в виде "file:///c:\tenp\1.png", без замены символа ":" на "|");

2. Добавлять картинку во вложения письма именно из локального файла.

Тогда ОбработатьТексты() происходит без жалоб и в письме Вы увидите в тексте картинку (правда, во вложениях тоже).

Я пробовал кодировать через Base64 двоичные данные картинки и подставлять в src, но фокус не удается - в браузерах такое "на ура", либо ОбработатьТексты() не проходит, либо в тексте письма ерунда.
---
То есть порядок действий по факту такой:
1. Получить HTML из форматированного документа с картинками, текст HTML будет содержать ссылки на картинки типа src=img0001 и так далее;
2. Выгрузить картинки во временный каталог с этими же наименованиями файлов;
3. При формировании письма заменить текст тела письма с относительными ссылками на картинки на абсолютные ссылки на картинки с локального диска вов ременном каталоге;
4. При обработке текста (в методе Послать() вторым параметром или непосредственно ОбработатьТексты()) ссылки в теле письма преобразуются на ссылки на вложения и картинки пропишутся в эти вложения.
---
Оказалось можно обойтись без размещения файлов на диске. В теге img заменить имя файла на sid + уникальный идентификатор (например: src="cid:f09dcc48-cf9d-4fb5-b1bd-bc99672fd176") и присвоить данный идентификатор (без cid) полю "Идентификатор" для вложения письма с типом "ИнтернетТекстПочтовогоСообщения". Во вложении содержится изображение в виде двоичных данных. Метод ОбработатьТексты() выполняется без ошибок. Изображение в письмо отображается.