【メールサーバー構築 付録】トラブルシューティング&運用テクニック総まとめ – エラーログの解読から自動メンテナンスまで

サーバーは「作ってから」が本番

こんにちは!「リナックス先生」です。
全5回のメールサーバー構築講座、本当にお疲れ様でした。これであなたの手元には、Gmailとも対等に渡り合える最強のメールサーバーがあるはずです。

【連載】Postfix+Dovecotで作る 最強のセキュアメールサーバー構築
コウ君

先生、サーバーは快調です!
でも、もし明日急にメールが送れなくなったらどうしよう…って少し不安です。
エラーが出た時、どこを見ればいいのか、どうやって直せばいいのか、プロの技を教えてください!

リナックス先生

いい心がけね。
メールサーバーはWebサーバー以上に繊細で、DNSの些細な変更やディスク容量不足で簡単に止まってしまうわ。
今回は、私が現場で実際に使っている「トラブルシューティングの極意」「運用自動化のスクリプト」を全部伝授するわ。
これをブックマークしておけば、深夜の障害対応も怖くないわよ!

1. ログ解析の極意:エラーメッセージを解読せよ

何かあったら、まずはログです。メールサーバーのログは非常に饒舌で、原因のすべてを語ってくれます。

ログの場所と見方

AlmaLinux / RHEL系: /var/log/maillog
Ubuntu / Debian系: /var/log/mail.log

# リアルタイムで監視する(基本中の基本)
tail -f /var/log/maillog

よくあるエラーキーワード集

ログの中に以下の単語が出てきたら、それが原因です。

キーワード 意味と対処法
Relay access denied 不正中継拒否: 認証設定(SMTP-Auth)が間違っているか、mynetworks の設定ミスです。スマホ側のパスワード設定も再確認を。
Connection timed out 接続タイムアウト: 相手サーバー(Gmail等)に繋がりません。25番ポートがブロックされている(OP25B)か、相手がダウンしています。
Certificate verification failed 証明書エラー: SSL証明書が期限切れか、設定パスが間違っています。
Helo command rejected ホスト名拒否: 相手サーバーから「お前の名乗り(HELO)は怪しい」と拒否されました。DNSの逆引き設定を確認してください。
Over quota 容量オーバー: メールボックスがいっぱいです。不要なメールを削除してください。

2. 通信テストの極意:OpenSSLを使え

「メールソフトの設定が悪いのか、サーバーが悪いのか分からない」という時は、サーバー内部からコマンドで接続テストを行います。
昔は telnet を使いましたが、今は暗号化(SSL/TLS)が必須なので openssl コマンドを使います。

SMTP(送信)のテスト

587番ポート(Submission)に接続し、STARTTLSが機能しているか確認します。

# 接続コマンド
openssl s_client -connect mail.example.com:587 -starttls smtp

# 成功すると証明書情報が表示され、最後にこう出ます
250 DSN

ここでエラーが出る場合、Firewallでポートが閉じているか、PostfixのTLS設定(証明書のパスなど)が間違っています。

IMAP(受信)のテスト

993番ポート(IMAPS)に接続してみます。

# 接続コマンド
openssl s_client -connect mail.example.com:993

# 成功すると証明書情報が表示され、最後にこう出ます
* OK [CAPABILITY...] Dovecot ready.

3. メールキューの管理:詰まりを解消せよ

メールサーバーは、送信に失敗してもすぐには諦めず、一旦「キュー(待ち行列)」に保存して再送を試みます。
しかし、トラブル時やスパム攻撃を受けた時、このキューが数千件溜まってしまい、正常なメールまで届かなくなることがあります。

キューの状態確認

# キューの一覧を表示
postqueue -p

# 末尾に件数が表示されます
-- 25 Kbytes in 5 Requests.

キューの強制再送と削除

「設定を直したから、今すぐ再送させたい」という場合。

# 全てのキューを即時再送
postqueue -f

「スパムでキューが溢れた! 全部消したい!」という場合(※正常なメールも消えるので注意)。

# 全てのキューを削除
postsuper -d ALL

