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