gpt4 book ai didi

javascript - 使用 sendgrid npm 添加附件不起作用

转载 作者:太空宇宙 更新时间:2023-11-03 22:35:44 26 4
gpt4 key购买 nike

我正在使用 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;
});

上面的内容被包装在一个更大的函数中,该函数传递包括文件名在内的变量。需要注意的事项:

  • 文件名被传递给函数fine
  • 文件存在于指定位置
  • 当前发送的电子邮件没有附件

最佳答案

您是否已验证附件确实不在邮件中?如果您“显示原始数据”(如何操作取决于您的邮件客户端),并查看它,您可以看到不同的 MIME 部分,并确认附件是否确实不存在,或者只是一个问题未显示。

如果它存在但没有看到,则这是 MIME 顺序问题,并且可能与 SendGrid 帐户设置(称为“将纯文本转换为 HTML”)有关。邮件客户端从下往上读取邮件,并期望附件位于底部。如果他们在附件之前显示内容,他们就会停止显示内容,并且永远不会“看到”附件。根据您将消息传递到 SendGrid 之前的组装方式,他们可能会在末尾添加 HTML,从而使附件实际上不可见。您可以通过选中“帐户设置”下的“不转换”选项来关闭该设置。

如果附件确实不存在,您可以检查这些相同的 MIME 部分,看看是否:

  • 附件存在,但大小为 0kb,这意味着该文件未正确读取。
  • 附件 MIME 解析在那里,但仅由文件路径组成,这意味着代码只是字面上附加路径字符串,而不是读取文件。

关于javascript - 使用 sendgrid npm 添加附件不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29592585/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com