Назад | Перейти на главную страницу

Можно ли настроить smtp для правильной аутентификации в Dockerfile?

Я использую контейнер php: 7.2-apache и хочу отправлять письма. Поскольку ssmtp больше не используется, я хочу использовать msmtp, но сталкиваюсь с проблемами аутентификации с помощью msmtp.

Моя цель: Настройте msmtp для контейнера докеров, чтобы контейнер работал из коробки (т.е. без меня exec в контейнер и настроить некоторые системы)

Согласно Справочная страница msmtp, msmtp предлагает несколько методов аутентификации, и все они, похоже, не подходят для достижения моей цели:

  1. брелок с секретным инструментом: Для этого инструмента требуется дисплей X11, поэтому его нельзя использовать в Dockerfile.
  2. зашифрованный файл с помощью gpg: Инициализация gpg и шифрование с помощью gpg требует взаимодействия с пользователем и поэтому не может использоваться в Dockerfile (здесь я не уверен на 100%)
  3. простой текстовый пароль: Помимо того, что этот вариант менее безопасен, чем другие, существует проблема, заключающаяся в том, что мой почтовый сервер отклоняет авторизацию от msmtp с этим параметром. Мой почтовый сервер настроен на разрешение login plain (Я тестировал это с telnet), но каким-то образом msmtp передает строку base64 "username \ 0password" вместо "username \ 0username \ 0password", которую я успешно использовал в своем telnet аутентификация. Я не знаю, ошибка ли это в msmtp или просто другой протокол или что-то еще. Если вы знаете, как изменить это поведение в msmtp, это тоже было бы здорово!
  4. введите пароль через командную строку: Это не то, что я хочу, так как сервер должен отправлять письма клиенту самостоятельно.

Если у кого-то есть обходной путь, или что я не вижу в данный момент, я был бы очень благодарен!

PS: Может быть интересно, что я хочу использовать msmtp для передачи почты из одного контейнера докеров в другой контейнер докеров, на котором размещен мой почтовый сервер. Они находятся в одной сети докеров, недоступной извне. Кроме того, контейнер почтового сервера слушает только мост докеров и предназначен только для отправки. Если это как-то упростит ситуацию, например, «тогда вам не нужна безопасность аутентификации и вы можете делать xy», я также был бы очень счастлив :)

Я нашел решение, когда снова посмотрел на страницу руководства. msmtp предлагает несколько различных методов аутентификации в случае 3. простой текстовый пароль. Метод login написано для меня (в файле конфигурации: auth login вместо того auth on).

Поскольку мое соединение между контейнерами защищено с помощью TLS, я доволен этим вариантом. Тем не менее, если у вас есть лучший вариант, дайте мне знать!