2012-02-10 79 views
0

所以我的服务器上我试图运行的身体:PHP邮件功能不工作基于消息

mail('[email protected]', 'asdf', 'asklfdjksalfdsdaf I know I I know I'); 

和PHP发送邮件完美....但是当我改变了消息

mail('[email protected]', 'asdf', 'hahahahaa'); 

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

什么都可能导致此?唯一不同的是邮件正文...我完全困惑...

+0

?是配置的smtp? – tomexsans 2012-02-10 20:39:06

+1

您是否检查过您的垃圾邮件文件夹? – PeeHaa 2012-02-10 20:39:19

回答

0

这是我发送邮件使用PHP和避免发送到垃圾邮件文件夹的方式:先天下之忧

<?php 

$to = "[email protected]"; 
$subject = "Test Email"; 
$message = "Test Email"; 

// normal headers 
$num = md5(time()); 
$headers = "From: Mailer <[email protected]>\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()." [email protected]".$_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); 

?> 
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 ]])