PHP邮件不能在一个脚本中工作,而在另一个脚本中工作

时间:2010-02-23 19:54:33

标签: php debugging phpmailer

我在php文件中有一个小的PHP邮件程序脚本,工作正常,并发送邮件:

$subject = "subject"; 
$mail_body = "mail body";
$name = "noreply";
$email = "noreply@domain.com";
$recipient = "somebody@domain.com";
$header = "From: ". $name . " <" . $email . ">\r\n";
mail($recipient, $subject, $mail_body, $header);

但是,如果我将其取出并将其设置为自己的文件,或将其放入不同的文件中,则无效。没有错误消息,也没有发送电子邮件。

没有php ini set命令,也没有包含php文件。

关于它为什么在更大的PHP脚本中工作的任何想法,但不能独立工作?

1 个答案:

答案 0 :(得分:1)

您的代码一切正常。我通过仅使用我的地址替换$ recip中的电子邮件地址来测试它,它运行良好(我使用我的公司电子邮件测试它 - Outlook上的Exchange服务器和另一个带有Hotmail地址的测试 - 两者都工作正常并到达我的收件箱)。 / p>

  • 但请确保$ mail_body中的新行是“\ n”而不是“\ r \ n”。您可以在有关消息参数的文档中阅读:
  

每行应用a分隔   LF(\ n)。线条不应该更大   超过70个字符。

  • 确保$ name和$ email 包含禁止使用的字符,例如&lt;,&gt;和新行(\ r,\ n或\ r \ n)。正如迈克尔指出新线路可能导致email injection攻击。您不希望垃圾邮件发送者将您的联系表单用作邮件平台!

您应该考虑使用PHPMailer之类的电子邮件库来简化您的开发,因为mail()对于高级邮件来说非常棘手。大多数这些图书馆已经涵盖了这些攻击和标准......