後置 は、IBMT.JのWietseVenemaによって設計された効率的で機能豊富なメールサーバーです。ワトソン研究センター。これは、人気のあるsendmailの代わりになることを目的としていました。 Sendmailは長年にわたって最も人気のあるメールサーバーでしたが、Postfixの人気は、そのシンプルな構成、歴史的に安全な実装、および高性能アーキテクチャにより、Sendmailの人気を超えて成長した可能性があります。また、Postfixはsendmailのように外向きに動作するように設計されているため、ほとんどの場合、古くて大きくて遅いメールサーバーのドロップイン代替品です。 sendmailのあいまいな機能の一部が欠けていますが、欠けている機能が大多数のユーザーによって使用されることはめったにないため、見逃されることはほとんどありません。また、他のメールサーバーにはない独自の追加機能がいくつかあります。
- Postfixメールサーバー
もともとVMailerという名前のPostfixプロジェクト(幸いなことに、VMailer名の法的な絡み合いのため、リリース前に名前が変更されました)は、関連するが個別の実行可能コンポーネントのグループとして設計され、セグメンテーションを通じてセキュリティを提供します。パーツが小さいほど、デバッグも簡単です。 Postfixのインターネットホームはwww.postfix.orgです。 Postfixは新しいメール管理者にとって理想的なメールサーバーの選択であり、経験豊富なSendmail管理者でさえそのシンプルさが魅力的だと感じるかもしれません。非常に互換性のあるSendmail風の外観を提供し、同じ名前のプログラム(sendmail
など)を提供するためです。 メール送信の場合、mailq
キューの管理など)、Sendmailが使用するのと同じタイプのエイリアスと転送ファイルを利用できるため、既存のメール関連ツールを再構成したり、ローカルスクリプトを書き直したりせずに、Sendmailを置き換えることができます。このような切り替え後、ローカルユーザーは違いに気付かない場合があります。
コンテンツ
一般オプション
一般オプション ページは、Postfixの一般的な動作に関するいくつかのオプションを構成します。具体的には、すべてのユーザーとすべてのメッセージに影響を与えるほとんどの構成オプションがここで構成されます。 Postfixは、その単純さの哲学に沿って、メールサーバーを効率的かつ安全に実行するために、通常、わずかな構成ファイルの変更のみを必要とします。
一般オプション ページは2つの部分に分かれています。上部のセクションには、最も便利な一般オプションというラベルが付いています。 および下部のセクションその他の一般的なオプション 。多くの標準的なインストールでは、上部の3つのディレクティブのうちの1つ以上を設定するだけでPostfixインストールを開始できる場合があります。特に明記されていない限り、このページのすべてのオプションは、main.cf
のディレクティブに対応しています。 Postfix設定ディレクトリのファイル。
最も便利な一般オプション
このセクションの3つのオプションは、一部のインストールでは、メールの送信と受信の両方でPostfixを実行するために変更する必要がある唯一のオプションです。
- 最も便利な一般オプション
- 送信メールで使用するドメイン
- ここで、送信メールの送信元を識別するために使用するドメインまたはホスト名を指定できます。 Postfixはデフォルトでサーバーのホスト名を使用しますが、ほとんどの場合、代わりにドメイン名からのメールとして識別したいと思うでしょう。メールサーバーが単一のドメイン名で多数のユーザーのメールを受け入れる場合は、ここでドメイン名を構成し、ドメイン全体のエイリアスデータベースを作成して、ユーザー名をそれぞれのローカルメールサーバーにマッピングします。このオプションは、
myorigin
に関連しています Postfixディレクティブ。 - メールを受信するドメイン
- このオプションは、最終的な宛先としてメールを受信するためのドメインとアドレスのリストを受け入れます。つまり、メールがこのフィールドのアドレス宛てのサーバーに到達すると、メールは別のメールサーバーに転送されるのではなく、ローカルユーザーに配信されます。デフォルトでは、これはマシン上に構成されているすべてのアドレスと
localhost
です。 ローカルドメイン内。ドメインまたはホスト名をコンマで区切っていくつでも指定できます。または、同様のエントリを含むファイルへのフルパスを指定することもできます。変数$myhostname
および$mydomain
これらの概念をPostfixに自動的に表すために使用できます。構成ファイル全体でこのような変数を使用するPostfixの機能により、非常に類似した構成で多数のPostfixサーバーを保守しやすくなります。このオプションは、mydestination
に関連しています ディレクティブ。 - 郵便局長に報告するのにどのような問題がありますか
- Postfixは、指定された postmasterにメールで送信されるエラーメッセージの種類を選択する機能を提供します。 メールサーバーの。
postmaster
を設定したと仮定します 実在の人物にメールを送信するエイリアスであるPostfixは、ここで指定されたすべてのタイプのトラブルのレポートを送信します。使用可能なクラスは次のとおりです。bounce
- このオプションを選択すると、メッセージが配信不能になるたびに、バウンスメッセージ(シングルバウンスメッセージと呼ばれます)が表示されます。 メッセージの送信者とローカルのポストマスターに送信されます。プライバシー保護のため、メッセージではヘッダーのみがポストマスターに送信されます。送信者への最初のバウンスが配信不能として返される場合、ダブルバウンスメッセージ 最初の単一のバウンスメッセージの内容全体とともにポストマスターに送信されます。
-
2bounce
- ダブルバウンスメッセージがポストマスターに送信されます。
delay
- メッセージの配信が遅れた場合、ポストマスターは遅れたメッセージのヘッダーとともに通知を受け取ります。
policy
- 迷惑な商用電子メールポリシーの制限のために拒否されたメッセージをポストマスターに通知します。 SMTPセッションの完全なトランスクリプトが送信されます。
protocol
- プロトコルエラー、または実装されていないコマンドを含むクライアント要求をポストマスターに通知します。 SMTPセッションの完全なトランスクリプトがメッセージに含まれています。
resource
- キューファイルの書き込みエラーなどのリソースの問題が原因で未配信のメールをポストマスターに通知します。
software
- ソフトウェア障害のためにメールが配信されなかったことをポストマスターに通知します。
このオプションは、notify_classes
と相関関係があります ディレクティブであり、デフォルトでは、構成の誤りまたは重大な問題を通常示す問題(具体的にはresource
)のみを報告します。 およびsoftware
)。一部の高負荷環境では、これを変更してバウンス通知を含めると、多数の通知が発生する可能性があります。問題のトラブルシューティングを除いて、このオプションを変更する必要はほとんどありません。
その他の一般的なオプション
このページの下部は、変更する必要が少ないグローバルオプションに専念しています。多くのインストールでは、これらのオプションはデフォルトのままになります。
- その他の一般的なオプション
- 送信メールを送信する
- このオプションは、送信メールを受信者のメールサーバーに直接配信するか、親メールゲートウェイを仲介として使用するかを構成します。サーバーがファイアウォールの背後にある場合、ルーター/ゲートウェイを変換するネットワークアドレスの背後にある場合など、信頼性の高いサービスを実現するために中間サーバーを使用する必要がある場合があります。インターネット上の多くのメールサーバーは、偽造されたアドレスからのスパムを防ぐために、有効なDNSエントリとルーティング可能なIPアドレスを持たないサーバーからのメールを受け入れません。また、ローカルネットワークの使用ポリシーでは、ロギング、ウイルススキャン、または中央サーバーへの送信メールトラフィックの集約を必要とするその他の目的で仲介者を使用する必要がある場合があります。このオプションは、
relayhost
に対応します ディレクティブであり、デフォルトでは、宛先ドメインのMX(メールエクスチェンジャー)レコードによって示されるメールサーバーに直接メールを送信します。 - 各メッセージのbccを受信するアドレス
- このオプションを使用すると、ローカルで生成されたバウンスメッセージを除き、Postfixシステムに入るすべてのメッセージのコピーを受信するオプションの電子メールアドレスを指定できます。これは多くの状況でプライバシーの侵害を表す可能性があり、一部の国では違法である可能性があります。このオプションの利用には特に注意することをお勧めします。ただし、電子メールの中央アーカイブが法的または技術的な理由で価値がある場合は、一部の環境で役立ちます。このオプションは、
always_bcc
と相関関係があります ディレクティブで、デフォルトはnoneです。 - リクエスト処理のタイムアウト
- このオプションは、Postfixデーモンが要求の完了を待機してから、デーモンがロックアップしたと見なすまでの時間を決定します。その時点で、デーモンは強制終了されます。このオプションは
daemon_timeout
に対応します ディレクティブで、デフォルトは18000秒です。 - デフォルトのデータベースタイプ
- このオプションは、
postalias
で使用するデータベースのタイプを決定します およびpostmap
コマンド。このオプションは、default_database_type
に対応します ディレクティブとデフォルトは、Postfixのビルド時にOSとインストールされているシステムライブラリによって異なります。通常、UNIXシステムでは、これはhash
になります。 またはdbm
。 - デフォルトのメッセージ配信トランスポート
- 配送輸送という用語 あるメールサーバーから別のメールサーバーにメッセージを配信するために使用されるプロトコルまたは言語を指します。最新のシステムでのトランスポートは、ほとんどの場合
smtp
、これはPostfixのデフォルトですが、まだいくつかのレガシーuucp
があります 使用中のシステム。オプションのトランスポートテーブルで宛先にトランスポートが明示的に選択されていない場合、このオプションは単なるデフォルトの選択です。このオプションは、default_transport
に対応します ディレクティブ。 - バウンスメールの送信者アドレス
- メッセージがダブルバウンスする場合、または最初に受信者からバウンスし、最初のバウンス通知が送信されたときに送信者からバウンスする場合、メッセージはこのアドレスに送信されます。このアドレスへのすべてのメッセージは黙って破棄されます。このようにして、バウンスループを回避できます。このオプションは、
double_bounce_sender
と相関関係があります ディレクティブで、デフォルトはdouble-bounce
。名前は任意の名前にすることができますが、一意である必要があります。 - キューディレクトリの下のサブディレクトリレベルの数
- このオプションは、設定されたキューディレクトリの下のサブディレクトリレベルの数を設定し、Postfixがメールストレージに使用します。一部の古いBSDおよびその他の古いUNIXファイルシステムで使用されるUFSを含む従来のUNIXファイルシステムの設計により、非常に多くのファイルが1つのディレクトリに格納されると、パフォーマンスが大幅に低下します。したがって、多数のファイルを生成するプログラムは、多くの場合、ファイルをいくつかのサブディレクトリに分割して、ルックアップを高速に保つ機能を提供します。このオプションは、
hash_queue_depth
と相関関係があります ディレクティブで、デフォルトは2です。これは、ほとんどの中規模および比較的大規模なインストールに適しています。使用中のディレクトリの数によってオブジェクトシークの検索時間が長くなるため、ここで高すぎる値を使用すると、パフォーマンスが低下する可能性があります。このオプションと次のオプションは、パフォーマンスを大幅に低下させることなく何百万ものファイルを処理する最新のファイルシステム設計によって、ほとんど無関係になっています。 - サブディレクトリに分割されたキューディレクトリの名前
- Postfixは多数のキューを使用して、さまざまな状態と宛先のメッセージを整理します。これらの各キューは、ハッシュ化されたサブディレクトリを使用するかどうかを構成できます。ここでキューを選択すると、ハッシュ化されたサブディレクトリに保存されます。場合によっては、パフォーマンスに深刻な影響を与えるため、ここにキューがリストされていないことがあります。具体的には、誰でも書き込み可能なメールドロップディレクトリです。一方、遅延ログファイルディレクトリはハッシュ化されたディレクトリに保存する必要があります。そうしないとパフォーマンスが低下します。このオプションは、
hash_queue_names
に対応します ディレクティブとデフォルトはincoming,active,deferred,bounce,defer,flush
また、最新のシステムでこの構成を変更する必要や有益なことはめったにありません。 - 受信した
Received:
ヘッダー - より多くの
Received:
を含むメッセージ これよりもヘッダーはバウンスします。このヘッダーの数が非常に多い場合は、このメッセージのパスのどこかにメールループまたは誤って構成されたメールサーバーがあることを示している可能性があります。このオプションは、hopcount_limit
と相関関係があります ディレクティブで、デフォルトは50です。この値をデフォルトから変更する必要はほとんどありません。 - 配信されないという警告を送信するまでの時間(時間単位)
- メッセージをすぐに配信できない場合は、後で配信するためにキューに入れられます。この時間数が経過してもメッセージを配信できない場合は、サーバーが指定された時間メッセージを送信できなかったことを通知する警告が送信者に送信されます。これは、
delay_warning_time
と相関関係があります ディレクティブであり、デフォルトでは警告を送信しません。 - メールを受信するためのネットワークインターフェース
- このオプションは、Postfixがメール配信を受け入れるネットワークアドレスを構成します。デフォルトでは、Postfixはすべてのアクティブなインターフェースでメールを受け入れます。ここで、Postfixは前に説明した変数を受け入れます。このオプションは、
inet_interfaces
を構成します ディレクティブ。 - 内部IPCクライアントが切断された後のアイドル時間
- このオプションは、内部IPCクライアントが切断されるまでの時間を秒単位で設定します。これにより、サーバーは自発的に終了できます。この機能は、アドレス解決および書き換えクライアントによって使用されます。このオプションは、
idle_time
と相関関係があります ディレクティブで、デフォルトは100です。このオプションは、通常の状況ではおそらく変更する必要はありません。 - 内部通信チャネルでのI/Oのタイムアウト
- このオプションは、サーバーが中断する前に内部通信チャネルでI/Oを待機する時間を秒単位で決定します。タイムアウトを超えると、サーバーは致命的なエラーで異常終了します。このディレクティブは、
ipc_timeout
に対応します ディレクティブで、デフォルトは3600秒または60分です。 - メールシステム名
- このオプションは、接続ユーザーに使用されているメールサーバーシステムを識別します。
smtpd_banner
で使用されます これはReceived:
で送信されます ヘッダー、SMTPグリーティングバナー、およびバウンスメール。隠すことでセキュリティを促進するセキュリティ専門家の中には、すべてのサーバーソフトウェアを匿名化して、潜在的なクラッカーがサーバーで使用されているソフトウェアを識別できないようにすることを提案している人もいます。ほとんどの環境では、管理者の時間や労力を最大限に活用することはおそらく適切ではありませんが、ソフトウェアの問題を追跡する機能に悪影響を与えることなく、他の多くのセキュリティ戦術がより効果的です。このオプションは、mail_name
に関連しています ディレクティブで、デフォルトはPostfix
。 - メールの所有者
- このオプションは、Postfixメールキューの所有者とほとんどのPostfixデーモンプロセスを指定します。このユーザーはシステム上で一意である必要があり、他のアカウントとグループを共有したり、システム上の他のファイルやプロセスを所有したりしないでください。 SMTPポート(25)にバインドした後、postfixはroot権限を削除し、すべての新しいデーモンプロセスに対してここで指定されたユーザーになることができます。このため、Postfixデーモンが危険にさらされた場合、悪用者はメールと他のいくつかのファイルにしかアクセスできなくなります。もちろん、これも回避するのは良いことですが、エクスプロイトがシステム上のあらゆるものにアクセスして変更できるようにするルートエクスプロイトよりも確かに優れています。このオプションは、
mail_owner
に関連しています ディレクティブで、デフォルトはpostfix
。 - 公式メールシステムバージョン
- このパラメータは、特にSMTPグリーティングバナーでPostfixによって報告されるバージョン番号を設定します。これは、
mail_version
と相関関係があります ディレクティブであり、デフォルトでインストールされているPostfixのバージョンになります。繰り返しになりますが、隠すことによるセキュリティは、この価値の難読化を促進する可能性があります。 - 次のサービスリクエストを待つ時間
- Postfixデーモンプロセスは、その時間内に新しいサービス要求を受信しない場合、ここで指定された時間後に終了します。このオプションは、
max_idle
に対応します ディレクティブで、デフォルトは100s
。このディレクティブは、キューマネージャデーモンプロセスには影響しません。 - 終了する前に処理される最大サービスリクエスト
- このオプションは、単一のPostfixデーモンプロセスが終了する前に応答するリクエストの最大数を設定します。このオプションは、
max_use
を構成します ディレクティブで、デフォルトは100
。 - このメールシステムのインターネットホスト名
- このオプションは、メールサーバーのインターネットホスト名を指定します。デフォルトでは、この値は、
gethostname()
の呼び出しによって決定される、サーバーの完全修飾ホスト名に設定されます。 。このオプションは、$myhostname
を設定します 他の多くのオプションのデフォルトで使用される変数。このオプションは、myhostname
と相関関係があります ディレクティブ。 - ローカルインターネットドメイン名
- このオプションは
mydomain
に対応します ディレクティブであり、デフォルトは$myhostname
の内容です。 変数から最初のコンポーネントを引いたもの。このオプションは、$mydomain
を定義します 変数であり、他の多くの構成オプションのデフォルトで使用されます。 - ローカルネットワーク
- Postfixは、UCEやその他のメールサーバーの不正使用を防ぐのに役立つ柔軟なオプションのセットを提供します。このオプションは、Postfixによってローカルと見なされるネットワークを定義します。この値は、クライアントがローカルクライアントであるかリモートクライアントであるかを判別するために使用されます。ローカルクライアントのポリシーをより緩和できます。このオプションは、
mynetworks
を構成します ディレクティブであり、デフォルトではサーバーに接続されているすべてのネットワークのリストになります。たとえば、サーバーのIPが192.168.1.48で、ネットマスクが255.255.255.0の場合、すべての192.168.1.0ネットワークはローカルと見なされます。より厳密な制御、または他のネットワークブロックをローカルクライアントとして扱う機能が必要な場合は、ここでネットワーク/マスクペアの形式で指定できます(つまり、172.16.0.0/16
。ネットワーク/マスクのペアは、必要に応じて、ここでファイルへの絶対パスを指定することにより、別のファイルから挿入できます。 - バウンスに関するポストマスター通知を... に送信します
- このオプションは、バウンス通知の送信先となるユーザー名または電子メールアドレスを構成します。このオプションは、
bounce_notice_recipient
と相関関係があります ディレクティブであり、postmaster
に設定されています デフォルト。 - 2bounceのポストマスター通知を... に送信します
- このオプションは、2番目のバウンスメッセージの送信先となるユーザー名または電子メールアドレスを構成します。これにより、管理者は最初のバウンスメッセージよりも2番目のバウンス警告を注意深く監視できます。これは、最初のバウンスがはるかに一般的であり、重大な問題を示す可能性が低いためです。このオプションは、
2bounce_notice_recipient
を構成します ディレクティブで、デフォルトはpostmaster
。 - 遅延に関するポストマスター通知を... に送信します
- このオプションは、遅延警告が送信される場所を構成します。このオプションは、
delay_notice_recipient
と相関関係があります ディレクティブで、デフォルトはpostmaster
。 - エラーに関するポストマスター通知を... に送信します
- エラー警告の送信先を指定します。このオプションは、
error_notice_recipient
と相関関係があります ディレクティブで、デフォルトはpostmaster
。 - メールキューディレクトリ
- これは、Postfixがキューに入れられたメールを保存するディレクトリを指定します。これは、chroot環境で実行されるPostfixデーモンのルートディレクトリにもなります。キューは、配信を待機しているメッセージが格納される場所です。したがって、ユーザーのメールの負荷に対応するのに十分なスペースをこのディレクトリに提供する必要があります。このオプションは、
queue_directory
に関連しています。 ディレクティブであり、通常、デフォルトでOSの適切な場所に設定されます。多くのLinuxシステムでは、メールキューが/var/spool/mail
にあります。 または/var/spool/postfix
。 - キューディレクトリを基準にしたファイルディレクトリのロック
- このオプションは、Postfixロックディレクトリの場所を設定します。キューディレクトリを基準にして指定する必要があり、通常はキューディレクトリのサブディレクトリになります。このオプションは、
process_id_directory
を構成します ディレクティブで、デフォルトはpid
。 - ユーザー名と住所表示オプションの区切り文字
- このオプションは、ユーザー名とアドレス拡張子の間の区切り文字を指定します。このオプションは、
recipient_delimiter
と相関関係があります ディレクティブであり、デフォルトでは区切り文字を使用しません。このオプションは、標準マッピングに影響します 、再配置されたマッピング および仮想ドメイン 。 - Postfixサポートプログラムとデーモンディレクトリ
- このオプションは、Postfixがさまざまなサポートプログラムとデーモンを検索するディレクトリを指定します。ディレクトリは
root
が所有している必要があります 。このオプションは、program_directory
に関連しています。 ディレクティブとデフォルトは、インストール方法とOSのバリエーションによって異なります。多くのLinuxシステムでは、これは/usr/libexec/postfix
になります 。 - 再配置されたマッピングルックアップテーブル
- Postfixは、このサーバーからのメールを受信しなくなったユーザーに送信されたメッセージに応答して、再配置通知を提供できます。有効にすると、このオプションは、このシステムに存在しなくなったユーザーの連絡先情報のテーブルを含むファイルの場所を指定します。デフォルトでは、この機能は無効になっています。このオプションは、
relocated_maps
と相関関係があります 指令。有効になっている場合、このオプションの妥当な選択は/etc/postfix/relocated
である可能性があります 。 - メールボックスのカーネルファイルロックを無効にする
- Sunワークステーションでは、
mailtool
が原因で、カーネルファイルロックが問題を引き起こす可能性があります。 プログラムは、ウィンドウが開いているときは常に排他ロックを保持します。他のOSバリアントのユーザー、またはSunメールソフトウェアが使用されていないSunシステムのユーザーは、このオプションを無視できます。このオプションは、sun_mailtool_compatibility
と相関関係があります ディレクティブで、デフォルトはNo
。 - デーモンにトリガーを送信する最大時間
- このオプションは、Postfixデーモンにトリガーを送信できる最大時間を指定します。この制限は、メールシステムに非常に大きな負荷がかかっているときにプログラムがハングするのを防ぐのに役立ちます。このオプションは、
opts_trigger_timeout
と相関関係があります ディレクティブで、デフォルトは10s
。
アドレスの書き換えとマスカレード
Postfixは、比較的使いやすく柔軟なアドレス書き換えシステムを提供し、大規模なネットワークのメールゲートウェイとして、または従来のメールシステムとインターネット全体の間のゲートウェイとして機能できるようにします。
- アドレスの書き換えとマスカレード
注: | このページのオプションについては、PostfixホームページのPostfix設定-アドレス書き換えページでも説明されています。メールシステムで高度なアドレス書き換えが必要な場合は、一読する価値があります。 |
- 「user%domain」を「user@domain」に書き換えます
- このオプションは、 user%domain @ otherdomainなどの奇妙なアドレストリックを使用した一部のレガシーシステムに役立ちます。 。現代の環境では一般的には役に立ちませんが、害はないため、通常はデフォルトで
Yes
になります。 。このオプションは、allow_percent_hack
と相関関係があります ディレクティブ。 - 「user」を「user@$mydomain」に書き換えます
- このオプションは、Postfixが宛先にドメイン名を持たないアドレスを処理する方法を設定します。有効にすると、
$mydomain
の値が追加されます アドレスに。このオプションは、append_at_myorigin
と相関関係があります ディレクティブで、デフォルトはYes
。ほとんどのPostfixコンポーネントは、アドレスがuser@domain
の形式であると想定しているためです。 この機能を無効にすることはおそらく適切ではありません。 - 「user@host」を「user@host。$mydomain」に書き換えます
- このオプションは、単純なホストアドレスの値が
$mydomain
になるかどうかを構成します。 それらに追加されます。このオプションは、append_dot_mydomain
と相関関係があります ディレクティブで、デフォルトはYes
。一部の管理者は、この明示的な書き換えが予期しない結果をもたらすことに気付く場合がありますが、問題になることはめったにありません。 - 「site!user」を「user@site」に書き換えます
- レガシーUUCPネットワークは、最新のSMTPシステムとは異なるアドレス形式を使用します。このオプションを使用すると、Postfixは、標準のSMTPプロトコルを介して配信するために、古いスタイルのアドレスを最新のアドレスに変換できます。このオプションは、
swap_bangpath
を構成します ディレクティブで、デフォルトはYes
。 - 受信者が空のメールを送信する...
- は、配信できないメールの宛先を指定します。通常、これはバウンス通知やその他のエラーメッセージになります。このオプションは、
empty_address_recipient
と相関関係があります ディレクティブで、デフォルトはMAILER-DAEMON
、デフォルトでは、postmaster
の単なるエイリアスです。 。 - アドレスマスカレード
- アドレスマスカレードは、ゲートウェイメールサーバーの背後にあるホストを非表示にし、すべてのメールがゲートウェイサーバーから発信されたように見せかける方法です。有効にすると、アドレスのホストおよび/またはサブドメイン部分が削除され、ここで指定されたドメインのみがアドレスに含まれます。たとえば、
$mydomain
の場合 ここで指定されているのは、[email protected]
からの送信メールです。 単に[email protected]
になります 、$mydomain変数にswelltech.com
が含まれていると仮定します 。このオプションは、masquerade_domains
に関連しています ディレクティブであり、デフォルトでは無効になっています。 - マスカレードの例外
- 一部のユーザー名について上記で定義されたマスカレードルールをスキップすることができます。これらのルールから除外する名前をここに入力できます。このオプションは、
masquerade_exceptions
に対応します ディレクティブであり、デフォルトでは例外は発生しません。
メールエイリアス
メールエイリアスは、メールをローカルの受信者にリダイレクトする手段を提供します。具体的には、複数の異なるアドレス宛てのメールを1つのメールボックスに配信できます。これの一般的な使用法は、postmaster
のようなユーザーにダイレクトメールを送信することです。 実在の人物に。このページは2つのセクションに分かれています。 エイリアスオプションというラベルの付いた上部セクション Postfixがエイリアスデータベースを構築するために使用する必要があるエイリアスファイルの場所と形式が含まれ、使用するデータベースのタイプを指定します。下のセクションには、システムで構成されているすべてのエイリアスと、エイリアスのマッピング先のリストが表示されます。
エイリアスオプション
- ローカル配信エージェントが使用するエイリアスデータベース
- このオプションは、Postfixがローカル配信エイリアスの変換に使用するファイル名を設定します。ファイル名には、ファイルタイプに基づいて接尾辞が追加されます。このオプションは、
alias_maps
と相関関係があります ディレクティブであり、デフォルトはシステムに依存します。一般的なデフォルトには、hash:/etc/aliases
が含まれます。 またはhash:/etc/postfix/aliases
。コロンの前のエントリの最初の部分は、使用するデータベースのタイプであり、hash
の1つになります。 最新のBerkeleyDB実装を備えたシステムの場合、dbm
dbm
しかない古いスタイルのシステムの場合 利用可能、またはnis
NISを実行するシステムの場合。エントリのコロンの後の部分は、データベース名の派生元のファイル名へのパスです。データベースは、起動時、またはnewaliases
の実行時に、Postfixによってフラットファイルのコンテンツから構築されます。 コマンド。 - Postfixによって構築されたエイリアスデータベース
- このオプションは、上記に密接に関連しており、
newaliases
のときに作成されるエイリアスデータベースファイルを指定します。 またはsendmail -bi
コマンドが実行されます。これらのコマンドは、Postfixによって実行されるエイリアス検索を高速化するために、上記のオプションのフラットファイルからエイリアスデータベースを生成します。大規模なメールサーバーには数千のエイリアスが存在する可能性があるため、効率を維持するには、それらをデータベースにインポートする必要があります。このオプションは、alias_database
と相関関係があります 指令。デフォルトはシステムに依存しますが、通常は上記のオプションと同じですが、適切なデータベースファイルのサフィックスが追加されます。
エイリアス
ページのこのセクションには、構成されているすべてのエイリアスのリストが表示されます。エイリアスを編集するには、エイリアスの名前をクリックします。エイリアスを作成するには、新しいエイリアスを作成をクリックします ボタンをクリックして、エイリアスName
を入力します 、およびAlias to...
田畑。エイリアスファイルが変更された場合は常に、変更を有効にするためにエイリアスデータベースファイルも再作成する必要があります。 Webminを使用する場合、この手順は自動的に実行され、追加の手順は必要ありません。
注: | コマンドラインからエイリアスを追加する場合は、コマンド postaliasを使用してエイリアスデータベースを再生成できます。 。このコマンドのマニュアルページは、Postfixでエイリアスデータベースがどのように処理されるかを理解するための便利なリソースです。 |
標準マッピング
Postfixの標準マッピングは、受信キュー内のメールを変更するために使用され、ローカルまたはリモートメールのメッセージヘッダーとメッセージエンベロープ情報の両方を変更します。このマッピングは、ログイン名を Firstname.Lastnameに置き換えるのに役立ちます。 スタイルアドレス、または従来のメールシステムによって生成された奇数アドレスをクリーンアップします。
標準マッピングテーブル
正規マッピングテーブルを使用する場合は、正規マッピングの最初のセクションで指定する必要があります モジュール。それらを定義したら、モジュールの2番目のセクションから編集できます。
- アドレスマッピングルックアップテーブル
- このオプションは、オプションの正規アドレスマッピングテーブルファイルの場所を指定します。このマッピングは、エンベロープとヘッダーの両方で、送信者アドレスと受信者アドレスの両方に適用されます。このオプションは、
canonical_maps
を構成します ディレクティブであり、デフォルトでは無効になっています。 Much like the aliases files discussed in the last section, canonical mapping files are specified by a database type and a filename. The accepted database types depend on your operating system, and installed components. Usuallyhash
anddbm
are used as the database type. A common choice for this value, then, might behash:/etc/postfix/canonical
. - Tables for RECIPIENT addresses
- This parameter configures address mapping only on recipient addresses, and not sender addresses. Mapping is performed on both envelopes and headers. These lookups are performed before the above configured Address mapping lookup tables 。 This option correlates to the
recipient_canonical_maps
directive and is disabled by default. - Tables for SENDER addresses
- Similar to the previous option, this configures mapping for sender addresses only, and not recipient addresses. Both envelope and header information is modified. This option correlates to the
sender_canonical_maps
directive and by default is disabled.
Editing Canonical Mappings
Once a filename is selected for any of the canonical mapping tables, it may be edited by clicking the appropriate Edit... ボタン。 A new page will open, listing any existing mappings and allowing creation of new mappings. The format of mappings in all files is the same.
Canonical mappings may seem, on the surface, to be similar to aliases or virtual domains. However, they are quite distinct and are useful for other purposes. While aliases merely make a decision about which user will receive an email, and virtual domains only impact the envelope address, the canonical mapping alters both the envelope address and the SMTP header address. This change can be used to make mail appear to come from a different user or domain, or direct mail to a different user or domain by changing the address on the message.
For example, if I have a number of local subdomains, but would like all mail to appear to originate from a single domain, it is possible to create a canonical mapping to make the translations. In the Edit a Map page, the Name
will be a subdomain that is to be mapped to the domain, such as @lab.swelltech.com
。 The Mapts to...
value will simply be the domain I'd like this subdomain converted to, @swelltech.com
。 After saving the mapping and applying changes, all outgoing mail from lab.swelltech.com
will appear to originate from swelltech.com
。
Virtual Domains
Virtual domains functionality in Postfix provides a means to redirect messages to different locations by altering the message envelope address. The header address is not altered by a virtual domain mapping. While some functionality of virtual domains overlaps with features available in aliases, virtual domains can be used for local or non-local addresses, while aliases can only be used for local address.
- Domain mapping lookup tables
- Much like aliases tables and canonical mapping tables discussed in the previous sections, this is simply the path to a file containing the mapping tables for virtual domains. This is usually something along the lines of
hash:/etc/postfix/virtual
, and must be converted to a database format for use in Postfix. Webmin will perform the database generation step for you.
Transport Mapping
The term transport refers to the mechanism used to deliver a piece of email. Specifically, SMTP and UUCP are mail transports that are supported by Postfix. Transport mapping can be used for a number of purposes, including SMTP to UUCP gatewaying, operating Postfix on a firewall with forwarding to an internal mail server, etc.
- Transport mapping lookup tables
- This option configures the path to a file containing one or more transport mappings. These tables are much like the mapping tables discussed already, and are converted to a database and used by Postfix in the same way. This option correlates to the
transport_maps
directive. This feature is disabled by default. A common value for this option is/etc/postfix/transport
.
To create a new mapping, first define the mapping file. Then click Add a mapping 。 If your goal is to redirect mail to an protected internal host from Postfix running on a firewall, for example, you could enter the outside domain name into the Name field, swelltech.com
and then enter into the Maps to... field the address of the internal machine, smtp:privatehost.swelltech.com
。 To further improve upon this, local delivery on this machine could be disabled, and increased controls over where and to whom mail should be accepted. There are more examples of such a configuration in the tutorial section of this chapter.
Relocated Mapping
Using this option it is possible to notify senders if a local user has moved to another address. For example, if a user leaves an organization but still receives occasional mail at her local address, it may be convenient to notify anyone sending mail to the user of the move and new contact information for that user. Usage is just like the previous types of mappings and so won't be documented specifically here, though and example of a relocated mapping will be given to display the types of information that can be provided by this feature.
As an example, let's say I move from my current company to the far more relaxed atmosphere of the Oval Office. To make sure all of my friends and clients can keep in touch with me, I could provide a relocated mapping with a Name of [email protected]
with a Maps to... of [email protected]
。 While this won't redirect mail to me at my new home, it will notify the people trying to contact me that I've changed email addresses. Hopefully they will all update their address books and resend their mail to my new address.
Local delivery
Local delivery is what Postfix does when it reaches the end of all of its list of mappings and access controls, and still finds that the message is allowed and destined for a user on the local machine (i.e., a mapping could potentially send the message elsewhere for final delivery, so all mappings as well as various access checks are performed before reaching this stage). This page configures a number of options relating to how Postfix handles the delivery of mail for local users.
- Local Delivery
- Name of the transport for local deliveries
- This configures the name of the transport that will be used for delivery to destination that match the $mydestination or $inet_interfaces variables. This can be a simple mailbox drop handled by the Postfix local delivery agent, or any appropriate delivery command. This option correlates to the
local_transport
directive and defaults to the defined transport type namedlocal
. - Shell to use for delivery to external command
- If a command shell is required to communicate properly with your chosen local delivery transport, this option selects the shell that will be used. By default no shell is used, and the transport command will be executed directly. However, if the command contains shell meta-characters or shell built-in commands they will be passed to
/bin/sh
or whatever shell you configure here. A popular choice for this issmrsh
, or Sendmail's Restricted Shell , which is included in recent Sendmail distributions.smrsh
allows for more precise control over what commands users can execute from their.forward
ファイル。 This option corresponds to thelocal_command_shell
and defaults to/bin/sh
. - Search list for forward
- This is a comma-separated list of possible locations for user forward files. Postfix will try each entry in the list until a forward file is found, or until all have been checked and no match is found. The forward file allows users to configure delivery options for themselves, including delivery-time processing by a program like
procmail
as well as forwarding of messages to a different server. A number of variable expansions are performed on the entries. The expansions are currently:
Forward search path variable expansions
-
$user
- The user name of the recipient.
-
$shell
- The shell of the recipient.
-
$home
- Recipient's home directory.
-
$recipient
- The full recipient address.
-
$extensions
- Recipient address extensions. This is a separate part of the email address, separated by the Separator between user names and address extensions defined on the General Options page.
-
$domain
- The recipient's domain name.
-
$local
- The entire local part of the recipient address.
-
$recipient_delimiter
- The separation delimiter for the recipient.
- Valid mail delivery to external commands
- This parameter restricts mail delivery to only those commands specified here. The default is to disallow delivery to commands specified in
:include:
files, and allow execution of commands inalias
andforward
ファイル。 This option correlates to theallow_mail_to_command
directive. - Valid mail delivery to external files
- This option restricts mail delivery to external files. The default is to disallow delivery to files specified in
:include:
but to allow delivery to files specified inaliases
andforward
ファイル。 This option correlates to theallow_mail_to_files
directive. - Default rights of the local delivery agent
- This option configures the privileges that the delivery agent will have for delivery to a file or a command. This option should never be a privileged user or the postfix owner. This option corresponds to the
default_privs
directive and defaults tonobody
. - Pathname of user mailbox file
- When delivering mail locally, Postfix will drop mail in the directory configured here, or in its default mail spool directory. If you wish to use the maildir format for mail storage, this value can be appended with a trailing slash. For example, to store mail in the users home directory in the
Maildir
subdirectory, the value would beMaildir/
。 This option correlates to thehome_mailbox
directive and usually defaults to some location under/var/spool/mail
or/var/spool/postfix
. - Destination address for unknown recipients
- If a message is received for a recipient that does not exist, the message is normally bounced. However, it is possible to instead have the message delivered to an alternate address. This option corresponds to the
luser_relay
directive. Variable expansions matching those discussed for the Search list for forward are also valid for this directive. - Spool directory
- This option specifies the directory where UNIX-style mailboxes are stored. Defaults vary depending on OS variant and version, but a common choice is
/var/spool/mail
。 This option correlates to themail_spool_directory
option. - External command to use instead of mailbox delivery
- This option defines a command to use for delivery instead of delivering straight to the users mailbox. The command will be run as the recipient of the message with appropriate
HOME
,SHELL
andLOGNAME
environment variables set. This option is commonly used to set up system-wide usage of procmail. Beware that if you use a command to deliver mail to all users, you must configure an alias forroot
, as the command will be executed with the permissions of the$default_user
。 This option correlates to themailbox_command
directive and is disabled by default. - Optional actual transport to use
- This option configures the message transport to use for all local users, whether they are in the UNIX passwd database or not. If provided, the value will override all other forms of local delivery, including Destination address for unknown recipients 。 This option corresponds to the
mailbox_transport
directive and is disabled by default. This option may be useful in some environments, for example, to delegate all delivery to an agent like the cyrus IMAPD. - Optional transport for unknown recipients
- If a user cannot be found in the UNIX passwd database, and no alias matches the name, the message will ordinarily be bounced, or handled via the Destination address for unknown recipients オプション。 However, if you would like unknown users to be handled by a separate transport method. This option overrides the Destination address for unknown recipients option above. This option correlates to the
fallback_transport
directive and is disabled by default. - Max number of parallel deliveries to the same local recipient
- This option limits the number of simultaneous deliveries to a single local recipient. If
.forward
files are allowed for users, a user may run a time-consuming command or shell script, leading to overload caused by several such processes being started up at once. This option correlates to thelocal_destination_concurrency_limit
directive and the default is2
。 A low value is recommended for this option, unless it is certain that no complex.forward
files will be in use. - Max number of recipients per local message delivery
- This option configures the maximum number of recipients per local message delivery. This option correlates to the
local_destination_recipient_limit
and is set to the value ofMax number of recipients per message delivery
by default. - Prepend a Delivered-To
- when...
- This parameter determines when Postfix should insert a
Delivered-to:
message header. By default Postfix inserts this header when forwarding mail and when delivering to a file. The defaults are recommended, and it is generally preferable not to disable insertion into forwarded mail. This option corresponds to theprepend_delivered_header
directive.
General resource control
This page provides access to the various memory and process limits for the Postfix processes ([ch10.html#figpfgeneralresource Figure 10.6, General resource control]. It is rarely necessary to alter the values on this page, except for highly loaded servers or very low resource machines.
General resource control- Max size of bounced message
- This option limits the amount of the original message content in bytes that will be sent in a bounce notification. This option correlates to
bounce_size_limit
and defaults to 50000. - Max time for delivery to external commands
- When delivering mail to an external command (rather than via direct mailbox delivery), Postfix will wait this amount of time for the delivery to complete. If this value is to be set to a high limit (3600s or more) the value of Timeout for I/O on internal comm channels in General Options must also be increased. This option correlates to the
command_time_limit
directive and defaults to1000s
. - Max number of Postfix child processes
- This option limits the number of child processes that Postfix will spawn. On high load servers the default may be too low, and may need to be raised to as much as
500
or more. More likely, for most environments, 50 is more than adequate and may even be overkill. For example on dial-up, or consumer broadband serving one to ten users, a more appropriate limit might be10
。 If in doubt, leave it at its default unless it causes problems. This option correlates to thedefault_process_limit
directive and defaults to50
. - Max number of addresses remembered by the duplicate filter
- While expanding aliases and
.forward
files Postfix will remember addresses that are being delivered to and attempt to prevent duplicate deliveries to the same address. This option limits the number of recipient addresses that will be remembered. It corresponds to theduplicate_filter_limit
directive and defaults to1000
。 There is probably no compelling reason to increase this value. - Max attempts to acquire file lock
- This option limits the number of attempts Postfix will make when attempting to obtain an exclusive lock on a mailbox or other file requiring exclusive access. It corresponds to the
deliver_lock_attempts
directive and defaults to20
. - Time in seconds between file lock attempts
- Postfix will wait a specified time between attempts to lock a given file, after a failed lock attempt. This option configures the
deliver_lock_delay
directive and defaults to1s
. - Max attempts to fork a process
- If Postfix attempts to fork a new process and fails, due to errors or a lack of available resources, it will try again a specified number of times. This option correlates to the
fork_attempts
directive and defaults to5
. - Time in seconds between fork attempts
- Postfix will try to spawn a new process a specified time after a failed attempt. This option correlates to the
fork_delay
directive and defaults to1s
. - Max memory used for processing headers
- This option limits the amount of memory in bytes that Postfix will use to process message headers. If a message header is too large to fit into the memory specified, the headers that do not fit into memory will be treated as part of the message body. This option correlates to the
header_size_limit
directive and defaults to102400
. - Max memory used for handling input lines
- This option limits the amount of memory in bytes that Postfix will use to handle input lines. And input line is any line read from an
:include:
or.forward
ファイル。 In order to prevent the mail server from using excessive amounts of memory, it will break up these files into chunks of this length. This option correlates to theline_length_limit
directive and defaults to2048
. - Max size of a message
- This option limits the size in bytes of a message that will be delivered, including the message envelope information. This limit should be set high enough to support any email messages your users will need to be able to send or receive. This option correlates to the
message_size_limit
directive and defaults to10240000
. - Max number of messages in the active queue
- This option limits the number of messages that can exist in the message queue at any given time. It correlates to the
qmgr_message_active_limit
directive and defaults to10000
. - Max number of in-memory recipients
- This parameter limits the number of in-memory recipient data structures. This memory contains the short-term dead list , which indicates a destination was unavailable when last contacted, among other things. This option correlates to the
qmgr_message_recipient_limit
directive and defaults to1000
. - Min free space in the queue file system
- Postfix will refuse mail if the filesystem on which the queue is located has less available space in bytes than the value set in this option. This option correlates to the
queue_minfree
directive and defaults to0
. - Max time after which stale lock is released
- This option configures how old an external lock file may be before it is forcibly removed. This option correlates to the
stale_lock_time
and defaults to500s
. - Time in seconds between attempts to contact a broken MDT
- This option configures the time in seconds between the queue manager attempts to contact an unresponsive mail delivery transport. This option correlates to the
transport_retry_time
and defaults to60s
.
SMTP server options
This page configures the majority of the options that directly effect the behavior of the SMTP server portion of Postfix, specifically the portions of Postfix that impact how the server behaves towards an SMTP client that connects to the server.
- SMTP greeting banner
- When a client connects to an SMTP server a greeting banner will be sent to the client (note the term client in this context is not the end user, but rather the email software program that is being used to make the connection). This option configures the text that will follow the status code in the banner. It is possible to use a number of variable expansions, for example, to display the specific version of the server software, though Postfix does not include the version by default. If configuring this option to be other than the default, you must include
$myhostname
at the start of this line, as it allows Postfix to report and respond to a mailer loop rather than overloading the system with many multiple deliveries. This option correlates to thesmtpd_banner
directive and contains$myhostname ESMTP $mail_name
by default.
Note: | A proposed federal law in the US would make it illegal to send unsolicited commercial email through a mail server if the server included in its SMTP greeting the words NO UCE. Since spammers are generally of a criminal mindset anyway, it is unlikely that many of them will respect the new law if it is ever passed. Nonetheless, it is worth mentioning in hopes that sometime soon, all Americans will have legal protection against the stolen resources and time that UCE represents. |
- Max number of recipients accepted for delivery
- This option limits the number of recipients that may be specified in a single message header. It is usually rare for legitimate messages to have an extremely large number of recipients specified in a single message header, but it is often done in UCE messages. The legitimate exception is messages to a mailing list (possibly sent by mailing list software like
majordomo
ormailman
。 This option correlates to thesmtpd_recipient_limit
and defaults to1000
. - Disable SMTP VRFY command
- Normally, the SMTP VRFY command is used to verify the existence of a particular user. However, it is also illegitimately used by spammers to harvest live email addresses. Thus it is sometimes useful to disable this command. This option correlates to
disable_vrfy_command
and defaults toNo
. - Timeout in seconds for SMTP transactions
- This option sets the timeout in seconds for a client to respond to the SMTP servers response with an SMTP request. The connection process involves the client opening a connection to the server, the server replies with a greeting, and then the client makes its request. If the client request does not come within the time specified here, the connection will be closed. This option correlates to the
opts_smtpd_timeout
directive and defaults to300s
. - Timeout before sending 4xx/5xx error response
- When sending an error response to a client, the server will sleep a specified time. The purpose of this feature is to prevent certain buggy clients from hitting the server with repeated requests in rapid succession. This option correlates to the
smtpd_error_sleep_time
directive and defaults to5s
. - Error count for temporarily ignore a client
- This option configures the number of errors that a client may generate before Postfix will stop responding to requests for a specified time. Some buggy mail clients may send a large number of requests, while ignoring or responding incorrectly to, the error messages that result. Postfix attempts to minimize the impact of these buggy clients on normal service. This option correlates to the
smtpd_soft_error_limit
and defaults to10
. - Error count for closing connection
- If the number exceeds this limit the connection will be closed. This option correlates to the
smtpd_hard_error_limit
and defaults to100
. - HELO is required
- Enabling this option causes Postfix to require clients to introduce themselves with a
HELO
header at the beginning of an SMTP session. This may prevent some UCE software packages from connecting, though it may also impact other legitimate clients from connecting. This option correlates to thesmtpd_helo_required
and defaults toNo
. - Allow untrusted routing
- This option configures whether Postfix will forward messages with sender-specified routing from untrusted clients to destinations within the accepted relay domains. This feature closes a sneaky potential loophole in access controls that would normally prevent the server from being an open relay for spammers. If this behavior is allowed, a malicious user could possibly exploit a backup MX mail host into forwarding junk mail to a primary MX server which believes the mail has originated from a local address, and thus delivers it as the spammer intended. This option correlates to the
allow_untrusted_routing
and is disabled by default. Enabling this option should only be done with extreme caution and care to prevent turning your Postfix installation into an open relay. - Restrict ETRN command upon...
- The SMTP
ETRN
command is a rather clumsy means for a client that is not always connected to the Internet to retrieve mail from the server. The usage of this command is rather outdated, and rarely used, as POP3 and IMAP are better suited to solve this problem in the general case. This option correlates to thesmtpd_etrn_restrictions
directive and the default is to allowETRN
from any host. This option accepts the following directives:check_etrn_access maptype:mapname
,permit_naked_ip_address
,reject_invalid_hostname
,check_helo_access maptype:mapname
,reject_maps_rbl
,reject_unknown_client
,permit_mynetworks
,check_client_access
,permit
,reject
,warn_if_reject
, andreject_unauth_pipelining
.
This option, as well as the following three Restrictions... options accept one or all of the following values in the text field. Each is described only once here and the specific entry will include the list of accepted directives for the option. The impact of some of these choices depends on configuration performed elsewhere, and could potentially open security holes if not configured carefully.
-
permit_mynetworks
- Permit the message if the relevant address (sender or recipient depending on the restriction) is within the local network.
- reject_unknown_client
- The request will be refused is the client IP has no PTR record in the DNS. This means that a client with an IP address that cannot be resolved to a host name cannot send mail to this host.
-
check_client_access maptype:mapname
- This option requires the inclusion of an already configured map, as discussed earlier. This will restrict based on the contents of the map, allowing only clients that are allowed by the map. The map may contain networks, parent domains, or client addresses, and Postfix will strip off unnecessary information to match the client to the level of specificity needed.
-
check_sender_access maptype:mapname
- This will restrict based on the contents of the map, allowing only senders that are allowed by the map. The map may contain networks, parent domains, or
localpart@
. - reject_maps_rbl
- An RBL is a relay domain black hole list. By testing a reverse domain lookup against a name server that receives a domain black hole list transfer, the server can know if the mail was sent through a known open mail relay. There are a number of free and for-fee services providing black hole data. The largest and longest lasting is the service operated by MAPS, while two new similar services are operated by the Open Relay Database and by Distributed Sender Boycott List. All operated on the principle of allowing administrators to choose to refuse mail sent from open mail relays. If this option is listed, the client will be checked against the available RBL domains, and if any match the mail will be refused.
-
reject_invalid_hostname
- If the client host name is invalid, due to bad syntax, the request will be rejected.
-
permit_naked_ip_address
- If the client
HELO
orEHLO
command contains a naked IP address without the enclosing[]
brackets as require by the mail RFC, the message will be rejected. Beware that some popular mail clients send aHELO
greeting that is broken this way. -
reject_unknown_hostname
- Reject the request if the host name in the client
HELO
command has no A or MX record in the DNS. -
reject_non_fqdn_hostname
- If the client host name is not in the form of a fully-qualified domain name, as required by the RFC, the message will be rejected.
-
check_helo_access maptype:mapname
- The server will search the named access database map for the
HELO
host name or parent domains. If the result from the database search isREJECT
or a4xx
text
or5xx
text
error code the message will be refused, while a response ofOK
orRELAY
or an all numerical response the message will be permitted. -
permit
- This simply permits anything. Generally this will be at the end of a set of restrictions in order to allow anything that has not been explicitly prohibited.
-
reject
- Rejects everything. This can be used at the end of a chain of restrictions to prohibit anything that has not be explicitly permitted.
-
warn_if_reject
- This is a special option that changes the meaning of the following restriction, so that a message that would have been rejected will be logged but still accepted. This can be used for testing new rules on production mail servers without risk of denying mail due to a problem with the rules.
-
reject_unauth_pipelining
- If the client sends commands ahead of time without first confirming that the server support SMTP command pipelining, the message will be rejected. This will prevent mail from some poorly written bulk email software that improperly uses pipelining to speed up mass deliveries.
-
- Restrictions on client hostnames/addresses
- This restriction applies to the client host name and/or address. By default, Postfix will allow connections from any host, but you may add additional restrictions using the following:
reject_unknown_client
,permit_mynetworks
,check_client_access
maptype:mapname
,reject_maps_rbl
,maps_rbl_reject_code
,permit
,reject
,warn_if_reject
,reject_unauth_pipelining
. - Restrictions on sends in HELO commands
- This option specifies additional restrictions on what information can be sent by client in the
HELO
andEHLO
コマンド。 This option correlates to thesmtpd_helo_restrictions
directive. By default Postfix accepts anything, and the following restrictions may be added:reject_invalid_hostname
,permit_naked_ip_address
,reject_unknown_hostname
,reject_non_fqdn_hostname
,check_helo_access
maptype:mapname
,reject_maps_rbl
,reject_unknown_client
,check_client_access
maptype:mapname
,permit
,reject
,warn_if_reject
,reject_unauth_pipelining
. - Restrictions on sender addresses
- This option restricts what can be contained in the
MAIL FROM
command in a message. It may be used to prevent specific email addresses from sending mail, reject clients without a resolvable host name, etc. This option correlates to thesmtpd_sender_restrictions
directive and may contain any of the following restrictions:permit_mynetworks:
,reject_unknown_client
,reject_maps_rbl
,reject_invalid_hostname
,reject_unknown_hostname
,reject_unknown_sender_domain
,check_sender_access
maptype:mapname
,check_client_access
maptype:mapname
,check_helo_access
maptype:mapname
,reject_non_fqdn_hostname
,reject_non_fqdn_sender
,reject
,permit
. - Restrictions on recipient addresses
- This parameter places restrictions on the recipients that can be contained in the
RCPT TO
command of a sent message. It can be used to dictate where email may be sent. This option correlates to thesmtpd_recipient_restrictions
, and may contain any of the following restrictions:permit_mynetworks
,reject_unknown_client
,reject_maps_rbl
,reject_invalid_hostname
,reject_unknown_hostname
,reject_unknown_sender_domain
,check_relay_domains
,permit_auth_destination
,reject_unauth_pipelining
,permit_mx_backup
,reject_unknown_recipient
,check_recipient_access
,check_client_access
,check_helo_access
,check_sender_access
,reject_non_fqdn_hostname
,reject_non_fqdn_sender
,reject_non_fqdn_recipient
,reject
,permit
. - DNS domains for blacklist lookups
- This option configures the optional blacklist DNS servers that will be used for all RBL checks that have been specified in all access restrictions. It may contain any number of servers in a whitespace separated list. These services can be used to help prevent spam, as discussed earlier in this section, with the Restrict ETRN command upon... パラメータ。 This option configures the
maps_rbl_domains
directive and is empty, by default. - Restrict mail relaying
- This option specifies from which hosts, networks, domains, etc. Postfix will relay email for. This option correlates to the
relay_domains
directive, and defaults to$mydestination
. - SMTP server response on access map violation, SMTP server response on RBL domains violation, SMTP server response on forbidden relaying, SMTP server response on unknown client reject, SMTP server response on invalid hostname reject, SMTP server response on unknown domain reject, SMTP server response on unknown hostname reject
- These options configure the error result code that will be sent to the client when any of the specified restrictions are being applied. These errors have sensible default values and generally should not need to be changed. Consult with RFC 822 if you wish to understand more about the SMTP error codes, or have a reason to change any of these values.
SMTP Client Options
The SMTP client options configures how Postfix will behave when dealing with other mail servers as a client, i.e., when sending mail on behalf of a user. This portion of the configuration primarily dictates how the server will respond to certain error conditions.
- Action when listed as best MX server
- As discussed in the BIND chapter, a mail server performs a name server query to find the MX, or mail server, record for the destination domain. If this record indicates that the local server is the server to which mail should be sent, it can respond in a couple of ways. The default is to bounce the message with an error indicating a mail loop. If the field is selected and
local
is entered, the mail will be directed to the local delivery agent instead of bouncing the mail. This option correlates to thebest_mx_transport
directive. - Hosts/domains to hand off mail to on invalid destination
- By default, a mail that cannot be delivered because the destination is invalid will be bounced with an appropriate error message. However, it is possible to configure
postfix
to hand off email to another server instead. This option correlates to thefallback_relay
directive. - Ignore MX lookup error
- If a name server query fails to provide an MX record, the server defaults to deferring the mail and trying again later. If
Yes
is selected instead, an A record query will be done and an attempt will be made to deliver to the resulting address. This option correlates to theignore_mx_lookup_error
directive. - Skip 4xx greeting
- If a remote server responds to a connection with a 4XX status code,
postfix
will, by default, select the next available mail exchanger specified by the MX records. If set toNo
, mail delivery will be deferred after the first mail delivery attempt and another attempt will be made later. This option correlates to thesmtp_skip_4xx_greeting
directive. - Skip wait for the QUIT command
- This option configures whether Postfix will wait for the receiving mail server to respond to the
QUIT
command. This option correlates to thesmtp_skip_quit_response
directive and defaults to no. - Max number of parallel deliveries to the same destination
- This option specifies the maximum number of deliveries that Postfix will perform to the same destination simultaneously. This option correlates to the
smtp_destination_concurrency_limit
directive and defaults to the system-wide limit for parellel deliveries configured in the Delivery Rates page documented in the next section. - Max number of recipients per delivery
- Limits the number of recipients per delivery. This option correlates to the
smtp_destination_recipient_limit
directive and defaults to the system-wide limit for recipients per delivery. - Timeout for completing TCP connections
- Specifies the time in seconds that the Postfix delivery agent will wait before timing out a TCP connection. This option correlates to the
smtp_connect_timeout
directive and defaults to 0, which disables connection timeouts. - Timeout on waiting for the greeting banner
- Limits how long Postfix will wait for a greeting banner to be received from the destination server. This option corresponds to the
smtp_helo_timeout
directive and defaults to 300 seconds. - Timeout on waiting for answer to MAIL FROM
- Sets the timeout in seconds for sending the
SMTP MAIL FROM
command and for receiving the destination servers response. This option correlates to thesmtp_mail_timeout
, and defaults to 300 seconds. - Timeout on waiting for answer to RCPT TO
- Sets the timeout in seconds for sending the
SMTP RCPT TO
command and for receiving the destination servers response. This option correlates to thesmtp_rcpt_timeout
directive and defaults to 300 seconds. - Timeout on waiting for answer to DATA
- Sets the timeout in seconds sending the
SMTP DATA
command and for receiving the destination servers response. This option correlates to thesmtp_data_init_timeout
and defaults to 120 seconds. - Timeout on waiting for answer to transmit of message content
- Specifies the SMTP client timeout in seconds for sending the contents of the message. If the connection stalls for longer than this timeout, the delivery agent will terminate to transfer. This option corresponds to the
smtp_data_xfer_timeout
directive and defaults to 180 seconds. - Timeout on waiting for answer to ending "."
- Specifies the SMTP client timeout in seconds for sending the closing SMTP "." and receiving the destination servers reply. This option correlates to the
smtp_data_done_timeout
directive and defaults to 600 seconds. - Timeout on waiting for answer to QUIT
- Sets the timeout in seconds sending the
SMTP QUIT
command and for receiving the destination servers response. This option correlates to thesmtp_quit_timeout
and defaults to 300 seconds
Delivery Rates
This page contains the options for setting the default rate and concurrency limits for all Postfix components. These rates can usually be overridden within their respective configuration sections.
- Max number of parallel deliveries to the same destination
- This option specifies the maximum number of deliveries that Postfix will perform to the same destination simultaneously. This option correlates to the
default_destination_concurrency_limit
directive and defaults to10
. - Max number of recipients per message delivery
- Limits the number of recipients per delivery. This option correlates to the
default_destination_recipient_limit
directive and defaults to50
. - Initial concurrency level for delivery to the same destination
- Specifies the initial number of simultaneous deliveries to the same destination. This limit applies to all SMTP, local, and pipe mailer deliveries. A concurrency of less than two could lead to a single problem email backing up delivery of other mail to the same destination. This option configures the
initial_destination_concurrency
directive and defaults to5
. - Max time (days) in queue before message is undeliverable
- Defines the number of days a message will remain queued for delivery in the event of delivery problems before the message is sent back to the sender as undeliverable. This option configures the
maximal_queue_lifetime
directive and defaults to 5 days. - Min time (secs) between attempts to deliver a deferred message
- In the event of a delivery deferral, Postfix will wait the specified amount of time before reattempting delivery. This value also specifies the time an unreachable destination will remain in the destination status cache. This option correlates to the
minimal_backoff_time
directive and defaults to 1000 seconds. - Max time (secs) between attempts to deliver a deferred message
- Specifies the maximum amount of time between delivery attempts in the event of a deferred delivery. This option configures the
maximal_backoff_time
directive and defaults to 4000 seconds. - Time (secs) between scanning the deferred queue
- Specifies the time in seconds between queue scans by the queue management task. This option correlates to the
queue_run_delay
and defaults to 1000 seconds. - Transports that should not be delivered
- This field specifies which delivery transports, if any, of the transports defined in the Transport Mapping section will not have their messages sent automatically. Instead the messages for these transports will be queued, and can be delivered manually using the
sendmail -q
command. This option correlates to thedefer_transports
directive, and contains nothing by default.
Debugging features
Postfix has two levels of logging. The first level is the normal maillog
, which reports on all normal mail activities such as received and sent mail, server errors, shutdowns and startups. The second level is more verbose, and can be tuned to log activity relating to specific SMTP clients, host names, or addresses. This page contains the configuration for the second level of logging.
- List of domain/network patterns for which verbose log is enabled
- This is a list of patterns or addresses that match the clients, hosts, or addresses whose activity you would like to have more verbose logging for. Values here could be an IP address like
192.168.1.1
or a domain name likeswelltech.com
。 This option correlates to thedebug_peer_list
directive and is empty by default. - Verbose logging level when matching the above list
- Specifies the level of verbosity of the logging for the activity that matches the above patterns. This option correlates to the
debug_peer_level
directive and defaults to 2. The above field must have at least one value for this debug level to have any impact.
Postfix, Unsolicited Commercial Email and Access Controls
Postfix offers an extremely flexible set of access controls, primarily targeted at preventing unsolicited commercial email from being delivered through the server. In order to construct a suitable set of controls it is necessary to understand the order in which rules are checked, and how they interact. By default Postfix will accept mail for delivery from or to any client on your local network and any domains that are hosted by Postfix. So, by default, Postfix is not an open relay. This is a good beginning, and may be all that is needed in many environments. However, because UCE is such a nuisance for users and network administrators, it may be worthwhile to implement more advanced filtering. This section will address the basics of the Postfix UCE control features.
Access Control List Order
Every message that enters the smtpd
delivery daemon will be processed by a number of access control lists and checked against a number of rules to insure that the message is one that the administrator actually wants delivered. The goal for most administrators is to prevent unsolicited commercial email from passing through these rules, yet allow every legitimate email to be delivered. This is a lofty goal, and a delicate balance. No perfect solution exists, as long as people are willing to steal the resources of others for their own commercial gain and go to great lengths to overcome the protections in place to prevent such abuse. However, in most environments it is possible to develop a reasonable set of rules that prevents most spam and allows most or all legitimate mail through unharmed.
It is important to understand the order of processing if complex sets or rules are to be used, as attempting to use a particular rule too early in the chain can lead to subtle errors, or strange mail client behavior. Because not all clients react exactly correctly to some types of refusals, and not all clients create correctly formed SMTP requests, it is not unlikely that a misplaced rule will lock out some or all of your clients from sending legitimate mail. It could also just as easily lead to opening a hole in your spam protections early in the rule set, which would allow illicit mail to pass.
The Postfix UCE controls begin with a couple of simple yes or no checks, called smtpd_helo_required
and strict_rfc821_envelopes
, both configured in the SMTP Server Options ページ。 The first, if enabled, requires a connecting mail client to introduce itself fully by sending a HELO command. This can stop some poorly designed bulk email programs. The second option requires for the envelope to fit the SMTP specification precisely, thus enforcing complete headers. Though the envelope and HELO can be forged by a bulk mailer, it may stop the more hastily implemented variants (well, how many good programmers do you know that write tools to help spammers?).
The next stage is the four SMTP restrictions also found on the SMTP Server Options ページ。 These further limit from where and to where mail will be delivered. The order of traversal for these four lists of rules is:
- Restrictions on client hostnames/addresses or
smtpd_client_restrictions
- Restrictions on sends in HELO commands or
smtpd_helo_restrictions
- Restrictions on sender addresses or
smtpd_sender_restrictions
- Restrictions on recipient addresses or
smtpd_recipient_restrictions
Each of these checks can return REJECT
, OK
, or DUNNO
。 If REJECT
, the message will be refused, and no further rules will be checked. If OK
, no further rules in the given restriction will be checked, and the next restriction list will be checked. If DUNNO
, the list will continue to process the current restriction until it gets another result (OK
or REJECT
) or until the list end is reached, which is an implicit OK
。 If all lists return OK
, the message will be passed to the regular expressions checks, otherwise it will be rejected.
Next come the regular expression-based header_checks
and body_checks
。 These options, if enabled, provide a means to test the actual contents of the headers and the body of the email, respectively. Both operate in the same way, though they should be used somewhat differently. Header checks can be used to prevent well-known spamming domains from sending you email, or for stopping some well-known bulk-mailer software. By entering some signature of the offender, like the domain name, or the X-mailer field identifying the software, the mail can be rejected before the body is even sent. Body checks, though the use the same regular expressions and file format as header checks, should be used more sparingly, as the mail must be accepted before it can be checked. Thus bandwidth is wasted on receipt of the mail, and worse, the server will be occupied for a potentially long while with processing the entire contents of every email. In short, use header checks whenever is convenient, and use body checks only when an effective header check cannot be devised. Only REJECT
or OK
are permitted for the returned values.
See also
- Postfix Basic Configuration
- Postfix Virtual Hosting