Перейти к содержимому


Как сделать вложение в письмо рассылки из поля типа изображение

изображения в письме

Сообщений в теме: 7

#1 askalab

    Участник

  • Пользователи
  • PipPip
  • 15 сообщений
  • Пол:Мужчина

Отправлено 02 Март 2015 - 17:35

Здравствуйте!

Проблема в прикреплении файлов изображений в шаблон рассылки и поля типа "изображение". Если вставляем так:

Фото квартиры: {$Фото квартиры}

То в итоге в письме такая вот .....: в файл

Как сделать так что бы файлы изображений прикреплялись к письму рассылки как обычное вложение?

Прикрепленные изображения

  • Прикрепленное изображение: Безымянный.png


#2 maksn

    Активный участник

  • Пользователи
  • PipPipPip
  • 314 сообщений
  • Пол:Мужчина

Отправлено 02 Март 2015 - 21:11

Просмотр сообщенияaskalab (02 Март 2015 - 17:35) писал:

Здравствуйте!

Проблема в прикреплении файлов изображений в шаблон рассылки и поля типа "изображение". Если вставляем так:

Фото квартиры: {$Фото квартиры}

То в итоге в письме такая вот .....: в файл

Как сделать так что бы файлы изображений прикреплялись к письму рассылки как обычное вложение?
Уж не знаю, пригодится ли
Если делать это не в шаблоне, а через доп. действие
Будет как то так
<?php
/********Получаем имена прикрепленных файлов из таблицы*************/
$sqlQuery = "SELECT `fXXX` as images FROM `".DATA_TABLE."YYY` WHERE `fZZZ` = 'условие отбора' LIMIT 1";
$result = sql_query($sqlQuery);
$row = sql_fetch_assoc($result);
$img_string = $row['images'];
/************Получим массив имен картинок************/
$my_images = explode("\r\n", $img_string);

/************Прикрепляем картинки во вложения**********/
$src_arr = Array();
foreach($my_images as $one_image)
{
  $file_att['name'] = $one_image; //
  $file_att['disp'] = "inline";//"attachment";
  $file_att['type'] = get_file_type($one_image);
  $file_att['content'] = file_get_contents(get_file_path(XYZ, $id, $one_image)); //$id - ID записи в таблице с картинками,XYX - это id поля с картинками

  $f_name_arr = explode(".",$file_att['name']);
  $f_cont_id = $f_name_arr[0].'_'.$f_name_arr[1];

  $file_att['Content-ID'] = $f_cont_id;
  $attach_files[] = $file_att;
  /**********массив с <img src = cid:  для вставки в тело письма *******/
  $src_arr[] = '<img src = cid:'.$f_cont_id.'>';
}
/*************Теперь можно формировать тело письма********/
$letter = '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
  <meta http-equiv="content-type" content="text/html; utf-8">
  <style>
   table{
	padding: 0;
	border-spacing: 0;
   }
   td{
	border-style: solid;
	border-width: 1px;
	border-color: #000000;
   }
  </style>
  <title>'.$subj.'</title>
  </head>
  <body style="background-color:#FFFFFF;font-family:arial,tahoma,verdana">'."\r\n";

$num_image = 0;  
foreach($src_arr as $one_pict)
{
/***********Выводим картинки в теле письма******************/
$letter .= 'Картинка: '.$one_pict[$num_image]."\r\n";
$num_image++;
}
$letter .= "</body></html>";
/**********Письмо сформировано. Можно отправлять***********/
sendmail($subj, $letter, "$mail_to", "", "", "", "text/html", "utf-8", array(), $attach_files);  

?>
Только нужно иметь ввиду, что каждое письмо вместе с вложениями сохраняется в в базе в f_mail_archive и ровно поэтому нужно осторожнее с вложениями. Можно забить все дисковое пространство и база ляжет

Сообщение отредактировал maksn: 02 Март 2015 - 21:44

"...Сижу, паяю. CRM починяю..."
Мои разработки

#3 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 759 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 03 Март 2015 - 09:31

Если у вас поле с типом изображение, то подобная вставка должна работать. Файлы изображений автоматически прикрепляются к письму в виде вложений. Возможно вы что-то не так делаете, либо это сбой в отправке письма. Отправьте заявку в техподдержку, наши специалисты проверят.

