欧盟区Mailgun.js Node.js基础配置报错401未授权求助
问题重现
运行以下Mailgun发送邮件代码:
const mailgun = new Mailgun(FormData); const mg = mailgun.client({ username: 'api', key: MY_MAILGUN_API, url: 'https://api.eu.mailgun.net'}) mg.messages.create('sandbox-123.mailgun.org', { from: "Excited User <mailgun@sandbox-123.mailgun.org>", to: ["myrealemail@gmail.com"], subject: "Hello", text: "Testing some Mailgun awesomness!", html: "<h1>Testing some Mailgun awesomness!</h1>" }) .then(msg => console.log(msg)) // logs response data .catch(err => console.error(err)); // logs any error
抛出错误:
[Error: Unauthorized] { status: 401, details: 'Forbidden', type: 'MailgunAPIError' }
排查与解决方法
- 核对API密钥类型:Mailgun区分API密钥(开头为
key-,用于API调用)和SMTP密钥(用于SMTP协议发送)。确保你复制的是「API Keys」页面下的有效API密钥,而非SMTP密钥。 - 匹配域名与API端点:欧盟区域的账户需使用
https://api.eu.mailgun.net,美国区域则用https://api.mailgun.net。确认你的沙箱域名sandbox-123.mailgun.org所属账户的区域与端点一致。 - 验证收件人权限:免费沙箱域名仅允许发送到已验证的收件人。登录Mailgun后台,在「Authorized Recipients」页面确认
myrealemail@gmail.com已添加并完成邮箱验证(点击收件箱中的验证链接)。 - 清理密钥多余空格:复制API密钥时可能带入前后空格,导致认证失败。可在代码中对密钥做
trim()处理,或手动删除空格后重新粘贴。 - 检查账户状态:确认账户未被限制,完成邮箱验证、必要的信息填写(如部分区域需绑定信用卡)。
内容的提问来源于stack exchange,提问作者Tadas V.
相关产品推荐
相关产品推荐

