Nodemailer подключиться к локальному docker-mailserver - PullRequest
0 голосов
/ 07 ноября 2018

Мне нужно настроить локальный почтовый сервер и отправлять с него электронные письма. Я использую 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 ошибку.

Что мне здесь не хватает, чтобы установить правильное соединение между скриптом и контейнером?

1 Ответ

0 голосов
/ 07 ноября 2018

По умолчанию контейнер изолирован в докере. Вы можете разрешить соединение между контейнерами в Docker, добавив аргумент ссылки при создании вашего контейнера. ИСПОЛЬЗОВАНИЕ:

Docker run -d --name node_mailer --link EMAIL_SERVER_CONTAINER_NAME nodemailer_image
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...