A-A+

WordPress免插件实现SMTP邮件服务

2015年03月23日 WordPress 评论 7 条 阅读 285 次

最近博客搬家到万网的免费虚拟主机上,发现了一个bug,邮件一直无法发送。WordPress程序(3.8版本以后)默认使用的是stream_socket_client函数发信,而万网的免费虚拟主机使用的是fsockopen函数发信,因此,我们需做以下修改:

第一步、在万网的免费虚拟主机后台启用fsockopen函数(PHP.in设置 → PHP函数设置)。如下图所示:

第二步、修改WordPress程序中wp-includes/class-smtp.php文件,找到以下内容部分(202行左右):

  1. $this->smtp_conn = @stream_socket_client(
  2.             $host . ":" . $port,
  3.             $errno,
  4.             $errstr,
  5.             $timeout,
  6.             STREAM_CLIENT_CONNECT,
  7.             $socket_context
  8.         );

修改为:

  1. $this->smtp_conn = fsockopen($host$port$errno$errstr);

第三步、安装WP SMTP插件(国人开发的一款插件)https://wordpress.org/plugins/wp-smtp/ ,提供一个免插件实现SMTP邮件服务的方法,将以下代码添加到主题functions.php文件中:

  1. //使用smtp发送邮件,以163邮箱为例
  2. add_action('phpmailer_init', 'mail_smtp');
  3. function mail_smtp( $phpmailer ) {
  4. $phpmailer->FromName = '氪星人'; //发件人的名称
  5. $phpmailer->Host = 'smtp.163.com'; //修改为你使用的SMTP服务器
  6. $phpmailer->Port = 25; //SMTP端口
  7. $phpmailer->Username = 'lycdbdx10@163.com'; //你的邮箱账号
  8. $phpmailer->Password = '******'; //邮箱密码
  9. $phpmailer->From = 'admin@163.com'; //你的邮箱账号
  10. $phpmailer->SMTPAuth = true;
  11. $phpmailer->SMTPSecure = ''//ssl对应的端口465
  12. $phpmailer->IsSMTP();
  13. }
标签:

7 条留言  访客:4 条  博主:3 条

  1. 酷特尔

    怎么换了域名还换了主机呀?

    • 氪星人

      是的

  2. 肖振杰博客

    WP很多插件还是很好用的。

  3. Betty

    文章标题说是免插件……

    可是第三步又来一句安装WP SMTP插件

    所以终究还是要插件啊……

    • 氪星人

      额… 没看完?

  4. 福利SIR

    这个插件好像不行啊,测试的时候提示发送了一些错误

    • 氪星人

      针对万网免费主机。

给我留言

Copyright © DEFCON笔记 保留所有权利.   青ICP备15000093号-1   

用户登录

分享到: