使用Nodemailer发送Gmail邮件遇punycode弃用警告问题求助
Nodemailer运行时punycode弃用警告的解决办法
这个警告既不是你的代码问题,也不算Nodemailer的bug——Node.js从v16版本开始把核心模块punycode标记为弃用,而旧版Nodemailer的部分依赖逻辑还在调用这个核心模块,所以触发了警告。
几个可行的解决方案:
升级Nodemailer到最新版:Nodemailer后续版本已经替换了对核心
punycode的依赖,改用了用户空间的替代库。执行下面的命令更新:npm update nodemailer更新后重新运行脚本,警告基本会消失。
手动安装用户空间的punycode替代库:如果暂时不想升级Nodemailer,可以单独装
punycode.js,Node.js会优先用这个用户空间的版本而非核心模块:npm install punycode.js然后在你的脚本开头加一行,强制加载这个库:
const punycode = require('punycode.js');临时屏蔽警告(不推荐):要是只是不想看到警告,可以启动脚本时加参数屏蔽:
node --no-deprecation index.js但这只是隐藏警告,没从根本解决依赖问题,不建议长期这么用。
额外提醒
用Gmail发邮件的话,注意Google现在已经不支持普通密码登录了,得启用应用专用密码(前提是开了两步验证),或者用OAuth2授权方式,不然脚本会登录失败。
内容的提问来源于stack exchange,提问作者OHICT
相关产品推荐
相关产品推荐

