Мне нужно настроить локальный почтовый сервер и отправлять с него электронные письма. Я использую docker-mailserver и пытаюсь подключиться к нему с помощью простого скрипта NodeJS, который использует Nodemailer .
Для настройки docker-mailserver
я следовал руководству из его документации и изменил только DOMAINNAME
env var на доменное имя моего сервера. В результате docker port
для контейнера:
993/tcp -> 0.0.0.0:993
143/tcp -> 0.0.0.0:143
25/tcp -> 0.0.0.0:25
587/tcp -> 0.0.0.0:587
С того же компьютера, на котором работает Docker-контейнер почтового сервера. Я пытался запустить скрипт отправки почты, вот его код:
const nodemailer = require('nodemailer');
let transporter = nodemailer.createTransport({
host: '0.0.0.0',
port: 587,
secure: false, // true for 465, false for other ports
auth: {
user: 'user@domain.com',
pass: 'password'
},
tls: { rejectUnauthorized: false },
debug: true,
});
let mailOptions = {
from: '"?" <user@domain.com>',
to: 'some_account@gmail.com',
subject: 'Hello ✔',
text: 'Hello world?',
html: '<b>Hello world?</b>'
};
transporter.verify((error) => {
if (error) {
return console.error(error);
}
transporter.sendMail(mailOptions, (error, info) => {
if (error) {
return console.error(error);
}
console.log('Message sent: %s', info.messageId);
});
});
Но я получаю только Error: Connection closed
ошибку.
Что мне здесь не хватает, чтобы установить правильное соединение между скриптом и контейнером?