我试过这段代码。但图像未显示在电子邮件中。我需要显示图像而不会被阻止。
require("class.phpmailer.php")
$mail = new PHPMailer();
$mail->IsSMTP();
$mail->Host = "smtp.sendgrid.net";
$mail->SMTPAuth = true;
$mail->Username = 'username';
$mail->Password = 'password';
$mail->From="ex@gmail.com";
$mail->FromName="Email Image";
$mail->Sender="eg@gmail.com";
$mail->AddReplyTo("xe@gmail.com", "Reply");
$mail->AddAddress("exe@gmail.com");
$mail->Subject = "Test";
$mail->IsHTML(true);
$mail->AddEmbeddedImage('https://ci4.googleusercontent.com/proxy/D7vQqu3U7j2qWYtvzCLHodLRvMHt1Fq0F5s12lEp2YQc-RPwytgpqhRLhqzIZglky59F4-A-OtVXlmglO2CoS7CrkZk=s0-d-e1-ft#http://litebreeze.com/images/profile_small.jpg',profile_pic,'profile_small.jpg', "base64", "application/octet-stream");
$mail->Body = "This is a test picture: <img src=\"cid:profile_pic\" /></p>";
$mail->AltBody="This is text only alternative body.";
if(!$mail->Send())
{
echo "Error sending: " . $mail->ErrorInfo;
}
else
{
echo "Letter is sent";
}
答案 0 :(得分:0)
你在这里做了几件事。
addEmbeddedImage
希望您提供文件的本地路径,而不是
远程网址。修复所有这些:
$mail->AddStringEmbeddedImage(file_get_contents('http://litebreeze.com/images/profile_small.jpg'),'profile_pic','profile_small.jpg');
您没有使用加密 - 设置$mail->SMTPSecure = 'tls';
和$mail->Port = 587;
。
您还使用旧版本的PHPMailer,并将您的代码基于一个过时的示例。转到get the latest。