Я отправляю письма HTML с помощью swiftmailer. Все это работает очень хорошо, мои письма в формате HTML хорошо видны для всех клиентов. У меня достаточно знаний о создании шаблонов электронной почты. Отправка их себе не так много ...Встроенное изображение в HTML-формате показывает прикрепленные вместо шаблона
Проблема существует в gmail и hotmail. Изображение не отображается. Он показывает, что в Thunderbird, например ... gmail оставляет мое изображение пустым и добавляет его как вложение (в нижней части почты, например, я отправляю фотографии дня рождения).
Любые идеи?
У меня есть следующий код:
function deliverMail($subject, $data, $from, $to, $template){
if($_SERVER['SERVER_ADDR'] !== '::1'){
if (!is_array($to)){
$to = array($to);
}
$from = explode(",", $from);
//Create the Transport
$transport = Swift_SmtpTransport::newInstance('mail.xxx.nl', 25)
->setUsername('xxx')
->setPassword('xxx');
$mailer = Swift_Mailer::newInstance($transport);
$message = Swift_Message::newInstance($subject);
$image = $message->embed(Swift_Image::fromPath($_SERVER['DOCUMENT_ROOT'].'/templates/emails/xxx.jpg'));
// open the file
$sourcefile = $_SERVER['DOCUMENT_ROOT'].'/templates/emails/'.$template.'.html.tpl';
$fh = fopen($sourcefile, 'r');
$htmltemplate = fread($fh, filesize($sourcefile));
fclose($fh);
// set the content
if($template == 'confirm'){$replaceOld = array("[*code*]", "[*imgsrc*]");}
if($template == 'notify'){$replaceOld = array("[*url*]", "[*imgsrc*]");}
$replaceNew = array($data, $image);
$body = str_replace($replaceOld, $replaceNew, $htmltemplate);
$message->setFrom(array($from[0] => $from[1]))
->setTo($to)
->setBody($body, 'text/html');
if (!$mailer->send($message, $failures)){
return "Failures:";
return print_r($failures);
}else{
return 'success';
}
}
}
, который будет обрабатывать изображение в моем шаблоне здесь:
<td id="head" height="80" width="640" colspan="3" valign="top" align="left">
<image src="[*imgsrc*]" width="140" height="80" alt="xxx"/>
</td>
Итак, вы использовали '
' вместо ''? –
Да, вот что я сделал – dubbelj