Как отправлять почту с сервера Ubuntu с помощью Dockerized Mail Server - PullRequest
0 голосов
/ 27 января 2019

Я ищу простой способ программно отправлять электронные письма с сервера Linode Ubuntu (не массовые или спамовые, простые уведомления типа iOT). У меня установлена ​​и работает докеризованная система postfix / dovecot, но я не знаю, как использовать это извне контейнера. Я посмотрел на sendmail, но это похоже на дублирование, так как у меня уже есть настроенный SMTP-сервер. У меня вопрос: что я могу установить на свой сервер Ubuntu, который позволит мне отправлять простые электронные письма из командной строки (сценария), который использует мой существующий SMTP-сервер в моем док-контейнере?

Ответы [ 2 ]

0 голосов
/ 27 января 2019

Для этой проблемы самое простое решение, которое я нашел, это nodemailer, так как моим приложением, которому нужно отправлять электронные письма, является приложение node.js, и я подключаюсь к нему, как и из почтового клиента.

0 голосов
/ 27 января 2019

Это похоже на наличие контейнера Jenkins, который должен отправлять электронные письма, , как описано здесь :

Для контейнерной системы Jenkins почтовый сервер также можно настроить на той же странице «Управление Jenkins», раздел «Уведомление по электронной почте».
Единственное отличие заключается в IP-адресе / имени хоста, предоставленном параметру SMTP-сервера. Вместо предоставления IP-адреса и хоста известного SMTP-сервера следует использовать IP-адрес docker0.

В корпоративной сети вам, возможно, придется использовать сервер ретрансляции SMTP. В этих случаях вы можете настроить SMTP-связь, настроив Postfix .

После установки обновите /etc/postfix/main.cf, указав правильные данные реле: myhostname, myorigin, mydestination, relayhost, alias_maps, alias_database.

Но:

В Postfix необходимо внести два изменения, чтобы предоставить его контейнерам Docker на одном хосте.

  1. Предоставление Postfix для сети Docker, то есть Postfix должен быть настроен для привязки к localhost, а также к сети Docker.
  2. Прием всех входящих соединений из любых контейнеров Docker.

Docker bridge (docker0) действует как мост между вашим портом Ethernet и контейнерами Docker, так что данные могут перемещаться взад и вперед.
Мы выполняем первое требование, добавляя IP-адрес docker0 к inet_iterfaces.

Для второго требования вся сеть докеров, а также localhost должны быть добавлены к mynetworks.

...