#4 askalab

    Участник

  • Пользователи
  • PipPip
  • 15 сообщений
  • Пол:Мужчина

Отправлено 06 Март 2015 - 11:33

Ответ техподдержки: Здравствуйте! Данная проблема не связана с работой рассылок из системы «Клиентская база». Проблема на получающей стороне. Фактически, письма с содержанием в теле письма изображений, корректно открываются на почтовых сервисах типа yandex, mail и т. д. Такая проблема связана с настройками самого почтового приложения, а именно на доступ к вложенным файлам. Некоторые приложения по умолчанию блокируют доступ к вложенным файлам в письме. Поэтому данный вопрос не является штатным, относящимся к работе программы «Клиентская база». Могу Вам порекомендовать обратиться к расширенным настройкам тех приложений, где наблюдается проблема отображения. Например аналогичная тема с вопросом об отображении изображений в программе Outlook есть на оф.сайте microsoft.com в разделе Помощь. Прилагаю Вам ссылку на конкретную тему, где возможно есть ответ и на Ваш вопрос: http://answers.micro...ecf2fee2?page=1 В вашем случае, Вы можете обратится к своим клиентам(банкам партнерам), с просьбой так же в настройках приложения убрать соответствующую блокировку. То есть, это не значит, что у всех, в почтовых приложениях стоит блокировка. Как было уже сказано, это зависит от настроек и особенностей принимающих сторон(приложений типа Outlook)


#5 askalab

    Участник

  • Пользователи
  • PipPip
  • 15 сообщений
  • Пол:Мужчина

Отправлено 07 Март 2015 - 09:50

А если не через доп действие, как сделать так что бы это было вложение, а не вставка в тело письма?

#6 maksn

    Активный участник

  • Пользователи
  • PipPipPip
  • 314 сообщений
  • Пол:Мужчина

Отправлено 07 Март 2015 - 10:23

Просмотр сообщенияaskalab (07 Март 2015 - 09:50) писал:

А если не через доп действие, как сделать так что бы это было вложение, а не вставка в тело письма?
Судя по скриншоту в первом посте, Вы пытались вставить картинки именно в тело письма. Вообще то, поле типа Изображение нормально вставляются в виде ATTACHEMENTS. А вот в виде INLINE картинок не вставляются. По крайней мере у меня именно так. Не важно в какое место письма я вставляю это поле, картинки присутствуют только в виде вложения.
Вставить в шаблон поле -> Имя поля типа Изображение -> O'K

Цитата

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

Все почтовые клиенты, если блокируют по какой то причине картинки, ссылки и т.д обязательно сообщают об этом. Что то вроде этого
"Изображения и ссылки отключены в целях безопасности."

Сообщение отредактировал maksn: 07 Март 2015 - 11:57

"...Сижу, паяю. CRM починяю..."
Мои разработки

#7 maksn

    Активный участник

  • Пользователи
  • PipPipPip
  • 314 сообщений
  • Пол:Мужчина

Отправлено 07 Март 2015 - 12:12

Кстати, заметил любопытный глюк.
В теле письма присутствует код
<p>
	<img src='cid:3231_3_XXX_jpg'> <img src='cid:3231_3_YYY_jpg'> <img src='cid:3231_3_ZZZ_jpg'></p>

А вот Content-ID, соответствующих этим картинкам нет.
Есть другие -
Content-ID: <XXX_jpg>
Content-ID: <YYY_jpg>
Content-ID: <ZZZ_jpg>
Т.е. отсутствует лидирующая часть "3231_3_" из "<img src='cid:3231_3_XXX_jpg'>"
Соответственно картинки в теле письма не отражаются
"...Сижу, паяю. CRM починяю..."
Мои разработки

#8 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 759 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 07 Март 2015 - 13:49

Возможно, это баг, т.к. изначально как раз таки изображения должны вставляться как inline, и cid должен корректно работать. Попробуйте еще раз техподдержку побеспокоить, можно с ссылкой сюда.





Количество пользователей, читающих эту тему: 1

0 пользователей, 1 гостей, 0 анонимных