在邮件正文 phpmailer 类中添加嵌入图像
Posted
技术标签:
【中文标题】在邮件正文 phpmailer 类中添加嵌入图像【英文标题】:Adding embedded images within mail body phpmailer class 【发布时间】:2013-03-09 06:16:33 【问题描述】:我试图在我的邮件正文中嵌入一张图片,但最终以附件的形式出现
$mailer->Subject = APP_NAME . " - " . $name . " send you and Ad : " . $row['name'];
$mailer->Ishtml(true);
$mailer->AddEmbeddedImage('../images/namDiams.png', 'logoimg', 'namDimes.png');
//footer
$footer = "Regards<br/><br/>";
$footer .= '<table style="width: 95%">';
$footer .= '<tr>';
$footer .= '<td>';
$footer .= "<strong><span style='font-size: 15px'>NamDimes Team</span></strong><br/>
NamDimes<br/>
Contact Number: " . APP_CONTACT . "<br/>
Email: " . APP_EMAIL . "<br/>
Website: " . APP_WEBSITE . "<br/>";
$footer .= '</td>';
$footer .= '<td style="text-align:right">';
$footer .= '<img src=\"cid:logoimg\" />';
$footer .= '</td>';
$footer .= '</tr>';
$footer .= '</table>';
$mailer->Body = $body . $footer;
$mailer->AltBody="This is text only alternative body.";
$mailer->AddAttachment('../' . $row['image_path'], $row['name'] . ".jpg");
我已经设置了其他所有内容,包括地址、邮件发送出去、我想嵌入正文中的徽标图像作为附件附加,有人知道为什么吗?
【问题讨论】:
您的代码似乎有效。确保拥有最新的 phpmailer 版本。顺便说一句,恕我直言,您应该使用外部图像而不是嵌入式图像。 我没有让你了解外部图像部分,这有点新 只是简单的http://
链接。就像http://your.site.com/img/mypic.png
如果我这样做,src 属性将被删除
嵌入图像与外部图像是完全不同的两件事——如果你想确保图像在尽可能多的邮件客户端中显示,你应该坚持使用嵌入图像——因为外部图像很可能被阻止以避免用户跟踪。
【参考方案1】:
不要用$mailer->AddEmbeddedImage
,而是直接加
改为<img src="http://.../images/namDiams.png" />
。
邮件长度应该更轻...而且有效。
编辑
我不知道它是否会帮助你,但这里有一个小错误:
$mailer->AddEmbeddedImage('../images/namDiams.png', 'logoimg', 'namDimes.png');
应该是
$mailer->AddEmbeddedImage('../images/namDiams.png', 'logoimg', 'namDiames.png');//the last param the second 'a' was missing...
另一个话题here
【讨论】:
如果我这样做,如何从 img 标签中删除 src 属性【参考方案2】:我可以确认 user2189925 的回答确实有效。但是,我使用绝对路径,因为调用脚本的位置比图像的位置更有可能发生变化。 例如
<img src="C:\folder\images\namDiames.png" />
【讨论】:
指向硬盘上的本地文件永远不会出现在实际的电子邮件中。所以这永远行不通。 这对我有用。 PHPMailer 足够聪明,可以通过将src
属性的值替换为图像的实际源数据来将图像嵌入到电子邮件中。【参考方案3】:
遇到同样的问题,于是我决定更换如下
<img src="img/example.jpg"
与
<img src= "https://mysitename.com/img/example.jpg">
它成功了。
【讨论】:
【参考方案4】:只需将图像的路径提供给邮件正文,例如:(img src="../images/cat.jpeg) 它肯定会起作用
【讨论】:
以上是关于在邮件正文 phpmailer 类中添加嵌入图像的主要内容,如果未能解决你的问题,请参考以下文章