所以,基本上我有一个可以自行完美打开的HTML文件,但是我尝试使用HTML发送电子邮件,而电子邮件只是从不发送。它说他们已经发送,但他们没有进入收件箱。我已经检查了垃圾邮件。但是,当我做较短的HTML代码(或根本没有html代码)时,它会完美地发送。这是我的 HTML 代码有误吗?或者这是代码太长(很长)的错误?
不确定在 html 或 php 中问这个问题,因为电子邮件文件是 php
这是电子邮件发送者
<?php
header ( 'Cache-Control: no-store, no-cache, must-revalidate' );
header ( 'Cache-Control: post-check=0, pre-check=0' , false );
header ( 'Expires: Sat, 26 Jul 1997 05:00:00 GMT' );
header ( 'Last-Modified: ' . gmdate ( 'D, d M Y H:i:s' ). 'GMT' );
header ( 'Pragma: no-cache' );
header ( 'Content-Type: text/plain' );
$to = '' ;
$from = '' ;
$subject = '' ;
$headers = "From: " . $from . "'r'n" ;
$headers .= "Reply-To: " . $from . "'r'n" ;
$headers .= "MIME-Version: 1.0'r'n" ;
$headers .= "Content-type: text/html; charset=iso-8859-1'r'n" ;
$headers .= "X-Mailer: Microsoft Office Outlook, Build 12.0.4210'r'n" ;
$headers .= "X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1165'r'n" ;
$headers .= "X-Originating-IP:'r'n" ;
$message = <<<EOF
<html>VERY LONG HTML CODE HERE</html>
EOF;
echo "[?] Sending..'n" ;
if ( mail ( $to , $subject , $message , $headers )) {
echo '[+] Email was sent sucessfully.' ;} else {echo '[!] Failed to send.' ;}
die();
?>
- SMTP 已定义每行 1000 个字符的限制。它在 RFC 821 中定义。某些反垃圾邮件会检查电子邮件的 RFC 兼容因素。因此,它可能会增加您的垃圾邮件分数。
- 一些垃圾邮件系统还会惩罚没有纯文本版本的HTML电子邮件。例如著名的垃圾邮件刺客。
将这两个因素相加,您就可以了解为什么某些反垃圾邮件会将电子邮件视为垃圾邮件。
溶液:
- 拆分长线并注意一些警告,例如这个。
- 包括 HTML 的纯文本版本