PhpMailer不在邮件正文中嵌入图像,而是附加

时间:2019-01-15 06:59:15

标签: wordpress phpmailer

我正在使用PHPmailer发送电子邮件,并试图将图像嵌入邮件正文中(使用CID方法<img src="cid:qrcode" />),但是它总是附加图像而不是嵌入图像。谁能告诉我我的代码有什么问题(代码中的注释行) ,已经尝试过。)。

这是我的代码enter image description here

的屏幕截图

3 个答案:

答案 0 :(得分:1)

只是作为一种帮助,我遇到了同样的问题,经过多番摸索,终于找到了可以帮助他人的解决方案。

  1. 试图将图像转储到同一文件夹中-否
  2. 尝试使用 DIR 变量来动态提取图像-不可以

最后,将我的嵌入式图像所在的文件夹的路径硬编码为hurrah

对我来说很神奇(使用PHPmailer v5.5)-请注意,我使用的是Plesk,因此您的确定路径可能有所不同,请以我的指导为准...

$ mail-> AddEmbeddedImage(“ / var / www / vhosts / {domainname} / httpdocs / {foldername)/image.jpg”,“ emailimg”,“ image.jpg”);

我注意到,当以嵌入式图像的形式调用图像时,我必须使用与我认为PHPmailer使用以下结构相同的文件名:

内部AddEmbeddedImage调用中的嵌入的img名称名称,引用ID,嵌入的img名称

希望它对某人有帮助!

答案 1 :(得分:0)

尝试此代码,我认为它将为您工作

$mail->AddEmbeddedImage('img/2u_cs_mini.jpg', 'logo_2u');

并在标签上放置src ='cid:logo_2u'

答案 2 :(得分:0)

首先,您使用的是非常老版本的PHPMailer,并且您的代码基于一个非常老的示例。 Get the latest

另一个明显的问题是,当您将HTML放入include时,您已经注释了对Body的调用,因此您的邮件是以纯文本形式发送的,没有任何概念内联显示图像。取消注释此行:

isHTML()

还请记住,在MIME中,附件和内嵌图像之间基本上没有区别-一切都是附件,只是某些附件可能是从HTML部分引用的,并且具有HTML功能的客户端可以利用该链接

如果Outlook删除了$mail->isHTML(); 属性,则显然这不是发送代码的问题。 Outlook做一些令人不愉快的事情通过电子邮件发送。

另一件小事:在任何当前版本的PHP中,您都可以使用src来代替dirname(__FILE__)