не удалось установить удаленное соединение imap, почему бы и нет?

Удаленный веб-сервер CentOS 7 может успешно получать электронную почту, отправленную из других источников в Интернете, на адрес me@mydomain.com. Приложение, работающее на том же сервере CentOS 7, может использовать JavaMail для подключения IMAP к почтовому MailDir, где хранятся входящие сообщения. Итак, что мне нужно добавить, чтобы Thunderbird работал на моем devbox, чтобы иметь возможность подключать IMAP к удаленному серверу CentOS 7 через Интернет?

До сих пор я добавлял imaps в общественную зону firewalld. Я также подтвердил, что dovecot.conf содержит строки protocols = imap pop3 . Я настраиваю Thunderbird для использования IMAP для входящей почты с mydomain.com в качестве имени хоста, с портом 993 и SSL с обычным паролем. И я подтвердил на своем веб-сайте регистратора домена, что запись dns mx использует mydomain.com в качестве адреса mx.

РЕДАКТИРОВАТЬ

Чтобы ответить на вопрос @ Celada, я опубликовал диалог, который Thunderbird сообщает, что он не смог подключиться к серверу, когда он пытается подтвердить мою регистрационную информацию. Я получаю ту же информацию, когда я указываю порт 993 для imap и порт 25 для smtp, и когда я указываю SSL-соединение. Кроме того, изменение .mydomain.com на mydomain.com не устраняет неудачу входа.

Я попытаюсь получить доступ к дневникам брандмауэра и опубликую результаты. Я понимаю, что firewalld не регистрируется автоматически, поэтому мне придется разработать некоторые богатые правила. Может потребоваться некоторое время, чтобы определить правильный синтаксис.

Я думаю, что это проблема с конфигурацией сервера. Я колебался, чтобы показать диалог Thunderbird, потому что я не хотел создавать впечатление, что это проблема с клиентом. Я думаю, что конфигурация сервера должна быть определена / настроена, прежде чем я смогу настроить Thunderbird.

EDIT # 2

Согласно предложению @ Celada, я набрал telnet localhost 143 и получил следующий ответ:

 Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. * OK [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE IDLE STARTTLS LOGINDISABLED] Dovecot ready. 

Я также набрал telnet localhost 25 а затем получил ответ в ответ:

 Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. 220 mydomain.com ESMTP Postfix 

Эти результаты telnet указали, что firewalld отображает imaps и smtp на неправильные порты, поэтому я набрал nano /usr/lib/firewalld/services/imaps.xml и изменил порт с 993 на 143. Затем я набрал nano /usr/lib/firewalld/services/smtp.xml и изменил порт на 25.

Затем я набрал firewall-cmd --reload чтобы убедиться, что изменения были введены в действие.

Затем я поместил новую информацию в Thunderbird и снова попробовал тестовое соединение, но снова получил сообщение об ошибке, показанное в следующем диалоговом окне:

Обратите внимание, что я проверил запись MX в DNS у своего регистратора домена, и это точно mydomain.com , как показано на снимках экрана. Я не понимаю, как это не имеет значения. Я проверил, и имя хоста на сервере также mydomain.com . Есть ли какой-то другой ресурс, который я должен проверять, чтобы подтвердить правильное имя почтового сервера?

Также обратите внимание, что dovecot и postfix были установлены со стандартной конфигурацией. Я явно не настроил ssl для работы с ними, хотя SSL, возможно, был частью конфигурации по умолчанию. Однако я изменил настройки в диалоговом окне выше и протестировал соединение с None, указанное в поле SSL, но получил то же сообщение об ошибке.

Вход в dovecot / var / log / maillog после последнего (снизу) экрана, снятого выше:

 Feb 27 00:52:57 mydomain dovecot: imap-login: Aborted login (no auth attempts in 0 secs): user=<>, rip=my.DEVBOX.ip.addr, lip=my.SERVER.ip.addr, session=<YsH2egsQAABi9AyF> 

EDIT # 3

