解决WordPress收发邮件错误以及使用自定义邮箱

Timle.CN:专注 WordPress建站WordPress主题WordPress插件 分享,同时也关注各种 建站资源前端技巧免费资源IT互联网热点 。CTRL+D即可收藏本站,我们期待您的再次光临!

[文章目录]

本站使用的主机由于不支持mail()函数,导致不能正常的发送通知邮件,所以之前使用了WP SMTP这个插件进行邮件的收发。

本着能不用插件就不用的原则……

我们这次可以将WP SMTP,Configure SMTP以及WP Mail SMTP等一系列smtp邮箱发送方式彻底整合至主题中,实现免插件收发邮件。所以如果你的邮件功能出现异常,可以尝试使用此方法解决。

主机不支持mail()函数解决办法

将以下代码添加至functions.php中的 <?php 之后:

//smtp发送邮件功能
function mail_smtp( $phpmailer ){
	$phpmailer->FromName   = '发信名';
	$phpmailer->Host       = 'smtp.exmail.qq.com';//SMTP服务器地址
	$phpmailer->Port       = 465;//SMTP服务器端口
	$phpmailer->Username   = '发信邮箱';
	$phpmailer->Password   = '密码';
	$phpmailer->From       = '显示邮箱';
	$phpmailer->SMTPAuth   = true; //SMTP认证(true/flase)
	$phpmailer->SMTPSecure = 'ssl'; //SMTP加密方式tls/ssl/no(port=25留空,465为ssl)
	$phpmailer->IsSMTP();
}
add_action( 'phpmailer_init','mail_smtp' );
//smtp发送邮件功能设置完成

其中:

  1. FromName :发信所显示的名字
  2. Host            :SMTP地址,QQ邮箱填写:smtp.qq.com / 腾讯企业邮箱:smtp.exmail.qq.com
  3. Port            :SMTP端口,腾讯企业邮箱为465
  4. Username   :发信邮箱账号
  5. Password    :发信邮箱密码
  6. From           :邮件显示邮箱,这个可以与发信邮箱不同 其余无需修改。
  7. 查询常用的邮箱服务器(SMTP、POP3)地址、端口 点击前往

我的设置如下图所示,可参照我的设置自行修改即可:

smtp

万网虚拟主机邮件发送解决办法

万网称:因为WordPress程序使用的不是fsockopen函数发信,而是使用stream_socket_client函数发信,但是PHP函数在万网主机虚拟主机中被禁用了,所以导致发信失败。

如果你使用的是万网主机,那除了在functions.php文件中添加以上代码外,还需要找到文件/wp-includes/class-smtp.php,做以下修改:

将如下代码:

$this->smtp_conn = @stream_socket_client(
            $host . ":" . $port,
            $errno,
            $errstr,
            $timeout,
            STREAM_CLIENT_CONNECT,
            $socket_context
        );

修改为:

$this->smtp_conn = fsockopen($host, $port, $errno, $errstr, $timeout);

阿里云万网主机的同学,如果有添加以上修改后还是不能发送邮件的,请确认主机管理控制台:高级环境设置->php.ini参数设置->PHP函数fsockopen设置是否启用。禁用的,改为启用。

即可以上。

版权声明:本站所有文章和资源使用CC BY-NC-SA 3.0 CN协议发布,转载应当以相同方式注明并注明文章来自“Timle.CN -> 解决WordPress收发邮件错误以及使用自定义邮箱”。在页面右边可以分享本文哦!

有 18 发吐槽 关于 “解决WordPress收发邮件错误以及使用自定义邮箱

  1. 沙发
    BabyBichu 2014-08-13
    我还是用插件 这种的话就怕别人通过functions.php偷窥密码
    • 回复
      Timle.CN 2014-08-13
      @BabyBichu 不会吧,functions.php这个文件不是禁止访问的吗
      • 回复
        BabyBichu 2014-08-13
        @Timle.CN 别人没权限访问?
        • 回复
          Timle.CN 2014-08-13
          @BabyBichu 是的,你可以用绝对路径在浏览器里访问那个文件来试试。不能访问的
          • BabyBichu 2014-08-13
            @Timle.CN 我试过,但是换个其他什么办法就说不准啦
          • Timle.CN 2014-08-13
            @BabyBichu 呵呵,我用的腾讯企业邮箱来弄的,用别名邮箱就可以,要是有问题,换个别名就OK。
          • BabyBichu 2014-08-13
            @Timle.CN 我指的是密码安全性。
          • Timle.CN 2014-08-13
            @BabyBichu 其实,如果,这个都不安全了,那你用插件,估计也不能安全了。
          • BabyBichu 2014-08-13
            @Timle.CN 嗯,确实
  2. 板凳
    网页设计学 2014-08-13
    你的网站也不错哦,继续加油 :smile:
  3. 地板
    BabyBichu 2014-08-13
    这个用了一下也是出错了
    • 回复
      Timle.CN 2014-08-13
      @BabyBichu 我发了我的设置截图上来,你可以参照图片设置一下
  4. 4楼
    疯子 2014-08-13
    以前刚开始也是添加代码,可是主题频繁更换,因为比较懒,后来直接装个smtp插件就完事了。。。
  5. 5楼
    Timle.CN 2015-08-6
    阿里云万网主机的同学,如果有添加以上修改后还是不能发送邮件的,请确认主机后台高级环境设置->php.ini参数设置->PHP函数fsockopen设置是否启用。
  6. 6楼
    mikifuns 2015-08-8
    :!: 就差最后一个忘看了 :grin: 学习了
  7. 7楼
    joker 2016-07-11
    $phpmailer->SMTPSecure = ‘ssl’; //SMTP加密方式tls/ssl/no(port=25留空,465为ssl)TLS怎么填?
    • 回复
      Timle.CN 2016-07-12
      @joker 第7点那个链接点进去可以查看端口号,对应填写就对了。

疑问 难过 胜利 微笑 抠鼻 可爱 抓狂 偷笑 奋斗 衰 撇嘴 色 贼笑 爬虫 鼓掌 发怒 擦汗 握手 酷 玫瑰 哭 呲牙

解决WordPress收发邮件错误以及使用自定义邮箱
9 票, 5.00 平均等级 ( 99% 分 )