Как настроить smtp-relay в контейнере docker для пересылки электронной почты, отправленной из другого контейнера в той же сети - PullRequest
0 голосов
/ 30 марта 2020

Я пытаюсь настроить контейнер SMTP Relay Docker, полученный из https://hub.docker.com/r/turgon37/smtp-relay, для использования другим контейнером в той же сети для отправки исходящих электронных писем на внешний SMTP-сервер. Этот контейнер SMTP Relay просто содержит postfix и его зависимости и настраивает postfix для работы в качестве SMTP Relay.

Простой пример на этой странице включает доменное имя. Но домены, похоже, не подходят для контейнеров docker, и, что еще хуже, это одна из немногих обязательных настроек, и ее краткое описание также далеко не ясно.

(К сожалению, хотя автор, очевидно, проделал хорошо продуманную и тщательную работу по этому вопросу, я не думаю, что Engli sh является его родным языком, и некоторые из кратких описаний несколько двусмысленны и сбивают с толку и могут означать противоположность того, что я предполагаю !)

Моя docker -композитная конфигурация включает в себя следующее, в котором я предполагаю (но готов к исправлению!), Что RELAY_HOST - это имя хоста или IP-адрес удаленного сервера, на который ретранслятор должен отправлять исходящие письма. Если это поможет, только контейнер «django_fred» будет отправлять исходящие электронные письма.

version: '3.3'

services:

  application:
    image: fred:latest
    container_name: django_fred
    build:
      context: ./application
    ports:
      - "8000:8000"
    depends_on:
      - postgres
      - cassandra
    networks:
      - frednet

  postgres:
    image: postgres:9.6.10
    container_name: postgres_fred
    networks:
      - frednet

  cassandra:
    build:
      dockerfile: Dockerfile
      context: ./cassandra
    image: fred/cassandra:yaml
    container_name: cassandra_fred
    networks:
      - frednet

  smtp-relay:
    image: turgon37/smtp-relay:latest
    container_name: smtp_relay
    environment:
      - RELAY_MYHOSTNAME=smtp_relay         <-- is this correct/acceptable ?
      - RELAY_MYDOMAIN=frednet.com          <-- mandatory, but is this correct ?!
      - RELAY_MYNETWORKS=frednet            <-- is this correct ?
      - RELAY_HOST=195.194.167.24:25
    ports:
      - "25:25"                             <-- example includes an IP address in          \
      - "587:587"                           <-- square brackets, but is that needed ?!     \
    networks:                               <-- Also, why does it differ from RELAY_HOST ?!
      - frednet:

networks:
  frednet:

, и приведенный выше пример выглядит следующим образом:

 * unauthenticated smtp relay filtered by subnet and domain name

services:
  smtp-relay:
    image: turgon37/smtp-relay:latest
    environment:
      - RELAY_POSTMASTER=postmaster@example.net
      - RELAY_MYHOSTNAME=smtp-relay.example.net
      - RELAY_MYDOMAIN=example.net
      - RELAY_MYNETWORKS=127.0.0.0/8 10.0.0.0/24
      - RELAY_HOST=[10.1.0.1]:25
    ports:
      - "10.0.0.1:3000:25"

Помимо моих вопросов, отмеченных «<-» в конфигурации Docker, приведенной выше, я хотел бы понять, почему в записи «ports:» в конце примера указан IP-адрес, и где / почему в него входит порт 3000? </p>

Есть идеи? ТИА

...