我正在使用PHPmailer发送电子邮件,并试图将图像嵌入邮件正文中(使用CID方法<img src="cid:qrcode" />
),但是它总是附加图像而不是嵌入图像。谁能告诉我我的代码有什么问题(代码中的注释行) ,已经尝试过。)。
答案 0 :(得分:1)
最后,将我的嵌入式图像所在的文件夹的路径硬编码为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__)
。