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中 找到
$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直接安装一个安装人数比较多的就可以了
?
转载请注明出处:
未经允许不得转载:lxfamn » 阿里云虚拟机 wordpress 邮件