微服务/CRM项目中如何用Nodemailer配置非Gmail自定义邮箱?
自定义域名邮箱适配Nodemailer配置方案
一、代码核心修改点
你原来的代码里service: "gmail"是Gmail专属的快捷配置,自定义域名邮箱不能用这个,必须手动指定SMTP服务器信息,修改后的代码如下:
let transporter = nodemailer.createTransport({ port: 465, // SSL加密端口,保持不变 secure: true, // 465端口对应SSL加密,设为true host: "smtp.quadque.digital", // 替换成你的邮箱服务商SMTP服务器地址 auth: { user: "你的完整邮箱@quadque.digital", pass: "你的邮箱密码/应用密码", }, // 若遇到SSL证书验证失败,可临时添加该行(生产环境不建议) // tls: { rejectUnauthorized: false } });
具体修改说明:
- 移除
service: "gmail":这个字段是Nodemailer给主流邮箱做的预设配置,自定义域名邮箱不适用,必须手动填写SMTP服务器地址。 - 添加
host字段:这是关键,需要向你的邮箱托管服务商获取正确的SMTP地址,常见情况:- cPanel托管的邮箱:一般为
smtp.你的域名.com - 腾讯企业邮:
smtp.exmail.qq.com - 阿里云企业邮:
smtp.mxhichina.com
不确定的话直接联系域名/邮箱服务商确认。
- cPanel托管的邮箱:一般为
- 端口与加密设置:465+
secure: true是SSL加密的标准配置;如果使用587端口(TLS加密),需将secure改为false,同时可能需要补充tls配置。
二、应用密码设置方法
自定义域名邮箱的应用密码设置取决于你的托管服务商:
- cPanel环境:登录cPanel后台,找到「电子邮件」板块的「密码和应用程序」,选择生成应用密码并绑定对应邮箱账户即可。
- 企业邮服务商(腾讯/阿里云等):登录企业邮个人后台,在「安全设置」中开启两步验证后,即可生成应用密码。
- 若服务商不支持应用密码:直接使用邮箱的原始登录密码,但要确保账户未开启IP白名单、登录限制等严格规则。
三、测试与排查
配置完成后,可通过以下代码发送测试邮件验证:
const mailOptions = { from: "你的邮箱@quadque.digital", to: "测试邮箱地址", subject: "自定义邮箱测试", text: "邮件发送成功!" }; transporter.sendMail(mailOptions, (error, info) => { if (error) { console.log(error); // 根据错误信息排查,比如SMTP地址错误、密码不正确 } else { console.log("发送成功: " + info.response); } });
常见问题排查:
- 检查服务器防火墙是否开放465/587端口
- 确认SMTP地址、密码是否正确
- 若出现SSL报错,临时添加
tls: { rejectUnauthorized: false }测试,生产环境需解决证书问题
内容的提问来源于stack exchange,提问作者quad que
相关产品推荐
相关产品推荐

