php - HTML邮件中嵌入的图像显示为附加在模板中

  显示原文与译文双语对照的内容
0 0

我正在用swiftmailer发送HTML邮件。 我的HTML邮件在所有客户机上都显示得很好。 我对构建电子邮件模板有相当的了解。 发送他们自己没有那么多。

gmail和hotmail存在问题。 图像未显示。 它在雷鸟中表现得很好。 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>
时间:原作者:2个回答

0 0

我也在GMail中看到过这种行为,并且认为这就是GMail如何显示带有嵌入图片的邮件。

有关更多信息,请参见这里链接:
http://www.getelastic.com/email-design-for-gmail/

你知道Gmail在默认情况下禁用了HTML电子邮件中的图像,即使你的客户已经经添加了你的安全列表?

原作者:
0 0

终于解决了。"图像"当然不是一个有效的HTML标签。 在尝试 3个不同的php库之后,我发现了这个。

 <td id="head" height="80" width="640" colspan="3" valign="top" align="left">
 <image src="[*imgsrc*]" width="140" height="80" alt="xxx"/> 
 </td>
原作者:
...