如何在Wordpress中启用邮件?

时间:2014-07-19 13:41:12

标签: php wordpress

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

  

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

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

3 个答案:

答案 0 :(得分:6)

正如我posted here

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

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


如何显示来自PHP mail()函数

的警告

默认情况下,这些通常是静音的,不幸的是WordPress从未捕获它们。要显示它们,只需从@函数中的@mail(... wp-includes/class-phpmailer.php中删除mailPassthru()个符号:

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);
}


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

  1. wp_mail()的{​​{1}}底部添加一行:

    /wp-includes/pluggable.php
  2. 它将转储引发异常的完整详细信息。不幸的是,它有时会包含这个无用的异常消息:" 无法实例化邮件功能"。是的,感谢WordPress,这真的很有帮助。

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

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

答案 1 :(得分:4)

我遇到了同样的问题,在WordPress为我解决的任何建议中都找不到任何内容。

然后我开始调查是否已经禁用了邮件功能的PHP安装本身,但这些都没有用。一切看起来都配置得当。

一旦我将服务器升级到使用SELinux(安全增强型Linux)的CentOS 7,以及我在过去几周与SELinux学到的东西,如果有什么东西不是,那么所有这些问题都开始了。工作,但一切看起来应该工作......这意味着SELinux在后台默默地暗中阻止你。

中提琴。

如果您正在运行并使用SELinux的操作系统,只需以root身份执行以下命令:

setsebool -P httpd_can_sendmail=1

有一种安全设置可以防止网络服务器发送电子邮件。当您翻转该开关并告诉SELinux网络服务器发送电子邮件时,一切都会突然发挥作用。

答案 2 :(得分:0)

它称为-管理用于通过脚本(Wordpress)发送邮件的注册电子邮件ID

  1. 登录您的Cpanel。
  2. 转到电子邮件部分>,然后单击注册的电子邮件ID。
  3. 然后添加(wordpress@yourdomain.com)或您的wordpress托管位置。即(wordpress@blog.yourdomain.com)。然后提交,则需要几分钟的时间来激活等待15分钟至1小时的等待时间,具体取决于您的托管服务提供商,然后它将起作用。