# 特定のドメイン宛てのみ削除(上級テクニック)
# 例:gmail.com 宛てを削除
mailq | tail -n +2 | grep -v '^ *(' | awk 'BEGIN { RS = "" } { if ($8 == "gmail.com") print $1 }' | tr -d '*!' | postsuper -d -

4. 証明書更新の自動化:期限切れを防ぐ

Let’s Encryptの証明書は90日で切れます。certbot renew コマンドで更新自体はされますが、「更新した後にPostfixとDovecotを再読み込み」しないと、古い証明書を使い続けてしまい、ある日突然エラーになります。

Deploy Hookの設定

Certbotには「更新成功時にスクリプトを実行する」機能があります。
/etc/letsencrypt/renewal-hooks/deploy/ ディレクトリにスクリプトを置きます。

vi /etc/letsencrypt/renewal-hooks/deploy/reload_mail_services.sh

内容:

#!/bin/bash
# 証明書が更新されたらメールサーバーをリロード
systemctl reload postfix
systemctl reload dovecot

実行権限を付与します。

chmod +x /etc/letsencrypt/renewal-hooks/deploy/reload_mail_services.sh

これで完全自動運用が可能になります。

5. ログローテーション:ディスクを守る

メールサーバーのログは膨大です。放置するとディスクがいっぱいになり、サーバーが停止します。
logrotate の設定を確認・調整しましょう。

設定ファイル: /etc/logrotate.d/syslog (またはrsyslog)

/var/log/maillog
/var/log/messages
/var/log/secure
{
    daily          # 毎日ローテーション
    rotate 30      # 30日分保存
    compress       # 圧縮する
    missingok
    sharedscripts
    postrotate
        /usr/bin/systemctl kill -s HUP rsyslog.service >/dev/null 2>&1 || true
    endscript
}

もしログが多すぎる場合は、rotate 30rotate 7 に減らすなどの対策をとります。

6. 便利な運用テクニック集

エイリアス(転送)の設定

root 宛のメールを自分のGmailに転送したい」「info@ を作って kou-kun@ に転送したい」という場合、ユーザーを増やさずにエイリアスで対応できます。

ファイル: /etc/aliases

# 追記例
root:    kou-kun@example.com
info:    kou-kun
contact: kou-kun

編集後は必ずコマンドを実行して反映させます。

newaliases

Dovecotのインデックス破損修復

稀に、メールはあるのにメーラーで見られない(インデックスが壊れる)ことがあります。
その場合は、ユーザーのMaildir内のインデックスファイルを削除して再構築させます。

rm -f /home/kou-kun/Maildir/dovecot.index*

次回アクセス時に自動で再生成されます。


講座完結:あなたはもう「プロ」です

全5回と付録、これにてメールサーバー構築講座は完全終了です。
DNSの設計から始まり、Postfix/Dovecotの構築、セキュリティ強化、そしてトラブルシューティングまで。
あなたが手に入れたこの知識は、Linuxエンジニアとして非常に価値の高いものです。

コウ君

先生、長い間ありがとうございました!
この付録記事、プリントアウトしてモニターの横に貼っておきます。
トラブルが起きても、まずは「ログを見る」ことから始めますね。
自分で作ったサーバー、大切に育てていきます!

リナックス先生

ええ、頼もしくなったわね。
メールサーバーを運用できれば、WebサーバーやDBサーバーの運用なんて怖くないわ。
もしまた新しい技術が出てきたら、いつでもここに戻ってきなさい。
Good Luck!

▼長期安定運用に最適なVPS

メールサーバーは一度作ると数年は使い続けるものです。OSのサポート期間が長く、ハードウェアの信頼性が高い、長期運用に最適なVPSを選びましょう。

【2026年最新】Linuxサーバー構築におすすめのVPS比較3選!現役エンジニアが速度とコスパで厳選
Linuxの勉強、まだ「自分のPC」でやって消耗していませんか?「Linuxを覚えたいけど、環境構築でエラーが出て先に進めない…」「VirtualBoxを入れたらパソコンが重くなった…」これは、Linux学習を始める9割の人がぶつかる壁です...

コメント