最近更换了一个主题,自带的用户注册是需要通过邮件验证之后才算完成的,这时,Sham就发现了一个问题,就是提交注册后,发现无法收到邮件,切换到Wordpress默认主题,注册也是一样,能注册成功,但是收不到邮件。
上网查了下,应该是2种原因:
1种是Wordpress默认是通过stream_context_create 发送邮件的,但是貌似阿里云主机是把这个禁掉了;
另外一种是阿里云为了安全,默认禁用了25端口,索然可以申请解禁,但是Sham尝试了下,没通过,也就放弃了;
为了能正常使用,于是通过网上的方法,成功实现了邮件发送,下面就来一步步实现。
第一步:修改Wordpress系统文件,找到目录下面->“wp-includes”->“class-smtp.php”,打开编辑(友情提醒,记得备份),找到如下代码:
$socket_context = stream_context_create($options);
set_error_handler(array($this, 'errorHandler'));
stream_socket_client(
$host . ":" . $port,
$errno,
$errstr,
$timeout,
STREAM_CLIENT_CONNECT,
$socket_context
);
把他们替换成如下代码并保存(
添加“/**”注释而不是删除是为了下次还能改回来 )
/**
$socket_context = stream_context_create($options);
set_error_handler(array($this, 'errorHandler'));
stream_socket_client(
$host . ":" . $port,
$errno,
$errstr,
$timeout,
STREAM_CLIENT_CONNECT,
$socket_context
);
**/
$this->smtp_conn = @fsockopen($host,$port,$errno,$errstr,$timeout);
然后进入WP管理后台,添加SMTP插件,Sham用的是“Easy WP SMTP”,安装激活,然后进行相关设置并保存
设置完成之后,你可以通过插件里面的“Test email ”功能来测试下是否已经成功。
至此,就解决了在阿里云主机上使用Wordpress时发送邮件的问题了。
有图有真相
评论前必须登录!
注册