如何使用mailgun.js通过message_id获取消息数据与状态?
使用mailgun.js通过message_id获取消息详情的解决方案
你提到的messages.info方法确实不存在于当前的mailgun.js库中,正确的做法是使用messages.get方法来获取单条消息的详情,以下是具体实现:
// 初始化mailgun客户端(若未初始化) const formData = require('form-data'); const Mailgun = require('mailgun.js'); const mailgun = new Mailgun(formData); const mg = mailgun.client({username: 'api', key: 'YOUR_API_KEY'}); // 获取消息详情的异步函数 async function fetchMessage(domain, messageId) { try { const msgDetails = await mg.messages.get(domain, messageId); console.log('消息数据:', msgDetails); return msgDetails; } catch (err) { console.error('获取消息失败:', err); } } // 调用示例 fetchMessage(MAILGUN_API_DOMAIN, mg_id);
关键注意事项
- message_id格式:必须传入完整的Mailgun消息ID,格式为
<xxxxxx@你的域名.com>,不要遗漏前后的尖括号,否则会返回权限或资源不存在错误。 - API密钥权限:确保使用的API密钥具备
messages:read权限,主API密钥默认拥有该权限,子密钥需要手动配置对应权限。 - 版本兼容:该方法适用于mailgun.js v4及以上版本,若你使用的是旧版(如v3),建议升级到最新版本以适配当前API规范。
如果需要获取消息的点击、打开等事件数据,可以结合events接口通过message_id过滤查询:
async function fetchMessageEvents(domain, messageId) { try { const events = await mg.events.get(domain, { message_id: messageId }); console.log('消息事件记录:', events); return events; } catch (err) { console.error('获取事件失败:', err); } }
内容的提问来源于stack exchange,提问作者DeLac
相关产品推荐
相关产品推荐

