Электронная почта не отправляется через sendgrid, а также не показывает никаких ошибок/ node.js

#node.js #sendgrid

Вопрос:

auth.js Всякий раз, когда я пытаюсь зарегистрировать новую учетную запись, она показывает мне сообщение об ошибке» несанкционированный», я не понимаю, что именно происходит.

введите описание изображения здесь

 exports.register = async (req, res) => {
    try {
        const { email } = req.body;

        // Make sure this account doesn't already exist
        const user = await User.findOne({ email });

        if (user) return res.status(401).json({message: 'The email address you have entered is already associated with another account.'});

        const newUser = new User({ ...req.body, role: "basic" });

        const user_ = await newUser.save();

        await sendVerificationEmail(user_, req, res);

    } catch (error) {
        res.status(500).json({success: false, message: error.message})
    }
};
 

отправка электронной почты для подтверждения

 async function sendVerificationEmail(user, req, res){
    try{
        const token = user.generateVerificationToken();

        // Save the verification token
        await token.save();

        let subject = "Account Verification Token";
        let to = user.email;
        let from = process.env.FROM_EMAIL;
        let link="http://" req.headers.host "/api/auth/verify/" token.token;
        let html = `<p>Hi ${user.username}<p><br><p>Please click on the following <a href="${link}">link</a> to verify your account.</p> 
                  <br><p>If you did not request this, please ignore this email.</p>`;

        await sendEmail({to, from, subject, html});

        res.status(200).json({message: 'A verification email has been sent to '   user.email   '.'});
    }catch (error) {
        res.status(500).json({message: error.message})
    }
}
 

Пожалуйста, если вы найдете какое-либо решение, ответьте как можно скорее
, ТИА

Комментарии:

1. Глядя на ответ, похоже, что ошибка в функции «sendVerificationEmail». Возможно, что SendGrid отправляет несанкционированную ошибку.

2. покажите свой код инициализации сервера

3. есть две возможности: одна из них-вы забыли загрузить файл env или неверный секретный ключ

4. Поместите ключ api в .env и используйте require(‘dotenv’).config() в верхней части того же файла

5. @SachinAnanthakumar ты имеешь в виду server.js?

Ответ №1:

Я перешел на nodemailer sendgrid, теперь он работает и использует службу gmail

Комментарии:

1. Евангелист-разработчик Twilio SendGrid здесь. Я рад, что у тебя это получилось. Я просто хотел отметить, что, когда вы говорите, что не получили ошибку, это было не совсем правильно. Вы правильно поймали ошибку, а затем вернули статус 500 в своем коде с сообщением «Несанкционированный». Итак, произошла ошибка, и это было как-то связано с вашими учетными данными API. Итак, вы правильно обработали ошибку, вам просто нужно было устранить проблему с авторизацией.