PhpMailer 无法使用 html
PhpMailer not working with html
我正在使用 PhpMailer
class 发送包含 html 的电子邮件,我注意到如果电子邮件的正文包含 img
标记电子邮件未收到并且没有错误显示。
有什么建议吗?
到目前为止我的代码:
$mail = new PHPMailer();
$mail->IsSMTP();
$mail->SMTPAuth = true;
$mail->SMTPSecure = 'ssl';
$mail->Host = "smtp.gmail.com";
$mail->Port = 465;
$mail->Username = "myusername";
$mail->Password = "mypassword";
$mail->setFrom($from);
$mail->addAddress($to);
$mail->Subject = $subject;
$mail->Body =$body;
$mail->IsHTML(true);
if ($mail->send()) {
return 1;
} else {
return 0;
}
如果您尝试从本地主机发送它并在 gmail 中阅读,它将无法工作,因为 gmail 经常创建代理图像链接。您需要发送指向互联网可访问位置的图像链接。大概就是这样。
如果您要发送带有互联网访问位置链接的电子邮件,请将它们附加到问题中,我也会更新答案。
EIDT:与提问者聊天后,确定电子邮件 HTML 缺少正常的 HTML 标记:<html><body>ACTUALCONTENT</body></html>
,添加这些后,图像正确显示。
您可以使用 AddEmbeddedImage
方法将图像附加到您的 body。所以你的代码应该是这样的。
$mail->AddEmbeddedImage($_REQUEST['image_name'], 'ImageName');
然后在您的 $body 中您可以使用这张图片
$body.= "<img src='cid:ImageName' />";
我正在使用 PhpMailer
class 发送包含 html 的电子邮件,我注意到如果电子邮件的正文包含 img
标记电子邮件未收到并且没有错误显示。
有什么建议吗?
到目前为止我的代码:
$mail = new PHPMailer();
$mail->IsSMTP();
$mail->SMTPAuth = true;
$mail->SMTPSecure = 'ssl';
$mail->Host = "smtp.gmail.com";
$mail->Port = 465;
$mail->Username = "myusername";
$mail->Password = "mypassword";
$mail->setFrom($from);
$mail->addAddress($to);
$mail->Subject = $subject;
$mail->Body =$body;
$mail->IsHTML(true);
if ($mail->send()) {
return 1;
} else {
return 0;
}
如果您尝试从本地主机发送它并在 gmail 中阅读,它将无法工作,因为 gmail 经常创建代理图像链接。您需要发送指向互联网可访问位置的图像链接。大概就是这样。 如果您要发送带有互联网访问位置链接的电子邮件,请将它们附加到问题中,我也会更新答案。
EIDT:与提问者聊天后,确定电子邮件 HTML 缺少正常的 HTML 标记:<html><body>ACTUALCONTENT</body></html>
,添加这些后,图像正确显示。
您可以使用 AddEmbeddedImage
方法将图像附加到您的 body。所以你的代码应该是这样的。
$mail->AddEmbeddedImage($_REQUEST['image_name'], 'ImageName');
然后在您的 $body 中您可以使用这张图片
$body.= "<img src='cid:ImageName' />";