PHPmailer、smtp、邮件客户端认为邮件中有图像(但没有)

PHPmailer、smtp、邮件客户端认为邮件中有图像(但没有),smtp,phpmailer,Smtp,Phpmailer,我有一个简单的phpmailer脚本,可以通过网站将联系人表单查询发送到我的邮箱(gmail-我也尝试过其他一些邮件客户端来接收它) 出于某种原因,在我尝试过的所有电子邮件客户端中,邮件客户端的作用就像邮件中有图片一样,因此它说:为了保护我们已阻止了图像,请单击此处显示图像 谁能告诉我是什么引起的吗?因为消息中没有图像。我猜base64编码元素可能是原因。您不应该将其用作默认传输编码,当然,除非您是垃圾邮件发送者:) text不是有效的MIME类型,因此请不要这样做-text/plain或tex

我有一个简单的phpmailer脚本,可以通过网站将联系人表单查询发送到我的邮箱(gmail-我也尝试过其他一些邮件客户端来接收它)

出于某种原因,在我尝试过的所有电子邮件客户端中,邮件客户端的作用就像邮件中有图片一样,因此它说:为了保护我们已阻止了图像,请单击此处显示图像


谁能告诉我是什么引起的吗?因为消息中没有图像。

我猜base64编码元素可能是原因。您不应该将其用作默认传输编码,当然,除非您是垃圾邮件发送者:)

text
不是有效的MIME类型,因此请不要这样做-
text/plain
text/html
是不错的选择,具体取决于您的内容


尝试从中的一个开始,然后看看你在做什么不同。

该正文中的html不包含任何src、href或url属性?我在正文中使用了几次,现在我将ContentType=“text/html”更改为=“text”,邮件客户端不提供警告。还有什么方法可以使用一些html属性而不引起图像警告吗?谢谢你指出了encondig的内容,但是我已经从代码中删除了它,它没有任何帮助。我已将IsSMTP更改为IsSendmail,并且通过使用smtp的Sendmail isntead,该问题不会发生。这是否意味着我使用的smtp服务器正在发送一些其他东西,使邮件客户端认为其中有一些图像?它肯定会做一些奇怪的事情。您可以通过抓取已发送消息的副本(请参见
getSentMIMEMessage()
)并将其与收到的消息进行比较来进行检查。一般来说,除非你在本地做一些奇怪的事情,否则你最好使用
isMail
而不是
isSendmail
$mail = new PHPMailer();
$mail->isSMTP();  
$mail->SMTPAuth = true; 
$mail->SMTPSecure = 'tls'; 
$mail->Host = 'smtp.name.com';
$mail->Port = 587;
$mail->Username = 'username';
$mail->Password = 'password';
$mail->From = $useremail;
$mail->CharSet = "UTF-8";
$mail->FromName = $firstname;
$mail->Encoding = "base64";
$mail->Timeout = 200;
$mail->ContentType = "text/html";
$mail->addAddress($email, $name);
$mail->Subject = $mailsubject;  
$mail->Body = "body"