解决不支持php mail()函数 WordPress邮件回复问题

好多Wordpresser和我都有同样的问题,那就是主机不支持mail()函数从而无法收发邮件(也有像我一样虽然主机支持mail函数,但是我把博客开在了子目录,所以。。。),当然网上有很多的解决方案,不过大多数都是解决Wordpress自身的邮件收发问题,并没有解决Wordpress插件的邮件问题,本文通过修改WP-Mail-SMTP插件的部分代码来解决以上的问题。

Update:感谢adophper友情指出:

如果服务器禁用了fsockopen()函数同样会出现错误,今天我就是是遇到这个问题,如你上面说的一样设置就不正确Could not connect to SMTP host,后来才知道是fsockopen()的问题,详见:wordpress中出现Could not connect to SMTP host错误的解决方法

一、安装配置WP-Mail-SMTP

这个已经不是什么新鲜的话题了,我在这里简略地说一下这个插件的安装配置方法。需要注意的是,Gmail的SMTP功能似乎是没有办法在这个插件中使用的。所以我选择QQ邮箱(不要拍砖!!)。

  1. 后台或者上传安装WP-Mail-SMTP
  2. 启用SMTP插件,在Wordpress左侧设置栏中会出现Email设置
  3. 设置From Email,即在别人邮箱中显示的来自电子邮箱地址,只能设置成你所用的SMTP邮箱
  4. 设置From Name,即邮件发送者的昵称,既然是我的网站,那我就把昵称设置成dickwu.com
  5. Mailer勾选Send all WordPress emails via SMTP.
  6. SMTP配置,就和配置Foxmail和早期的Outlook一样,非常简单,如果不会的话就Google一下吧

要注意的是:

  • Authentication选项请选择Yes: Use SMTP authentication. ,这样才可以配置SMTP邮箱
  • 尽量使用SSL链接,从而加强邮件收发的保密性(虽然在天朝这无济于事)
  • 配置完成后最好向一个地址发送一封测试邮件成功的话会收到如下内容的邮件
This is a test email generated by the WP Mail SMTP WordPress plugin.

二、安装需要邮件服务的插件

这里以Comment Reply Notification为例,这是一款家喻户晓的有邮件留言回复的插件。

配置我就不多说了,主要就是要勾选“

 三、修改WP-Mail-SMTP

进入Wordpress后台插件编辑器,编辑WP-Mail-SMTP中的wp_mail_smtp.php文件,或者到WP-Mail-SMTP安装的位置修改wp_mail_smtp.php文件。

找到这一段代码(很后,大概在380行左右):

	if ( $orig != $default_from ) {
		return $orig;
	}

把这段代码删掉或者用/*  */将其注释掉,最后改成如下的效果

	/*
	// If the from email is not the default, return it unchanged
	if ( $orig != $default_from ) {
		return $orig;
	}
	*/

接下来,插件也会使用WP-Mail-SMTP来收发邮件了。

本文结束,转载请注明出处:https://dickwu.com/posts/2011/09/808.html

11 Replies to “解决不支持php mail()函数 WordPress邮件回复问题”

  1. 呃,等一等
    “也有像我一样虽然主机支持mail函数,但是我把博客开在了子目录,所以。。。”
    开在子目录有关系吗?我这边本机测试没有关系呢,求解释。

  2. 朋友,你好!我的设置好了,怎么不行呢。我的主机也不支持mail(),在第一步结束之后,测试发送短信阶段我的邮箱就收不到邮件。我用的是QQ邮箱还有163的。

  3. 如果服务器禁用了fsockopen()函数同样会出现错误,今天我就是是遇到这个问题,如你上面说的一样设置就不正确Could not connect to SMTP host,后来才知道是fsockopen()的问题,主机商真TM的…禁了好多…更多详情请查看:http://adophper.com/

发表评论

电子邮件地址不会被公开。 必填项已用*标注

This site uses Akismet to reduce spam. Learn how your comment data is processed.