我正在使用PhpMailer
类发送包含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;
}
答案 0 :(得分:0)
如果您尝试从本地主机发送并读取gmail,则它将无法正常工作,因为gmail通常会创建代理图像链接。您需要发送直接链接到互联网可访问位置的图像链接。可能就是这样。 如果您发送的电子邮件带有指向可访问Internet的位置的链接,请将它们附加到问题上,我也会更新答案。
EIDT:与问询者聊天之后,确定电子邮件HTML缺少常规HTML标记:<html><body>ACTUALCONTENT</body></html>
,添加了这些标记后,图像正确显示了。
答案 1 :(得分:0)
您可以使用AddEmbeddedImage
方法将图像附加到您的身体上。因此您的代码应如下所示。
$mail->AddEmbeddedImage($_REQUEST['image_name'], 'ImageName');
然后在您的$ body中可以使用此图片
$body.= "<img src='cid:ImageName' />";