问题来源:
之前的文章中,有小伙伴阅读后,留下了评论,但是我却没有及时在后台通过评论,所以没有显示出来。
于是放假在家在wordpress中配置评论发送邮件的功能,网上相关文章有不少,但是搜索引擎中靠前的大多是互相借鉴的,所以这里也做简要的记录。
WP中默认的发送邮件功能,不怎么好用,所以在WP后台找回密码的时候,常常会得到提醒“无法发送电子邮件,可能原因:您的主机禁用了mail()函数”。这可太让人懵逼了,其实原因是:WP自带的发邮件功能用到了PHP中mail函数,但是要使用他,需要在服务器中的PHP中配置sendmail和ssl,一般主机是没有安装他们的,所以无法使用。
解决办法:
1.能进入wordpress后台时
可以下载安装一个名字叫WP SMTP的插件,直接在后台的插件菜单里搜索可以安装到,装好启用后,有个配置界面如图:
参数说明如下:
发件人地址:要发送邮件的那个邮箱的地址,我这里是申请的网易yeah邮箱
发件人昵称:收到邮件后显示的发件人名字,我这里用的域名前半段
SMTP服务器地址:邮箱服务商的提供服务地址,qq邮箱是smtp.qq.com,163邮箱是smtp.163.com,规则大同小异,可以搜索一下
SMTP加密方式/端口:服务商一般支持SSL,端口为465
SMTP认证/认证用户名/认证密码:用户名即要发邮件的邮箱地址,认证密码在下边说明
先上图,这是登录邮箱后,点击设置->POP3/SMTP/IMAP菜单里边的界面(其他邮箱大同小异):
一般默认没有开启POP3/SMTP服务,点击开启,验证手机号后,在授权码管理这一栏,可以得到一个16位的全大写授权码,这就是上边那个认证密码。
截图下方还有提示,服务器地址和安全支持,挺温馨的。
然后在插件里边保存。在WP的设置->讨论->勾选上“发送电子邮件通知我”,就能使用评论后自动发邮件功能了。
2.不能进入WP的后台,指忘记密码,找回密码也不能发邮件时。
这就需要能够连接自己的服务器,添加代码的方式来解决。
使用ssh工具连接服务器,切换到安装wordpress的目录,找到主题的目录,一般如下(twentyfifteen是主题名字,就是当前启用的主题的目录)
wordpresswp-contentthemestwentyfifteen
里边有一个functions.php文件,打开他,在最后边添加代码,如下:
里边备注对应每行的值,和1中相似,不再赘述,代码文本如下。
// 配置邮件 add_action('phpmailer_init', 'mail_smtp'); function mail_smtp( $phpmailer ) { $phpmailer->FromName = 'yuanrb'; // 发件人昵称 $phpmailer->Host = 'smtp.yeah.net'; // 邮箱SMTP服务器 $phpmailer->Port = 465; // SMTP端口,不需要改 $phpmailer->Username = 'yuanrb@yeah.net'; // 邮箱账户 $phpmailer->Password = '***'; // 此处填写邮箱生成的授权码,不是邮箱登录密码 $phpmailer->From = 'yuanrb@yeah.net'; // 邮箱账户同上 $phpmailer->SMTPAuth = true; $phpmailer->SMTPSecure = 'ssl'; // 端口25时 留空,465时 ssl,不需要改 $phpmailer->IsSMTP(); }
配置完成后,自己触发发送邮件来试一试,发件箱有记录,收件箱收到邮件,则无误,这个方法的邮件内容不能自定义,需要自定义则需要调整更多代码。