원격 CentOS 7 웹 서버는 인터넷의 다른 주소에서 보낸 이메일을 성공적으로 수신할 수 있습니다.[이메일 보호됨]. 동일한 CentOS 7 서버에서 실행되는 애플리케이션은 JavaMail을 사용하여 수신 메시지가 저장되는 dovecot Maildir에 대한 IMAP 연결을 설정할 수 있습니다. 그렇다면 내 devbox에서 실행되는 Thunderbird가 인터넷을 통해 원격 CentOS 7 서버에 대한 IMAP 연결을 설정하려면 무엇을 추가해야 합니까?
지금까지 나는 imaps
방화벽의 공개 영역에 추가했습니다. 나는 또한 dovecot.conf에 이 줄이 포함되어 있음을 확인했습니다 protocols = imap pop3
. IMAP, 호스트 이름 mydomain.com, 포트 993 및 SSL, 일반 비밀번호를 사용하여 메일을 수신하도록 Thunderbird를 구성했습니다. 도메인 등록 기관의 웹사이트에서 dns mx 항목이 mydomain.com을 mx 주소로 사용한다는 것을 확인했습니다.
편집하다
@Celada의 질문에 답하기 위해 로그인 정보를 확인하는 동안 서버에 연결할 수 없다는 내용의 Thunderbird 대화 상자를 게시했습니다. imap에 포트 993을 지정하고 smtp에 포트 25를 지정하고 SSL 연결을 표시하면 동일한 메시지가 나타납니다. 또한 .mydomain.com을 mydomain.com으로 변경해도 로그인 실패가 제거되지는 않습니다.
다음으로 방화벽 로그에 액세스하여 결과를 게시해 보겠습니다. 제가 이해한 바에 따르면 Firewalld는 자동으로 로그인하지 않으므로 몇 가지 풍부한 규칙을 개발해야 합니다. 올바른 구문을 결정하는 데는 다소 시간이 걸릴 수 있습니다.
제 생각에는 서버 구성 문제인 것 같습니다. 나는 이것이 클라이언트측 문제라는 인상을 주고 싶지 않기 때문에 Thunderbird 대화 상자를 표시하는 것을 주저합니다. Thunderbird를 설정하기 전에 서버 구성을 결정/설정해야 할 것 같습니다.
편집 #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
이러한 텔넷 결과는 Firewalld가 imap과 smtp를 잘못된 포트에 매핑하고 있음을 나타내므로 nano /usr/lib/firewalld/services/imaps.xml
포트를 993에서 143으로 입력하고 변경했습니다. 그런 다음 nano /usr/lib/firewalld/services/smtp.xml
포트를 25로 입력 하고 변경했습니다.
firewall-cmd --reload
그런 다음 변경 사항이 적용되었는지 확인하기 위해 입력했습니다 .
다음으로 Thunderbird에 새로운 정보를 입력하고 다시 연결 테스트를 시도했지만 다음 대화 상자와 같은 실패 메시지가 다시 나타납니다.
mydomain.com
도메인 등록기관을 통해 DNS의 MX 레코드를 확인한 결과 스크린샷과 같이 정확하다는 점 참고하시기 바랍니다 . 나는 이것이 어떻게 관련성이 없는지 알 수 없습니다. 확인했는데 서버의 호스트 이름도 마찬가지입니다 mydomain.com
. 올바른 메일 서버 이름을 확인하기 위해 확인해야 할 다른 리소스가 있습니까?
또한 dovecot과 postfix는 표준 구성을 사용하여 설치됩니다. SSL이 기본 구성의 일부일 수 있지만 SSL을 명시적으로 구성하지 않았습니다. 그러나 위의 대화 상자에서 설정을 변경하고 테스트했습니다.전혀SSL 필드에 지정되었지만 동일한 실패 메시지를 받았습니다.
위의 최신(하단) 스크린샷 이후 /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>
편집 #3
@Bandrami의 제안에 따라 protocols = imap pop3
dovecot.conf를 으로 변경했습니다. 그런 다음 포트 993을 지정 protocols = imaps pops
했습니다 . /usr/lib/firewalld/services/imaps.xml
입력 firewall-cmd --reload
한 systemctl stop dovecot
다음 systemctl start dovecot
서버에서 관련 프로세스를 다시 시작했습니다. 그런 다음 포트 993과 SSL/TLS를 지정하도록 Thunderbird 테스트를 구성하고 Thunderbird에서 연결 테스트를 다시 실행했으며 Thunderbird에서도 동일한 결과를 얻었습니다.
그러나 비둘기장 로그는 더 명확하며 다음과 같습니다.
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=<[email protected]>, 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$
편집 #4
@Celada의 추가 설명에 따라 telnet imap.mydomain.com 143
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.
다음으로 devbox 터미널에 입력했더니 openssl s_client -CApath /etc/ssl/certs -starttls imap -port 143 -host imap.mydomain.com
터미널이 이를 인쇄해서 응답했습니다.이 파일 공유 웹사이트 링크를 클릭하면 자세한 내용을 읽을 수 있습니다..
내 완전한파일 공유 사이트에서 dovecot.conf를 읽으려면 이 링크를 클릭하세요..
편집 #5
@Celada의 제안에 따라 t1 login USERNAME PASSWORD
뒤에 입력했는데 . 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는 SSL 옵션으로 "자동 감지"를 강제하고 "다시 테스트" 버튼을 클릭하면 동일한 오류 메시지가 나타납니다.
"Thunderbird failed to find the settings for your email account."
답변1
댓글과 채팅을 주고받은 후 OP 문제가 이제 해결되었습니다. IMAP 서버는 다음과 같이 지정되어야 합니다.imap.mydomain.com바꾸다mydomain.com어떤 이유로든 이는 계정 생성 대화 상자가 아닌 고급 계정 설정을 사용하여 설정할 때만 작동합니다.
귀하의 특정 상황에 대한 이 솔루션을 언급하는 것 외에도, 이 질문에 대답할 때 제가 말할 수 있는 가장 유용한 것은 나중에 이 도움말을 읽는 다른 사람들에게 유용할 것이라는 희망으로 해당 주제에 대한 몇 가지 일반적인 문제 해결 팁을 나열하는 것입니다.
Thunderbird의 계정 설정 자동 감지 기능은 탁월하며, ISP가 서버 유형(POP 또는 IMAP)부터 포트 번호, 인증 프로토콜, 모든 콘텐츠에 이르기까지 모든 것에 대해 긴 지침을 제공해야 했던 이메일 계정 설정의 어두운 시절에 비해 크게 개선되었습니다. 이상적인 세상에서 사용자는 자신의 이메일 주소, 비밀번호, 서버 이름만 지정하면 됩니다(결국 웹을 통해 Gmail에 액세스하는 데 필요한 것은 이것이 전부입니다...).
그러나 자동 감지가 작동하지 않으면 유용한 오류 메시지가 거의 표시되지 않습니다. "Thunderbird가 귀하의 이메일 계정에 대한 설정을 찾을 수 없습니다."는 기본적으로 아무 의미가 없습니다.
팁: Thunderbird의 자동 감지 기능이 작동하지 않으면 시간을 낭비하지 말고 작동될 때까지 모든 것을 수동으로 지정하십시오. 그런 다음 작동이 완료되면 자동 감지가 실패한 이유를 파악하고 다음 사용자가 작동하도록 수정하는 데 집중할 수 있습니다.
가능하다면 항상 IMAP 포트 143을 사용하세요. SSL을 통한 IMAP용 포트 993도 있지만 합리적으로 현대의 모든 클라이언트와 서버는 암호화되지 않은 연결을 암호화된 연결로 업그레이드하기 위해 STARTTLS를 지원하므로 더 이상 IMAP용 다른 포트에 대해 걱정할 필요가 없습니다. 포트 143의 연결은 가능한 경우 자동으로 암호화됩니다.
(IMAP과 관련은 없지만 어쨌든) 가능하면 항상 SMTP 포트 587을 사용하십시오. SMTP는 항상 포트 25에서 수행되었지만 ISP는 스팸으로 인해 포트 25를 차단하는 경우가 많았습니다. 포트 587은 MUA와 메일 서버 간의 SMTP 통신에만 사용되며 필요에 따라 SMTP AUTH 및 STARTTLS를 지원할 것으로 예상되며 수년 동안 지원되어 왔습니다. 다른 포트를 사용하도록 MUA를 구성하는 것에 대해 걱정할 필요가 거의 없습니다.
localhost
Dovecot은 암호화되지 않은 연결과 암호화된 연결을 다르게 처리합니다. 이는 로컬 연결( 또는127.0.0.1
또는::1
)과 원격 연결 에도 적용될 수 있습니다 . 가장 일반적인 인증 유형은 암호화되지 않은 원격 연결에서는 안전하지 않으므로 Dovecot은 이를 제공하지 않습니다.따라서 명령줄을 통해 테스트 및 디버깅할 때 실제 MUA를 가장 밀접하게 에뮬레이트하려면 원격으로 테스트하고 STARTTLS를 사용하여 연결을 암호화하세요. 그렇지 않으면 인증이 제대로 작동
telnet
하지만 MUA에서는 왜 작동하지 않는지 여전히 궁금 할 수 있습니다 .telnet
(암호화되지 않은 연결의 경우) 또는 (암호화된 연결의 경우)을 사용하여openssl s_client
테스트합니다 .MUA를 허용하려는 호스트 이름과 동일한 호스트 이름을 사용하십시오. MUA에서 메일 서버로 지정된
imap.mydomain.com
경우mail.mydomain.com
에만 이것이 작동하도록 하려면mydomain.com
동일한 호스트 이름을 사용하여 명령줄에서 테스트하십시오. 호스트 이름 확인 오류가 발생하면 문제가 DNS에 있다는 것을 알 수 있습니다.openssl s_client -starttls imap -port 143 -CApath /etc/ssl/certs -host <hostname>
Dovecot 서버에 구성된 SSL 인증서에 문제가 있는 경우 Thunderbird는 경고를 표시하지만 여전히 연결을 허용합니다. 전혀 연결할 수 없다면 인증서 문제가 아닐 가능성이 높습니다.
물론 프로덕션에 들어갈 준비가 되면 공인된 인증 기관에서 서명한 인증서를 사용해야 하며 인증서의 이름은 MUA에 구성된 IMAP 서버의 이름과 일치합니다.
테스트에 유용한 IMAP 명령입니다. 열려 있는 IMAP 세션에 이를 입력하세요
telnet
(암호화되지 않음) 또는openssl s_client
(암호화됨)tag1 LOGOUT tag2 LOGIN <username> <password> tag3 CAPABILITIES tag4 LIST "" "*"