首页 > 解决方案 > 达到配额时如何捕获未经授权的 Sendgrid 错误?

问题描述

使用以下简单代码使用 Sendgrid 发送电子邮件没有问题:

const sgMail = require('@sendgrid/mail');
sgMail.setApiKey(process.env.SENDGRID_API_KEY);

const sendWelcomeEmail = (email, username, code) => {
    sgMail.send({
        to: email,
        from: 'example@gmail.com',
        subject: 'Welcome!',
        html: '<h3Welcome</h3>'
    });
};

然而,当达到 Sendgrid 配额(即每天 100 封免费电子邮件)时,我在服务器上收到此错误:

(node:5060) UnhandledPromiseRejectionWarning: Error: Unauthorized
    at Request._callback (C:\...\node_modules\@sendgrid\client\src\classes\client.js:124:25)

[...]

(node:5060) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.


我一直在不同的地方尝试一些 try catch 块,但没有成功。谢谢。

标签: node.jspromisesendgridquotaunhandled

解决方案


这是 tiguchi 评论,我将其发布为已接受的答案:

这是一个 NodeJS 警告,告诉您向该承诺添加错误处理。只需在发送调用后附加一个 .catch(error => console.error(error)) – tiguchi


推荐阅读