You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.06 14:52:07