Gimhoy's Blog

您曾经浏览过

WordPress无插件实现SMTP发送邮件

本文最后更新于2013年5月8日,已超过三年没有更新,如果文章内容失效,请反馈给我们,谢谢!

在使用WordPress的过程中,不可避免地要用到邮件功能。WP自带了mail函数,但用自带mail函数发送邮件很容易失败或者被拒收。所以很多人选择用更方便高效的SMTP来发送邮件。要用SMTP发送邮件,首先需要拥有一个支持SMTP的邮箱(包括Gmail、QQ、126、163等主流邮箱都支持SMTP功能,可能需要到设置中打开),然后在WordPress中简单设置一下。你可以选择用插件,Configure SMTP或者WP Mail SMTP都是不错的插件。前者还支持调试,可以方便地知道是什么原因导致发送失败。下面介绍的是无插件实现SMTP发送功能,毕竟插件多了对速度有不利的影响。

这个功能实现起来也很简单,有两种方法可以实现。

第一种:打开主题文件夹下的functions.php(主机目录/wp-content/themes/主题名/functions.php),在最后一个 ?> 之前加上下面的代码即可:

//使用smtp发邮件

add_action('phpmailer_init', 'mail_smtp');

function mail_smtp( $phpmailer ) {

$phpmailer->IsSMTP();

$phpmailer->SMTPAuth = true;//启用SMTPAuth服务

$phpmailer->Port = 465; //SMTP邮件发送端口,常用端口有:25、465和587(后两个为ssl安全连接端口)。

$phpmailer->SMTPSecure ="ssl"; //是否通过 ssl 连接,如果端口为25,则此处将"ssl"改为空白即"",否则不必改动

$phpmailer->Host = "smtp.gmail.com"; // SMTP服务器地址,在邮箱设置或者帮助中心中可以找到

$phpmailer->Username = "username@gmail.com"; //你的邮箱地址

$phpmailer->Password ="******"; //你的邮箱登陆密码

}

 

第二种:直接修改WordPress源文件class-phpmailer.php和pluggable.php,这个方法需要对WordPress的2个源文件做小小的修改。好处就是你不需要每次更改主题都修改functions.php,而且更安全。

在WordPress的wp-includes目录下找到pluggable.php和class-phpmailer.php两个文件。

将pluggable.php中的"$phpmailer->IsMail(); "替换为:"$phpmailer->IsSMTP();"

在class-phpmailer.php中修改下面对应的设置:

public $Mailer = 'smtp';
public $Host = 'smtp.gmail.com';  //邮箱的SMTP服务器地址
public $Port = 465;  //SMTP邮件发送端口
public $SMTPSecure = "ssl"; //是否验证 ssl或tls
public $SMTPAuth = true; //开启SMTPAuth
public $Username = 'username@gmail.com'; //你的邮箱地址
public $Password = '******'; //你的邮箱登陆密码

快去试一下,跟插件说拜拜吧~



免费获得每月10G空间+10G免费流量
  • Comment (24)
  • Trackback (1)
  • Google Chrome Windows 2015/09/15 08:26 @Ta

    页面上表单的 action 属性应该写什么呀

    #25
  • 沧海笑 Mozilla Firefox Windows 2015/04/02 11:23 @Ta

    第一段代码,直接粘贴是无法使用的。我也不懂PHP,我只懂点程序,我觉得代码里面有些是非程序字符,你可以改一下吗?

    #24
  • 上校门卫 Mozilla Firefox Windows 2014/06/16 12:01 @Ta

    博主,回复的时候给用户发邮件和这段代码有关不?或者您能告诉我如何实现给回复者发邮件吗?

    #23
    • Gimhoy Google Chrome Windows 2014/07/27 23:17 @Ta

      博客里都有介绍,你翻翻就有了~

  • betafans Google Chrome Windows 2014/05/30 14:57 @Ta

    我试过了,还是无法开启,应该是主机彻底的禁用了mail()函数了。现在只能用smtp插件代替了。

    #22
    • Gimhoy Google Chrome Windows 2014/07/27 23:30 @Ta

      这就是用SMTP,没用mail函数

  • 少爷 Google Chrome Windows 2014/04/21 22:11 @Ta

    nginx下配置了网站打不开,空白

    #21
    • Gimhoy Google Chrome Windows 2014/04/22 18:46 @Ta

      看看是不是哪里有语法问题,网站上的代码可能被转义了。

      • 少爷 Google Chrome Windows 2014/04/22 18:48 @Ta

        请问博主,你的这个回复自动发送邮件子怎么设置的

        • Gimhoy Google Chrome Windows 2014/04/22 19:02 @Ta

          这个百度搜一下很多教程的~

  • lufan Mozilla Firefox Windows 2014/04/18 18:32 @Ta

    博主,请你帮看看:http://ljcnxxbk.sinaapp.com/?page_id=2,我留言和注册用户都没有收到邮件,是哪里出错了,怎么改,请指点,不太懂。

    #20
    • Running Google Chrome Mac OS 2015/03/16 01:50 @Ta

      我也是这个情况,我用得阿里云主机,mail()函数明明也是支持的,插件也用了,还是不行,绝望了...

  • lufan Mozilla Firefox Windows 2014/04/17 21:08 @Ta

    用的是163的邮箱,没有任何提示。

    #19
    • Gimhoy Google Chrome Windows 2014/04/18 03:36 @Ta

      打开调试模式看看是哪里出错了

  • lufan Mozilla Firefox Windows 2014/04/17 21:07 @Ta

    按照你说的邮件设置了主题和源文件,注册新账户和评论都没有收到发送的邮件,为何呀?

    #18
  • 491580711 Google Chrome Windows 2014/04/02 15:04 @Ta

    你这评论模块是用的插件还是? 🙄

    #17
  • CY's BLOG Google Chrome Windows 2014/02/19 23:38 @Ta

    我估计我这么配置了还是不能行。。

    #16
  • joerh99 Mozilla Firefox Ubuntu Linux 2013/05/02 18:16 @Ta

    博主,我按你的方法设置了,还是没有收到邮件

    我的是wordpress3.5.1版的,用了几个插件都不行,别个给我评论了我收得到邮件提醒,但是我回复了别个收不到

    就这样了,不知道怎么回事

    #15
    • ashin Google Chrome Windows 2013/09/05 16:31 @Ta

      @joerh99: 我跟你的情况一样· 很麻烦一直搞不好

  • wulitou Google Chrome Windows 2013/04/23 14:14 @Ta

    没配置成功能指点下么

    #14
    • Gimhoy Google Chrome Windows 2013/04/23 18:38 @Ta

      有什么提示么?

  • Scoop GUO Google Chrome Windows 2013/02/18 23:07 @Ta

    每次配置wordpress的邮件发送都要让我吐一回血x_x

    #13
    • Gimhoy Google Chrome Windows 2013/02/18 23:09 @Ta

      看主机吧。。有些还是比较好弄

Leave a Reply

*

*