Add SMTP auth support and fix defaults (host.docker.internal, port 587)

This commit is contained in:
jochen
2026-03-29 00:45:48 +01:00
parent 0071549704
commit d8caf3ccac
2 changed files with 18 additions and 10 deletions
+12 -6
View File
@@ -6,9 +6,11 @@ const {
AMQP_EXCHANGE, AMQP_EXCHANGE,
AMQP_QUEUE = "email-forwarder", AMQP_QUEUE = "email-forwarder",
SMTP_HOST, SMTP_HOST,
SMTP_PORT = "25", SMTP_PORT = "587",
SMTP_USER,
SMTP_PASSWORD,
NOTIFY_TO, NOTIFY_TO,
NOTIFY_FROM = "hal@novox.be", NOTIFY_FROM,
} = process.env; } = process.env;
async function main() { async function main() {
@@ -20,15 +22,19 @@ async function main() {
await ch.bindQueue(AMQP_QUEUE, AMQP_EXCHANGE, ""); await ch.bindQueue(AMQP_QUEUE, AMQP_EXCHANGE, "");
console.log(`Bound queue '${AMQP_QUEUE}' to exchange '${AMQP_EXCHANGE}'`); console.log(`Bound queue '${AMQP_QUEUE}' to exchange '${AMQP_EXCHANGE}'`);
const transport = nodemailer.createTransport({ const transportOpts = {
host: SMTP_HOST, host: SMTP_HOST,
port: parseInt(SMTP_PORT), port: parseInt(SMTP_PORT),
secure: false, secure: false,
tls: { rejectUnauthorized: false }, tls: { rejectUnauthorized: false },
}); };
if (SMTP_USER && SMTP_PASSWORD) {
transportOpts.auth = { user: SMTP_USER, pass: SMTP_PASSWORD };
}
const transport = nodemailer.createTransport(transportOpts);
console.log(`SMTP: ${SMTP_HOST}:${SMTP_PORT}`); console.log(`SMTP: ${SMTP_USER || "(no auth)"}@${SMTP_HOST}:${SMTP_PORT}`);
console.log(`Forwarding to: ${NOTIFY_TO}`); console.log(`From: ${NOTIFY_FROM} → To: ${NOTIFY_TO}`);
console.log("Waiting for messages...\n"); console.log("Waiting for messages...\n");
ch.consume(AMQP_QUEUE, async (msg) => { ch.consume(AMQP_QUEUE, async (msg) => {
+6 -4
View File
@@ -1,6 +1,6 @@
manifest: 2 manifest: 2
name: amqp-email-forwarder name: amqp-email-forwarder
version: "1.0.0" version: "1.0.1"
description: "Consumes CloudEvents from AMQP and forwards as email notifications" description: "Consumes CloudEvents from AMQP and forwards as email notifications"
service: service:
@@ -35,13 +35,15 @@ env:
AMQP_QUEUE: AMQP_QUEUE:
default: "email-forwarder" default: "email-forwarder"
SMTP_HOST: SMTP_HOST:
default: "localhost" default: "host.docker.internal"
SMTP_PORT: SMTP_PORT:
default: "25" default: "587"
SMTP_USER:
SMTP_PASSWORD:
NOTIFY_TO: NOTIFY_TO:
default: "jochen.schoubben@mediahuis.be" default: "jochen.schoubben@mediahuis.be"
NOTIFY_FROM: NOTIFY_FROM:
default: "hal@novox.be" default: "jschoubben@novox.be"
package: package:
- docker-compose.yml - docker-compose.yml