我已经阅读了一些关于此的主题,已经尝试了很多这些主题,但到目前为止它们都没有奏效。所以我现在已经失去了做什么,在电子邮件中显示这些图像非常重要。
以下是我的代码的缩短版本:
require_once("class.phpmailer.php");
$body = '
<body style="margin: 10px auto;">
<table width="100%">
<tr>
<td width="360">
<img src="cid:trip_2" alt="trip_2">
<!--<img src="trip_2.png" alt="trip_2">-->
</td>
</tr>
</table>
<table width="100%">
<tr>
<td align="right" width="360">
<img src="cid:pic" alt="pic">
<!--<img src="pic.png" alt="pic">-->
</td>
</tr>
</table>
<table width="100%">
<tr>
<td width="360">
<img src="cid:pub" alt="pub">
<!--<img src="pub.png" alt="pub">-->
</td>
</tr>
</table>
</div>
</body>';
$mail = new PHPMailer();
$mail->Host = "smtp.gmail.com";
$mail->Port = 25;
$mail->Username = "*****";
$mail->Password = '*****'
$mail->IsHTML(true);
$mail->Subject = "Please appear";
$mail->AltBody = "To view the message, please use an HTML compatible email viewer!";
$mail->SetFrom("example@example.com","Example");
$mail->AddReplyTo("example@example.com","Example");
$mail->AddAddress("example@example.com", "Example");
$mail->AddEmbeddedImage("trip_2.png", "trip_2","trip_2.png");
//$mail->AddAttachment("trip_2.png");
$mail->AddEmbeddedImage("pic.png", "pic","pic.png");
//$mail->AddAttachment("pic.png");
$mail->AddEmbeddedImage("pub.png", "pub","pub.png");
//$mail->AddAttachment("pub.png");
$mail->MsgHTML($body);
$mail->Send();
我想要实现的是默认情况下在电子邮件中显示这3个图像。因此,用户无需点击&#34;显示来自此地址的图像&#34;或类似的东西。因为没有图像,电子邮件会有点空,我们需要电子邮件中的一些风格。
抱歉我的语法伙伴, 谢谢你的时间。
标记
答案 0 :(得分:2)
在Gmail中: You can't without the user approving your imagery。这是一种反垃圾邮件/反跟踪技术,默认情况下必须关闭才能工作。
您可以通过验证发送的电子邮件使Gmail显示图像(嵌入到内容中)。您只需确保您有正确的SPF记录,并且1024位DKIM对该消息进行了签名。然后gmail在内容中显示嵌入的图像。
答案 1 :(得分:1)
这不是代码中的限制。限制在于用户的电子邮件客户端。如果没有用户自己点击“自动显示来自此发件人的图像”或类似的内容,则无法绕过此操作。
答案 2 :(得分:0)
自2013年12月起,Gmail默认为shows inline images。
但用户仍然可以turn it off。
答案 3 :(得分:0)
我之前遇到过同样的问题,这里我是如何解决它的。我使用了你为图像做的相同的东西(AddEmbeddedImage + cid:name),但是,在添加时
require("PHPMailer_5.2.0/PHPMailerAutoload.php");
而不仅仅是课程,它起作用了。
希望它有所帮助。