我正在尝试在我的节点应用程序中使用mailgun,并且我已经遵循了他们的文档并像这样进行了设置
const formData = require("form-data");
const Mailgun = require("mailgun.js");
const mailgun = new Mailgun(formData);
const mg = mailgun.client({username: "api", key: "my-api-key"})
const data = {
from: 'donotreply <[email protected]>',
to: '[email protected]',
subject: 'Test Subject',
text: `Test Body`,
attachment: [{
filename: `a_file.pdf`,
data: buffer
}]
}
mg.messages.create("mywebsite.com", data)
.then((res) => {
console.log(res);
})
.catch((err) => {
console.log(err);
})
当我在本地测试我的应用程序时,它运行得很好,但是当我在heroku 服务器上测试它时,我收到此错误
2023-03-26T19:23:46.786638+00:00 app[web.1]: /app/node_modules/form-data/lib/form_data.js:250
2023-03-26T19:23:46.786665+00:00 app[web.1]: if (!contentType && value.name) {
2023-03-26T19:23:46.786665+00:00 app[web.1]: ^
2023-03-26T19:23:46.786666+00:00 app[web.1]:
2023-03-26T19:23:46.786666+00:00 app[web.1]: TypeError: Cannot read property 'name' of undefined
2023-03-26T19:23:46.786667+00:00 app[web.1]: at FormData._getContentType (/app/node_modules/form-data/lib/form_data.js:250:29)
2023-03-26T19:23:46.786667+00:00 app[web.1]: at FormData._multiPartHeader (/app/node_modules/form-data/lib/form_data.js:179:26)
2023-03-26T19:23:46.786668+00:00 app[web.1]: at FormData.append (/app/node_modules/form-data/lib/form_data.js:71:21)
2023-03-26T19:23:46.786668+00:00 app[web.1]: at i (/app/node_modules/mailgun.js/mailgun.node.js:2:33205)
2023-03-26T19:23:46.786668+00:00 app[web.1]: at /app/node_modules/mailgun.js/mailgun.node.js:2:33285
2023-03-26T19:23:46.786668+00:00 app[web.1]: at Array.forEach (<anonymous>)
2023-03-26T19:23:46.786669+00:00 app[web.1]: at e.addFilesToFD (/app/node_modules/mailgun.js/mailgun.node.js:2:33264)
2023-03-26T19:23:46.786669+00:00 app[web.1]: at /app/node_modules/mailgun.js/mailgun.node.js:2:32363
2023-03-26T19:23:46.786669+00:00 app[web.1]: at Array.reduce (<anonymous>)
2023-03-26T19:23:46.786670+00:00 app[web.1]: at e.createFormData (/app/node_modules/mailgun.js/mailgun.node.js:2:32271)
我尝试过做多种事情,例如确保将服务器节点版本设置为本地版本(无论我认为哈哈,我都应该这样做)和npm安装表单数据(它在本地没有这样做的情况下工作,所以我认为它包含在Node 但我看到有一个可用的包,所以我无论如何都安装了它)。
如有任何建议,我们将不胜感激,谢谢!
我在 nodemailer-mailgun-transport 节点模块上遇到了同样的问题。 我认为这是 mailgun.js 节点模块版本问题。 这个问题你解决了吗?