SendGrid强制TLS下Node SDK调用POST /v3/mail/send的错误码问询
关于SendGrid强制TLS触发拦截时Node SDK的返回码问题
当启用强制TLS后,若收件方服务商不支持TLS导致邮件被丢弃,SendGrid Node SDK调用POST /v3/mail/send接口时会返回4xx级别的HTTP错误(通常是400或403),而非500错误。
原因说明:
- 500错误属于服务端内部故障范畴,而邮件因强制TLS规则被拦截是明确的业务规则校验失败,属于客户端请求不符合服务端发送条件的场景,完全符合4xx错误的定义(客户端侧可预见、可处理的错误类型)。
- 虽然官方文档未直接标注该场景的具体返回码,但从SendGrid的API设计逻辑来看,这类因发送策略触发的拦截,会在响应中返回包含
TLS required but not supported描述的错误信息,对应状态码为4xx。
错误捕获代码示例:
你可以通过捕获SDK的错误对象获取具体状态码和错误描述:
const sgMail = require('@sendgrid/mail'); sgMail.setApiKey('YOUR_API_KEY'); const msg = { to: 'recipient@example.com', from: 'sender@example.com', subject: 'Test Email', text: 'Test content' }; try { await sgMail.send(msg); } catch (error) { // 输出4xx状态码 console.error('Status Code:', error.response.statusCode); // 输出具体错误描述 console.error('Error Message:', error.response.body.errors[0].message); }
内容的提问来源于stack exchange,提问作者Quinn Lee
相关产品推荐
相关产品推荐

