PHP邮件功能根据邮件正文无法正常工作

时间:2012-02-10 20:35:35

标签: php email

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

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

并且PHP完美地发送了邮件....但是当我将邮件更改为

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

它没有向我发送电子邮件....

什么可能导致这种情况?唯一不同的是消息体...我完全感到困惑......

2 个答案:

答案 0 :(得分:0)

您应该检查垃圾邮件过滤器。它可能会将消息视为太短或没有足够的可识别单词,或者是他们要检查的其他一百种内容。

如果是垃圾邮件过滤器,另一件有用的事情就是添加不同的标头来帮助验证电子邮件。有时,只需在标题中添加一个真实的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 ]] )

答案 1 :(得分:0)

这是我使用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);

?>