Хост Sendmail не найден при запуске внутри контейнера Docker - PullRequest
1 голос
/ 08 марта 2019

Я пытаюсь отправить письмо из контейнера докера.Простейшая однострочная строка, которую я смог увидеть, - это ответ ранее переполнения стека:

docker run --rm --net="host" php:fpm-alpine sh -c 'echo "Subject: test" | sendmail -v your@mail.com'

Я меняю your@mail.com на свой адрес Gmail и запускаю команду.Проблема в том, что теперь я получаю вывод в моем терминале:

sendmail: recv:'220 mail.example.com ESMTP ready'
sendmail: send:'EHLO linuxkit-025000000001'
sendmail: recv:'250 mail.example.com'
sendmail: linuxkit-025000000001: Host not found

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

Я предполагаю, что я близко, так как я получаю вывод из sendmail.

1 Ответ

1 голос
/ 09 марта 2019

Sendmail пытается переслать вашу электронную почту через SMTP-сервер, расположенный здесь: mail.example.com . Это встроенная конфигурация по умолчанию для sendmail на этом образе.

То, что вы хотите сделать, это передать конфигурацию google SMTP для sendmail, как это:

echo "Subject: test" | sendmail -v -f your@mail.com -au<your-gmail-account> -ap<your-gmail-password> -H 'openssl s_client -quiet -tls1 -connect smtp.gmail.com:465' your@mail.com

Практический пример для:

  • учетная запись Gmail: your@gmail.com
  • пароль Gmail: 123456

будет выглядеть так:

echo "Subject: test" | sendmail -v -f your@mail.com -auyour@gmail.com -ap123456 -H 'openssl s_client -quiet -tls1 -connect smtp.gmail.com:465' your@mail.com

sendmail --help

Для справки вот sendmail --help. Вы можете получить это из изображения, которое вы используете с:

docker run --rm php:fpm-alpine sendmail --help
BusyBox v1.29.3 (2019-01-24 07:45:07 UTC) multi-call binary.

Usage: sendmail [-tv] [-f SENDER] [-amLOGIN 4<user_pass.txt | -auUSER -apPASS]
                [-w SECS] [-H 'PROG ARGS' | -S HOST] [RECIPIENT_EMAIL]...

Read email from stdin and send it

Standard options:
        -t              Read additional recipients from message body
        -f SENDER       For use in MAIL FROM:<sender>. Can be empty string
                        Default: -auUSER, or username of current UID
        -o OPTIONS      Various options. -oi implied, others are ignored
        -i              -oi synonym, implied and ignored

Busybox specific options:
        -v              Verbose
        -w SECS         Network timeout
        -H 'PROG ARGS'  Run connection helper. Examples:
                openssl s_client -quiet -tls1 -starttls smtp -connect smtp.gmail.com:25
                openssl s_client -quiet -tls1 -connect smtp.gmail.com:465
                        $SMTP_ANTISPAM_DELAY: seconds to wait after helper connect
        -S HOST[:PORT]  Server (default $SMTPHOST or 127.0.0.1)
        -amLOGIN        Log in using AUTH LOGIN (-amCRAM-MD5 not supported)
        -auUSER         Username for AUTH
        -apPASS         Password for AUTH

If no -a options are given, authentication is not done.
If -amLOGIN is given but no -au/-ap, user/password is read from fd #4.
Other options are silently ignored; -oi is implied.
Use makemime to create emails with attachments.
...