0

画像を埋め込もうとすると、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 でテストしたところ、すべてのアドレスで同じ問題が発生しました。

4

1 に答える 1

0

Make SURE that your PHPMailer library is up-to-date!

于 2013-10-22T00:24:28.583 に答える