PHPMailer和AddEmbeddedImage导致空白邮件内容

时间:2013-10-21 23:08:18

标签: php phpmailer

每当我尝试嵌入图片时,GMail都会显示空白内容而不是HTML消息。

以下是代码:

$body = file_get_contents($filesDir . '/emails/wbd.html');
$mail = new \PHPMailer();
$mail->IsSMTP();
$mail->SMTPDebug = 1;
$mail->SMTPAuth = $c['config']['mail.params']['auth'];
$mail->SMTPSecure = $c['config']['mail.params']['secure'];
$mail->Host = $c['config']['mail.params']['host'];
$mail->Port = $c['config']['mail.params']['port'];
$mail->Username = $c['config']['mail.params']['user'];
$mail->Password = $c['config']['mail.params']['password'];
$mail->IsHTML(true);
$mail->SetFrom('example@gmail.com', 'Some name');
$mail->Subject = 'Some subject';
$mail->Body = $body;
$mail->AddEmbeddedImage($filesDir . '/emails/img/community-i.png', 'community-i', 'community-i.png');
$mail->AddAddress($to);
$mail->Send();

如果我删除了对 AddEmbeddedImage 的函数调用,则会发送HTML邮件。 图像的路径 $ filesDir。 '/emails/img/community-i.png'是正确的,因为函数 AddEmbeddedImage 返回true(错误的路径将显示HTML消息)。

我也试试这个:

$mail->AddEmbeddedImage($filesDir . '/emails/img/community-i.png', 'community-i');
$mail->Body = 'Embedded Image: <img alt="PHPMailer" src="cid:community-i"> Here is an image!';

但同样的问题,空白内容(如果我评论 AddEmbeddedImage 函数调用,内容将显示并按预期显示而不是图像,则会显示alt标记。)

我在Gmail,Yahoo和Hotmail上测试过,并且所有地址都存在同样的问题。

1 个答案:

答案 0 :(得分:0)

确保您的PHPMailer库是最新的!