配置wordpress评论邮件回复


OK,遇到这个问题已经很久了。前段时间曾向网友请教过这个问题,基本有两种方案:插件和直接改程序代码。开始的那段时间我只测试了一下Configure SMTP这个插件,无奈后台测试发信就提示错误。让我顿时感到有点无望的感觉。本来这个虚拟主机就已经限制了很多的函数使用,如今邮件插件又测试失败,我勒个去,抓狂。。。

后来又突然想起这个事情了,感到一定会有办法的,嘿嘿,果然!

有网友介绍说直接修改主题文件夹下的functions.php文件,在文件末尾加上邮件发送功能的代码。不过我看了下,有一些是用在新浪SAE的wordpress上的。还有的写的很乱,感觉不是很好改掉。后来在网上又找了一款类似插件:WP Mail SMTP。半天的尝试后终于配置好了,测试发信也能收到。结果真正留言时却发现,我能收到有评论等待审核,却不能给朋友们发送回复的邮件。这叫一个郁闷。PS这个插件的密码那个地方居然是明文,吐槽一下,作者当时写到这个地方时大脑可能短路了。。。

不过在配置WP Mail SMTP插件的过程中,也让我找到了解决问题的方法,呵呵

发送邮件出现“不能连接SMTP服务器.”(Error: Could not connect to SMTP host)

出现原因:PHP的fsockopen()函数被禁用。由于国内大多数服务器使用Win主机,禁用了mail()函数导致wordpress不能发送邮件,而SMTP插件则是通过PHPmailer连接远程SMTP服务器来发送邮件,如果服务器禁用了fsockopen()函数就会出现上述错误。

解决方法:用pfsockopen()函数直接替换掉 fsockopen(),嗯,我就是这么解决的。如果pfsockopen函数被禁用的话,换其他可以操作Socket函数来代替, 如stream_socket_client()。具体是找到wp-includes/class.smtp.php 文件找到“@fsockopen”,改成“ @pfsockopen”,也就是多加了一个字母p。

错误提示:Unable to find the socket transport ‘ssl’ – did you forget to enable it when you configured PHP?  

出现原因:该错误表明PHP不支持openssl,未开启openssl扩展所致。

解决方案:在php.ini中找到“;extension=php_openssl.dll”,去掉前面的分号;虚拟主机的话,联系主机服务商解决。当然在下面要说的配置过程中,不选SSL加密协议就可以避免这个问题。

接着又换回之前用的Configure SMTP插件。我用的是域名是绑定在腾讯企业邮箱的,在网上看到好多用腾讯QQ域名邮箱的,其实配置方法大同小异。需要注意的几点:

1、smtp主机:smtp.exmail.qq.com,端口:25(为什么是25而不是别的,看下面一条)

2、加密协议连接方式选择无,不要选SSL神马的。否则测试发信时会提示上面那条关于SSL的错误信息

经过配置,本站的邮件回复现在可以正常工作了,嘎嘎

8 Responses Comment (7) Trackback (1)
  1. Faris :

    我的博客也是没有回复,唉,无语啊~~

  2. 头都弄晕了 :

    按你说法全试了,还是不行呀。能否帮我看看原因,谢谢

    1. SingleX Post author :

      @头都弄晕了 : 嗯,这个也分很多情况,主机不同可能情况就不一样

  3. Zhu :

    你的评论回复是用的什么插件

    1. SingleX Post author :

      @Zhu : 博文里面有说,Configure SMTP ;-)

  4. Pingback: 解决wordpress不能发送邮件问题 | Respider.org

发表评论