我使用sendgrid Node.js模块发送电子邮件。我已在服务器上有一个文件,并希望将其添加为电子邮件的附件。我发现电子邮件很好但没有附件,所以不确定发生了什么问题。
//sendgrid credentials
var mailer = nodemailer.createTransport(sendGrid({
auth: {
api_user: conf.mail.user,
api_key: conf.mail.pass
}
}));
//mail object
var mailObj = {
to: toAddr,
from: fromAddr,
subject: subject,
html: template,
files: [{
path: __dirname + "/../../uploads/" + filename
}]
};
//send mail
mailer.sendMail(mailObj, function(err, res){
if (err) throw err;
});
以上内容包含在一个更大的函数中,该函数通过包含filename
的变量。要记住的事情:
答案 0 :(得分:0)
您是否确认邮件中的附件确实没有?如果你"显示原始" (你如何做到这一点取决于你的邮件客户端),看看它,你可以看到不同的MIME部分,并确认附件是否真的不存在,或者它只是一个问题没有显示。
如果它在那里但没有看到,这是MIME订单的问题,可能与SendGrid帐户设置有关,称为"将纯文本转换为HTML"。 邮件客户端从下往上读取邮件,并期望附件位于底部。如果他们在附件之前显示内容,他们会停止显示内容,并且永远不会看到'附件。 在将消息传递给SendGrid之前,根据消息的组装方式,它们可能会在末尾添加HTML,从而使附件有效地不可见。您可以通过选中"不要转换"来关闭该设置。您的帐户设置下的选项。
如果附件确实不存在,您可以检查相同的MIME部分,看看是否: