PHP邮件函数基于消息正文不起作用


PHP mail function not working based on the body of the message

所以我在服务器上尝试运行:

mail('my@email.com', 'asdf', 'asklfdjksalfdsdaf I know I I know I');

PHP完美地发送了邮件。。。。但当我把信息改成时

mail('my@email.com', 'asdf', 'hahahahaa');

它没有把电子邮件发给我…

什么可能导致这种情况?唯一不同的是消息正文。。。我完全困惑了。。。

以下是我使用php发送消息并避免发送到垃圾邮件文件夹的方法:

<?php
$to = "test@test.com";
$subject = "Test Email";
$message = "Test Email";
// normal headers
$num = md5(time()); 
$headers  = "From: Mailer <mailer@test.com>'r'n";
$headers  .= "MIME-Version: 1.0'r'n";
$headers  .= "Content-Type: multipart/mixed; ";
$headers  .= "boundary=".$num."'r'n";
$headers  .= "--$num'r'n";
// This two steps to help avoid spam   
$headers .= "Message-ID: <".time()." TheSystem@".$_SERVER['SERVER_NAME'].">'r'n";
$headers .= "X-Mailer: PHP v".phpversion()."'r'n";         
// With message
$headers .= "Content-Type: text/html; charset=UTF-8'r'n";
$headers .= "Content-Transfer-Encoding: 8bit'r'n";
$headers .= "".$message."'n";
$headers .= "--".$num."'n"; 

@mail($to, $subject, $message, $headers);
?>

您应该检查垃圾邮件过滤器。它可能会发现信息太短或没有足够的可识别单词,或者他们会检查的其他一百件事情中的任何一件。

如果是垃圾邮件过滤器,另一件有用的事情是添加不同的邮件头来帮助验证电子邮件。有时,只需在标题中添加一个真实的FROM,就可以通过垃圾邮件过滤器。有一个默认的FROM集,通常在php.ini中,但如果它是系统生成的名称,那么过滤器可以标记它

http://php.net/manual/en/function.mail.php

mail ( string $to , string $subject , string $message [, string $additional_headers [, string $additional_parameters ]] )