2017-08-28 140 views
0

我试过两个不同的电子邮件客户端试过google & stackoverflow回答。但未能解决问题。我也测试了本地图像路径,这非常好。PHPmailer AddEmbeddedImage嵌入失败图片

这里是编码部分:

$mail->addEmbeddedImage('../img/abc-company- 
    logo.png','logo','abc-company-logo.png'); 

正文部分:

$mail->Body = "<div id='container' style='height:auto;font- 
    family:Helvetica;border: 1px solid #CCC;'> 
<div id='header' style='margin: 0 auto; 
    background-color:#0958C3; color:#FFFFFF; 
    font-size: 20px;text-align: center; 
display:block; 
'> 
<img src='cid:logo' alt='Picture Description'/> <br> 
<strong>Heading</strong> 
</div> 
</div>"; 
+0

什么是调用'addEmbeddedImage'回来吗?使用这样的相对路径非常容易出错。 – Synchro

回答

1

问题是,PHPMailer内嵌图像相对于文档嵌入,而不是相对于 其中脚本是从所谓的, 呼叫。

这意味着通过将../img/abc-company-logo.png传递到addEmbeddedImage()将搜索相对于实际PHPMailer类文件位置的此类路径。

您应该将路径更改为绝对文件路径。 见__DIR____FILE__例子这里http://php.net/manual/fa/language.constants.predefined.php

例如:

$mail->addEmbeddedImage(dirname(__DIR__) . '/img/abc-company-logo.png','logo','abc-company-logo.png'); 
+0

感谢您的编辑,让我试试并回复您 – mimi

+0

我已经添加了更精确的示例代码,但您应该调试并确保将正确的绝对文件路径传递给'addEmbeddedImage'方法。 –

+0

我很困惑,应该是什么目录名?这个特殊的php文件是在“包含”文件夹和图像在“img”文件夹中。我试过包括(_DIR _)。其余的代码,但它显示undefine功能包括 – mimi