プロジェクト

全般

プロフィール

Postfixで特定ドメインへの配送保留を行う

Postfixでメールは受け付けるが配送のみ保留する設定を行う
(一時的に本番メールサーバを停止させる場合のスプールなどで使う)

前提条件

Postfixは既に単体動作が可能なこと。

設定ファイル編集

  • 次の設定ファイルを編集します。
    # vi /etc/postfix/main.cf
    # ------------------------------------------------------
    # 受信時の挙動を編集
    smtpd_recipient_restrictions =
      permit_mynetworks,
      reject_unauth_destination,
      check_recipient_access hash:/etc/postfix/hold
    
    
  • 転送先ルーティングファイルを作成
    # vi /etc/postfix/hold
    -----------------------------
    mail1.example.com   HOLD
    mail2.example.com   HOLD
    
    
  • 転送先ルーティングファイルのDB作成
    # postmap /etc/postfix/hold
    
  • postfixを再読み込み
    # systemctl reload postfix
    

動作確認

  • 次のコマンドが正しく実行されるかテストする。
    # telnet 192.168.10.254
    EHLO example.com
    mail from: user@example.com
    rcpt to: user@mail1.example.com
    data
    subject: test
    test
    .
    quit
    ※宛先数分繰り返す
    
  • メールが保留されていること(キューIDに!が付加されている)
    # mailq
    -Queue ID- --Size-- ----Arrival Time---- -Sender/Recipient-------
    キューID!      1842 Tue Jan 22 06:06:00  user@example.com
                                             user@mail1.example.com
    
    
  • 保留解除を行う。末尾の!は符号のためIDには含めず指定する。
    # postsuper -H キューID
    
  • 再送時間まで待つ、またはすぐに再送を試みる
    # すべて再送する
    # postqueue -f
    または個別に再送する
    # postqueue -i キューID
    
  • 宛先に転送されること

 

戻る