Я только что закончил следовать этому руководству по Digital Ocean для настройки почтовых серверов Dovecot, MySQL и Postfix. Я не проследил до конца. (Я не устанавливал Spam Assassin.) Я также временно использовал самогенерируемый SSL. В остальном я внимательно следил за руководством. Каждый раз, когда мне говорили выполнить тестовую команду, я делал это, и результаты были такими, какими, по словам автора, они должны быть.
Проблема в том, что с помощью почтового клиента (например, Thunderbird) я не могу войти на сервер. Однако с помощью Telnet я могу подключиться к SMTP через порты 587 и 25. Я также могу подключиться к IMAP через порт 993. (25, 587 и 993 - ЕДИНСТВЕННЫЕ порты, которые я перенаправил с моего внешнего IP-адреса.)
У меня есть проверил данные в БД MySQL. Мой пользователь существует с моим желаемым паролем.
Как я могу здесь устранить проблему? Есть ли способ проверить учетные данные для входа с помощью telnet?
EDIT
Аутентификация является проблемой. Я инициировал соединение с openssl s_client -connect mail.example.com:587 -starttls smtp
(Спасибо, 84104). Тогда мой обмен выглядит так ...
ehlo example.com
250-hostname.example.com
250-PIPELINING
250-SIZE 10240000
250-VRFY
250-ETRN
250-AUTH PLAIN LOGIN
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN
AUTH LOGIN
334 VXNlcm5hbWU6
MyBase64EncodedUsername
334 UGFzc3dvcmQ6
MyBase64EncodedPassword
535 5.7.8 Error: authentication failed: Connection lost to authentication server
Могу ли я найти способ отладки, чтобы найти проблему? Это просто проверка подлинности или проблема с подключением?
smtpd_tls_auth_only = yes
означает, что telnet не будет подходящим вариантом для проверки подлинности. Вы действительно не хотите проводить TLS-переговоры вручную.
Вместо этого используйте что-то вроде openssl s_client
, например openssl s_client -connect mail.example.com:587 -starttls smtp
.
После подключения вы можете выдавать стандартные команды. Обмен также должен выглядеть аналогично:
S> Blah...Blah...Blah...
S> ---
S> 250 DSN
C> ehlo <client hostname>
S> 250-<server hostname>
S> Blah...Blah...
S> 250-AUTH PLAIN LOGIN
S> Blah...Blah...
S> 250 DSN
C> auth plain <echo -ne '\0<username>\0password>' | base64>
S> 235 2.7.0 Authentication successful