javascript - SendGrid 不发送邮件,但不抛出任何错误
问题描述
这是我的代码:
userDetails = [{email:'email',id:'id'}]
const sgMail = require('@sendgrid/mail');
sgMail.setApiKey('key');
for (const i in usersDetails) {
const user = usersDetails[i];
const msg = {
from: `ZdajTo<noreply@zdajto.com>`,
to: user.email,
subject: `Dostepne sa nowe zadania z kategorii ${work.category}!`,
html: `<p>Hej! Sprawdz aplikacje ZdajTo! Dostepne sa nowe zadania z kategorii ${work.category}! Aby zrezygnowac z otrzymywania emaili kliknij w <a href="https://Link/${user.id}" target="_blank">ten link</a></p>`,
};
calls.push(sgMail.send(msg).then(() => console.log(`Email sent to ${msg.to}`)).catch(e => console.log(e)));
}
return Promise.all(calls).then(() => console.log('Emails sent')).catch(err => console.log(8, err));
userDetails 是一组带有 id 的电子邮件。
II 之前在 nodemailer 中使用了几乎相同的代码,并且运行良好。这是 nodemailer 版本:
for (const i in usersDetails) {
const user = usersDetails[i];
calls.push(mailTransport.sendMail({
from: `ZdajTo <noreply@zdajto.com>`,
to: user.email,
subject: `Dostepne sa nowe zadania z kategorii ${work.category}!`,
html: `<p>Hej! Sprawdz aplikacje ZdajTo! Dostepne sa nowe zadania z kategorii ${work.category}! Aby zrezygnowac z otrzymywania emaili kliknij w <a href="https://Link/${user.id}" target="_blank">ten link</a></p>`,
}).catch(err => console.log(7, err, user.email)));
}
奇怪的是,它Emails sent
每次Email sent to...
都这么说。没有抛出错误,但同时 SendGrid 说没有请求。知道我错过了什么吗?
解决方案
我的假设是您收到了触发“已发送消息”部分的已接受响应 (202)。但是,它不能保证您的消息将被发送,我只是将其排队处理。在这种情况下,我会联系 Sendgrid 支持:Sendgrid 返回 202 但不发送电子邮件
推荐阅读
- javascript - plotly.js 悬停/取消悬停事件未按预期工作
- android - 如何通过 Firebase 云消息发送推送通知(快速入门)?
- javascript - Ruby on Rails,当我查看 console.log 未定义时
- python - Django 创建多个视图
- jsonpath - 过滤器不起作用的 Json 路径逻辑非运算符
- amazon-cloudformation - eskctl 是否支持将 CloudFormation 的角色 ARN 设置为 Assume
- ios - Apollo ios codegen 生成可选值
- javascript - jQuery:如何在单击和(重新)加载单选按钮时添加类?
- image - Docker compose - 只有在所有容器全部退出时,我才能停止它们?
- powerbi - M & Power Query:如何在循环中使用 $Skip ODATA 表达式?