On password recovery I fet an error-Message to log and no mail send:
2026-08-31T14:37:46.001168023Z Failed to send email
2026-08-31T14:37:46.005698745Z Unexpected error in forgot password endpoint
2026-08-31T14:37:46.005724112Z Error: Unexpected error in forgot password endpoint
2026-08-31T14:37:46.005733359Z at PasswordResetController.forgotPassword (/usr/local/lib/node_modules/n8n/src/controllers/password-reset.controller.ts:161:5)
2026-08-31T14:37:46.005742056Z at processTicksAndRejections (node:internal/process/task_queues:104:5)
2026-08-31T14:37:46.005750632Z at handler (/usr/local/lib/node_modules/n8n/src/controller.registry.ts:115:12)
2026-08-31T14:37:46.005759127Z at /usr/local/lib/node_modules/n8n/src/response-helper.ts:119:17
N8N_SMTP_STARTTLS defaults to true, and it’s the setting that takes over once SSL is off, so n8n is still trying to upgrade the connection on port 25 and your relay isn’t playing along. Add N8N_SMTP_STARTTLS=false to the docker run and recreate the container. Internally that flips nodemailer’s ignoreTLS, which is the actual no encryption you’re after.
Leave the user and pass out while you’re there. n8n only attaches SMTP auth when both are set, so an open internal relay works fine without them and adding empty ones changes nothing.
Hi @elmar69 Welcome!
The reason is in that log call, just not in your output. n8n attaches the underlying SMTP failure to the “Failed to send email” line as metadata, and the default text format prints the message on its own and discards the metadata, so the part naming the cause never reaches the console. The lines after it are the generic wrapper the controller adds.
Add this to your docker run and trigger the reset again:
--env N8N_LOG_FORMAT=json
The same line comes back as a single JSON object with the nodemailer error inside it, which is what tells you what your relay actually rejected.
When using unencrypted SMTP on port 25 (like an internal local relay), NodeMailer inside n8n still attempts to negotiate a STARTTLS connection by default when SSL is set to false. If your local mail server on 192.168.1.247 does not support STARTTLS, the connection fails.
To force n8n to connect completely unencrypted without STARTTLS, add N8N_SMTP_IGNORE_TLS=true to your environment variables.
Your updated Docker command should look like this: