无法使用 sendgrid 发送电子邮件
unable to send email using sendgrid
// this is my code
//unable to send email using sendgrid
// finding email from body
exports.signUp=async (req,res)=>{
const userExists = await User.findOne({ email: req.body.email })
if(userExists){
return res.status(400).json({
error:"eamil is already taken"
})
}
const token = jwt.sign(req.body, process.env.ACCOUNT_ACTIVATION,{expiresIn:'20m'})
const emailSend = {
from: process.env.EMAIL_FROM,
to: req.body.email,
subject:`Acoount activation link`,
html:`
<p> Please click the following link to activate</p>
<a>http://localhost:8000/api/auth/activate/${token}</a>
`
}
sgMail.send(emailSend).then(sent=>{
return res.status(200).json({
message:'email has been sent to you emailid'
})
})
.catch(err=>console.log(err))
}
// this is error am getting
// am getting this error
ResponseError: Forbidden
at D:\node-projects\ecom\node_modules@sendgrid\client\src\classes\client.js:146:29
at processTicksAndRejections (internal/process/task_queues.js:93:5) {
code: 403,
response: {
headers: {
server: 'nginx',
date: 'Thu, 07 Jan 2021 11:55:26 GMT',
'content-type': 'application/json',
'content-length': '281',
connection: 'close',
'access-control-allow-origin': 'https://sendgrid.api-docs.io',
'access-control-allow-methods': 'POST',
'access-control-allow-headers': 'Authorization, Content-Type, On-behalf-of, x-sg-elas-acl',
'access-control-max-age': '600',
'x-no-cors-reason': 'https://sendgrid.com/docs/Classroom/Basics/API/cors.html'
},
body: { errors: [Array] }
}
}
日志显示失败,因为它收到了禁止 html 响应。
尝试检查您是否在 SendGrid 设置中设置了 Sender Authentication
。
只有设置完成后,您才能发送电子邮件。
参考文献:https://sendgrid.com/docs/for-developers/sending-email/sender-identity/
您需要验证您的单一发件人电子邮件才能解决此错误
// this is my code
//unable to send email using sendgrid
// finding email from body
exports.signUp=async (req,res)=>{
const userExists = await User.findOne({ email: req.body.email })
if(userExists){
return res.status(400).json({
error:"eamil is already taken"
})
}
const token = jwt.sign(req.body, process.env.ACCOUNT_ACTIVATION,{expiresIn:'20m'})
const emailSend = {
from: process.env.EMAIL_FROM,
to: req.body.email,
subject:`Acoount activation link`,
html:`
<p> Please click the following link to activate</p>
<a>http://localhost:8000/api/auth/activate/${token}</a>
`
}
sgMail.send(emailSend).then(sent=>{
return res.status(200).json({
message:'email has been sent to you emailid'
})
})
.catch(err=>console.log(err))
}
// this is error am getting
// am getting this error
ResponseError: Forbidden at D:\node-projects\ecom\node_modules@sendgrid\client\src\classes\client.js:146:29 at processTicksAndRejections (internal/process/task_queues.js:93:5) {
code: 403, response: { headers: { server: 'nginx', date: 'Thu, 07 Jan 2021 11:55:26 GMT', 'content-type': 'application/json', 'content-length': '281', connection: 'close', 'access-control-allow-origin': 'https://sendgrid.api-docs.io', 'access-control-allow-methods': 'POST', 'access-control-allow-headers': 'Authorization, Content-Type, On-behalf-of, x-sg-elas-acl', 'access-control-max-age': '600', 'x-no-cors-reason': 'https://sendgrid.com/docs/Classroom/Basics/API/cors.html' }, body: { errors: [Array] } } }
日志显示失败,因为它收到了禁止 html 响应。
尝试检查您是否在 SendGrid 设置中设置了 Sender Authentication
。
只有设置完成后,您才能发送电子邮件。
参考文献:https://sendgrid.com/docs/for-developers/sending-email/sender-identity/
您需要验证您的单一发件人电子邮件才能解决此错误