PHP mail()问题

时间:2013-10-30 17:58:56

标签: php

我有一个php页面,其中包含一个查询表单,该表单将自己称为表单操作。

完成后,表单将写入try-catch构造中的数据库。我想向管理员发送一封电子邮件,说明有人已将自己添加到数据库中。

所有代码都有效,直到:

if(mail($to, $subject, $message, $headers, '-f' . $from))
{ #And finally send them a thanks
   header('Location: thanks.html.php');
   exit();
} else {
   echo 'Email did not send';
   exit();
}   

这个块上面的代码都有效,因为我写了一个数据库,并且'if'测试通过,因为重定向到感谢页面也有效!我错过了什么?

2 个答案:

答案 0 :(得分:0)

好像您正在尝试使用 additional parameters

PHP手册

  

additional_parameters参数可用于传递额外的参数   配置为使用时发送邮件时使用的程序的参数   sendmail_path。

<?php
mail('nobody@example.com', 'the subject', 'the message', null, '-fwebmaster@example.com');
?>

路线:2

尝试这样的事情。

$from 包含在 $headers 变量中,因此您无需指定。

 <?php
    $to      = 'nobody@example.com';
    $subject = 'the subject';
    $message = 'hello';
    $headers = 'From: webmaster@example.com' . "\r\n" .
        'Reply-To: webmaster@example.com' . "\r\n" .
        'X-Mailer: PHP/' . phpversion();

   if(mail($to, $subject, $message, $headers))
    { #And finally send them a thanks
   header('Location: thanks.html.php');
   exit();
   } else {
   echo 'Email did not send';
   exit();
   }   
   ?>

答案 1 :(得分:0)

最后......答案。代码没问题!我在垃圾邮件过滤网上反垃圾邮件过滤器。因为我用我自己的电子邮件地址测试脚本,所以它拒绝发送邮件,假设它是垃圾邮件!只要我输入一个全新的电子邮件地址,它就会发送电子邮件!

感谢所有提供帮助的人!