メールのエラーコードと、メールサーバのmaillog解析方法まとめ


投稿日:2015年12月4日
  • 27
  • 1
  • 0



メールサーバの管理用コードのまとめ

maillog

ブルートフォース攻撃やウイルスの添付、はたまた踏み台にされたりと、何かと攻撃されやすいメールサーバ。

このページではメールサーバ管理の基本となるSMTPステータスコードから、メールサービス固有のエラーコード、PostfixやDovecotのログファイルであるmaillogの詳細な解析方法について解説します。


目次


SMTPステータスコードを理解する

まずは用語の解説です。

SMTPとはSimple Mail Transfer Protocolの略で、RFCで定義されています。

RFCとはRequest for Comments(リクエスト フォー コメンツ)の略です。RFCでは様々なプロトコルが定義されており、有名どころではhttpなどもRFCで定義されています。
ご存知の方も多いと思いますが、httpのステータスコードもRFCで定義されています。正常なレスポンスであることを示す200、ファイルが無いことを示す404など日常的に利用していると思います。

メールも同じようにステータスコードが定義されており、特にSMTPステータスコード、または応答コードと呼ばれています。maillogではdns(Delivery Status Notifications)と表記されています。
2015年現在ではRFC 5321が最新の定義です。(過去8211893で定義されていた)
このSMTPステータスコードを見れば転送の状態をおおまかに把握することができるようになっています。

具体的には「RFC 5321 – Simple Mail Transfer ProtocolのReply Codes by Function Groupsの項目」で解説されています。
日本語で解説すると以下のようになります。

1桁目

2.X.X 成功
4.X.X 一時的なエラーが繰り返し発生する
5.X.X 永続的なエラー

2桁目および3桁目

X.1.0 その他のアドレスの状態
X.1.1 送信先メールボックス アドレスが正しくない
X.1.2 送信先システム アドレスが正しくない
X.1.3 送信先メールボックス アドレスの構文が正しくない
X.1.4 送信先メールボックス アドレスがあいまい
X.1.5 送信先メールボックス アドレスが有効
X.1.6 メールボックスが移動されている
X.1.7 送信者のメールボックス アドレスの構文が正しくない
X.1.8 送信者のシステム アドレスが正しくない
X.2.0 その他または未定義のメールボックス状態
X.2.1 メールボックスが無効で、メッセージを受け付けない
X.2.2 メールボックスがいっぱい
X.2.3 メッセージの長さが管理制限を超えている
X.2.4 メーリング リスト展開の問題
X.3.0 その他または未定義のメール システム状態
X.3.1 メール システムがいっぱい
X.3.2 システムがネットワーク メッセージを受け付けない
X.3.3 システムが選択した機能を利用できない
X.3.4 システムに対してメッセージが大きすぎる
X.4.0 その他または未定義のネットワークやルーティング状態
X.4.1 ホストから応答がない
X.4.2 接続が正しくない
X.4.3 ルーティング サーバー エラー
X.4.4 ルーティングできない
X.4.5 ネットワークの混雑
X.4.6 ルーティングのループを検出
X.4.7 配信の期限切れ
X.5.0 その他または未定義のプロトコル状態
X.5.1 無効なコマンド
X.5.2 構文エラー
X.5.3 受信者が多すぎる
X.5.4 コマンドの引数が無効
X.5.5 プロトコル バージョンが正しくない
X.6.0 その他または未定義のメディア エラー
X.6.1 メディアがサポートされていない
X.6.2 要求された変換が禁止されている
X.6.3 要求された変換がサポートされていない
X.6.4 変換が実行されなかった
X.6.5 変換エラー
X.7.0 その他または未定義のセキュリティ状態
X.7.1 配信が認証されないために、メッセージが拒否される
X.7.2 メーリング リストの展開が禁止されている
X.7.3 要求されたセキュリティ変換が禁止されている
X.7.4 セキュリティ機能がサポートされていない
X.7.5 暗号化エラー
X.7.6 暗号化アルゴリズムがサポートされていない
X.7.7 メッセージの整合性エラー

配信に関するステータス コードの拡張 (RFC 1893)」より


Outlook.comのSMTPエラーコード集

Outlook.comHotmailの後継サービスです。フリーメールの先発隊だったこともあり、継続して利用している方も多いと思います。

上記のSMTPステータスコードは通信に関するエラーを定義していました。しかしそれだけでは詳細なエラーの状況が把握しにくいため、Outlook.com独自のエラーコードも存在します。上手く解読できればエラー原因の追求に役立ちます。

このコードもmaillogで通知されます。または、送信エラー時にメールボックスに通知されることもあります。

421 RP-001 Outlook.com サーバーに接続しているメール サーバー IP が、許可されたレートの制限を超えました。レート制限の理由は、IP/ドメインの評価と関連しています。メール管理者またはネットワーク管理者のどちらでもない場合は、メールまたはインターネットのサービス プロバイダーに連絡して支援を依頼してください。
421 RP-002 Outlook.com サーバーに接続しているメール サーバー IP が、この接続に許可されたレートの制限を超えました。レート制限の理由は、IP/ドメインの評価に関連しています。メール管理者またはネットワーク管理者のどちらでもない場合は、メールまたはインターネットのサービス プロバイダーに連絡して支援を依頼してください。
421 RP-003 Outlook.com サーバーに接続しているメール サーバー IP が、許可された接続の制限を超えました。制限の理由は、IP/ドメインの評価に関連しています。メール管理者またはネットワーク管理者のどちらでもない場合は、メールまたはインターネットのサービス プロバイダーに連絡して支援を依頼してください。
550 SC-001 ポリシーを理由にメールが Outlook.com によって拒否されました。拒否された理由は、メールの内容が迷惑メールの特徴に似ていることか、IP/ドメインの評価に関連している可能性があります。メールまたはネットワーク管理者のどちらでもない場合は、メールまたはインターネット サービス プロバイダーに連絡して支援を依頼してください。
550 SC-002 ポリシーを理由にメールが Outlook.com によって拒否されました。Outlook.com に接続しているメール サーバー IP が、名前空間のマイニング動作を示しています。メール管理者またはネットワーク管理者のどちらでもない場合は、メールまたはインターネットのサービス プロバイダーに連絡して支援を依頼してください。
550 SC-003 ポリシーを理由にメールが Outlook.com によって拒否されました。IP アドレスがオープン プロキシまたはオープン リレーであることが示されています。メール管理者またはネットワーク管理者のどちらでもない場合は、メールまたはインターネットのサービス プロバイダーに連絡して支援を依頼してください。
550 SC-004 ポリシーを理由にメールが Outlook.com によって拒否されました。この IP アドレスから送信されたメールに関する苦情を受け取ったため、この IP アドレスは受信拒否するように設定されています。Junk E-Mail Reporting Program (JMRP) への参加をお勧めします。これは、メールマガジンなどを配布するための配布リストから不要なアドレスを削除するのに役立つ、無料の送信者向けプログラムです。メール管理者またはネットワーク管理者のどちらでもない場合は、メールまたはインターネットのサービス プロバイダーに連絡して支援を依頼してください。
550 DY-001 ポリシーを理由にメールが Outlook.com によって拒否されました。通常、動的 IP から送信されたメールは受信拒否されます。一般に動的 IP は、認証されない SMTP メールをインターネット メール サーバーに配信するためには使用されないからです。メール管理者またはネットワーク管理者のどちらでもない場合は、メールまたはインターネットのサービス プロバイダーに連絡して支援を依頼してください。動的 IP アドレスおよび固定 IP アドレスの一覧については、http://www.spamhaus.org を参照してください。
550 DY-002 ポリシーを理由にメールが Outlook.com によって拒否されました。考えられる理由として、サーバーまたはパーソナル コンピューターが不正に使用されたかウイルスに感染した可能性があります。メール管理者またはネットワーク管理者のどちらでもない場合は、メールまたはインターネットのサービス プロバイダーに連絡して支援を依頼してください。
550 OU-001 ポリシーを理由にメールが Outlook.com によって拒否されました。メール管理者またはネットワーク管理者のどちらでもない場合は、メールまたはインターネットのサービス プロバイダーに連絡して支援を依頼してください。この受信拒否の詳細を参照または受信拒否の解除を要請するには、http://www.spamhaus.org にアクセスしてください。
550 OU-002 ポリシーを理由にメールが Outlook.com によって拒否されました。拒否された理由は、メールの内容が迷惑メールの特徴に似ていることか、IP/ドメインの評価に関連している可能性があります。メールまたはネットワーク管理者のどちらでもない場合は、メールまたはインターネット サービス プロバイダーに連絡して支援を依頼してください。

