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

NextJS+TypeScript集成Mailgun遇401错误:无法读取环境变量API密钥

NextJS + TypeScript 集成Mailgun 401未授权(环境变量读取失败)排查思路
  • 先改环境变量文件名:NextJS只认.env.local,你用的.local.env顺序反了,框架根本不会加载这个文件。改成.env.local后重启开发服务器试试。
  • 确认代码运行环境:Mailgun密钥是敏感信息,只能在服务器组件、API路由、Server Actions里读取,客户端组件直接读process.env.MAILGUN_API_KEY肯定是undefined。把sendEmail()的调用逻辑移到服务器端,客户端通过调用API接口触发邮件发送。
  • 检查变量名和格式:确保.env.local里的变量名是MAILGUN_API_KEY,大小写、下划线完全匹配;值不要加引号,不要留空格,格式就是MAILGUN_API_KEY=你的密钥。
  • 重启开发服务器:修改.env.local后必须重启next dev,不然新的环境变量不会生效,这是很多人踩的坑。
  • 写个简单测试验证:在pages/api/test-env.ts里写个测试接口:
    export default function handler(req, res) {
      res.status(200).json({ key: process.env.MAILGUN_API_KEY });
    }
    
    启动服务后访问这个接口,如果返回的key是undefined,说明NextJS没加载到环境变量;如果能拿到值,那问题出在mailgun.ts的调用逻辑上。
  • 用Node脚本单独测环境变量:装个dotenv,写个test.js:
    require('dotenv').config({ path: './.env.local' });
    console.log(process.env.MAILGUN_API_KEY);
    
    运行node test.js,如果能输出密钥,说明文件本身没问题,问题在NextJS的配置;如果还是undefined,那就是文件路径不对或者内容写错了。

内容的提问来源于stack exchange,提问作者Elena

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 15:12:07