如何使用Node.js配置邮件头实现自定义发件人显示名称
问题原因
from 字段格式不符合邮件传输的标准规范,仅填写自定义名称字符串时,SMTP服务会自动忽略该名称,直接使用你在transporter中配置的发信邮箱作为发件人展示信息。
修复方案
调整mailOptions中的from字段,按照「自定义显示名称 <发信邮箱地址>」的规则填写,修改后的代码如下:
function sendmail(req,res){ const transporter = nodemailer.createTransport({ service: 'gmail', auth: { user: 'myemail@gmail.com', pass: 'mypassword' // 注:Gmail现已不支持直接使用账号密码登录,需开启两步验证后生成应用专用密码填写在此处 } }); const mailOptions = { from: 'Something <myemail@gmail.com>', // 按该格式调整即可 to: 'to_email', subject: 'My subject', html: `<button>My Button</button>` }; transporter.sendMail(mailOptions) }
Gmail额外适配说明
如果使用Gmail作为发信邮箱,受Gmail安全策略限制,即使格式填写正确也可能无法显示自定义名称,需要提前在Gmail后台完成配置:
- 登录Gmail账户,进入「设置-账户和导入」页
- 找到「发送邮件为」选项,添加你需要使用的自定义发件人身份并完成验证
配置完成后再发信即可正常展示自定义发件人名称。
内容的提问来源于stack exchange,提问作者Dkns
相关产品推荐
相关产品推荐

