解决阿里云虚拟主机连接不到SMTP服务器的问题

作者 : 开红大大 发布时间: 2019-03-16 文章热度:4.35K 共1351个字,阅读需4分钟。 本文内容有更新 字体: 隐藏侧边 显示侧边

最近班上掀起了一股买服务器的热潮,由于以后的作业全都是通过服务器来提交,所以算得上是人手一个服务器了。

不过我用的是阿里云的虚拟主机,和其他人的云服务器不同,在WordPress的邮件配置上出现了较大的危机,空有资源没有技术这是硬伤啊。

WP SMTP和WP Mail SMTP这两个插件都安装试过,会提示web主机不能连接smtp服务器。

春哥(我们程序老师,技术大牛,逗比一枚)说可以通过修改hosts文件进行配置,我想了想还是算了,总感觉很麻烦的样子(其实是技术太low),于是乎就想在网上找一下有没有什么简单的办法。

这个问题也困扰了我许久,通过度娘试过很多方法,依然不行,看到好多文章都是转载的,本来都没抱什么希望,但是奇迹出现了,哈哈哈。

解决方法如下:

WordPress程序(3.8版本以后)默认使用的是stream_socket_client函数发信,而阿里云虚拟主机使用的是fsockopen函数发信,因此,我们需做以下修改:

一、在阿里云虚拟主机后台启用fsockopen函数(PHP.in设置 → PHP函数设置)。

如下图所示:

解决阿里云虚拟主机连接不到SMTP服务器的问题-开红大大源码库

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

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

将以上代码修改为:

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

三、安装WP SMTP或者WP Mail SMTP插件进行配置。
具体配置就不细说了,WP SMTP是中文版的,简单明了,不过需要注意的是填认证密码那一栏不是QQ密码,而是邮箱授权码,切记。

推荐使用代码配置:将以下代码添加到主题functions.php文件中:

//使用smtp发送邮件(请根据自己使用的邮箱设置SMTP)
add_action('phpmailer_init', 'mail_smtp');
function mail_smtp( $phpmailer ) {
    $phpmailer->FromName = '开红大大'; //发件人名称
    $phpmailer->Host = 'smtp.qq.com'; //修改为你使用的邮箱SMTP服务器
    $phpmailer->Port = 465; //SMTP端口
    $phpmailer->Username = '1111@qq.com'; //邮箱账户
    $phpmailer->Password = '1111111'; //邮箱授权码
    $phpmailer->From = '111@qq.com'; //邮箱账户
    $phpmailer->SMTPAuth = true;
    $phpmailer->SMTPSecure = 'ssl'; //tls or ssl (port=25时->留空,465时->ssl)
    $phpmailer->IsSMTP();
}

如果你是使用的云服务器不用这么麻烦,只需要将smtp规则添加到防火墙即可。

这个故事说明了啥子?班上只有我一个人用的主机,独一无二哇......~~o(>_<)o ~~

免责声明: 本站资源均来自互联网,除了亲测源码能保证完整,其他未测试的源码不能保证其完整性,购买后不支持退款。 本站所有资源仅供学习与参考,请勿用于商业用途,如有侵犯您的版权,请及时联系我们。 若需要解压密码,没有注明的话一律为“www.lkh0525.cn”。
开红大大源码库 » 解决阿里云虚拟主机连接不到SMTP服务器的问题
518+

本站勉强运行

1217+

用户总数

795+

资源总数

5+

今日更新

2020-3-31

最后更新时间