【问题标题】:Unable to send mail using mail() function in php无法使用 php 中的 mail() 函数发送邮件
【发布时间】:2013-11-22 21:47:37
【问题描述】:

我正在尝试通过邮件获取联系表详细信息。但未能使用 mail() 函数这样做。这是我的代码。

if(isset($_POST['rqsubmit'])) {
    $name = htmlspecialchars($_POST['Field1']);
    $email = trim($_POST['Field2']);
    $phone = trim($_POST['Field3']);
    $msg = strip_tags($_POST['Field4']);
    //echo $name." ".$phone." ".$email." ".$msg;
    $to = 'gowtham@gmail.com';
    //$from = $email;
    $subject = "Software Development";
    $message = "Name:".$name."<br/>Phone".$phone."<br/>Message:".$msg;
    //echo $message;
    $semi_rand = md5(time()); $mime_boundary = "==Multipart_Boundary_x{$semi_rand}x";   
//echo $message;    
$headers = "From: xyz@gmail.com". "\r\n".
            'Reply-To: xyz@gmail.com' . "\r\n" .
            'X-Mailer: PHP/' . phpversion();    
$headers .= "\nMIME-Version: 1.0\n" .
"Content-Type: multipart/mixed;\n" .
" boundary=\"{$mime_boundary}\"";       
    $ok = @mail($to, $subject, wordwrap($message, 70, "\r\n"), $headers);
    if ($ok) {
        echo "<p>Thank you for contacting us!  !!</p>";
    } else {
        echo "<p>Mail could not be sent. Sorry!</p>";
    } 
} else { 
    echo "mail not sent";  
}

我想知道我哪里出错了。任何帮助将不胜感激。谢谢!

【问题讨论】:

  • 产生了什么错误?
  • 第一步,从您的代码中删除错误抑制运算符 (@) 并查看它是否输出任何错误。
  • 这是错误:“无法发送邮件。抱歉!. 也删除了@。
  • 那台服务器上有 sendmail 或邮件服务器吗?是否可以为您禁用mail 功能?

标签: php email


【解决方案1】:

添加: 'X-Mailer: PHP/' 。 php版本(); 至: $标头

【讨论】:

  • 那是因为...?
【解决方案2】:

可能由于缺少发件人电子邮件地址而被拒绝。

将您自己的电子邮件地址放在From: 标头中,并添加一个包含发件人地址的Reply-To: 标头。

我能否指出,在将表单数据放入电子邮件之前,您需要彻底检查表单数据。例如,通过将Field2 设置为blah@example.com\nBcc: spam1@spam.com, spam2@spam.com, ... 之类的东西,我可以很容易地在整个地方发送电子邮件。

编辑: 抱歉,我的错误 - 你确实添加了 From 标头。但是,您的邮件服务器很可能配置为拒绝发件人地址不在其批准发件人列表中的电子邮件。这就是为什么您需要将自己的地址放在From: 标头中,并将发件人的地址放在Reply-To: 标头中。

编辑 2: 另外,你到底在用$mime_boundary 做什么?据我所知,您没有发送有效的 MIME 消息。

【讨论】:

  • 表单数据没有问题。我通过回显检查了它。请检查我编辑的代码。仍然无法发送邮件。
  • 这是我的错。我忘记更新表单所在页面中的 action="" 值。谢谢大家帮助我。终于可以发邮件了。
猜你喜欢
  • 2011-06-05
  • 1970-01-01
  • 2012-02-05
  • 2011-04-21
  • 1970-01-01
  • 2017-08-28
  • 1970-01-01
  • 2011-10-02
相关资源
最近更新 更多