-5

我有一个 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”测试通过了,因为重定向到感谢页面也有效!我错过了什么?

4

2 回答 2

0

最后……答案。代码没有错!我在邮件中遇到了网络主机反垃圾邮件过滤器。因为我正在使用自己的电子邮件地址测试脚本,所以它拒绝发送邮件,假设它是垃圾邮件!只要我输入一个全新的电子邮件地址,它就会发送电子邮件!

感谢所有提供帮助的人!

于 2013-11-01T14:01:46.693 回答
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();
   }   
   ?>
于 2013-10-30T18:14:49.290 回答