I'm having React+Nodejs app on my server running globally via pm2.
How can I decrypt ssl certificate so Nodemailer will work? It's not working right now.
My domain is https://somoontrans.ru/
Here's my server.js/mailer.js code
- mailer.js
const sendEmail = async (subject, send_to, send_from, message) => {
const transporter = nodemailer.createTransport({
service: 'gmail',
auth: {
user: 'mymail',
pass: 'pass',
},
tls: {
rejectUnauthorized: false,
},
});
const options = {
from: send_from,
to: send_to,
subject: subject,
html: message,
};
// send email
transporter.sendMail(options, function (error, info) {
if (error) {
console.log(error);
} else {
console.log(info);
}
});
};
module.exports = sendEmail;
- server.js
const dotenv = require('dotenv').config();
const express = require('express');
const cors = require('cors');
const bodyParser = require('body-parser');
const sendEmail = require('./sendemail');
const app = express();
// Middleware
app.use(express.json());
app.use(bodyParser.json());
app.use(cors());
// Route
app.get('/', (req, res) => {
res.send('Working...');
});
app.post('/sendmail', async (req, res) => {
const { email } = req.body;
try {
const send_to = `Новая заявка с сайта! Номер телефона: ${req.body.phone}`;
const send_from = 'mail'; //
const subject = email;
const message = `content`
await sendEmail(send_to, send_from, subject, message);
res.status(200).json({ success: true, message: 'Email Sent' });
} catch (error) {
res.status(500).json(error.message);
}
});
const PORT = process.env.PORT || 8080;
app.listen(PORT, () => {
console.log(`Server is running at ${PORT}...`);
});