トラブルシューティング」より


GmailのSMTPエラーコード集

今度はGmailのエラーコード集です。こちらも同じようにmaillogに通知されます。
「421, “4.4.5”」といった書式で通知され、前半がGmail専用のエラーコード、続くのが対応するRFCのステータスコードです。

Gmailのエラーメッセージはステータスコードでは把握することができないエラーの詳細が表示されるため原因の究明に役立ちます。何かしらエラーが起きている場合はGmailからテストメールを送信するのがお薦めです。

421, “4.4.5” Server busy, try again later.(421, “4.4.5”, サーバーがビジーです。しばらくしてからもう一度お試しください。)
421, “4.7.0” IP not in whitelist for RCPT domain, closing connection.(IP が RCPT ドメインのホワイトリストにありません。接続を閉じます。)
421, “4.7.0” Our system has detected an unusual rate of unsolicited mail originating from your IP address. To protect our users from spam, mail sent from your IP address has been temporarily blocked. Review our Bulk Senders Guidelines.(421, “4.7.0”, ご使用の IP アドレスから送信された異常な数の未承諾メールが検出されました。ユーザーを迷惑メールから保護するため、ご使用の IP アドレスから送信されたメールを一時的にブロックしました。Google の一括送信ガイドラインをご覧ください。)
421, “4.7.0” Temporary System Problem. Try again later.(421, “4.7.0”, システムの一時的な問題です。しばらくしてからもう一度お試しください。)
421, “4.7.0” TLS required for RCPT domain, closing connection.(421, “4.7.0”, RCPT ドメインには TLS が必要です。接続を閉じます。)
421, “4.7.0” Try again later, closing connection.(421, “4.7.0”, しばらくしてからもう一度お試しください。接続を閉じます。)
450, “4.2.1” The user you are trying to contact is receiving mail too quickly. Please resend your message at a later time. If the user is able to receive mail at that time, your message will be delivered. For more information, review this article.(450, “4.2.1” 宛先のユーザーのメール受信までの時間が短すぎます。後でそのユーザー宛にメッセージをもう一度送信してください。その時にメールを受信できれば、あなたのメッセージが送信されたことになります。詳細については、こちらの記事をご覧ください。)
450, “4.2.1” The user you are trying to contact is receiving mail at a rate that prevents additional messages from being delivered. Please resend your message at a later time. If the user is able to receive mail at that time, your message will be delivered. For more information, review this article.(450, “4.2.1” 宛先のユーザーは、追加のメール配信に応じられないペースでメールを受信しています。後でそのユーザー宛にメッセージをもう一度送信してください。その時にメールを受信できれば、あなたのメッセージが送信されたことになります。詳細については、こちらの記事をご覧ください。)
450, “4.2.1” Peak SMTP relay limit exceeded for customer. This is a temporary error. For more information on SMTP relay limits, please contact your administrator or review this article.(450, “4.2.1”, ユーザーのピーク時の SMTP リレーの上限を超えています。これは一時的なエラーです。SMTP リレーの上限については、管理者に問い合わせるか、こちらの記事をご覧ください。)
451, “4.3.0” Mail server temporarily rejected message.(451, “4.3.0”, メールサーバーで一時的にメッセージが拒否されています。)
451, “4.3.0” Multiple destination domains per transaction is unsupported. Please try again.(451, “4.3.0”, トランザクションごとの複数の送信先ドメインはサポートされていません。しばらくしてからもう一度お試しください。)
451, “4.4.2” Timeout – closing connection.(451, “4.4.2”, タイムアウトです – 接続を閉じます。)
451, “4.5.0” SMTP protocol violation, see RFC 2821. Please direct the recipient to this article.(451, “4.5.0”, SMTP プロトコル違反です。RFC 2821 をご覧ください。受信者にこちらの記事を参照するよう指示してください。)
452, “4.2.2” The email account that you tried to reach is over quota. Please direct the recipient to this article.(452, “4.2.2”, 送信先メール アカウントが容量をオーバーしています。受信者にこちらの記事を参照するよう指示してください。)
452, “4.5.3” Domain policy size per transaction exceeded, please try this recipient in a separate transaction.(452, “4.5.3”, トランザクションごとのドメイン ポリシー サイズを超過しています。この受信者にはトランザクションを分割してお試しください。)
452, “4.5.3” Your message has too many recipients. For more information regarding Google’s sending limits, review this article.(452, “4.5.3”, メッセージの受信者が多すぎます。Google の送信に関する制限事項の詳細については、こちらの記事をご覧ください。)
454, “4.5.0” SMTP protocol violation, no commands allowed to pipeline after STARTTLS, see RFC 3207.(454, “4.5.0”, SMTP プロトコル違反です。STARTTLS の後にはコマンドをパイプライン処理することはできません。詳細については、RFC 3207 をご覧ください。)
454, “4.7.0” Cannot authenticate due to temporary system problem. Try again later.(454, “4.7.0”, システムの一時的な問題により認証できません。しばらくしてからもう一度お試しください。)
454, “5.5.1” STARTTLS may not be repeated.(454, “5.5.1”, STARTTLS が繰り返されていない可能性があります。)
501, “5.5.2” Cannot Decode response.(501, “5.5.2”, 応答をデコードできません。)
502, “5.5.1” Too many unrecognized commands, goodbye.(502, “5.5.1”, 認識されないコマンドが多すぎます。)
502, “5.5.1” Unimplemented command.(502, “5.5.1”, 実装されていないコマンドです。)
502, “5.5.1” Unrecognized command.(502, “5.5.1”, 認識されないコマンドです。)
503, “5.5.1” “EHLO/HELO first.(503, “5.5.1”, “最初に EHLO/HELO が必要です。)
503, “5.5.1” MAIL first.(503, “5.5.1”, 最初に MAIL が必要です。)
503, “5.5.1” RCPT first.(503, “5.5.1”, 最初に RCPT が必要です。)
503, “5.7.0” No identity changes permitted.(503, “5.7.0”, ID は変更できません。)
504, “5.7.4” Unrecognized Authentication Type.(504, “5.7.4”, 認識されない認証タイプです。)
530, “5.5.1” Authentication Required. Learn more here.(530, “5.5.1”, 認証が必要です。詳細については、こちらをご覧ください。)
530, “5.7.0” Must issue a STARTTLS command first.(530, “5.7.0”, STARTTLS コマンドを最初に発行する必要があります。)
535, “5.5.4” Optional Argument not permitted for that AUTH mode.(535, “5.5.4”, この AUTH モードでは任意の引数を使用できません。)
535, “5.7.1” Application-specific password required. Learn more here.(535, “5.7.1”, アプリケーション固有のパスワードが必要です。詳細については、こちらをご覧ください。)
535, “5.7.1” Please log in with your web browser and then try again. Learn more here.(535, “5.7.1”, ウェブブラウザでログインして、もう一度お試しください。詳細については、こちらをご覧ください。)
535, “5.7.1” Username and Password not accepted. Learn more here.(535, “5.7.1”, ユーザー名とパスワードが承認されませんでした。詳細については、こちらをご覧ください。)
550, “5.1.1” The email account that you tried to reach does not exist. Please try double-checking the recipient’s email address for typos or unnecessary spaces. For more information, review this article.(550, “5.1.1”, このメール アカウントは存在しません。送信先のメールアドレスをもう一度確認し、誤字や不必要なスペースがないかどうか確認してみてください。詳細については、こちらの記事をご覧ください。)
550, “5.2.1” The email account that you tried to reach is disabled.(550, “5.2.1”, このメール アカウントは無効です。)
550, “5.2.1” The user you are trying to contact is receiving mail at a rate that prevents additional messages from being delivered. For more information, review this article.(550, “5.2.1”, 宛先のユーザーは、追加のメール配信に応じられないペースでメールを受信しています。詳細については、こちらの記事をご覧ください。)
550, “5.4.5” Daily sending quota exceeded. Learn more here.(550, “5.4.5”, 1 日あたりの送信容量を超過しました。詳細については、こちらをご覧ください。)
550, “5.4.5” Daily SMTP relay limit exceeded for user. For more information on SMTP relay sending limits please contact your administrator or review this article.(550, “5.4.5”, ユーザーの 1 日あたりの SMTP リレーの上限を超えています。SMTP リレーの送信制限については、管理者に問い合わせるか、こちらの記事をご覧ください。)
550, “5.7.0” Mail relay denied.(550, “5.7.0”, メールリレーが拒否されました。)
550, “5.7.0” Mail Sending denied. This error occurs if the sender account is disabled or not registered within your Google Apps domain.(550, “5.7.0”, メール送信が拒否されました。送信者アカウントが無効になっているか、Google Apps ドメインに登録されていないと、このエラーが発生します。)
550, “5.7.1” Email quota exceeded.(550, “5.7.1”, メール容量を超過しました。)
550, “5.7.1” Invalid credentials for relay.(550, “5.7.1”, リレーのための認証情報が無効です。)
550, “5.7.1” Our system has detected an unusual rate of unsolicited mail originating from your IP address. To protect our users from spam, mail sent from your IP address has been blocked. Review our Bulk Senders Guidelines.(550, “5.7.1”, ご使用の IP アドレスから送信された異常な数の未承諾メールが検出されました。ユーザーを迷惑メールから保護するため、ご使用の IP アドレスから送信されたメールをブロックしました。Google の一括送信ガイドラインをご覧ください。)
550, “5.7.1” Our system has detected that this message is likely unsolicited mail. To reduce the amount of spam sent to Gmail, this message has been blocked. For more information, review this article.(550, “5.7.1”, このメッセージはシステムによって未承諾メールであると検出されました。Gmail に送信される迷惑メールの量を減らすために、このメッセージはブロックされています。詳細については、こちらの記事をご覧ください。)
550, “5.7.1” The IP you’re using to send mail is not authorized to send email directly to our servers. Please use the SMTP relay at your service provider instead. For more information, review this article.(550, “5.7.1”, メールの送信にご使用の IP では、Google のサーバーへのメッセージの直接送信が承認されていません。代わりに、サービス プロバイダで SMTP リレーを使用してください。詳細については、こちらの記事をご覧ください。)
550, “5.7.1” The user or domain that you are sending to (or from) has a policy that prohibited the mail that you sent. Please contact your domain administrator for further details. For more information, review this article.(550, “5.7.1”, 送信先(または送信元)のユーザーまたはドメインが使用しているポリシーによりメールを送信することができません。さらにサポートが必要な場合は、ドメイン管理者にお問い合わせください。詳細については、こちらの記事をご覧ください。)
550, “5.7.1” Unauthenticated email is not accepted from this domain.(550, “5.7.1”, このドメインからの認証されていないメールは受信されません。)
550, “5.7.1” Daily SMTP relay limit exceeded for customer. For more information on SMTP relay sending limits please contact your administrator or review this article.(550, “5.7.1”, 顧客の 1 日あたりの SMTP リレーの上限を超えています。SMTP リレーの送信制限については、管理者に問い合わせるか、こちらの記事をご覧ください。)
552, “5.2.2” The email account that you tried to reach is over quota.(552, “5.2.2”, 送信先のメール アカウントの容量がオーバーしています。)
552, “5.2.3” Your message exceeded Google’s message size limits. Please review our size guidelines.(552, “5.2.3”, メッセージが Google のメッセージ サイズの制限を超えています。詳しくは、Google のメッセージ サイズ制限に関するガイドラインについての記事をご覧ください。)
553, “5.1.2” We weren’t able to find the recipient domain. Please check for any spelling errors, and make sure you didn’t enter any spaces, periods, or other punctuation after the recipient’s email address.(553, “5.1.2”, 受信ドメインが見つかりませんでした。スペルミスがないことを確認し、受信者のメールアドレスの後にスペース、ピリオド、その他の句読点記号がないことを確認してください。)
554, “5.6.0” Mail message is malformed. Not accepted.(554, “5.6.0”, メール メッセージの形式が正しくありません。受信されません。)
554, “5.6.0” Message exceeded 50 hops, this may indicate a mail loop.(554, “5.6.0”, メールのホップ数が 50 を超えました。メールがループしている可能性があります。)
554, “5.7.0” Too Many Unauthenticated commands.(554, “5.7.0”, 承認されないコマンドの数が多すぎます。)
555, “5.5.2” Syntax error.(555, “5.5.2”, 構文エラー。)

