Hi I need help with this. I am trying to send an email and await the response then return it back to the user as a json response. The code I have now does not return anything I also tried add a timeout to see if an async await could solve it but it did not work.
mailer.js
"use strict";
const nodemailer = require("nodemailer");
module.exports = async (email, password, name) => {
let testAccount = await nodemailer.createTestAccount();
let transporter = nodemailer.createTransport({
host: "smtp.ethereal.email",
port: 587,
secure: false,
auth: {
user: testAccount.user,
pass: testAccount.pass
}
});
let info = await transporter.sendMail({
from: '"Example user" <example.uesr@retrofit.io>',
to: email,
subject: "Testing all yh?",
text: "Hello world",
html: "<b>Hello world?</b>"
});
return nodemailer.getTestMessageUrl(info);
};
This is my user registeration code
auth.js
const express = require("express");
const router = express.Router();
const User = require("../models/User");
const neutral_mailer = require("../utils/neutral-mailler");
router.post("/create", async (req, res) => {
const user = new User({
first_name: "Umar",
last_name: "Alli",
company: "Belirs",
email: "umar@belirs.com",
password: "Test",
status: "active",
date: Date.now()
});
try {
await user.save(err => {
if (err) {
res.json({ message: err });
}
const link = neutral_mailer(user.email, user.password, user.first_name);
res.status(201).send(link);
});
} catch (err) {
res.json({ message: err });
}
});```