Configure SMTP插件解决WordPress邮件发送问题

对于个人博客来说,邮件收发是一个很重要的部分。无论是数据库自动备份、还是评论回复提醒,都要用到这一功能。不幸的是,国内很多服务器都禁用了mail()函数。而幸运的是,Configure SMTP插件解决了这一问题。

如何知道所用服务器是否禁用了mail()?

在wordpress中的登陆页面,点击忘记密码,输入邮箱地址后点击获取新密码,如果邮件发送失败,则表示服务器禁用了mail()函数。

Configure SMTP

插件下载地址 http://wordpress.org/plugins/configure-smtp/

安装后进入后台 – 设置 – SMTP,对插件进行设置。

选择使用Gmail的话就很省事了,许多设置都会自动填充。

如果使用其他邮箱服务器,例如QQ邮箱,则把SMTP host设置为smtp.qq.com,SMTP port为465。其他邮箱类似。设置完毕后记得点击保存

到这里还没有结束,接下来还要开启邮箱的SMTP服务。以Gmail为例:进入邮箱,点击设置 – 转发和 POP/IMAP,开启POP和IMAP。

邮箱设置完成后回到Wordpress后台,点击Send test e-mail,如果收到了邮件则表示设置成功。

Could not connect to SMTP host的问题

我按照上面的方法完成配置后进行测试,却出现了 “Could not connect to SMTP host”。

于是在网上查阅一番,可能的原因有:

  1. 端口号错误。检查后发现并无错误,排除。
  2. 主机禁用了fsockopen()。可以写一个phpinfo.php看一下是否禁用了这个函数。

    上传并访问该文件后,看disable_functions是否禁用了fsockopen(),发现是no value,排除。
    出现这个问题的朋友可以尝试一下如下方法:打开wp-includes/class-smtp.php文件,将@fsockopen()替换为@pfsockopen
  3. 服务器不支持openssl。
    尝试上面两个方法失败之后,这个问题困扰了我很久。后来发现SMTP需要SSL,会不会是服务器不支持?之后,我联系了服务器管理员,果然如此。将我的虚拟主机转移到另一台支持openssl的服务器之后,问题立马解决了。
    网上有很多关于Could not connect to SMTP host问题的资料,却鲜有提到这一原因的。出现这一问题的朋友却又得不到解决的朋友,不妨先向服务器管理员确认一下,也许问题没有那么复杂。

  4. 未开启邮件服务。
    有些空间商的邮件服务是要手动开启的。请进入空间后台开启邮件服务。如果不清楚怎么弄,请联系客服。