HTML代码可能太长了吗?#34;发送?

时间:2015-02-03 04:08:46

标签: php email html-email

所以,基本上我有一个完全打开的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(); 
?>

1 个答案:

答案 0 :(得分:0)

  • SMTP已定义每行限制1000个字符。它在RFC 821中定义。一些反垃圾邮件会检查电子邮件中符合RFC的因素。因此,它可能会增加您的垃圾邮件分数。
  • 某些垃圾邮件系统还会对没有纯文本版本的HTML电子邮件进行处罚。For example the famous Spam Assassin

总结这两个因素,您可以看到为什么某些反垃圾邮件会将该电子邮件视为垃圾邮件。

解决方案:

  • 拆分长行,并注意一些警告,例如this one
  • 包含HTML的纯文本版本