分享

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

 纵观生活趣事 2016-10-17


本站使用的主机由于不支持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设置是否启用。禁用的,改为启用。

即可以上。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多