所以在我的服务器上我尝试了运行:
mail('my@email.com', 'asdf', 'asklfdjksalfdsdaf I know I I know I');
并且PHP完美地发送了邮件....但是当我将邮件更改为
时mail('my@email.com', 'asdf', 'hahahahaa');
它没有向我发送电子邮件....
什么可能导致这种情况?唯一不同的是消息体...我完全感到困惑......
答案 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);
?>