mail()函数不起作用

时间:2014-04-11 11:20:15

标签: php wordpress sendmail contact-form

我在联系表单中使用了mail()函数。但电子邮件不发送。它说邮件发送成功了。但没有收到任何邮件。没有错误显示。签入垃圾邮件文件夹

$name   = $_POST['cuf_sender'.$n];
    $email  = $_POST['cuf_email'.$n];
    $subject= $this->o['subpre'].' '.$_POST['cuf_subject'.$n];
    $msg    = $_POST['cuf_msg'.$n];

    $extra = '';
    foreach ($_POST as $k => $f )
        if ( strpos( $k, 'cuf_field_') !== false )
            $extra .= $this->o[substr($k, 4, 7)].": $f\r\n";


    $headers =
    "MIME-Version: 1.0\r\n".
    "Reply-To: \"$name\" <$email>\r\n".
    "Content-Type: text/plain; charset=\"".get_settings('blog_charset')."\"\r\n";
    if ( !empty($from) )
        $headers .= "From: ".get_bloginfo('name')." - $name <$from>\r\n";
    else if ( !empty($email) )
        $headers .= "From: ".get_bloginfo('name')." - $name <$email>\r\n";

    $fullmsg =
    "Name: $name\r\n".
    "Email: $email\r\n".
    $extra."\r\n".
    'Subject: '.$_POST['cuf_subject'.$n]."\r\n\r\n".
    wordwrap($msg, 76, "\r\n")."\r\n\r\n".
    'Referer: '.$_SERVER['HTTP_REFERER']."\r\n".
    'Browser: '.$_SERVER['HTTP_USER_AGENT']."\r\n";

    if ( wp_mail( $to, $subject, $fullmsg, $headers, $email) )
    {
        echo $to;
    exit();

实际上这是在wordpress网站上。所以我也试过wp_mail函数。但同样的问题

3 个答案:

答案 0 :(得分:0)

嗯,php plain mail()函数有时候不可靠。我曾经遇到过像这样的问题。这不是广告,但我建议使用PHPMailer https://github.com/PHPMailer/PHPMailer它是免费的。它解决了我的问题并希望解决你的问题。

试一试

答案 1 :(得分:0)

您首先应该为这些错误消息提供可视输出。 您可以通过多种方式启用错误报告:

  1. 阿帕奇 (hxxp://httpd.apache.org/docs/2.4/mod/mod_rewrite.html#logging)
  2. PHP
  3. Wordpress
  4. 我真的建议从wordpress错误开始,因为它们会更简单,更友好。

    现在问题本身,首先我会查看配置文件/ admin gui,看看你的smpt设置是否正确。你也在本地测试它还是已经在某些主机上?

    因此,总结一下,我们需要更多信息:

      

    1)Wordpress版本? 2)托管在哪里? (本地/服务器)3)访问a   smtp服务器? 4)你是否测试过wordpress之外的文件   安装? 5)这是一个插件吗?

    第一个链接将hxxp替换为http,因为我一次只能发布2个链接。

答案 2 :(得分:0)

请设置您的SMTP凭据以使用邮件功能