Я пытаюсь реализовать контактную форму на Nodejs и express с SendGrid, но она дает мне 403 Forbidden
ошибку, но отправленный почтовый запрос возвращает 200
. я не знаю, что я делаю неправильно, пожалуйста, мне нужна помощь, чтобы это исправить.
Вот мое целое route
const express = require('express')
const router = express.Router()
const ContacForm = require('../models/contact_form')
const fs = require('fs')
const path = require('path')
const sgMail = require('@sendgrid/mail');
const nodemailer = require("nodemailer");
router.get('/new', (req, res) => {
res.render("contact_form/new")
})
router.post('/', (req, res) => {
const output = `
<p>You have a new Request</p>
<h3>Contact Details </h3>
<ul>
<li>Name: ${req.body.name}</li>
<li>Email: ${req.body.email}</li>
/ul>
<h3>Message</h3>
<li>Request: ${req.body.request}</li>
`;
sgMail.setApiKey(process.env.SENDGRID_API_KEY);
const msg = {
to: 'chukwumakingley1@gmail.com',
from: 'chukwumakingley1@gmail.com',
subject: 'Sending with Twilio SendGrid is Fun',
text: 'and easy to do anywhere, even with Node.js',
html: output,
};
sgMail.send(msg, (error, contact)=> {
if(error) {
console.log(error)
res.render("contact_form/new")
}
});
});
, и это ответ на сообщение об ошибке я получаю на терминале
ResponseError: Forbidden
at node_modules/@sendgrid/client/src/classes/client.js:105:29
at processTicksAndRejections (internal/process/task_queues.js:97:5) {
code: 403,
message: 'Forbidden',
response: {
headers: {
server: 'nginx',
date: 'Sat, 11 Apr 2020 13:15:25 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] }
}
}
и вот моя форма
<form method="POST" action="/contact_form">
<label>Name</label>
<input type="text" name="name" id="name" placeholder="Enter Your Name">
<label>Email</label>
<input type="text" name="email" id="email" placeholder="Enter Your Email">
<label>Request</label>
<textarea name="request" id="request" placeholder="Enter Your Prayer Request" cols="30"
rows="10"></textarea>
<button type="submit"> Submit </button>
</form>
ПРИМЕЧАНИЕ. Я отправляю свою переменную SENDGRID_API_KEY
, и она поступает через
Это это тип Sendgrid API, который я использую
Integrate using our Web API or SMTP Relay