如何在Wordpress中启用邮件?

8 php wordpress

我在Windows 8桌面上使用Apache 2.2.25和PHP 5.3.28.有一次当我恢复我的wordpress密码时,我收到了这个错误:

电子邮件无法发送.可能的原因:您的主机可能已禁用mail()函数.

我用谷歌搜索了如何启用mail()函数,发现我需要使用我的服务器配置邮件服务器.我下载了hMailServer,但它没有用...请帮我如何启用mail()函数?我必须下载哪个邮件服务器?

Sim*_*ast 6

正如我在这里发布的:

这是一个非常烦人的错误消息,因为它可能是很多东西,并且它没有揭示实际错误(在代码的其他部分经常会被静音).

wp_mail()函数返回false 时会出现此错误,如果phpmailer->Send()返回false或引发异常,则会发生此错误.


如何从PHP的mail()功能中显示警告

这些通常默认是静音的,不幸的是WordPress从未捕获它们.向他们展示,只需删除@从标志@mail(...wp-includes/class-phpmailer.phpmailPassthru()功能:

if (ini_get('safe_mode') || !($this->UseSendmailOptions)) {
    $rt = @mail($to, $this->encodeHeader($this->secureHeader($subject)), $body, $header);
} else {
    $rt = @mail($to, $this->encodeHeader($this->secureHeader($subject)), $body, $header, $params);
}
Run Code Online (Sandbox Code Playgroud)


如何寻找其他可能的原因:

  1. wp_mail()在in 的底部添加一行/wp-includes/pluggable.php:

    // Send!
    try {
        return $phpmailer->Send();
    } catch ( phpmailerException $e ) {
        //------------- This next line is the one to add -------------------
        if (WP_DEBUG) echo '<pre>' . esc_html(print_r($e, TRUE)) . '</pre>';
        return false;
    }
    
    Run Code Online (Sandbox Code Playgroud)
  2. 它将转储引发异常的详细信息.不幸的是,它有时会包含这个无用的异常消息:" 无法实例化邮件功能 ".是的,感谢WordPress,这真的很有帮助.

  3. 通过查看异常,您可以找到错误的行号,并希望通过代码追溯它以找到真正的原因.

祝好运.希望WordPress在将来的某些时候改进电子邮件错误处理.