|
Почта. Отправить письмо с картинкой в Base64 | ☑ | ||
---|---|---|---|---|
0
nAPACEHAK
21.05.22
✎
17:01
|
Доброго
Есть шаблон html для тела письма. В шаблоне есть картинки. Если картинки размещены как src=http://.. то письмо отправляется, все норм Если же в шаблон встроить картинку как Base64 src=data:image/jpeg;base64,/9j/4AAQ то вываливается какой то непонятный крит https://prnt.sc/CwXhK_XI6zrg Ошибка при вызове метода контекста (Послать) {ВнешняяОбработка.ТестОтправкиШаблонаПисьма.Форма.Форма.Форма(75)}: Почта.Послать(ПочтовоеСообщение); {ВнешняяОбработка.ТестОтправкиШаблонаПисьма.Форма.Форма.Форма(4)}: ОтправитьПочту(); по причине: Файл не обнаружен 'file:///data:image/jpeg;base64,/9j/4AAQSkZJR...... Пробовал в УТ как электронное письмо, и просто, без типовых, ПочтовоеСообщение = Новый ИнтернетПочтовоеСообщение; ТипТекста = ?(HTML,ТипТекстаПочтовогоСообщения.HTML,ТипТекстаПочтовогоСообщения.ПростойТекст); ТекстДляОтправки = <СодержимоеШаблона> ПочтовоеСообщение.Тексты.Добавить(ТекстДляОтправки,ТипТекста); Если ПростойТекст, то письмо приходит пустое Если HTML то Файл не обнаружен 'file:///data:image/jpeg;base64,/9j/4AAQSk вот какого... он что то пытается в файл преобразовать??? и куда копать? Спасибо падает тут: Почта.Послать(ПочтовоеСообщение); До этой строки текст сообщения без изменений. никакого упоминания о файле, вложениях там нет |
|||
1
Garykom
гуру
21.05.22
✎
21:07
|
Подучи плиз теорию
|
|||
2
nAPACEHAK
22.05.22
✎
10:52
|
(1) это самое простое так ответить. очень информативно
|
|||
3
NorthWind
22.05.22
✎
11:00
|
(2) я не сильно владею вопросом, но вам не кажется, что у вас на скрине в (0) очень мало текста в src=data:image/jpeg?
Там же должна быть вся закодированная картинка размером 640*300, это будет довольно большая простыня. А у вас там символов 50 в строчке и кавычки закрылись. |
|||
4
Выпрь
22.05.22
✎
11:08
|
(3) там же 3 точки внутри.это браузер так о нас заботится, что простыти не мотать
|
|||
5
NorthWind
22.05.22
✎
11:10
|
(4) нет там никаких трех точек на скрине. Тег img закрывается и все.
То есть у него просто обрезана эта строка и реально никакой картинки там нет. |
|||
6
Выпрь
22.05.22
✎
11:14
|
/9j...
|
|||
7
Выпрь
22.05.22
✎
11:15
|
Может конечно что тег некорректно закрывается
|
|||
8
NorthWind
22.05.22
✎
11:19
|
(7) откройте его скрин https://prnt.sc/CwXhK_XI6zrg и посмотрите то, что подчеркнуто красным. Там тег закрывается и явно урезанная строчка в BASE64. То есть окончательный HTML формируется неправильно, там нет всего изображения.
|
|||
9
Выпрь
22.05.22
✎
11:21
|
(8) я тебе даже место указал где 3 точки, а ты все не видишь
|
|||
10
NorthWind
22.05.22
✎
11:27
|
а, посередине строки. Теперь увидел
|
|||
11
NorthWind
22.05.22
✎
11:33
|
так может, тогда не вставлять html как текст сообщения, а вложить html-файл в письмо?
|
|||
12
NorthWind
22.05.22
✎
11:37
|
||||
15
NorthWind
22.05.22
✎
13:36
|
(14) Не, не наврал. 1С так и делает, и в принципе, поскольку она это делает сама, можно вообще не греть с этим голову. Достаточно поставить локальные ссылки вроде src="file://D:/image.jpg" и положить изображения в это место. 1С при вызове Послать () сама их вложит и переделает ссылки чтобы в письме все было как надо.
|
|||
16
NorthWind
22.05.22
✎
13:43
|
Видимо, src="data:image/jpeg;base64..." не канает для сообщений электронной почты. Возможно, из соображений безопасности, а может, еще почему-то. Я попробовал еще вот так
Почта.Послать(Письмо, ОбработкаТекстаИнтернетПочтовогоСообщения.НеОбрабатывать); но письмо с оформленным таким образом HTML просто не приходит. |
|||
17
Garykom
гуру
22.05.22
✎
19:46
|
(16) Все прекрасно приходит
https://i2.paste.pics/ca8787ab57173e47c83aa3dbc0132b4d.png https://i2.paste.pics/4d880817499176177a71547527d2a602.png |
|||
18
Garykom
гуру
22.05.22
✎
19:46
|
(16) проверь спам
|
|||
19
NorthWind
22.05.22
✎
21:45
|
(18) У меня изначально рисунок просто был приличный, около 48 Кб строка base64.
И вот это не прошло. Я подозреваю, что мейл отфутболил. В спам не попало. Посмотрев (42), я сделал маленький рисунок, 240 байт строка. И вот такое письмо получилось пропихнуть. |
|||
20
NorthWind
22.05.22
✎
21:47
|
похоже, что все-таки такие строки в теле HTML не являются хорошим стилем оформления документов и серверы ограничивают такое поведение. Нужно делать через вложения.
|
|||
21
NorthWind
22.05.22
✎
21:58
|
Так что на вопрос в (0) мы ответили, но вот форматировать сообщения с большими картинками все равно таким образом не получится, не будут проходить как минимум через некоторые почтовики.
|
|||
22
Kassern
23.05.22
✎
09:13
|
(19) Насколько я понял, у некоторых почтовиков ограничение в 79 символов для base64, в противном случае либо ошибка, либо попадает в спам.
|
|||
23
Garykom
гуру
23.05.22
✎
09:16
|
(22) если в css засовывать тоже?
|
|||
24
Kassern
23.05.22
✎
09:18
|
(23) не пробовал
|
|||
25
NorthWind
23.05.22
✎
09:38
|
(23) а смысл? Заморочиться с CID-ами вложений не так уж сложно и врукопашную. Но самое смешное, что даже это надо! 1С умеет сама выцеплять картинки из папки и менять ссылки в HTML.
|
|||
26
NorthWind
23.05.22
✎
09:40
|
кстати, в СП в описании к HTML-формату почты прямо написано, что применять CSS для почтового HTML не рекомендуется.
|
|||
27
nAPACEHAK
23.05.22
✎
18:52
|
(3) а смысл постить всю строку. там она неимоверной длины. смысл то понятен что там
(16) нет. так оно не придет. а если вид поставить не хтмл а текст - то придет пустое. если хтмл с картинками - то тоже самое что хтмл я тут покопал, проблема давняя, обходят как в (13) через css background, но это тот еще костыль + теория вероятностей итого вариант или с динамическими картинками, но, у пользователя, аутлуки, например, дефолтом скачивание картинок отключат и будут квадратики, или никак. не получится картинку статической сделать или может еще идеи есть? |
|||
28
NorthWind
23.05.22
✎
19:17
|
(27) ну если пользователь или его работодатель не желает качать твои картинки, зачем его его заставлять? Я вот, например, вообще в бате часто просматриваю заголовки писем и выбираю галками, что получать, а что нет. Вообще не читая содержимое письма. И кто как с этим повоюет?
|
|||
29
NorthWind
23.05.22
✎
19:18
|
как мне думается, разумнее всего делать стандартным способом, через вложения. Не хочет пользователь качать вложения - его право. Может, у него трафик дорогой.
|
|||
30
nAPACEHAK
25.05.22
✎
09:14
|
(29) наше дело маленькое. Есть ТЗ и есть шаблон :)
|
|||
31
NorthWind
25.05.22
✎
10:15
|
(30) тогда могу посочувствовать. Спамеров никто не любит, поэтому работать таким образом будет сложно.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |