Postfixのログに記録される「postfix/smtp[7148]」の「smtp」プロセスが担当する処理として正しいものはどれですか?
解説
Postfixにおける smtp プロセスは、キューに入ったメールを外部の宛先MTA(Mail Transfer Agent)へSMTPプロトコルで送り出す「送信側クライアント」です。名前が紛らわしいのですが、外部からSMTP接続を受け付けて受信する役割は別プロセスの smtpd(末尾に d が付く)が担います。選択肢Cのローカル配送は local プロセス、選択肢Dのヘッダ書き換えは cleanup プロセスの仕事です。smtpとsmtpdを混同しないためにPostfixは機能ごとに独立したプロセスへ分離するアーキテクチャを採用しています。ログを読むときに最も混乱しやすいのが smtp と smtpd の違いです。smtpd — SMTP daemon(サーバ)。ポート25/587で外部やローカルのクライアントからの接続を待ち受け、メールを受け取ってキューに投入するsmtp — SMTP client。キューマネージャ(qmgr)から指示を受け、外部サーバへメールを送信する末尾の d = daemon(待ち受ける側) と覚えると区別しやすくなります。ログの読み方と実務での活用ログ行の形式は postfix/コンポーネント名[PID] です。例えば次のようなログが出た場合:postfix/smtp[7148]: connect to example.com[93.184.216.34]:25: Connection timed outこれは自サーバから example.com への送信が失敗したことを意味します。もし postfix/smtpd のログであれば、外部から自サーバへの受信接続に関するメッセージです。メール障害の調査では、まずコンポーネント名を見て「送信側の問題か受信側の問題か」を切り分けるのが基本です。Postfixの主要プロセスには他にも pickup(sendmailコマンド経由のメール取得)、bounce(バウンスメール生成)、anvil(接続レート制限)などがあり、それぞれ master.cf で起動条件やオプションを設定します。各プロセスが単一責任で動くため、問題の切り分けがしやすく、必要なプロセスだけ再起動できるのがPostfixの設計上の強みです。