Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Відправка листів за допомогою Rom-Mail з зображенням в тілі.
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 7.7
XBrut
Задача: Відправити лист за допомогою комоненти Rom-Mail.
Тіло листа має буди в форматі HTML.
В тілі листа мають бути зображення.
Буду вдячний, якщо хтось підкаже, як монтувати тіло листа, щоб всередені були зображення.
-=VJ=-
Цитата(XBrut @ 17.06.13, 12:58) необходимо зарегистрироваться для просмотра ссылки
Задача: Відправити лист за допомогою комоненти Rom-Mail.
Тіло листа має буди в форматі HTML.
В тілі листа мають бути зображення.
Буду вдячний, якщо хтось підкаже, як монтувати тіло листа, щоб всередені були зображення.


<html>
<head>
<title>Вставка изображения в HTML код страницы</title>
</head>
<body>
<img src="xxx.jpg" alt="Альтернативный текст" width="100" height="80" />
</body>
</html>
XBrut
....
Почта.КаталогВложений="D:\";
Почта.Вложения        ="1.jpg"; //тут лежить картинка
Почта.Тема            ="Тема листа";
Почта.ТипПисьма        =2;             //тіло листа буде в форматі HTML
Почта.Тело             ="<html> <head> <title>Вставка изображения в HTML код страницы</title> </head> <body> <img src=""1.jpg"" alt=""Альтернативный текст"" width=""100"" height=""80"" /> </body> </html>";
.....


Приймаю лист в аутлук-експрес. Бачу : місце для картинки є, але самої картинки нема.
Записую тіло листа в файл. Відкриваю той файл в HTML-редакторі. Бачу помилку "Fail to load resource"


Якщо зберігти тіло листа у вигляді файла і відкрити в броузері, маємо помилку "Fail to load resource".
Воно хоче, щоб файл з картинкою лежав в тому ж каталозі.
Що треба зробити , щоб картинка стала доступною всередені листа?

здогадуюсь, що можна розмістити картинку на сайті і написати
src=""http.xxx.com/1.jpg""
але це якось дуже вже хлопотно
Vofka
Получите картинку в виде двоичных данных и вставьте в письмо так:

Почта.Тело = ""+Base64Строка(ДвоичныеДанные)+"";
XBrut
це ж 7.7 smile.gif
доведеться Base64Строка() самому видумивать
-=VJ=-
Цитата(XBrut @ 17.06.13, 15:28) необходимо зарегистрироваться для просмотра ссылки
це ж 7.7 smile.gif
доведеться Base64Строка() самому видумивать


 <img src=""cid:1.jpg""
XBrut
Не працює.
Судячи з того, що витворюють люди, аби зробити щось подібне,
необходимо зарегистрироваться для просмотра ссылки
можна здогадатись, що в Rom-mail відповідні інструменти відсутні.
Можливо щось дасть метод "ЗагрузитьИзФайла()". Тобто підготувати тіло листа ззовні, а потім завантажити.... пізніше відпишусь..
XBrut
Варіант з вставкою картинки прямо в текст.
Стр64 =""+фЗакодироватьФайл("D:\1.jpg"); //кодує через зовнішню компоненту
Почта.Тема ="тест";
Почта.ТипПисьма =2;
Почта.Тело =
"<html> <head></head>
|<body>
|<img src="data:image/jpg;base64,""+Стр64+""" alt=""Картинка"" />
|</body>
|</html>";


Дає наступні результати: якщо картинка невелика, то її видно в веб-клієнті через Хром.
Аутлук експрес картинку не бачить. Інтернет експлорер 6.0 картинку не бачить.
Мікрософт аутлук - картинку не бачить.

Варіант з загрузкою тіла листа з файлу

Почта.Тема ="тест";
Почта.ТипПисьма =2;
Почта.ЗагрузитьИзФайла("D:\1.htm");


дає чіткий результат (вислав в тілі листа сторінку "Української правди") з фото. все ок.
АЛЕ посилання на фото в тій сторінці, ясна річ, зовнішні , типу
<meta name="twitter:image:src" content="http://img.pravda.com.ua/images/doc/c/7/c7b1150-300.jpg">



карочє. все пагано icon_beer17.gif
для комерційного використання це все брєд.
хіба під кожен лист моделювати сторінку на сайті.
XBrut
Довелося змінити постановку задачі.
1) відправляти через мс аутлук
2) перед відправкою користувач має підготувати листа (в тому ж аутлуці) розставити картинки, шрифти, фон , підготувати вкладення і зберігти в шаблон.
3) 1С створює лист в аутлуці з шаблону. додає адресу з довідника контрагента і відсилає.

макрос в аутлук

Public Sub MySendLetter(adres)
Dim olApp As Outlook.Application
Dim MyItem As Outlook.MailItem
Set olApp          = Application                            ' там можна обійти захист від відправки листа сторонньою програмою
Set MyItem       = olApp.CreateItemFromTemplate("D:\1.oft")   ' створюємо лист з шаблону
MyItem.Subject = "Лист з 1С"
MyItem.To = adres                                           ' так можна обійти захист від доступу до адресної книги аутлука
MyItem.Send
End Sub


в 1С відповідно
Аутлук=СоздатьОбъект("Outlook.Application"); 
Аутлук.MySendLetter(Адрес);


P.S.
виникає питання "до чого тут 1С" ? ну. там в мене список адрес , до того ж цей список можна формувати з врахуванням умов. smile.gif
XBrut
Сдав в роботу варіант через аутлук.
Особливо цікаво, що можна не тільки вставляти зображення, але робити всі навороти, які дозволяє редактор аутлука (вставляти кіно)
Оплатили 12 годин роботи. Насправді сидів 21 час. Ну і ладно я ще раз це рішення продам і відіб'ю все.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.