阿里云虚拟机 wordpress 邮件

经过一番努力我的博客站终于搭建起来了,但是在测试注册功能的时候发现注册邮件收不到,这让老衲十分恼火。后来经过度娘的帮助

worpress 默认使用mail函数发送邮件,但这个函数基本没好用的时候,找了好几次度娘一般都推荐使用smtp方式,在这里博主也推荐使用smtp方式,但我要说的是在设置smtp 中遇到的问题。

我的邮箱已经好用的,大家可以注册测试

网上一共推荐了两种方式,一种是直接修改代码,一种是安装插件。这两种推荐的方式都没有什么问题。在文章最后也给大家附上了两种解决方式很简单。

但在实际测试中数次失败,改代码的方式根本看不出哪里有问题,后来安装了插件测试smtp连接老是失败,实际上原因如下

ps:qq邮箱现在登录使用的授权码而不是登录密码,这一点让我浪费了不少精力,具体可以看我的另一篇文章?<<qq邮箱服务器连接不上,无法登录>>

’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘分割线’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘

阿里云推出的免费主机,确实是为很多用户解决一大难题。阿里云免费主机也有部分缺点,比如:多网站共用一个IP,不能通过SMTP发邮件等等。阿里云免费主机和M3型主机用户,除了独享IP和共享IP之外确实没有太大的区别。今天,我主要来讲一下,如何解决阿里云免费主机不能通过SMTP发邮件的解决办法?

阿里云免费主机没有开启 stream_socket_client 函数导致没有办法通过SMTP 接口发邮件,而一般主机是开放 fsockopen 函数的,所以可以通过修改代码文件解决这个问题。

首先,要在阿里云免费虚拟主机中修改php.ini配置,支持fsockopen;然后在/system/Zend/Mail/Protocol/Abstract.php中 找到

阿里云免费主机不能通过SMTP发邮件的解决办法

$this->_socket = @stream_socket_client($remote, $errorNum, $errorStr, self::TIMEOUT_CONNECTION);

更改为

$this->_socket = fsockopen($remote, 25, $errorNum, $errorStr);

即可!

’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘分割线’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘

附网上解释的两种方式:

第一种,直接修改源代码

直接修改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 = '******'; //你的邮箱登陆密码

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

第二种安装插件,在wordpress的插件里搜索smtp直接安装一个安装人数比较多的就可以了

?

转载请注明出处:

转载自http://lxfamn.cn/blog

未经允许不得转载:lxfamn » 阿里云虚拟机 wordpress 邮件

赞 (0) 打赏

置顶推荐

评论 0

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