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

// 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: "[email protected]",
    to: "[email protected]",
    subject: `My Test Email`,
    text: 'Hello',
    attachments
};

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


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


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


对于出了什么问题,这是我唯一能找到的东西。但是看起来我的代码满足所有条件。

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

最佳答案

我不确定100%,但是我认为您需要使用attachment而不是attachments

例如:

var data = {
    from: "[email protected]",
    to: "[email protected]",
    subject: `My Test Email`,
    text: 'Hello',
    attachment: attachments
};


否则,mailgun将看不到任何附件,因为未在attachment中指定附件。

关于javascript - Node Mailgun不附加文件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47028480/

10-12 02:23