如何设置WordPress和WooCommerce的邮件SMTP
使用Wordpress搭建网站,邮件功能的设置就让一键比较让人头疼的事情。尤其是用WooCommerce搭建电商网站后,邮件通知的稳定性更是直接影响用户体验。默认的PHP邮件发送功能不但不稳定,而且还常常被邮件服务商判定为垃圾邮件。为了解决这个问题,我开始研究SMTP设置。
这篇文章分享如何用SMTP设置WordPress和WooCommerce的邮件功能,并推荐一个非常实用的服务:飞书SMTP,免费又稳定,非常适合中小型网站。
一天400份,每天不超过四五十个订单没啥毛病。
为什么需要SMTP?
主要还是Wordpress自带的发邮件功能不好用。
WordPress自带的邮件发送功能(PHP Mail)存在以下问题:
- 高拦截率:邮件经常被拦截进垃圾邮箱。
- 不可靠:邮件发送失败时没有任何提示。
- 主机兼容性差:部分服务器商家甚至不支持PHP邮件功能(比如rocket)。
SMTP(简单邮件传输协议)可以直接通过专业邮件服务器发送邮件,不仅可靠性高,还能有效提升邮件的投递成功率。
另外就是你可以使用你的域名邮箱来作为发送邮件的邮箱,这样客户至少看上去就会感觉你的网站很专业。
准备工作:选择SMTP服务
SMTP服务商的选择非常重要,根据需求和预算,可以选择以下几种类型:
1. 免费SMTP服务
- 推荐:Gmail、QQ邮箱、163邮箱。
- 适合:初学者,配置简单,但可能有发送数量限制。
2. 专业SMTP服务
- 推荐:Sendinblue、Mailgun、Amazon SES。
- 适合:业务量较大的用户,支持大规模邮件发送。
3. 飞书域名邮箱SMTP服务
- 特点:每天免费发送400封邮件,可以使用域名邮箱。
- 适合:中小型网站,支持自定义域名邮箱(推荐)。
怎么选择看自己的情况,如果你的服务器提供方有提供邮件服务,用的不错的话就可以。
就比如我自己喜欢在cloudways上搭建woocommerce网站,同时用它们的邮件服务,价格很便宜而且不需要额外配置。
配置WordPress SMTP的步骤
1. 安装WP Mail SMTP插件
- 登录WordPress后台,依次进入“插件”>“安装插件”。
- 搜索“WP Mail SMTP”插件,点击“安装”并激活。
- 激活后,后台会新增“WP Mail SMTP”菜单项。
2. 配置SMTP设置
- 进入设置页面
- 在WordPress后台,进入“WP Mail SMTP”>“设置”。
- 填写发件人信息
- 发件人邮箱:填写你的邮箱地址(如
yourname@yourdomain.com
)。
- 发件人邮箱:填写你的邮箱地址(如
- 发件人名称:设置为网站或品牌名。
- 选择SMTP服务商
- 如果使用推荐服务商(如Gmail、飞书),直接选择对应选项。
- 如果使用自定义SMTP服务商,选择“Other SMTP”,手动填写信息:
- SMTP主机:如
smtp.feishu.cn
(飞书)。
- SMTP主机:如
- SMTP端口:465(SSL)或587(TLS)。
- 加密方式:SSL或TLS。
- SMTP用户名:完整的邮箱地址。
- SMTP密码:邮箱授权码(注意不是登录密码)。
- 如果使用自定义SMTP服务商,选择“Other SMTP”,手动填写信息:
- 保存设置。
3. 测试邮件发送
- 前往“WP Mail SMTP”>“工具”>“发送测试”。
- 输入一个测试邮箱地址,点击“发送测试邮件”。
- 如果测试成功,说明SMTP配置完成。
WooCommerce与SMTP整合
WooCommerce的邮件通知功能默认使用WordPress邮件设置,只要你的WordPress SMTP配置正确,WooCommerce邮件也会正常使用SMTP服务。
测试WooCommerce邮件发送
- 创建一个测试订单,检查订单邮件是否正常发送。
- 确认邮件内容和格式,必要时通过插件或代码优化模板。
小优化
- 如果使用域名邮箱发送WooCommerce邮件,可以自定义模板,增加品牌标识,让邮件更加专业。
常见问题及解决方法
1. SMTP验证失败
- 确认SMTP用户名、密码(或授权码)是否正确。
- 检查主机地址和端口设置。
2. 邮件进入垃圾邮箱
- 配置SPF、DKIM和DMARC记录,提升邮件的可信度。
3. 邮件发送延迟或失败
- 使用更稳定的SMTP服务,如飞书或Sendinblue。
- 检查主机防火墙设置,避免阻挡SMTP流量。
最后我来分享一个小代码
如果你不想安装Wordpress的SMTP插件,可以直接使用以下的代码,将代码中的各种SMTP信息都替换为你的信息,然后粘贴的主题文件的function.php这个文件里。
add_action('phpmailer_init', 'custom_smtp_mailer_config');
function custom_smtp_mailer_config($phpmailer) {
$phpmailer->isSMTP();
// SMTP主机地址
$phpmailer->Host = 'smtp.example.com'; // 请替换为你的SMTP服务器地址,如 smtp.gmail.com
// SMTP端口
$phpmailer->Port = 587; // 常见端口:465(SSL) 或 587(TLS)
// 是否使用SMTP认证
$phpmailer->SMTPAuth = true;
// SMTP用户名
$phpmailer->Username = 'your_email@example.com'; // 替换为你的SMTP用户名
// SMTP密码
$phpmailer->Password = 'your_email_password'; // 替换为你的SMTP密码或授权码
// SMTP安全协议
$phpmailer->SMTPSecure = 'tls'; // 可选值:'ssl', 'tls', 或空字符串(不使用加密)
// 设置发件人信息
$phpmailer->From = 'your_email@example.com'; // 替换为发件人邮箱
$phpmailer->FromName = 'Your Name or Website'; // 替换为发件人名称
}
我个人就非常喜欢用PHP代码来替代插件的作用,能对网站的优化有极大的作用。
暂无评论内容