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

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

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

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

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

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

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

0
задан 18 March 2020 в 00:23
1 ответ

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

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

0
ответ дан 30 March 2020 в 01:29

Теги

Похожие вопросы