'use strict' require('dotenv').config() const express = require('express') const app = express() const PORT = process.env.PORT || 8080 const mailer = require('nodemailer').createTransport({ host: process.env.MAIL_SERVER, port: (process.env.MAIL_USER!=null)?25:587, auth: (process.env.MAIL_USER!=null)?null:{ user: process.env.MAIL_USER, pass: process.env.MAIL_PASS, }, tls: (process.env.MAIL_USER!=null)?null:{ rejectUnauthorized: false, }, }) app.use(express.json()).post('/', async (req, res) => { // Parse from address let from if (req.body['name'] && req.body['email']) from = `${req.body['name']} <${req.body['email']}>` else if (req.body['name']) from = req.body['name'] else if (req.body['email']) from = req.body['email'] else from = 'Anonymous' // Send email let mail_res; try { console.log(`Sending email from ${from} to ${process.env.MAIL_TO}...`) mail_res = await mailer.sendMail({ from: process.env.MAIL_FROM, replyTo: from, to: process.env.MAIL_TO, subject: req.body['subj'], text: req.body['msg'], }) } catch (err) { console.error(err) return res.sendStatus(500) } console.log(`Sent email ${mail_res.messageId}`) return res.sendStatus(200) }).listen(PORT, () => { console.log(`API listening on ${PORT}`) })