节点Mailgun不附加文件

时间:2017-10-31 05:33:39

标签: javascript node.js email mailgun

我有以下代码,我尝试使用Mailgun在Node中发送电子邮件。代码工作正常并发送电子邮件但不附加任何文件。

// pdfA and pdfB are both buffers defined earlier
let attachmentA = new mailgun.Attachment({data: pdfA, filename: `pdfA.pdf`, contentType: "application/pdf", knownLength: pdfA.length});
let attachmentB = new mailgun.Attachment({data: pdfB, filename: `pdfB.pdf`, contentType: "application/pdf", knownLength: pdfB.length});
let attachments = [attachmentA, attachmentB];

var data = {
    from: "test@test.com",
    to: "emailhidden@test.com",
    subject: `My Test Email`,
    text: 'Hello',
    attachments
};

mailgun.messages().send(data, function(error, body) {
    console.log(body);
    console.log(error);
});

在NPM readme中,它提到了以下内容。

  

如果附件对象不满足那些有效条件   忽略。可以通过传递数组来发送多个附件   附件参数。数组元素可以是任何一个   有效的类型,每一个都将得到适当的处理。

这是我能找到的唯一的问题。但看起来我的代码满足所有条件。

有什么方法可以调试吗?它目前只是默默地失败了。它发送电子邮件,我收到了,但电子邮件中没有附件。

1 个答案:

答案 0 :(得分:2)

我不是100%肯定,但我认为您需要使用attachment代替attachments

例如:

var data = {
    from: "test@test.com",
    to: "emailhidden@test.com",
    subject: `My Test Email`,
    text: 'Hello',
    attachment: attachments
};

否则mailgun没有看到任何附件,因为它们未在attachment中指定。