SMTP邮件功能在WordPress中是很常用的功能, 虽然WordPress自带了mail函数,但用自带mail函数发送邮件很容易失败或者被拒收。
有很多虚拟主机基本都是禁用了 mail 函数,所以我们只能使用SMTP服务发送邮件,网上关于STMP的WordPress插件有很多,今天我分享一种不需要插件纯代码实现wordpress模板修改,STMP邮件发送的功能。
实现函数
首先将下面代码修改后复制到functions.php文件
function mail_smtp( $phpmailer ) {
$phpmailer->FromName = '『名称』'; //发件人名称
$phpmailer->Host = SMTP_HOST; //修改为你使用的邮箱SMTP服务器
$phpmailer->Port = SMTP_PORT; //SMTP端口
$phpmailer->Username = SMTP_USERNAME; //邮箱账户
$phpmailer->Password = SMTP_PASSWORD; //邮箱授权码(此处填写QQ邮箱生成的授权码)
$phpmailer->From = SMTP_FROM; //邮箱账户
$phpmailer->SMTPAuth = true;
$phpmailer->SMTPSecure = 'ssl'; //tls or ssl (port=25时->留空,465时->ssl)
$phpmailer->IsSMTP();
// 错误处理
if(!$phpmailer->send()) {
error_log('Mailer Error: ' . $phpmailer->ErrorInfo);
}
}
add_action('phpmailer_init', 'mail_smtp');
SMTP_HOST这些信息你可以去wp-config.php定义常量,也可以直接写入,用单引号包括,例如:
$phpmailer->Host = 'smtp.qq.com'; //修改为你使用的邮箱SMTP服务器
$phpmailer->Port = 465; //SMTP端口 注意这个不要引号
$phpmailer->Username = '*****@qq.com'; //邮箱账户
$phpmailer->Password = '*****'; //邮箱授权码(此处填写QQ邮箱生成的授权码)
$phpmailer->From = '*****@qq.com'; //邮箱账户
编辑当前主题的 functions.php 文件
WordPress网站后台 – 仪表盘 – 外观 – 主题文件编辑器(有的版本可能显示是编辑)>选择主题functions.php文件>添加代码>保存文件:
添加之后自己再测试发送邮件功能。一般都是没问题了的。
注意:使用代码配置好后,升级主题配置会消失,因为文件会被覆盖,所以升级前做好备份。
注意
上面添加到主题functions.php文件的这种方式添加的功能代码只在当前使用主题下有作用,如果你切换了主题,那么这个时候就会失效,所以要注意。
推荐
推荐你使用WPCode 代码片段插件,你可以直接将上述代码添加为一个新的代码片段开启,在不需要的时候也可以直接对这个功能代码选择关闭就行,这个插件可以非常方便的管理在WordPress网站上的功能代码,如下示例:
这个插件它的代码库中还有许多使用的功能代码片段,你可以选择你用得上的然后导入、选择开启就可以了,如下示例:
关于这个插件的介绍推荐你看我之前文章:WordPress代码片段插件 WPCode。
常用邮箱服务器地址
常用邮箱的 POP3 与 SMTP 服务器如下:
阿里企业云邮箱POP3/SMTP 协议收发邮件服务器地址分别如下:
收件服务器地址:
POP 服务器地址:pop3.mxhichina.com 端口110,SSL 加密端口995
发件服务器地址:
SMTP 服务器地址:smtp.mxhichina.com 端口25, SSL 加密端口465
腾讯企业邮箱 POP3/SMTP 协议收发邮件服务器地址分别如下:
接收邮件服务器:
POP 服务器地址:pop.exmail.qq.com (端口 110),使用SSL,端口号995
发送邮件服务器:
SMTP 服务器地址:smtp.exmail.qq.com (端口 25),使用SSL,端口号465
插件配置SMTP推荐
wordpress也有一款非常好用的SMTP插件:WP SMTP,大家不想折腾代码的话安装下插件配置就行。
插件简约,设置也不麻烦。有设置指导。
可以直接wp网站后台搜索WP SMTP安装启用配置就行。
也可以手动下载上传安装:WP SMTP – WordPress plugin | WordPress.org