Следуя совету @ Bandrami, я изменил protocols = imap pop3 в файле dovecot.conf для protocols = imaps pops . Затем я убедился, что /usr/lib/firewalld/services/imaps.xml указывает порт 993. Я набрал firewall-cmd --reload и systemctl stop dovecot systemctl start dovecot затем systemctl start dovecot чтобы перезапустить соответствующие процессы на сервере. Затем я сконфигурировал тест Thunderbird, чтобы указать порт 993 и SSL / TLS, и повторно запустить тест соединения в Thunderbird, только чтобы получить тот же результат в Thunderbird.

Однако протоколы dovecot немного более явны и выглядят следующим образом:

 Feb 27 01:18:20 mydomain dovecot: config: Warning: NOTE: You can get a new clean config file with: doveconf -n > dovecot-new.conf Feb 27 01:18:20 mydomain dovecot: config: Warning: Obsolete setting in /etc/dovecot/dovecot.conf:26: 'imaps' protocol can no longer be specified (use protocols=imap). to disable n$ Feb 27 01:18:38 mydomain dovecot: imap-login: Disconnected (no auth attempts in 18 secs): user=<>, rip=my.SERVER.ip.addr, lip=127.0.0.1, TLS handshaking: SSL_accept() failed: error:14$ Feb 27 01:19:15 mydomain dovecot: master: Warning: Killed with signal 15 (by pid=1 uid=0 code=kill) Feb 27 01:19:15 mydomain dovecot: anvil: Warning: Killed with signal 15 (by pid=1 uid=0 code=kill) Feb 27 01:19:15 mydomain dovecot: ssl-params: Warning: Killed with signal 15 (by pid=1 uid=0 code=kill) Feb 27 01:19:15 mydomain dovecot: config: Warning: Killed with signal 15 (by pid=1 uid=0 code=kill) Feb 27 01:19:15 mydomain dovecot: auth: Error: read(anvil-auth-penalty) failed: EOF Feb 27 01:19:15 mydomain dovecot: auth: Error: net_connect_unix(anvil-auth-penalty) failed: Permission denied Feb 27 01:19:15 mydomain dovecot: auth: Warning: Killed with signal 15 (by pid=1 uid=0 code=kill) Feb 27 01:19:15 mydomain dovecot: log: Warning: Killed with signal 15 (by pid=1 uid=0 code=kill) Feb 27 01:19:22 mydomain dovecot: master: Dovecot v2.2.10 starting up for pop3, imap (core dumps disabled) Feb 27 01:19:44 mydomain dovecot: imap-login: Disconnected (no auth attempts in 15 secs): user=<>, rip=my.SERVER.ip.addr, lip=127.0.0.1, TLS handshaking: SSL_accept() failed: error:14$ Feb 27 01:23:55 mydomain postfix/qmgr[30121]: 2C915811BD1C: from=<me@mydomain.com>, size=5316, nrcpt=1 (queue active) Feb 27 01:23:58 mydomain postfix/smtp[27144]: 2C915811BD1C: to=<address@domain_that_sends_to_this_addresson_server.com>, relay=none, delay=290245, delays=290241/0.02/3.6/0, dsn=4.4.3, status=deferred (Host or domain$ Feb 27 01:24:41 mydomain dovecot: config: Warning: NOTE: You can get a new clean config file with: doveconf -n > dovecot-new.conf Feb 27 01:24:41 mydomain dovecot: config: Warning: Obsolete setting in /etc/dovecot/dovecot.conf:26: 'imaps' protocol can no longer be specified (use protocols=imap). to disable n$ Feb 27 01:24:41 mydomain dovecot: config: Warning: NOTE: You can get a new clean config file with: doveconf -n > dovecot-new.conf Feb 27 01:24:41 mydomain dovecot: config: Warning: Obsolete setting in /etc/dovecot/dovecot.conf:26: 'imaps' protocol can no longer be specified (use protocols=imap). to disable n$ Feb 27 01:24:53 mydomain dovecot: imap-login: Disconnected (no auth attempts in 12 secs): user=<>, rip=my.SERVER.ip.addr, lip=127.0.0.1, TLS handshaking: SSL_accept() failed: error:14$ Feb 27 01:25:05 mydomain dovecot: imap-login: Aborted login (no auth attempts in 1 secs): user=<>, rip=my.DEVBOX.ip.addr, lip=my.SERVER.ip.addr, TLS, session=<Kdrl7QsQxwBi9AyF> Feb 27 01:27:16 mydomain dovecot: master: Warning: Killed with signal 15 (by pid=1 uid=0 code=kill) Feb 27 01:27:16 mydomain dovecot: anvil: Warning: Killed with signal 15 (by pid=1 uid=0 code=kill) Feb 27 01:27:16 mydomain dovecot: log: Warning: Killed with signal 15 (by pid=1 uid=0 code=kill) Feb 27 01:27:24 mydomain dovecot: master: Dovecot v2.2.10 starting up for pop3, imap (core dumps disabled) Feb 27 01:27:24 mydomain dovecot: config: Warning: NOTE: You can get a new clean config file with: doveconf -n > dovecot-new.conf Feb 27 01:27:24 mydomain dovecot: config: Warning: Obsolete setting in /etc/dovecot/dovecot.conf:26: 'imaps' protocol can no longer be specified (use protocols=imap). to disable n$ 

EDIT # 4

В соответствии с дальнейшим разъяснением @ Celada я набрал telnet imap.mydomain.com 143 , в локальном devbox, который я использовал для тестирования Thunderbird, и терминал ответил:

 Trying my.SERVER.ip.addr... Connected to imap.mydomain.com. Escape character is '^]'. * OK [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE IDLE STARTTLS LOGINDISABLED] Dovecot ready. 

Затем я напечатал в openssl s_client -CApath /etc/ssl/certs -starttls imap -port 143 -host imap.mydomain.com на терминале devbox, и терминал ответил, распечатав детали, которые вы можете прочитать, нажав на этот ссылку на сайт совместного доступа к файлам .

Мой полный файл dovecot.conf можно прочитать на сайте обмена файлами, нажав на эту ссылку .

EDIT # 5

Согласно предложению @ Celada, я набрал t1 login USERNAME PASSWORD после . OK Pre-login capabilities listed, post-login capabilities have more. . OK Pre-login capabilities listed, post-login capabilities have more. , и терминал ответил на следующее:

 * CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE IDLE SORT SORT=DISPLAY THREAD=REFERENCES THREAD=REFS THREAD=ORDEREDSUBJECT MULTIAPPEND URL-PARTIAL CATENATE UNSELECT CHILDREN NAMESPACE UIDPLUS LIST-EXTENDED I18NLEVEL=1 CONDSTORE QRESYNC ESEARCH ESORT SEARCHRES WITHIN CONTEXT=SEARCH LIST-STATUS SPECIAL-USE BINARY MOVE t1 OK Logged in 

Однако затем я повторил тест входа в систему Thunderbird, и я проверил, чтобы Thunderbird использовал порт 143 и «Обычный пароль». Когда я это сделал, Thunderbird принудительно включил «Autodetect» в качестве опции SSL, а затем нажав кнопку «Повторный тест», появилось то же сообщение об ошибке:

 "Thunderbird failed to find the settings for your email account." 

One Solution collect form web for “не удалось установить удаленное соединение imap, почему бы и нет?”

После некоторых повторных комментариев и чатов проблема OP теперь решена. Сервер IMAP нужно было указывать как imap.mydomain.com, а не mydomain.com, хотя по какой-то причине это работало только при настройке с использованием расширенных настроек учетной записи, не используя диалоговое окно создания учетной записи.

В дополнение к упоминанию этого конкретного решения, я думаю, что самое полезное, что я могу сказать в ответ на этот вопрос, – это перечислить некоторые общие советы по устранению неполадок на эту тему в надежде, что они будут полезны кому-то еще, ,

  • Функция Thunderbird для автоматического определения настроек учетной записи является фантастической и значительно улучшена по темным дням настройки учетной записи электронной почты, когда интернет-провайдерам приходилось предоставлять длинные инструкции, включая все, начиная с типа сервера (POP или IMAP) через номера портов до протокола аутентификации. В идеальном мире пользователям нужно будет указывать только адрес электронной почты, пароль и, возможно, я думаю, имя сервера (это все, что нужно для доступа к gmail через Интернет, в конце концов …).

    Однако, когда функция автоопределения не работает, вы почти ничего не получаете на пути полезных сообщений об ошибках. «Thunderbird не смог найти настройки для вашей учетной записи электронной почты» означает в основном ничего.

    СОВЕТ: когда функция автоматического обнаружения Thunderbird не работает, не тратьте время на нее и возвращайтесь к указанию всего вручную до тех пор, пока она не будет работать. Затем, как только вы его заработаете, вы можете сосредоточиться на выяснении, почему автоопределение не удалось, и, возможно, исправить его, чтобы он работал для следующего пользователя.

  • Всегда используйте порт 143 для IMAP, если можете. Существует также порт 993 для IMAP через SSL, но все разумно современные клиенты и серверы поддерживают STARTTLS для обновления незашифрованных подключений к зашифрованным, поэтому больше не нужно беспокоиться о разных портах для IMAP. Соединения на порту 143 будут автоматически зашифрованы, если это возможно.

  • (Не относится к IMAP, но в любом случае) Всегда используйте порт 587 для SMTP, если можете. SMTP всегда выполнялся на порту 25, но интернет-провайдеры часто блокируют порт 25 из-за спама. Порт 587 был определен специально для связи SMTP между MUA и почтовыми серверами, как ожидается, будет поддерживать SMTP AUTH и STARTTLS по мере необходимости и уже существует уже много лет. Редко приходится беспокоиться о настройке MUA на использование любого другого порта.

  • Dovecot обрабатывает незашифрованные соединения и зашифрованные соединения по-разному, и это может также применяться к локальным соединениям (до localhost , 127.0.0.1 или ::1 ) по сравнению с удаленными соединениями. Наиболее распространенные типы аутентификации небезопасны по незашифрованным удаленным соединениям, поэтому Dovecot их не предлагает.

    Поэтому при тестировании и отладке через командную строку, чтобы наиболее точно имитировать реальный MUA, протестируйте удаленно и используйте STARTTLS для шифрования соединений. В противном случае вы можете обнаружить, что аутентификация отлично работает с telnet и все еще удивляется, почему она не работает в MUA.

  • Тестирование с использованием telnet (для незашифрованных соединений) или openssl s_client (для зашифрованных соединений)

    Используйте то же имя хоста, которое вы пытаетесь принять MUA. Если вы хотите, чтобы imap.mydomain.com или mail.mydomain.com или просто mydomain.com работали при mail.mydomain.com в качестве почтового сервера в MUA, протестируйте с использованием того же имени хоста из командной строки. И если вы получите ошибку разрешения имени хоста, вы знаете, что проблема заключается в DNS.

     openssl s_client -starttls imap -port 143 -CApath /etc/ssl/certs -host <hostname> 
  • Если у SSL-сертификата, настроенного на сервере Dovecot, возникла проблема, Thunderbird предупредит об этом, но он все равно позволит вам подключиться. Если вы полностью не можете подключиться, сертификат, вероятно, не является проблемой.

    Конечно, как только вы будете готовы к производству, вам захочется использовать сертификат, подписанный признанным центром сертификации, и иметь имя в сертификате, соответствующее имени сервера IMAP, которое настраивается в MUA.

  • Полезные команды IMAP для тестирования. Введите их в сеансы IMAP, которые вы открываете с помощью telnet (незашифрованный) или openssl s_client (зашифрованный)

     tag1 LOGOUT tag2 LOGIN <username> <password> tag3 CAPABILITIES tag4 LIST "" "*" 
Linux и Unix - лучшая ОС в мире.