SMTP エラー リファレンス – Google Apps 管理者 ヘルプ」より


Yahoo!メールのSMTPエラーコード集

最後はYahoo!メール。
こちらも独自のエラーコードが用意されています。
Yahoo!メールはわかりやすい一覧が無いので、ざっと調べてわかったコードのみです。

エラーコード 表示されるエラー内容 原因・対策方法
554 554 delivery error: dd This user doesn’t have a yahoo.co.jpaccount.(受信者のメールアドレス)  指定した送信先は存在しません。メールを再送信せずに、そのメールを削除してください。また、送信先のメールアドレスを再度確認してください。
554 delivery error: dd Sorry, your message to (受信者のメールアドレス) cannot be delivered. This account is over quota. 相手の方のメールボックスの保存容量が規定容量を超え、新しいメールを受け取れない状態です。メールの再送はせずに、送信相手にご確認ください。
554 yahoo.co.jp: 554 delivery error: dd Sorry your message to (受信者のメールアドレス) cannot be delivered. This account has been disabled or discontinued. あて先のメールアドレスが何らかの理由で利用停止されている状態です。メールの再送はせずに、送信相手にご確認ください。。
550 (****@***.**.**): ***.***.***.*** does not like recipient.
Remote host said: 550 Requested action not taken: mailbox unavailable Giving up on ***.***.***.***.
あて先のメールアドレスのメールボックスが何かの理由により使用不可となっています。メールボックスをご利用になっている方、またはメールボックスの管理者に、使用 不可の原因をお問い合わせください。
550 ***.***.***.*** does not like recipient.
Remote host said: 550 … User unknown
Giving up on ***.***.***.***.
あて先のメールアドレスが間違っている、もしくは別のメールアドレスに変更されている可能性があります。メールアドレスが正しいかを確認してください。
メールアドレスが正しい場合は、あて先のメールアドレスの管理者にお問い合わせください。
554 (****@***.**.**): ***.***.***.*** does not like recipient.
Remote host said: 554 (****@***.**.**):
Recipient address rejected: Access denied Giving up on ***.***.***.***.554 delivery error: dd This user doesn’t have a yahoo.co.jpaccount.(受信者のメールアドレス)
該当サーバーがあて先への中継を拒否しました。あて先のメールアドレス側で受信拒否設定を行なっている可能性があります。
554 (****@***.**.**): ***.***.***.*** does not like recipient.
Remote host said: 554 5.7.1 Relay denied
Giving up on ***.***.***.***.
該当サーバーがあて先への中継を拒否しました。あて先のメールアドレス側で受信拒否設定を行なっている可能性があります。
550 (****@***.**.**): Connected to ***.***.***.*** but sender was rejected.
Remote host said: 550 Access denied
送信者のアドレスが拒否されました。あて先のメールアドレス側で受信拒否設定を行なっている可能性があります。
550 (****@***.**.**): ***.***.***.*** does not like recipient.
Remote host said: 550 Invalid recipient:
(****@***.**.**):
Giving up on ***.***.***.***.
あて先が不正です。あて先のメールアドレスが間違っている可能性があります。あて先のメールアドレスが正しいか確認してください。
553 (****@***.**.**): ***.***.***.*** does not like recipient.
Remote host said: 553 (****@***.**.**)…
No such user here
Giving up on ***.***.***.***.
あて先のユーザーが送信先サーバーに存在しません。あて先のメールアドレスが間違っている、もしくは別のメールアドレスに変更されている可能性があります。メールアドレスが正しいか確認してください。
SMTPに起因するエラーではないのでなし (****@***.**.**): CNAME lookup failed temporarily. (#4.4.3)
I’m not going to try again; this message has been in the queue too long.
あて先のドメインが正しくありません。メールアドレスが間違っている可能性があります。メールアドレスが正しいか確認してください。
同上 (****@***.**.**): Sorry, I wasn’t able to establish an SMTP connection. (#4.4.1)
I’m not going to try again; this message has been in the queue too long.
あて先のサーバーは存在しますが、メールの受け入れをしていません。あて先のメールアドレスが間違っている可能性があります。メールアドレスが正しいか確認してください。
同上 (****@***.**.**): Sorry, I couldn’t find any host named *****.**.**
(#5.1.2)
あて先のドメイン名が正しくありません。あて先のメールアドレスが間違っている可能性があります。メールアドレスが正しいか確認してください。
554 (****@***.**.**): ***.***.***.*** failed after I sent the message.
Remote host said: 554 Error: too many hops
転送しすぎです。自動転送などの設定を見直してください。
521 SMTP サーバーは不明なエラーを返しました。件名 ”, アカウント : ”,サーバー : ”, プロトコル :SMTP, サーバーの応答 : ‘521 smtp.mail.yahoo.co.jp closing transmission channel.This mail is infected Virus.’, ポート: 25, セキュリティ (SSL): なし, サーバー エラー : 521,エラー番号 : 0x800CCC61 送信したメールが、ウイルスに感染していた可能性があります。この場合、メールは送信先には届いていません。 「 シマンテック・セキュリティチェック」で、コンピューターのウイルスチェックを行うことをお勧めします。

メールがウイルスに感染していた場合は、「シマンテック・無償ウイルス駆除ツールリスト」で、ウイルスの駆除ツールをダウンロードしてください。

521 SMTP サーバーは不明なエラーを返しました。件名 ”, アカウント : ‘pop.mail.yahoo.co.jp’,サーバー : ‘smtp.mail.yahoo.co.jp’, プロトコル :SMTP, サーバーの応答 : ‘521 smtp.mail.yahoo.co.jp closing transmission channel.Your SMTP service is temporarily stopped.’,ポート : 25, セキュリティ (SSL): なし, サーバー エラー : 521, エラー番号 : 0x800CCC61 Yahoo!メールの迷惑メール送信防止対策により、送信メールサーバーが一時的に利用不可になっている可能性があります。

試しにブラウザー版Yahoo!メールでメールを送信してみてください。メール送信時に質問に対する答えの入力を求められた場合は、「「画像認証」の画面が表示された 」をご覧のうえ正しい文字列を入力すれば、あとは通常どおりメールソフトからもメールの送受信が可能になります。

メール送信エラーの原因と対処方法
SMTPサーバーは不明なエラーを返しました」より

こちらに掲載されていないエラーコード「Yahoo!メールヘルプ」でエラーコードを入力して検索してみてください。


/var/log/maillogの解析方法

PostfixとDovecotによるログファイル「/var/log/maillog」に書き出されるログの見方を紹介します。
私の管理しているメールサーバのログを元に紹介します。

Postfixのデーモンやオプションに関する情報は「Postfixのぺーじ-和訳ドキュメント (2.3.x)」で詳しく解説されています。必要な方は参照してください。

Gmailからメールを正常に受信した場合のログ

example@gmail.comからhoge@example.comへメールを受信した場合のログです。

Nov 26 14:44:11 <サーバー名> postfix/smtpd[12729]: connect from mail-wm0-f46.google.com[74.125.82.46]
Nov 26 14:44:13 <サーバー名> postfix/smtpd[12729]: C2FDAAACC68: client=mail-wm0-f46.google.com[74.125.82.46]
Nov 26 14:44:14 <サーバー名> postfix/cleanup[12734]: C2FDAAACC68: message-id=<CAEmiW_AxZUOJW5fDMj_LF9DssJJ2yqhhCULC2N+GsXDeiwVyyA@mail.gmail.com>
Nov 26 14:44:16 <サーバー名> postfix/qmgr[11572]: C2FDAAACC68: from=<example@gmail.com>, size=1797, nrcpt=1 (queue active)
Nov 26 14:44:16 <サーバー名> postfix/local[12735]: C2FDAAACC68: to=<piyopiyo@example.com>, orig_to=<hoge@example.com>, relay=local, delay=3, delays=3/0.02/0/0.03, dsn=2.0.0, status=sent (delivered to maildir)
Nov 26 14:44:16 <サーバー名> postfix/qmgr[11572]: C2FDAAACC68: removed
Nov 26 14:44:16 <サーバー名> postfix/smtpd[12729]: disconnect from mail-wm0-f46.google.com[74.125.82.46]

1行目で74.125.82.46のmail-wm0-f46.google.comから接続があったことを示す。「postfix/smtpd」とはPostfix SMTP サーバによるログという意味。

2行目で「C2FDAAACC68」というキューIDを割り振られています。以降同じメール関するログはこのIDが付きます。

3行目の「postfix/cleanup」はPostfixのcleanupというデーモンによるログという意味です。cleanupデーモンは受信したメールをカノニカル化(正規化)し、キューマネージャに通知します。

このログの例では「CAEmiW_AxZUOJW5fDMj_LF9DssJJ2yqhhCULC2N+GsXDeiwVyyA@mail.gmail.com」というIDのメールを通知しています。

4行目postfix/qmgr」の「qmgr」は「generic Postfix daemon options」の略です。「example@gmail.com」からのアクセスで、サイズは1797バイトnrcpt宛先の意味でこの例では1つ。

5行目postfix/local」はローカルでの転送処理を意味しています。

to=<piyopiyo@example.com>が転送先。orig_to=<hoge@example.com>が送信元、relay=localはローカルで転送したことを指します。

delay=3」は3秒で転送されたことを指します。続く「delays」がその内訳。スラッシュ区切りでそれぞれ先頭から
1.qmgrが処理する前の時間
2.qmgrが使った時間
3.次の配送先への接続の準備に使われた時間
4.配送に使われた時間
となります。

dsn=2.0.0」は「Delivery Status Notifications」の略。受信側のサーバが受信状況を送信側に通知する仕組み。それぞれのコードはRFCで定義されています。

status=sent」は送信したというコード。

delivered to maildir」はmaildirに送信完了というコード。postfixのhome_mailboxで設定したディレクトリで、デフォルトなら~/Maildir

6行目removed」はキューIDがC2FDAAACC68のメールをqmgrが削除したことを示す。

最終行「disconnect」はmail-wm0-f46.google.com[74.125.82.46]との接続を終了したことを示しています。

outlookからgmailへメールを送信した時のログ

メールを送信する際の一連のログ。

Nov 27 02:38:46 <サーバー名> postfix/smtpd[19102]: connect from h101-111-073-127.catv02.itscom.jp[101.111.73.127]
Nov 27 02:38:47 <サーバー名> postfix/smtpd[19102]: 435ADAADC57: client=h101-111-073-127.catv02.itscom.jp[101.111.73.127], sasl_method=LOGIN, sasl_username=info@mail.example.com
Nov 27 02:38:47 <サーバー名> postfix/cleanup[19108]: 435ADAADC57: message-id=<004101d12871$61e247d0$25a6d770$@com>
Nov 27 02:38:47 <サーバー名> postfix/qmgr[11572]: 435ADAADC57: from=<mail.example.com>, size=3162, nrcpt=1 (queue active)
Nov 27 02:38:49 <サーバー名> postfix/smtp[19109]: 435ADAADC57: to=<hoge@gmail.com>, relay=gmail-smtp-in.l.google.com[74.125.23.27]:25, delay=2.6, delays=0.82/0.04/0.72/1, dsn=2.0.0, status=sent (250 2.0.0 OK 1448559529 ch2si10006521pad.150 - gsmtp)
Nov 27 02:38:49 <サーバー名> postfix/qmgr[11572]: 435ADAADC57: removed
Nov 27 02:38:49 <サーバー名> postfix/smtpd[19102]: disconnect from h101-111-073-127.catv02.itscom.jp[101.111.73.127]

h101-111-073-127.catv02.itscom.jp[101.111.73.127]は送信元(outlookでメールを送信するクライアント)のアドレス。

sasl_method=LOGIN」はSASL認証でのログイン、sasl_usernameでログイン名が「info@mail.example.com」ということがわかります。

上の例と同じようにpostfix/cleanupでメールをカノニカル化して、postfix/qmgrで転送しています。

postfix/smtp」でhoge@gmail.comに接続し、gmail-smtp-in.l.google.com[74.125.23.27]:25へ転送、ディレイ関係は上を参照してください。
dsn=2.0.0」は正常に転送できたことを意味し、「status=sent」は送信、「250 OK」は相手から接続OKというシグナルが帰ってきた証拠です。最後の「gsmtp」はGmailを意味しています。

最後に「removed」で送信したメールを削除して「disconnect from」で接続を解除しています。

ClamAVとClamSMTPを連動させてウイルススキャンし、正常にメールを受信した場合のログ

hoge@gmail.comからpiyo@example.comへメールを送り、ウイルススキャンして正しく受信した場合のログです。

Nov 29 01:27:57 <サーバー名> postfix/smtpd[10670]: F04CEAADA3F: client=localhost[127.0.0.1]
Nov 29 01:27:58 <サーバー名> postfix/cleanup[10674]: F04CEAADA3F: message-id=<20151128140016.6780AAAD31B@mail.example.com>
Nov 29 01:27:58 <サーバー名> clamsmtpd: 100003: from=hoge@gmail.com, to=piyo@example.com, status=CLEAN
Nov 29 01:27:58 <サーバー名> postfix/qmgr[6646]: F04CEAADA3F: from=<root@example.com>, size=671, nrcpt=1 (queue active)
Nov 29 01:27:58 <サーバー名> postfix/smtp[10665]: 6780AAAD31B: to=<info@example.com>, relay=127.0.0.1[127.0.0.1]:10025, delay=8863, delays=8862/0.04/0.08/0.36, dsn=2.0.0, status=sent (250 2.0.0 Ok: queued as F04CEAADA3F)
Nov 29 01:27:58 <サーバー名> postfix/local[10676]: F04CEAADA3F: to=<info@example.com>, relay=local, delay=0.4, delays=0.33/0.02/0/0.05, dsn=2.0.0, status=sent (delivered to maildir)
Nov 29 01:27:58 <サーバー名> postfix/qmgr[6646]: F04CEAADA3F: removed

1行目client=localhost」とあるのは、postfixがlocalhostのClamSMTPへ転送するため。

cleanupでメールを転送(ClamSMTPへポート10025を使って)。転送されたClamSMTPで「status=CLEAN」とウイルスが発見されなかったことがわかります。

再び転送で宛先はroot@example.comを指定。この時はポート10026を使っています。

status=sent (250 2.0.0 Ok: queued as F04CEAADA3F)でキューに入ってたF04CEAADA3Fを転送成功。(メールボックスに無事保存完了)

最後にqmgrオプションでメールを削除して終了。

クライアントがdovecotにログインした場合のログ

メールソフトで送受信してinfoユーザーでdovecotにログインした場合のログ。

Nov 26 14:44:20 <サーバー名> dovecot: pop3-login: Login: user=<info>, method=PLAIN, rip=101.111.73.127, lip=153.122.40.105, mpid=12741, TLS
Nov 26 14:44:20 <サーバー名> dovecot: pop3(info): Disconnected: Logged out top=0/0, retr=0/0, del=0/0, size=0

pop3」でログイン(IAMPの場合はimap)、ユーザー名info、ログインメソッドがPLAINテキスト(shadowやPAM、saslでもこのように表示される)、rip接続元lip接続先mpidはログインし直す毎に割り振られるユーザーIDTLSPOP3s接続であることを示しています。

Disconnectedは切断、ログアウトを示す。pop3_logout_formatで指定する。

top=x/y」のx: TOPコマンドの実行回数。y: TOPコマンドでサーバからクライアントへ転送されたバイト数。x回のTOPコマンドでyバイト転送したという表示。

retr=x/y」のx: RETRコマンドの実行回数。y: RETRコマンドの応答でクライアントからサーバへ転送されたバイト数。

del=x/yx: DELEコマンドで削除した(メールボックスの)メールの件数。y: メールボックスに蓄積されているメールの件数。

size」は実行後のメールボックスのサイズ。全て送信して空なら0。

それぞれコマンドは以下の通り。

TOPコマンド メッセージのうち、指定されたLine分だけボディを表示する
RETRコマンド メッセージ全体を表示する
DELEコマンド メッセージを削除する

Dovecotで認証に失敗した場合のログ

失敗する原因は1つではなく、いくつかのパターンがあります。

Oct 26 00:25:48 <サーバー名> dovecot: imap-login: Disconnected (no auth attempts): rip=94.102.49.210, lip=153.122.40.105, TLS: SSL_read() failed: error:1408F119:SSL routines:SSL3_GET_RECORD:decryption failed or bad record mac

上のログはTLSでログインを試みたが、認証のための所定の処理をできずにTSLが確立できないというエラー。復号化の失敗、もしくは、不正なレコードのエラーという意味。

Oct 26 00:42:40 <サーバー名> dovecot: imap-login: Disconnected (no auth attempts): rip=169.54.233.116, lip=153.122.40.105, TLS handshaking: Disconnected

上のログはTLSのハンドシェイクが失敗しているログ。

Oct 26 02:43:33 <サーバー名> dovecot: imap-login: Disconnected (no auth attempts): rip=94.102.49.210, lip=153.122.40.105, TLS handshaking: SSL_accept() failed: error:1407609C:SSL routines:SSL23_GET_CLIENT_HELLO:http request

これはSSL23_GET_CLIENT_HELLOで接続エラーが起きている。この接続自体はクライアントとサーバ間のTLSがやり取りをできる最新のバージョンで通信するための機能。
単純に設定のミスでエラーが起きる場合もあるが、この処理が不適切に行われTLS1.0での通信を強制される脆弱性が発見されているため、正しく動作しているサーバの場合攻撃を受けている可能性がある。

OpenSSL 1.0.1i以降にすることで脆弱性は解消できる。(CentOS等では公式のもので最新のものをインストールすれば良い)

メール転送が失敗した時のログ

Nov 26 14:44:08 <サーバー名> postfix/error[12714]: B9FEAAAE898: to=<root@example.com>, orig_to=<root>, relay=none, delay=46382, delays=46380/1.9/0/0.03, dsn=4.3.0, status=deferred (mail transport unavailable)

postfix/error」は失敗した時のオプション。
キューIDがB9FEAAAE898のroot宛のメールをroot@example.comへ送信する。

rootのメールをrootに送るので、relay(転送)はnone、ディレイ等は上の解説を参照のこと。

dsn=4.3.0」は「一時的に、その他または未定義のメール システム状態」という状態。

status=deferred」はステータスで延期を意味しています。
最後のmail transport unavailableが原因を表しています。転送エラーで、未定義のメールシステムの状態ということで、一般的なメールシステムによるエラーではなく、別の要素のエラーということが想像できます。

この時はウイルスメールを排除するClamSMTPの転送エラーが原因でした。
原因を取り除くまで何度もトライすることになるので同じような内容のログに溢れるようになります。

転送先のサーバが応答しない場合のログ

Nov 15 11:51:31 <サーバー名> postfix/error[28226]: 166F3AAE974: to=<hoge@gmail.com>, relay=none, delay=1.1, delays=1/0/0/0.12, dsn=4.4.1, status=deferred (delivery temporarily suspended: connect to 127.0.0.1[127.0.0.1]:10025: Connection refused)

dsn=4.4.1とConnection refused(接続拒否)が原因。ClamAVで設定した10025へ転送が拒否されている。
対応するサービスが起動しているか、設定が誤っていないか、ポートが開放されているかなどを調べる。

共有接続キャッシュサーバを利用した場合のログ

Nov 29 18:47:00 <サーバー名> postfix/scache[22655]: statistics: start interval Nov 29 18:45:08
Nov 29 18:47:00 <サーバー名> postfix/scache[22655]: statistics: domain lookup hits=0 miss=4 success=0%
Nov 29 18:47:00 <サーバー名> postfix/scache[22655]: statistics: address lookup hits=0 miss=4 success=0%
Nov 29 18:47:00 <サーバー名> postfix/scache[22655]: statistics: max simultaneous domains=1 addresses=1 connection=3

scacheオプションとは共有接続キャッシュサーバのこと。Postfixバージョン2.2で導入された。
いわゆる同一配信元や配信先がある場合にまとめて処理するためのもの

ただ上のログはmiss=4となっているので配信先への転送が4回失敗している状態。つまり同一サーバからのメールが複数あり、ミスをしているのでキューに貯まり、結果としてまとめてキャッシュとして処理されている状態。

max simultaneous domainsで最大同時ドメインが1なので、1つドメインから送られてきたことがわかる。connection=3と続くので3つのキューキャッシュがあるということ。

ClamAVによるローカル接続エラー

Nov 15 13:57:09 <サーバー名> postfix/smtp[3607]: 95E2CAACD99: to=<piyo@example.com>, relay=127.0.0.1[127.0.0.1]:10025, delay=2372, delays=2372/0.02/0.08/0.02, dsn=4.0.0, status=deferred (host 127.0.0.1[127.0.0.1] said: 451 Local Error (in reply to end of DATA command))

以下のエラーと併発していることが多い。

Nov 15 14:02:08 <サーバー名> clamsmtpd: 100002: CLAMAV: couldn't connect to: /var/run/clamd.clamsmtp/clamd.sock: No such file or directory

dsn=4.0.0」は「一時的」と「その他または未定義のネットワークやルーティング状態」。その後に続くsaid: 451 Local Error…とあることからローカルでのエラーであることがわかります。

この時はClamSMTPで「/var/run/clamd.clamsmtp/clamd.sock」に接続できなかったためにエラーが発生していました。(ソケットの指定をClamdとClamSMTPの設定を合わせる必要がある。)

メール送信元がDNSBLによるブロックリストに登録されていた場合のログ

Sep  9 05:14:18 <サーバー名> postfix/smtpd[19694]: NOQUEUE: reject: RCPT from unknown[69.12.70.50]: 554 5.7.1 Service unavailable; Client host [69.12.70.50] blocked using sbl.spamhaus.org; http://www.spamhaus.org/sbl/query/SBLCSS; from=<trivago-hoge=example.com@fieldevo.xyz> to=<hoge@example.com> proto=ESMTP helo=<mail.fieldevo.xyz>

キューを拒否、不明なRCPTコマンド、「5.7.1」は「永続的なエラー」と「配信が認証されないために、メッセージが拒否される」、Service unavailableサーバの応答がない、blocked using sbl.spamhaus.orgで「sbl.spamhaus.org」というブロックリストでブロックされているということがわかる。

そもそも名前解決できないメールサーバからの接続は拒否したほうが無難。

メール送信先からブロックリストに登録されて拒否された場合のログ

live.jpへのメールが先方のブロックリストにあるので転送拒否された。

Nov 26 16:40:11 <サーバー名> postfix/smtp[18271]: C5848AACFD7: to=<hoge@live.jp>, relay=mx2.hotmail.com[65.55.37.72]:25, delay=1.3, delays=0.83/0.02/0.35/0.12, dsn=5.0.0, status=bounced (host mx2.hotmail.com[65.55.37.72] said: 550 SC-001 (COL004-MC1F30) Unfortunately, messages from 153.122.40.105 weren't sent. Please contact your Internet service provider since part of their network is on our block list. You can also refer your provider to http://mail.live.com/mail/troubleshooting.aspx#errors. (in reply to MAIL FROM command))

hoge@live.jp」宛のメール、転送先は「mx2.hotmail.com[65.55.37.72]:25」、「dsn=5.0.0」は永続的なエラー、「status=bounced」は拒否されたことを示す。

said: 550 SC-001」は「ポリシーを理由にメールが Outlook.com によって拒否されました。」とのOutlook.comのエラーコード。
153.122.40.105が私達(mx2.hotmail.com)のブロックリストに載っている」とのこと。

今回の場合は「outlook.jp(旧hotmail)」のブロックリストに掲載されているためブロックされている。

解除には以下を参照のこと
Outlook.com Postmaster

解除用のアドレス

TLSで認証に失敗時のログ

Oct 25 16:11:45 <サーバー名> postfix/smtpd[6396]: connect from unknown[94.102.49.210]
Oct 25 16:11:46 <サーバー名> postfix/smtpd[6396]: warning: TLS library problem: 6396:error:1408F119:SSL routines:SSL3_GET_RECORD:decryption failed or bad record mac:s3_pkt.c:486:
Oct 25 16:11:46 <サーバー名> postfix/smtpd[6396]: lost connection after UNKNOWN from unknown[94.102.49.210]
Oct 25 16:11:46 <サーバー名> postfix/smtpd[6396]: disconnect from unknown[94.102.49.210]

connect from unknownで名前解決できない未知の接続。

接続ルーチンがSSL3_GET_RECORDで、「復号化の失敗か、不正なレコードのエラー」。

そして、未知のエラーとなり、接続を解除という流れ。

この例では外部からハッカーが認証を試みたがTSLでの接続に失敗している例。
正規の接続でこのエラーが出る場合は設定が誤っている可能性が高い。smtpd_tls_mandatory_protocolsを修正する。

SSLでハンドシェイクが失敗した場合のログ

Oct 25 18:52:32 <サーバー名> postfix/smtpd[15197]: connect from 78.e9.36a9.ip4.static.sl-reverse.com[169.54.233.120]
Oct 25 18:52:34 <サーバー名> postfix/smtpd[15197]: SSL_accept error from 78.e9.36a9.ip4.static.sl-reverse.com[169.54.233.120]: -1
Oct 25 18:52:34 <サーバー名> postfix/smtpd[15197]: lost connection after CONNECT from 78.e9.36a9.ip4.static.sl-reverse.com[169.54.233.120]
Oct 25 18:52:34 <サーバー名> postfix/smtpd[15197]: disconnect from 78.e9.36a9.ip4.static.sl-reverse.com[169.54.233.120]

78.e9.36a9.ip4.static.sl-reverse.comというドメインから、SSLで接続を試みられたが、SSL_accept error fromとなり、結果接続が切られている。つまりSSLで接続しようとしたが所定のハンドシェイクがないため相手側で通信を断念した状態。
SSL通信を許可していてこのエラーが出る場合は設定が誤っている。

max connection rateに引っかかってログインできない場合のログ

Nov  1 00:21:59 <サーバー名> postfix/anvil[16713]: statistics: max connection rate 1/60s for (smtp:185.82.201.101) at Nov  1 00:18:37
Nov  1 00:21:59 <サーバー名> postfix/anvil[16713]: statistics: max connection count 1 for (smtp:185.82.201.101) at Nov  1 00:18:37
Nov  1 00:21:59 <サーバー名> postfix/anvil[16713]: statistics: max cache size 1 at Nov  1 00:18:37

デフォルトで1分間に1度しかSMTPの接続が許可されていない。そのためANVILオプションで接続が失敗する。

調整はanvil_rate_time_unit等で行う。

送信先のメールボックスが一杯だったり、制限にかかっている場合のログ

Nov  1 01:49:53 <サーバー名> postfix/qmgr[1691]: 498E0AAD502: from=<info@example.com>, size=1162, nrcpt=1 (queue active)
Nov  1 01:49:55 <サーバー名> postfix/smtp[21461]: 498E0AAD502: host gmail-smtp-in.l.google.com[64.233.189.26] said: 452-4.2.2 The email account that you tried to reach is over quota. Please direct 452-4.2.2 the recipient to 452 4.2.2  https://support.google.com/mail/answer/6558 ut7si19931013pac.233 - gsmtp (in reply to RCPT TO command)
Nov  1 01:49:55 <サーバー名> postfix/smtp[21461]: 498E0AAD502: to=<shan.rock.s19.8.5@gmail.com>, relay=alt1.gmail-smtp-in.l.google.com[74.125.25.27]:25, delay=374333, delays=374330/0.92/1.5/0.18, dsn=4.2.1, status=deferred (host alt1.gmail-smtp-in.l.google.com[74.125.25.27] said: 450-4.2.1 The user you are trying to contact is receiving mail at a rate that 450-4.2.1 prevents additional messages from being delivered. Please resend your 450-4.2.1 message at a later time. If the user is able to receive mail at that 450-4.2.1 time, your message will be delivered. For more information, please 450-4.2.1 visit 450 4.2.1  https://support.google.com/mail/answer/6592 c10si19947438pat.217 - gsmtp (in reply to RCPT TO command))

4.2.2」は「メールボックスの容量がいっぱい」というエラー。https://support.google.com/mail/answer/6558に対処法が書いてあるよとのこと。

続く「4.2.1」は「ホストから応答がない」というエラー。長々書いてあるが当該アドレスへのメール送信が異常に多いため制限にかかり配信が停止しているとのこと。こちらはhttps://support.google.com/mail/answer/6592を参照とのこと。調べるとGmailには以下の制限があるようです。

Gmailの受信制限

1 分あたり 60
1 時間あたり 3,600
1 日あたり 86,400

このようなエラーが発生する場合は大抵スパムメールが原因。

このログの例ではアクティベーション用のメールが配信エラーになり、繰り返し上のアドレスに送信を試みているという状況でした。
同じようなスパム行為を同じアドレスで繰り返すため、制限にかかっているという流れ。

この場合は永遠施行され続けるので、Dovecotで送信ミスをした場合に何回施行するか制限をかける必要があります。
再送に関する一連の流れは「Postfixの再送設定はデフォルトだとちょっとお人よしですよ | clicktx::Tech::Memo」で解説されています。

失敗から再送までのpostfixの動きは、
送信失敗
deferredに入れる
queue_run_delay(1000秒)毎にdeferredをチェック
minimal_backoff_time(1000秒)を超えるメールがあれば送信
また失敗したらminimal_backoff_timeの倍(2000秒)の時間後に再送
またまた失敗したらminimal_backoff_timeの倍の倍(4000秒)の時間後に再送
maximal_backoff_time(4000秒)を超えるまでこれを繰り返し
maximal_backoff_timeを超えてしまったら、maximal_backoff_time間隔で再送
maximal_queue_lifetime(5日)を超えてしまったら再送をあきらめる
bounce_queue_lifetime(5日)を超えたら送信もとにエラーメール送信

とのこと。変更するには以下のようにする。

$ vi /etc/postfix/main.cf
minimal_backoff_time = 100s
maximal_backoff_time = 600s
maximal_queue_lifetime = 24h
bounce_queue_lifetime = 24h
queue_run_delay = 100s

SASL認証まではあっていてもログインに失敗して接続制限になるログ

Oct 31 18:17:57 <サーバー名> postfix/smtpd[29877]: warning: rrcs-24-227-238-86.sw.biz.rr.com[24.227.238.86]: SASL LOGIN authentication failed: authentication failure
Oct 31 18:17:58 <サーバー名> postfix/smtpd[29877]: lost connection after AUTH from rrcs-24-227-238-86.sw.biz.rr.com[24.227.238.86]
Oct 31 18:17:58 <サーバー名> postfix/smtpd[29877]: disconnect from rrcs-24-227-238-86.sw.biz.rr.com[24.227.238.86]
Oct 31 18:21:18 <サーバー名> postfix/anvil[29879]: statistics: max connection rate 10/60s for (smtp:24.227.238.86) at Oct 31 18:17:40
Oct 31 18:21:18 <サーバー名> postfix/anvil[29879]: statistics: max connection count 1 for (smtp:24.227.238.86) at Oct 31 18:12:29
Oct 31 18:21:18 <サーバー名> postfix/anvil[29879]: statistics: max cache size 1 at Oct 31 18:12:29

warning: rrcs-24-227-238-86.sw.biz.rr.com[24.227.238.86]」からSASLでログインを試みられるが、エラーでログインできていない。
この場合のエラーはSASLの設定と異なる認証方法でログインしようとしても表示される。
anvilオプションmax connection rate 10/60sに引っかかって以降遮断される。

どんなUserIDでログインを試みたかは「/log/message」で見ることができる。

正しいIDとパスワードでこのエラーが出る場合は「/usr/lib/sasl2/smtpd.conf」で「mech_listにplain」があるか調べる。もしくは「sasldbの設定」を調べる。

不明なホストからだと以下のようになる

Nov 27 00:44:13 <サーバー名> postfix/smtpd[32285]: connect from unknown[199.76.14.162]
Nov 27 00:44:13 <サーバー名> postfix/smtpd[31732]: lost connection after AUTH from unknown[199.76.14.162]
Nov 27 00:44:13 <サーバー名> postfix/smtpd[31732]: disconnect from unknown[199.76.14.162]

この場合は「mastar.cf」のsmtpsの設定に以下の行を追加すると不明なホストからのloginを拒否できる。(行頭スペースは意味があるので削除しないこと)

  -o smtpd_reject_unlisted_sender=yes

暗号化方式が異なるためSSLが失敗する場合のログ

Nov 22 07:47:49 <サーバー名> postfix/smtpd[3098]: SSL_accept error from census12.shodan.io[71.6.165.200]: -1
Nov 22 07:47:49 <サーバー名> postfix/smtpd[3098]: warning: TLS library problem: 3098:error:1408A0C1:SSL routines:SSL3_GET_CLIENT_HELLO:no shared cipher:s3_srvr.c:1352:
Nov 22 07:47:49 <サーバー名> postfix/smtpd[3098]: lost connection after CONNECT from census12.shodan.io[71.6.165.200]
Nov 22 07:47:49 <サーバー名> postfix/smtpd[3098]: disconnect from census12.shodan.io[71.6.165.200]

エラーの重要部分は「no shared cipher」という部分。
TLSでハンドシェイクしたにもかかわらず共通鍵を相手が持っていない。つまりハンドシェイクが失敗している。

通常一般的な設定ならメーラーがpostfixの認証形式に対応していないことは考えにくい。そのため何らかの程度の低いスパムによるアクセスと思われる。

相手側がpostfixで設定したTLSの暗号化形式に対応していない場合も表示される。
AES128-SHAやRSA ciphersなど、クライアント側が対応している認証形式を確認する。

ClamSMTPのテンポラリファイルにアクセス出来ない場合のログ

Nov 28 20:57:57 <サーバー名> clamsmtpd: 100001: couldn't open cache file: Permission denied

恐らく以下のディレクトリやファイルにアクセスできないのが原因。

ClamAddress: /var/run/clamav/clamd.sock
TempDirectory: /var/lib/clamd.clamsmtp

実行ユーザーと権限、設定が正しいか確認する。

CLAMAV-ERRORでメールが転送できない場合のログ

hoge@gmail.comからpiyo@example.comへメールを送信するがCLAMAV-ERRORでメールが届かず、キューに入ったまま

Nov 28 20:38:54 <サーバー名> postfix/smtpd[6690]: connect from mail-wm0-f44.google.com[74.125.82.44]
Nov 28 20:38:56 <サーバー名> postfix/smtpd[6690]: 9CF45AAD312: client=mail-wm0-f44.google.com[74.125.82.44]
Nov 28 20:38:57 <サーバー名> postfix/cleanup[6695]: 9CF45AAD312: message-id=<CAEmiW_Ccv8-pUCmWM_XD+=Xm4udh5SMcirdwa333cqxwcv4H6g@mail.gmail.com>
Nov 28 20:38:57 <サーバー名> postfix/qmgr[6646]: 9CF45AAD312: from=<hoge@gmail.com>, size=1661, nrcpt=1 (queue active)
Nov 28 20:38:57 <サーバー名> clamsmtpd: 100000: accepted connection from: 127.0.0.1
Nov 28 20:38:57 <サーバー名> postfix/smtpd[6698]: connect from localhost[127.0.0.1]
Nov 28 20:38:57 <サーバー名> postfix/smtpd[6698]: 58219AAE105: client=mail-wm0-f44.google.com[74.125.82.44]
Nov 28 20:38:57 <サーバー名> clamsmtpd: 100000: unexepected response from clamd: /var/lib/clamd.clamsmtp/clamsmtpd.KAfNJa: Excluded
Nov 28 20:38:57 <サーバー名> clamsmtpd: 100000: from=hoge@gmail.com, to=piyo@example.com, status=CLAMAV-ERROR
Nov 28 20:38:57 <サーバー名> postfix/smtpd[6690]: disconnect from mail-wm0-f44.google.com[74.125.82.44]
Nov 28 20:38:57 <サーバー名> postfix/smtp[6696]: 9CF45AAD312: to=<piyo@example.com>, relay=127.0.0.1[127.0.0.1]:10025, delay=1.7, delays=1.5/0.11/0.07/0.01, dsn=4.0.0, status=deferred (host 127.0.0.1[127.0.0.1] said: 451 Local Error (in reply to end of DATA command))
Nov 28 20:38:57 <サーバー名> postfix/smtpd[6698]: disconnect from localhost[127.0.0.1]

unexepected response from clamd: /var/lib/clamd.clamsmtp/clamsmtpd.KAfNJa: Excluded」となっている。不明な応答とのこと。

clamsmtpdで「status=CLAMAV-ERROR」と出ている。

status=deferred」はステータスで延期を意味している。
said: 451 Local Error (in reply to end of DATA command)」は、一時的な無効なコマンドを意味している。

こういった意味不明なエラーの場合は、ClamAVやPostfix系のエラーではない。ディレクトリの権限が誤っていたり、設定が誤っている場合のエラーは専用のエラー表示が用意されていることがほとんど。


以上maillogの見方でした。

メールサーバは専門的な知識が必要でエラー時に原因を究明するのは骨が折れます。この投稿がお役に立てたら幸いです。



現在のページを共有する



現在のページに関連する記事


おすすめの記事


コメントを残す

プログラミングに関する質問は「日本語でプログラミングの悩みを解決するQ&Aサイト sukegra」をご利用ください。面倒な登録なしでご利用になりれます。