リモートCentOS 7 Webサーバーは、インターネット上の他のアドレスから送信された電子メールを正常に受信できます。[Eメール保護]。同じ 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
これらの Telnet の結果は、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
端末がそれを印刷して応答しました。このファイル共有Webサイトのリンクをクリックすると、詳細を読むことができます。。
私の完全ファイル共有サイトで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)からポート番号、認証プロトコル、すべてのコンテンツに至るまで、すべてについて長いガイドラインを提供しなければならなかった電子メールアカウント設定の暗い頃に比べて改善されました。理想的な世界では、ユーザーは自分のメールアドレス、パスワード、サーバー名を指定するだけです(最終的にはWeb経由でGmailにアクセスするために必要なものはすべてです...)。
ただし、自動検出が機能しない場合、便利なエラーメッセージはほとんど表示されません。 「ThunderbirdがあなたのEメールアカウントの設定を見つけることができません」というのはデフォルトでは意味がありません。
ヒント: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 "" "*"