gpt4 book ai didi

node.js - 403 禁止在 Node.js 中使用 sendgrid 发送电子邮件

转载 作者:行者123 更新时间:2023-12-03 12:16:30 25 4
gpt4 key购买 nike

我正在设计一个使用 React 呈现 UI 的联系人页面。我有一个表格,应该在提交时发送电子邮件。下面是处理提交的 UI 代码:

    handleSubmit = (event) => {
event.preventDefault();

this.setState({
disabled: true
});

Axios.post('http://localhost:3040/api/email', this.state)
.then( res => {
if(res.data.success){

this.setState({
disabled: false,
emailSent: true
});
} else{
this.setState({
disabled: false,
emailSent: false
});
}
})
.catch(err => {
this.setState({
disabled: false,
emailSent: false
});
});
}

发送电子邮件的 api 是用 Node.js 编写的。使用@sendgrid//mail 来触发发送。在调试时,我可以看到表单值正在到达 api,但在发送时会引发 403 Forbidden 错误。 api代码如下:

app.post('/api/email', (req, res, next) => {
sendGrid.setApiKey('<Generated key in sendgrid>');
const msg = {
to: 'some@email.com',
from: req.body.email,
subject: 'Website Contact Page',
text: req.body.message
}

sendGrid.send(msg).then(result => {
res.status(200).json({
success: true
});
})
.catch(err => {
console.log('error: ', err);
res.status(401).json({
success: false
});
});
});

以下是我在调试时在 VSCode 控制台中得到的错误跟踪:

stack:"Error: Forbidden
at axios.then.catch.error (c:\react\portfolio-api\node_modules\@sendgrid\client\src\classes\client.js:105:29)
at process._tickCallback (internal/process/next_tick.js:68:7)"

proto:错误 {constructor: , toString: , toJSON: }

不知道为什么它给我禁止错误。如果我需要在此处添加更多信息,请告诉我。在此先感谢:)

编辑:-按照 sendgrid 的文档创建 API key 并在 sendGrid.setApiKey() 中使用相同的 key 。

enter image description here

最佳答案

为了能够从 sendgrid 发送电子邮件,您需要设置单发件人验证或域验证。

请查看docs验证发件人。

To ensure our customers maintain the best possible sender reputationsand to uphold legitimate sending behavior, we require customers toverify their Sender Identities. A Sender Identity represents your“From” email address—the address your recipients will see as thesender of your emails.

You can verify one or more Sender Identities using either DomainAuthentication or Single Sender Verification.

在您的 api 应用程序控制台日志中,错误消息必须是这样的:(要在reactjs端看到真正的错误信息,需要使用err.response.data

The from address does not match a verified Sender Identity. Mailcannot be sent until this error is resolved.

关于node.js - 403 禁止在 Node.js 中使用 sendgrid 发送电子邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61195201/

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