Postfix main.cf 設定ファイルには、Postfixメールシステムの動作を制御する全てのパラメータのうち、小さなサブセットを指定します。main.cf で指定されていないパラメータは、そのデフォルト値のまま残されます。
main.cf ファイルの一般的な書式は以下の通りです:
それぞれの論理行は "parameter = value" の形式を取ります。"=" の前後の空白は無視されます。また論理行の最後の空白も同様です。
空行と空白だけの行は無視されます。また、最初の非空白文字が `#' の行も同様です。
論理行は空白以外のテキストで始まります。空白で始まる行は論理行を継続します。
パラメータの値は他のパラメータを参照することができます。
"$name" や "${name}"、"$(name)" という表記は指定されたパラメータの値で再帰的に置き換えられます。
"${name?value}" という表記は、"$name" が空でない場合に "value" に展開されます。この形式はPostfix 2.2以降でサポートされています。
"${name:value}" という表記は、"$name" が空の場合に "value" に展開されます。この形式はPostfix 2.2以降でサポートされています。
同じパラメータが複数回定義されていると、最後のものだけが記憶されます。
それ以外は、main.cf パラメータの定義の順番は重要ではありません。
このドキュメントの残りの部分は、全てのPostfix設定パラメータの解説です。デフォルト値はパラメータ名の後のカッコ内に示され、 "postconf -d" コマンドで調べることもできます。
注意: これはPostfix設定パラメータの変更の勧めではありません。不必要な変更はメールシステムの動作を損なうおそれがあります。
送信者に返すことができない不達メールの受信者。この機能は notify_classes パラメータで有効になります。
クライアントが access(5) マップ制限により拒否された場合の、数字のPostfix SMTPサーバ応答コード。
RFC 821 を完全に理解しているのでなければ、これを変更してはいけません。
アドレス検証プローブに対する default_transport パラメータ設定を上書きします。
この機能はPostfix 2.1以降で使えます。
アドレス検証プローブに対する local_transport パラメータ設定を上書きします。
この機能はPostfix 2.1以降で使えます。
永続的なアドレス検証状態ストレージの、オプションの検索テーブル。このテーブルは verify(8) サービスによって管理され、プロセスが権限を解放する前に開かれます。
デフォルトでは、情報は揮発性メモリに保持され、"postfix reload" または "postfix stop" の後で失われます。
埋め尽くされることのないファイルシステムの場所を指定します。データベースが壊れると、世界が終わってしまいます。修復するにはファイルを削除し、"postfix reload" します。
例:
address_verify_map = hash:/etc/postfix/verify address_verify_map = btree:/etc/postfix/verify
この機能はPostfix 2.1以降で使えます。
失敗したアドレス検証プローブの結果のキャッシュを有効にします。この機能が有効になっていると、キャッシュはすぐにゴミで汚染される可能性があります。この機能が無効になっていると、Postfixは全ての検索にアドレスプローブを生成します。
この機能はPostfix 2.1以降で使えます。
失敗したプローブがアドレス検証キャッシュから消えるまでの時間。
時間単位: s (秒)、m (分)、h (時)、d (日)、w (週)。
この機能はPostfix 2.1以降で使えます。
失敗したプローブのアドレス検証キャッシュの更新が必要となるまでの時間。
時間単位: s (秒)、m (分)、h (時)、d (日)、w (週)。
この機能はPostfix 2.1以降で使えます。
進行中のアドレス検証要求を完了するために verify(8) サービスに問い合わせる回数。
デフォルトのポーリング回数は 3 です。
1 を指定すると粗っぽい形で greylisting を実装します。すなわち、以前に見たことがないアドレスの最初の配送要求は常に遅延されます。
例:
address_verify_poll_count = 1
この機能はPostfix 2.1以降で使えます。
進行中のアドレス検証要求を完了するための、問い合わせの間に入れる遅延。
デフォルトのポーリング遅延は 3 秒です。
時間単位: s (秒)、m (分)、h (時)、d (日)、w (週)。
この機能はPostfix 2.1以降で使えます。
成功したプローブがアドレス検証キャッシュから消えるまでの時間。
時間単位: s (秒)、m (分)、h (時)、d (日)、w (週)。
この機能はPostfix 2.1以降で使えます。
成功したプローブのアドレス検証キャッシュの更新が必要となるまでの時間。アドレス検証状態はプローブが失敗すると更新されません (楽観的キャッシング)。
時間単位: s (秒)、m (分)、h (時)、d (日)、w (週)。
この機能はPostfix 2.1以降で使えます。
アドレス検証プローブに対する relay_transport パラメータ設定を上書きします。
この機能はPostfix 2.1以降で使えます。
アドレス検証プローブに対する relayhost パラメータ設定を上書きします。この情報は transport(5) テーブルで上書きできます。
この機能はPostfix 2.1以降で使えます。
アドレス検証プローブで使う送信者のアドレス。アドレスプローブに対してアドレスプローブを送ってしまう問題を回避するため、Postfix SMTP サーバは SMTPD access ブロックからプローブ送信者アドレスを除外します。
null送信者アドレスを使いたい場合は空値 (address_verify_sender =) または <> を指定してください。RFC が <> からのアドレスを受け付けるよう要求しているにもかかわらず、そのようなアドレスを拒否するサイトがあることに注意してください。
例:
address_verify_sender = <> address_verify_sender = postmaster@my.domain
この機能はPostfix 2.1以降で使えます。
アドレス検証プローブに対する sender_dependent_relayhost_maps パラメータ設定を上書きします。
この機能はPostfix 2.3以降で使えます。
verify(8) アドレス検証サービスの名前。このサービスは送信者や受信者のアドレス検証プローブの状態を管理し、他の Postfixプロセスによる要求でプローブを生成します。
アドレス検証プローブに対する transport_maps パラメータ設定を上書きします。
この機能はPostfix 2.1以降で使えます。
アドレス検証プローブに対する virtual_transport パラメータ設定を上書きします。
この機能はPostfix 2.1以降で使えます。
"newaliases" や "sendmail -bi" で更新される、local(8) 配送のエイリアスデータベース。
$alias_maps 指定されるテーブル全てがローカルファイルである必要はないため、これは別の設定パラメータになっています。
例:
alias_database = hash:/etc/aliases alias_database = hash:/etc/mail/aliases
local(8) 配送で使われるエイリアスデータベース。文法の詳細は aliases(5) を参照してください。
デフォルトのリストはシステムに依存します。NIS を持つシステムでは、デフォルトではローカルのエイリアスデータベースを検索し、それから NIS エイリアスデータベースを検索します。
エイリアスデータベースを変更したら、"postalias /etc/aliases" (またはシステムがメールエイリアスファイルを保存している場所) を走らせるか、単に "newaliases" を走らせて必要な DBM または DB ファイルを作ってください。
alias_maps での $1 などの正規表現による置換はセキュリティホールを開けてしまう可能性があるため、local(8) 配送エージェントはこれを許しません。
local(8) 配送エージェントは alias_maps で proxymap(8) を使うという要求を静かに無視します。代わりにテーブルを直接オープンします。Postfixバージョン 2.2以前では、local(8) 配送エージェントは致命的エラーで終了してしまいます。
例:
alias_maps = hash:/etc/aliases, nis:mail.aliases alias_maps = hash:/etc/aliases
local(8) が外部コマンドへメールを配送するのを制限します。デフォルトでは :include: ファイルでの "|command" への配送を認めません (この用例を定義している文章は aliases(5) を参照してください)。
コマンドを許可するためには、次のうちゼロ個またはそれ以上を指定してください: alias、forward または include で、それぞれ aliases(5)、.forward ファイルまたは :include: ファイルでのコマンドを許可します。
例:
allow_mail_to_commands = alias,forward,include
local(8) が外部ファイルへメールを配送するのを制限します。デフォルトでは :include: ファイルで "/file/name" を配送先とするのを認めません (この用例を定義している文章は aliases(5) を参照してください)。
"/file/name" 配送先を許可するためには、次のうちゼロ個またはそれ以上を指定してください: alias、forward または include で、それぞれ aliases(5)、 .forward ファイルまたは :include: ファイルで "/file/name" 配送先を許可します。
例:
allow_mail_to_files = alias,forward,include
受信者アドレスが最初の文字として `-' を持つことを許可します。コマンドラインでEメールアドレスを渡すソフトウェアでの事故を避けるため、デフォルトではこれを認めません。そのようなソフトウェアは悪意のあるアドレスと正しいコマンドラインオプションを区別できないでしょう。これは "--" オプションターミネータをコマンドラインに入れることで防げますが、一貫して全体に強制するのは困難です。
"user%domain" の形から "user@domain" への書き換えを有効にします。これはデフォルトで有効になっています。
注意: Postfixバージョン2.2では、メッセージヘッダアドレスの書き換えは以下のいずれかの条件に当てはまったときのみにおこなわれます:
Postfixバージョン2.2以前の振る舞いにしたければ、"local_header_rewrite_clients = static:all" を指定してください。
例:
allow_percent_hack = no
信頼していないクライアントから $relay_domains にマッチする配送先へ、送信者が指定したルーティング (user[@%!]remote[@%!]site) を持つメールを転送します。
デフォルトでは、この機能は無効になっています。これはバックアップMX ホストが騙されてジャンクメールをプライマリMXホストに転送してしまい、 spam が世界中に送られてしまうことになる、厄介なオープンリレーの抜け穴を塞ぎます。
このパラメータは送信者が指定したルーティングを持つ非ローカルアドレスが Postfix access テーブルにマッチできるかどうかも制御します。デフォルトでは、そのようなアドレスは曖昧であるためPostfix access テーブルにはマッチできません。
コマンドラインの "-c config_directory" で指定されたり MAIL_CONFIG 環境変数パラメータで指定される、非デフォルトなPostfix設定ディレクトリのリスト。
このリストはデフォルトのPostfix設定ディレクトリで指定されなければなりません。またこのリストは postqueue(1) や postdrop(1) のようなset-gid されたPostfix コマンドによって使われます。
Postfixメールシステムが受け取ったメッセージそれぞれの "blind carbon copy" を受け取る、オプションのアドレス。
注意: BCC アドレス宛のメールがバウンスすると、送信者に返されます。
注意: 自動BCC受信者は新しいメールに対してのみ生成されます。メーラループを避けるために、自動BCC受信者はPostfixが内部で転送するメールやPostfix自身が生成するメールに対しては生成されません。
クライアントの接続速度やその他の速度の計算に用いられる単位時間。
この機能は安定版Postfix 2.1 リリースには含まれない anvil(8) サービスによって実装されています。
デフォルトの間隔はかなり短いです。更新の頻度が高いため、anvil(8) サーバは揮発性メモリしか使いません。つまり、プロセスが終了すると情報は失われます。
時間単位: s (秒)、m (分)、h (時)、d (日)、w (週)。デフォルトの時間単位は s (秒) です。
anvil(8) 接続および速度制限サーバが使用量のピーク情報をログに記録する頻度。
この機能はPostfix 2.2以降で使えます。
時間単位: s (秒)、m (分)、h (時)、d (日)、w (週)。デフォルトの時間単位は s (秒) です。
ローカルで投函されたメールで、ドメイン情報のないメールアドレスに文字列 "@$myorigin" を付け加えます。リモートで投函されたメールには、代わりに文字列 "@$remote_header_rewrite_domain" を付加します。
注意1: この機能はデフォルトで有効になっており、無効にしてはいけません。 Postfixはドメインのないアドレスをサポートしていません。
注意: Postfixバージョン2.2では、メッセージヘッダアドレスの書き換えは以下のいずれかの条件に当てはまったときのみにおこなわれます:
Postfixバージョン2.2以前の振る舞いにしたければ、"local_header_rewrite_clients = static:all" を指定してください。
ローカルで投函されたメールで、".domain" 情報のないアドレスに文字列 ".$mydomain" を付け加えます。リモートで投函されたメールには、代わりに文字列 "@$remote_header_rewrite_domain" を付加します。
注意1: この機能はデフォルトで有効になっています。無効にするとユーザは "user@partialdomainname" にメールを送れなくなり、代わりにフルドメイン名を指定しなければならなくなります。
注意: Postfixバージョン2.2では、メッセージヘッダアドレスの書き換えは以下のいずれかの条件に当てはまったときのみにおこなわれます:
Postfixバージョン2.2以前の振る舞いにしたければ、"local_header_rewrite_clients = static:all" を指定してください。
postkick(1) コマンドがサーバの入力バッファに入ってくる要求を諦めずに待つ時間の長さ。
時間単位: s (秒)、m (分)、h (時)、d (日)、w (週)。デフォルトの時間単位は s (秒) です。
この機能はPostfix 2.1以降で使えます。
キューのフラッシュを認証されたユーザのリスト。
デフォルトでは、すべてのユーザがキューのフラッシュを許されています。呼び出したユーザがスーパーユーザもしくは $mail_owner ユーザであれば、アクセスは常に許可されます。それ以外の場合、システムパスワードファイルでプロセスの実UIDが調べられ、対応するログイン名がアクセスリストにあれば許可されます。パスワードファイルに実UIDが見つからないプロセスでは、ユーザ名 "unknown" が使われます。
ユーザ名のリストや "/file/name"、"type:table" パターンを、カンマまたは空白で区切って指定してください。リストは左から右へと検索され、最初にマッチしたところで検索を止めます。リストから name を除外するには、 "!name" を指定します。"/file/name" パターンはその内容で置き換えられます; "type:table" 検索テーブルは、名前が検索キーにマッチしたときにマッチします (検索結果は無視されます)。次の行を空白で始めることで、長い行を継続します。
この機能はPostfix 2.2以降で使えます。
次の行を空白で始めることで、長い行を継続します。
デフォルトでは、すべてのユーザがキューを見ることが許されています。呼び出したユーザがスーパーユーザもしくは $mail_owner ユーザであれば、アクセスは常に許可されます。それ以外の場合、システムパスワードファイルでプロセスの実UIDが調べられ、対応するログイン名がアクセスリストにあれば許可されます。パスワードファイルに実UIDが見つからないプロセスでは、ユーザ名 "unknown" が使われます。
ユーザ名のリストや "/file/name"、"type:table" パターンを、カンマまたは空白で区切って指定してください。リストは左から右へと検索され、最初にマッチしたところで検索を止めます。リストから name を除外するには、 "!name" を指定します。"/file/name" パターンはその内容で置き換えられます; "type:table" 検索テーブルは、名前が検索キーにマッチしたときにマッチします (検索結果は無視されます)。次の行を空白で始めることで、長い行を継続します。
この機能はPostfix 2.2以降で使えます。
sendmail(1) コマンド (および特権を持つ postdrop(1) ヘルパーコマンド) でメールを投函することが認証されたユーザのリスト。
デフォルトでは、すべてのユーザがメールの投函を許されています。それ以外の場合、システムパスワードファイルでプロセスの実UIDが調べられ、対応するログイン名がアクセスリストにあれば許可されます。パスワードファイルに実UIDが見つからないプロセスでは、ユーザ名 "unknown" が使われます。全てのユーザに対してメール投函のアクセスを拒否するには、空のリストを指定します。
ユーザ名のリストや "/file/name"、"type:table" パターンを、カンマまたは空白で区切って指定してください。リストは左から右へと検索され、最初にマッチしたところで検索を止めます。リストから name を除外するには、 "!name" を指定します。"/file/name" パターンはその内容で置き換えられます; "type:table" 検索テーブルは、名前が検索キーにマッチしたときにマッチします (検索結果は無視されます)。次の行を空白で始めることで、長い行を継続します。
例:
authorized_submit_users = !www, static:all
この機能はPostfix 2.2以降で使えます。
XVERP コマンドを指定できる SMTPクライアント。このコマンドは同時に1つの受信者に、受信者ごとのリターンアドレスを付けてメールを配送するように要求します。
デフォルトでは、信頼されたクライアントのみが XVERP を指定することが許されます。
このパラメータはPostfixバージョン 1.1 で導入されました。Postfixバージョン2.1では、このパラメータは smtpd_authorized_verp_clients に改名され、デフォルト値はなくなりました。
network/netmask パターンを空白やカンマで区切ったリストを指定します。mask にはホストアドレスのネットワーク部分のビット数を指定します。ホスト名や .domain 名 (最初にドットを付けると domain 以下のあらゆる名前にマッチするようになります)、"/file/name"、 "type:table" パターンを指定することもできます。"/file/name" パターンはその内容で置き換えられます; "type:table" 検索テーブルはテーブルのエントリが検索文字列にマッチするとマッチします (検索結果は無視されます)。次の行を空白で始めることで、長い行を継続します。
注意: IPバージョン6アドレス情報は authorized_verp_clients 値や "/file/name" で指定されたファイルの中で [] の内側に指定しなければいけません。IPバージョン6アドレスは ":" 文字を含んでいるため、そうしないと "type:table" パターンと混乱してしまいます。
Postfixバージョン2.0以前でも読める、追加の bounce(8) ログファイルレコードを生成します。洗練された機能を実装するには、現状およびより拡張可能な "name = value" という書式が必要です。
この機能はPostfix 2.1以降で使えます。
Berkeley DB hash もしくは btree テーブルを作成するプログラムのための、テーブルごとの I/O バッファサイズ。バイト数を指定します。
この機能はPostfix 2.0以降で使えます。
Berkeley DB hash もしくは btree テーブルを読み込むプログラムのための、テーブルごとの I/O バッファサイズ。バイト数を指定します。
この機能はPostfix 2.0以降で使えます。
"mail loops back to myself" エラー条件を検出した場合にPostfix クライアントがメールを送るべき場所。これはローカル MTA が $mydestination や $inet_interfaces、 $proxy_interfaces、$virtual_alias_domains、$virtual_mailbox_domains にリストアップされていない配送先のSMTPメール交換機の場合に起こります。デフォルトでは、Postfix SMTPクライアントはそのようなメールを配送できないものとして返します。
例えば、Postfix SMTPクライアントからのメールを local(8) 配送エージェントに渡すには "best_mx_transport = local" を指定します。master.cf に定義されているメッセージ配送 "transport" または "transport:nexthop" を指定することもできます。"transport" や "transport:nexthop" の文法や意味は transport(5) マニュアルページを参照してください。
しかし、この機能は local(8) 配送エージェントが仕事をしている間Postfix SMTPクライアントプロセスを拘束してしまうため、負荷が高くなります。hosted domains を全てテーブルやデータベースにリストアップしておくのが (Postfixにとって) より効果的です。
ローカル biff サービスを使うかどうか。このサービスは UNIX コマンド "biff y" で新着メール通知を要求したユーザに "新着メール" 通知を送ります。
互換性の理由から、この機能はデフォルトで有効になっています。インタラクティブユーザの多いシステムでは、biffサービスがパフォーマンスの浪費になるかもしれません。 無効にするには main.cf に "biff = no" を指定します。
body_checks(5) マニュアルページに書かれているようなコンテンツ検査をおこなう、オプションの検索テーブル。
注意: バージョン 2.0 以前のPostfixでは、これらのルールは最初のメッセージヘッダの後のコンテンツ全てを検査します。
body_checks 検査を受けるメッセージ本体セグメント (もしくは添付、この単語の方がよければ) のテキストの量。テキストの量は巨大な添付ファイルのスキャンを避けるために制限されます。
この機能はPostfix 2.0以降で使えます。
Postfixが配送しなかったメールのヘッダ、およびPostfixが受け取らなかったメールの SMTP 対話の写しを持つ、ポストマスターへの通知の受信者。この機能は notify_classes パラメータで有効になります。
配送できないと見なすまでに、バウンスメッセージがキューに入っている最大の時間。デフォルトでは、通常のメールに対するキューの寿命と同じです。
時間単位: s (秒)、m (分)、h (時)、d (日)、w (週)。デフォルトの時間単位は d (日) です。
メール配送の試行を1回だけにするには 0 を指定します。
この機能はPostfix 2.1以降で使えます。
bounce(8) サービスの名前。このサービスは失敗した配送試行の記録を管理し、不達通知を生成します。
この機能はPostfix 2.0以降で使えます。
不達通知で送られるオリジナルメッセージテキストの最大量。バイト数を指定します。この制限を増やしたら、それに比例して mime_nesting_limit の値も増やすべきです。
バウンスメッセージのテンプレートがある設定ファイルのパス名。これらは配送できないメールやメールの遅延、配送成功、配送検証に対する配送状態通知 (DSN; delivery status notification) メッセージのビルトインテンプレートを上書きします。bounce(5) マニュアルページにはテストテンプレートファイルの編集方法が書かれています。
テンプレートメッセージの本体テキストはPostfix設定パラメータを参照する $name を含めることができます。$name 展開の結果はファイルをPostfix設定ディレクトリに置く前に "postconf -b file_name" で確認できます。
この機能はPostfix 2.3以降で使えます。
古いバージョンの AUTH コマンド (RFC 2554) を実装したSMTPクライアントとの相互運用性を有効にします。このようなクライアントにはMicroSoft Outlook Expressバージョン4やMicroSoft Exchange バージョン5.0といった例があります。
標準的でない方法の AUTH サポートをPostfixに案内させるには、"broken_sasl_auth_clients = yes" を指定します。
canonical_maps アドレスマッピングを受けるアドレス。デフォルトでは、canonical_maps マッピングはエンベロープ送信者および受信者アドレス、そしてヘッダ送信者およびヘッダ受信者アドレスに適用されます。
以下の1つ以上を指定します: envelope_sender, envelope_recipient, header_sender, header_recipient
この機能はPostfix 2.2以降で使えます。
オプションのメッセージヘッダおよびエンベロープのアドレスマッピング検索テーブル。マッピングは送信者および受信者アドレスの両方、エンベロープおよびヘッダの両方で、canonical_classes パラメータで制御されたように適用されます。これは通常、古いメールシステムの汚いアドレスをきれいにしたり、ログイン名を Firstname.Lastname で置き換えるのに使われます。テーブルの書式と検索は canonical(5) に記述されています。 Postfixアドレス操作の概要は ADDRESS_REWRITING_README ドキュメントを参照してください。
この機能を使う場合、必要な DBM または DB ファイルを作るために、更新するたびに "postmap /etc/postfix/canonical" を実行してください。変更は1分程度で反映されます。遅延をなくすには "postfix reload" を使ってください。
注意: Postfixバージョン2.2では、メッセージヘッダアドレスマッピングはメッセージヘッダアドレスの書き換えが有効になっているときのみになされます:
Postfixバージョン2.2以前の振る舞いにしたければ、"local_header_rewrite_clients = static:all" を指定してください。
例:
canonical_maps = dbm:/etc/postfix/canonical canonical_maps = hash:/etc/postfix/canonical
cleanup(8) サービスの名前。このサービスはアドレスを標準的な形式に書き換え、canonical(5) アドレスマッピングと virtual(5) エイリアシングを実行します。
この機能はPostfix 2.0以降で使えます。
全てのPostfix管理コマンドの場所。
外部コマンドへの配送に使う local(8) 配送エージェントのワーキングディレクトリ。ディレクトリの変更に失敗すると配送は遅延されます。
ディレクトリ変更前に以下の $name 展開が command_execution_directoryでなされます。展開は配送要求の段階で起こります。$name 展開の結果は execution_directory_expansion_filter パラメータで指定された文字セットでフィルタリングされます。
$name の代わりに ${name} や $(name) を指定することもできます。
この機能はPostfix 2.2以降で使えます。
$mailbox_command の $name 展開で local(8) 配送エージェントが許す文字を制限します。許可されたセット以外の文字はアンダースコアで置き換えられます。
外部コマンドへの配送の時間制限。この制限は local(8) 配送エージェントによって使われます。また pipe(8) 配送エージェントによる配送のデフォルトの時間制限でもあります。
注意: この時間制限を大きな値に設定するのであれば、一般的な ipc_timeout パラメータも同様に更新しなければいけません。
Postfix main.cf および master.cf 設定ファイルのデフォルトの場所。これは以下のメカニズムを通して上書きされます:
MAIL_CONFIG 環境変数 (デーモンプロセスおよびコマンド)。
"-c" コマンドラインオプション (コマンドのみ)。
set-gid権限で動くPostfixコマンドでは、config_directory を上書きするには、root権限でおこなうか、デフォルトの main.cf ファイルの alternate_config_directories パラメータでディレクトリがリストアップされていることが必要です。
接続キャッシュの接続、送信および受信操作の時間制限。時間制限はクライアント側で強制されます。
この機能はPostfix 2.3以降で使えます。
scache(8) 接続キャッシュサービスの名前。このサービスはキャッシュされたセッションの限られた集まりを管理します。
論理的な配送先や物理的な端点に対して接続キャッシュのヒットやミスの割合といった利用統計を scache(8) サーバがログに記録する頻度。
scache(8) 接続キャッシュサーバが許す最大生存時間の値。この値を超えるTTLの要求は、最大限許されるTTLに書き換えて保存されます。この追加制御は、不注意な人たちから基盤を保護することが目的です。キャッシュTTLはすでに $max_idle で制限されています。
キューに入った後でメールをフィルタリングするメール配送transportの名前。
このパラメータはPostfix transport(5) テーブルの右側部分と同じ文法を使います。この設定は access(5)テーブルや header_checks(5)、body_checks(5) テーブルで指定されるコンテンツフィルタよりも優先度は下です。
Postfixサポートプログラムおよびデーモンプログラムがあるディレクトリ。これらは人間によって直接呼び出されるべきではありません。ディレクトリは root が所有しなければいけません。
ビルトイン監視タイマーによって終了するまでの、Postfixデーモンプロセスが要求を扱うことができる時間。
時間単位: s (秒)、m (分)、h (時)、d (日)、w (週)。デフォルトの時間単位は s (秒) です。
リモートクライアントまたはサーバが debug_peer_list パラメータのパターンにマッチした場合の、冗長ログレベルの増分。
冗長ログレベルを $debug_peer_level で指定された量だけ増加させる、リモートクライアントまたはサーバのホスト名またはネットワークアドレスのパターンのオプションのリスト。
ドメイン名や network/netmask パターン、"/file/name" パターン、 "type:table" 検索テーブルを指定します。"type:table" 検索からの右側部分の結果は無視されます。
ドメイン名のパターンマッチは parent_domain_matches_subdomains パラメータによって制御されます。
例:
debug_peer_list = 127.0.0.1 debug_peer_list = some.domain
Postfixデーモンプログラムが -D オプション付きで呼ばれたときに実行される外部コマンド。
処理が進む前にデバッガを装着するために、"command .. & sleep 5" を使ってください。X ベースのデバッガを使うのであれば、Postfixを起動する前に XAUTHORITY 環境変数を設定していることを確認してください。
例:
debugger_command = PATH=/usr/bin:/usr/X11R6/bin xxgdb $daemon_directory/$process_name $process_id & sleep 5
newaliases(1) や postalias(1)、postmap(1) コマンドで使う、デフォルトのデータベース形式。多くの UNIX システムでは、デフォルトの形式は dbm か hash のどちらかです。デフォルトの設定は Postfixシステムが構築される際に固定されます。
例:
default_database_type = hash default_database_type = dbm
Postfixキューマネージャのスケジューラがあるメッセージを他のメッセージの配送に割り込みを許す頻度。
それぞれの transport はいわゆる「利用可能な配送スロットカウンタ」を管理します。あるメッセージは、他のメッセージが現在蓄積している (または最終的に蓄積する - 以下の slot loan を参照) メッセージカウンタよりも配送スロット (すなわち配送エージェントの呼び出し) が少なければ、そのメッセージによって割り込まれます。このパラメータはカウンタが増加する頻度を制御します - default_delivery_slot_cost の受信者数に配送されるごとに増加します。
完全に割り込みスケジューリングを無効にするには、コストとして 0 を使います。スケジューリングアルゴリズムが使える最小値は 2 です - メッセージスループット速度を最大にしたければ、この値を使ってください。最大値はありませんが、およそ 50 を超える値を使うのは意味がありません。
2という値がデフォルトではないのは、このパラメータがメーリングリストのメール配送に影響を及ぼすというのが唯一の理由です。最悪の場合、それらの配送は割り込みスケジュールが無効になっている場合のおよそ (cost+1/cost) から (cost/cost-1) 倍になります。5というデフォルト値は、最悪の場合でもメーリングリストの配送が 20-25 パーセント以上伸びないことが確認されており、合理的なメッセージ応答時間が得られることがわかっています。
例:
default_delivery_slot_cost = 0 default_delivery_slot_cost = 2
transport に特有の _delivery_slot_discount 設定のデフォルト値。
このパラメータはメッセージ割り込みが起こった瞬間の速度を上げます。要求された配送スロットの量が全て使えるようになるのを待つのではなく、要求量プラス transport_delivery_slot_loan の transport_delivery_slot_discount パーセントが蓄積を待って残っていれば、割り込みが起こります。後で他の割り込みが起こる場合には、その前に全量が蓄積していなければいけないことに注意してください。
transport に特有の _delivery_slot_loan 設定のデフォルト値。
このパラメータはメッセージ割り込みが起こった瞬間の速度を上げます。要求された配送スロットの量が全て使えるようになるのを待つのではなく、要求量プラス transport_delivery_slot_loan の transport_delivery_slot_discount パーセントが蓄積を待って残っていれば、割り込みが起こります。後で他の割り込みが起こる場合には、その前に全量が蓄積していなければいけないことに注意してください。
同じ配送先への並列配送の、デフォルトの最大数。これは lmtp(8) や pipe(8)、smtp(8)、virtual(8) 配送エージェントを使った配送のデフォルトの制限です。
メッセージ配送ごとの受信者数の、デフォルトの最大数。これは lmtp(8) や pipe(8)、smtp(8)、virtual(8) 配送エージェントを使った配送のデフォルトの制限です。
このパラメータの値を1に設定すると、対応する配送先ごとの並列制限はドメインごとの並列度から受信者ごとの並列度へと意味を変えます。
transport ごとの予備のメモリ内受信者数に課せられる制限のデフォルト値。 Postfixキューマネージャのスケジューラがあるメッセージに他のメッセージを割り込みが入り、パフォーマンス低下を避けるために選択されたメッセージが急に余計な受信者スロットを必要とした場合のために、予備の受信者空間が予約されます。
Postfixキューマネージャのスケジューリングアルゴリズムを呼び出さなければならなくなる、1メッセージの受信者の数。少なくともこの配送スロット数まで蓄積していない(スロットコストパラメータの制約も受けます) メッセージは割り込みを受けません。
外部ファイルまたはコマンドへの配送で、local(8) 配送エージェントが使うデフォルトの権限。これらの権限は root が所有する aliases(5) ファイルから配送が要求されたり、root の代理として配送がなされる際に使われます。特権ユーザや POSTFIX の所有者を指定してはいけません。
指定されたサービスを提供するPostfix子プロセスの、デフォルトの最大数。この制限は master.cf ファイルの特定のサービスに対して上書きできます。
RBL ベースの制限で拒否された要求に対する、デフォルトの SMTPサーバ応答のテンプレート。このテンプレートはオプションの rbl_reply_maps 検索テーブルのエントリで指定することで上書きできます。
この機能はPostfix 2.0以降で使えます。
テンプレートはちょうど1レベルの $name 置き換えを受けます:
$name の代わりに ${name} や $(name) を指定することもできます。
注意: RBL応答テンプレート内で拡張状態コードが指定されると、修正されることがあります。クライアント、helo、送信者、受信者アクセス制限に同じRBL応答テンプレートが使われる場合、以下の変換が必要となります。
送信者アドレスを拒否する際、Postfix SMTPサーバは受信者DSN状態 (例えば 4.1.1-4.1.6) を対応する送信者DNS状態に変換し、またその逆もおこなわれます。
(HELOコマンドの引数やクライアントホスト名/アドレスのような) 非アドレス情報を拒否する場合、Postfix SMTPサーバは送信者もしくは受信者DSN状態を一般的な非アドレスDSN状態 (例えば 4.0.0) に変換します。
メモリ内受信者数の transport ごとのデフォルトの上限。メッセージがそれぞれの transport に割り振られた後は、これらの制限は一般的な qmgr_message_recipient_limit よりも優先されます。default_extra_recipient_limit や qmgr_message_recipient_minimum も参照してください。
$mydestination や $inet_interfaces、$proxy_interfaces、$virtual_alias_domains、$virtual_mailbox_domains、$relay_domains にマッチしない配送先の、デフォルトのメール配送transportおよびnext-hop配送先。nexthop配送先の優先度は、$default_transport、$sender_dependent_relayhost_maps、$relayhost、受信者ドメインからのものの順に下がっていきます。この情報は transport(5) テーブルで上書きできます。
transport:nexthop という形の文字列を指定します。ここで transportは master.cf に定義されたメール配送 transport の名前です。:nexthop 部分はオプションです。より詳細は transport(5) マニュアルページを参照してください。
例:
default_transport = uucp:relayhostname
デフォルトの2つの VERP 区切り文字。これらは SMTP XVERP コマンドや "sendmail -V" コマンドラインオプションで指定された明示的な区切り文字が指定されていない場合に使われます。verp_delimiter_filter 設定で許可されている文字を指定してください。
この機能はPostfix 1.1以降で使えます。
リモートSMTPクライアントの要求が "defer" 制限で拒否された場合の、数字のPostfix SMTPサーバ応答コード。
RFC 821 を完全に理解しているのでなければ、これを変更してはいけません。
defer サービスの名前。このサービスは bounce(8) デーモンによって実装され、失敗した配送試行の記録を管理し、不達通知を生成します。
この機能はPostfix 2.0以降で使えます。
誰かが "sendmail -q" または等価なものを実行するまで配送しない、メッセージ配送 transport の名前。master.cf の最初のフィールドに現れるメール配送 transport の名前をゼロ個もしくはそれ以上指定します。
例:
defer_transports = smtp
ログに小数点以下の遅延の値を記録する際の、小数点以下の最大の桁数。0..6の範囲の数値を指定します。
大きな遅延の値は整数秒に丸められます; delay_logging_resolution_limit 以下の遅延の値は "0" としてログに記録され、小さな遅延の値は最大2桁の制度でログに記録されます。
"delays=a/b/c/d" ログの書式は以下のとおりです:
この機能はPostfix 2.3以降で使えます。
$delay_warning_time 時間単位内に送れなかったメールのメッセージヘッダを持つ、ポストマスターへの通知の受信者。
この機能は delay_warning_time パラメータで有効になります。
依然としてキューに入っているメールのメッセージヘッダを送信者が受け取るまでの時間。
この機能を有効にするには、ゼロ以外の時間の値を指定します (整数値に時間単位を示す1文字サフィックスをつけます)。
時間単位: s (秒)、m (分)、h (時)、d (日)、w (週)。デフォルトの時間単位は h (時) です。
メールボックスファイルや bounce(8) ログファイルの排他的ロックを獲得しようとする最大回数。
メールボックスファイルや bounce(8) ログファイルの排他的ロックを獲得しようとする時間間隔。
時間単位: s (秒)、m (分)、h (時)、d (日)、w (週)。デフォルトの時間単位は s (秒) です。
Postfix SMTPおよびLMTPクライアントでのDNS検索を無効にします。無効になると、通常は /etc/hosts も検索する gethostbyname() システムライブラリルーチンを使ってホストが検索されます。
デフォルトではDNS検索は有効になっています。
メール受信中の MIME 処理を無効にします。これは Content-Type: メッセージヘッダを特別扱いせず、最初のメッセージヘッダの後にある全てのテキストはメッセージ本体の一部と見なされることを意味します。
この機能はPostfix 2.0以降で使えます。
MIME 入力の処理はデフォルトで有効になっており、これはメッセージの中身で MIME ヘッダを認識するのに必要です。
8BITMIME 形式から 7BIT 形式への変換を無効にします。MIME 出力の変換は配送先が 8BITMIME サポートを案内しない場合に必要です。
この機能はPostfix 2.0以降で使えます。
受信者ごとに1つのバウンスレポートを送らないようにします。
受信者ごとに1つというデフォルトは ezmlm が必要としているものです。
この機能はPostfix 1.1以降で使えます。
SMTP VRFY コマンドを無効にします。これはEメールアドレス収集に使われる、ある種のテクニックを止めます。
例:
disable_vrfy_command = no
キューファイルを削除せずに、それらを "saved" メールキューに保存します。これはデバッグを助けます。エンベロープ情報やPostfixキューファイルの中身を調べるには、postcat(1) コマンドを使ってください。
メールシステムによって生成されるポストマスターへの通知の送信者アドレス。このアドレスへの全てのメールは、メールバウンスループを終わらせるために、静かに破棄されます。
aliases(5) または virtual(5) エイリアスの展開や showq(8) キューの表示に対して、アドレス複製フィルタが記憶するアドレスの最大数。
null アドレス宛のメールの受信者。Postfixはそのようなアドレスを SMTP コマンドでは受けませんが、設定やソフトウェアエラーの結果としてローカルで生成される可能性があります。
エンベロープ送信者アドレスではなく、非標準的な Error-To: メッセージヘッダで指定されたアドレスにメール配送エラーを報告します (この機能はPostfixバージョン2.2では削除され、Postfixバージョン2.1以降ではこのサポートはデフォルトで無効になっており、それ以前のバージョンの Potfix では常に有効です)。
X-Original-To メッセージヘッダのサポートを有効にします。このヘッダは受信者が複数いるメールボックスに必要です。
このパラメータが yes に設定されていると、cleanup(8) デーモンは (元の受信者、書き換えられた受信者) の厳密な組み合わせの重複をなくし、元の受信者が空ではないキューファイル記録を生成します。
このパラメータが no に設定されていると、cleanup(8) デーモンは書き換えられた受信者アドレスだけの重複をなくし、元の受信者が空のキューファイル記録を生成します。
この機能はPostfix 2.1以降で使えます。Postfixバージョン2.0 では、X-Original-To メッセージヘッダのサポートは常に有効です。2.0 以前のバージョンの Postfixでは、X-Original-To メッセージヘッダのサポートはありません。
ポリシー、リソース、ソフトウェアまたはプロトコルエラーによって起きたメール配送問題に関するポストマスターへの通知の受信者。これらの通知は notify_classes パラメータで有効にされます。
error(8) 疑似配送エージェントの名前。このサービスは常にメールを配送できないものとして返します。
この機能はPostfix 2.0以降で使えます。
local(8) 配送エージェントが $command_execution_directory の $name 展開で許す文字を制限します。許可されたセット以外の文字はアンダースコアで置き換えられます。
この機能はPostfix 2.2以降で使えます。
対応する "owner-aliasname" エイリアスを持つエイリアス "aliasname" への配送時に、エンベロープ送信者アドレスとして "owner-aliasname" エイリアスを展開したものをセットします。通常は、Postfixはエンベロープ送信者アドレスを "owner-aliases" エイリアスの名前にセットします。
Postfixプロセスが非Postfixプロセスに渡す環境変数のリスト。 System-V 系のシステムで時間を健全に保つには TZ 変数が必要です。
名前や name=value の組を空白またはカンマで区切ったリストを指定します。name=value の形式はPostfixバージョン2.1以降でサポートされています。
例:
export_environment = TZ PATH=/bin:/usr/bin
メールが "sendmail -t" で投函された際に、Postfixがメッセージヘッダから抽出する受信者アドレスの最大数。
この機能はPostfixバージョン2.1 で削られました。
見つからなかったり到達できない SMTP 配送先への、オプションのリレーホストのリスト。Postfix 2.3では、このパラメータは smtp_fallback_relay と改名されました。
デフォルトでは、配送先が見つからない場合にはメールは送信者に返され、配送先に到達できない場合には配送が遅延されます。
fallback relayはSMTPによる配送先でなければいけません。ドメイン、ホスト、host:port、[host]:port、[address] または [address]:port を指定します; [host] の形式はMX検索を無効にします。複数のSMTP 配送先を指定すると、Postfixは指定された順でそれらを試します。
注意: Postfix 2.2以前では、バックアップもしくはプライマリMXドメインにメールをリレーする際に fallback_relay 機能を使ってはいけません。最終配送先に到達できないと、Postfix MXホストと fallback_relay の間でメールがループしてしまいます。
Postfixバージョン2.2以降はMXホストである配送先に対しては fallback_relay 機能を使いません。
aliases(5) データベースや UNIX パスワードデータベースに名前が見つからない場合に、 local(8) 配送エージェントが使う、オプションのメッセージ配送transport。
local(8) 配送機能の優先度は高いものから低いものの順に: aliases、.forward ファイル、mailbox_transport_maps、mailbox_transport、mailbox_command_maps、mailbox_command、home_mailbox、mail_spool_directory、fallback_transport_maps、fallback_transport、そして luser_relay。
local(8) 配送エージェントが aliases(5) やUNIXパスワードデータベースで見つけられない受信者に対する、受信者ごとのメッセージ配送transportが書かれた、オプションの検索テーブル。
local(8) 配送機能の優先度は高いものから低いものの順に: aliases、.forward ファイル、mailbox_transport_maps、mailbox_transport、mailbox_command_maps、mailbox_command、home_mailbox、mail_spool_directory、fallback_transport_maps、fallback_transport、そして luser_relay。
安全上の理由から、この機能は正規表現マップでの $number の置換が使えません。
この機能はPostfix 2.3以降で使えます。
配送先ごとのログファイルに適格な配送先で、それらの配送先宛のキューに入ったメールを持つものの、オプションのリスト。
デフォルトでは、PostfixはPostfix SMTPサーバがリレーしようとする配送先に対してのみ、"高速flush" ログファイルを管理します (すなわちデフォルトは "fast_flush_domains = $relay_domains"; postconf(5) マニュアルの relay_domains パラメータを参照してください)。
ホストまたはドメイン、"/file/name" パターン、"type:table" 検索テーブルをカンマや空白で区切って指定してください。次の行を空白で始めることで、長い行を継続します。"/file/name" パターンはその内容で置き換えられます; "type:table" 検索テーブルはドメインまたはその親ドメインが検索キーとして現れるとマッチします。
この機能を完全に無効にするには "fast_flush_domains =" (つまり空) を指定します。
空の配送先ごとの "高速 flush" ログファイルが削除されるまでの時間。
数値、または数字に時間単位を示す文字を付けて時間を指定できます: s=秒、m=分、h=時間、d=日、w=週。デフォルトの時間単位は d (日) です。
空ではないが読まれていない 配送先ごとの "高速 flush" ログファイルの更新が必要となるまでの時間。ログファイルの内容はログファイルにリストアップされた全てのメッセージの配送を要求することで更新されます。
数値、または数字に時間単位を示す文字を付けて時間を指定できます: s=秒、m=分、h=時間、d=日、w=週。デフォルトの時間単位は h (時) です。
内部テストの失敗がないと再現が難しいエラーの扱いをテストするため、特定の内部テストの失敗を強制します。
flush(8) サービスの名前。このサービスはキューに入っているメールのキューファイル名を持つ配送先ごとのログファイルを管理します。
この機能はPostfix 2.0以降で使えます。
子プロセスを fork() しようとする最大回数。
子プロセスの fork() 試行間に入れる遅延。
時間単位: s (秒)、m (分)、h (時)、d (日)、w (週)。デフォルトの時間単位は s (秒) です。
$forward_path の $name 展開で local(8) 配送エージェントが許す文字を制限します。許可されたセット以外の文字はアンダースコアで置き換えられます。
ユーザが指定した配送方法が書かれた .forward ファイルを見つけるための、local(8) 配送エージェント検索リスト。最初に見つかったファイルが使われます。
実際に検索を始める前に、forward_path では以下のように $name が展開されます。$name 展開の結果は forward_expansion_filter パラメータで指定された文字セットでフィルタリングされます。
$name の代わりに ${name} や $(name) を指定することもできます。
例:
forward_path = /var/forward/$user forward_path = /var/forward/$user/.forward$recipient_delimiter$extension, /var/forward/$user/.forward
local(8) 配送エージェントは Delivered-To: アドレス (prepend_delivered_header 参照) を、1度だけ、配送しようとし始めたときに更新します; エイリアスや .forward ファイルの展開中には Delivered-To: アドレスを更新しません。
この機能はPostfix 2.3以降で使えます。古いPostfixリリースでは、"no" と指定したのと同じような振る舞いでした。古い設定では、エイリアスや .forward ファイルが深くネストしている場合に負荷が高くなりえます。エイリアスや .forward ファイルが Delivered-To: アドレスを変える場合、メールが配送されるまでの間、1つのキューファイルと1つのcleanupプロセスインスタンスが拘束されてしまいます。
hash_queue_names パラメータにリストアップされたキューディレクトリの、サブディレクトリレベル数。
hash_queue_names または hash_queue_depth パラメータの変更後は、コマンド "postfix reload" を実行してください。
複数のサブディレクトリレベルにわたって分割されるキューディレクトリの名前。
Postfixバージョン2.2以前では、ハッシュされたキューのデフォルトリストは非常に大きなものでした。ファイルシステム技術の向上に関する主張によると、incoming や active キュー のハッシュ化は今となっては不要であることを示しています。ハッシュ化したディレクトリを少なくすると、Postfixを再起動するのに必要な時間の高速化になります。
hash_queue_names または hash_queue_depth パラメータの変更後は、コマンド "postfix reload" を実行してください。
アドレスメッセージヘッダ内で許されるアドレストークンの最大数。制限を超えた情報は破棄されます。この制限は cleanup(8) サーバによって強制されます。
header_checks(5) マニュアルページに書かれているような、非MIMEな最初のメッセージヘッダのコンテンツ検査をおこなう、オプションの検索テーブル。
メッセージヘッダを格納するメモリの、バイト単位の最大量。それよりもヘッダが大きい場合、超過分は破棄されます。この制限は cleanup(8) サーバによって強制されます。
問題のある設定をログで警告し、参考になる忠告を提供します。
この機能はPostfix 2.0以降で使えます。
オプションのメールボックスファイルの local(8) ユーザのホームディレクトリからの相対パス名。
qmail 形式の配送をするには、"/" で終わるパス名を指定します。
local(8) 配送機能の優先度は高いものから低いものの順に: aliases、.forward ファイル、mailbox_transport_maps、mailbox_transport、mailbox_command_maps、mailbox_command、home_mailbox、mail_spool_directory、fallback_transport_maps、fallback_transport、そして luser_relay。
例:
home_mailbox = Mailbox home_mailbox = Maildir/
最初のメッセージヘッダで許される Received: メッセージヘッダの最大数。制限を超えたメッセージはメーラループを止めるためにバウンスされます。
Postfixサブシステムや機能に関する構築方法や設定方法、操作方法が書かれたPostfix HTMLファイルの場所。
応答しないDNS MX検索を無視します。デフォルトでは、Postfix SMTP クライアントは配送を遅延し、しばらくしてから再試行します。この振る舞いは SMTP 標準によって要求されています。
代わりにDNS Aレコード検索を強制するには、"ignore_mx_lookup_error = yes" を指定してください。これは SMTP 標準からはずれており、メールの配送ミスを起こす可能性があります。
Postfixプロセスが非Postfix親プロセスから受け取る環境変数パラメータのリスト。関連するパラメータの例:
名前や name=value の組を空白またはカンマで区切ったリストを指定します。name=value の形式はPostfixバージョン2.1以降でサポートされています。
メッセージ到着速度がメッセージ配送速度を超えた場合に、新しいメッセージを受ける前に一時停止する時間。この機能はデフォルトで有効になっています (SCO バグのため、SCO UNIX では無効にされています)。
デフォルトの 100 SMTPサーバプロセス制限では、"in_flow_delay = 1s" は1秒あたりのメッセージ配送数を超えて入ってくるメールを毎秒 100 メッセージに制限します。
この機能を無効にするには 0 を指定します。有効な遅延は 0..10 です。
このメールシステムがメールを受け取るネットワークインターフェースアドレス。すべてのネットワークインターフェースでメールを受信するには "all" を指定します (デフォルト)。ループバックネットワークインターフェースのみでメールを受け取るには "loopback-only" を指定します (Postfixバージョン2.2以降)。このパラメータは user@[ip.address] 宛のメール配送も制御します。
注意1: このパラメータを変更したらPostfixを stop してから start する必要があります。
注意2: アドレス情報を [] の中に入れることもできますが、ここではこの形式は推奨しません。
inet_interfaces がループバックアドレスではないIPv4やIPv6アドレスを1つだけ指定している場合、 Postfix SMTPクライアントはこのアドレスを外行きメールのIPソースアドレスとして使います。IPv6のサポートはPostfixバージョン2.2以降で使えます。
マルチホームなファイアウォールで、"内側" と "外側" インターフェースで listenする別々のPostfixインスタンスを持つと、それぞれのインターフェースがファイアウォールの "反対側" のサーバに到達できなくなってしまいます。smtp_bind_address を 0.0.0.0 とすることでIPv4の潜在的な問題を避け、smtp_bind_address6 を :: とするとIPv6の問題を解決します。
マルチホームなファイアウォールでは、inet_interfaces をデフォルト値のままにしておき、代わりに master.cf SMTPサーバ定義で明示的なIPアドレスを使うのがよりよい解決策です。こうしてファイアウォールのそれぞれの側が他のIPアドレスも同じホストにあるとわからせることで、Postfix SMTPクライアントのループ検出機能を維持します。$inet_interfaces に単一のIPv4やIPv6アドレスを設定すると、主に、それぞれのIPアドレスが異なるドメインを提供する (そして異なる $myhostname 設定を持つ) 場合に、セカンダリIPアドレスでバーチャルホスティングをするのに便利です。
プロキシやアドレス変換を通ってPostfixに転送されてくるネットワークアドレスについては、 proxy_interfaces パラメータも参照してください。
例:
inet_interfaces = all (デフォルト) inet_interfaces = loopback-only (Postfixバージョン2.2以降) inet_interfaces = 127.0.0.1 inet_interfaces = 127.0.0.1, [::1] (Postfixバージョン2.2 以降) inet_interfaces = 192.168.1.2, 127.0.0.1
Postfixが接続したり受ける際に使おうとするインターネットプロトコル。 "ipv4" または "ipv6" の1つ以上を、空白またはカンマで区切って指定します。 "all" という形式は "ipv4, ipv6" または "ipv4" と等価で、これはオペレーティングシステムがIPv6を実装しているかによります。
この機能はPostfix 2.2以降で使えます。
注意: このパラメータを変更したらPostfixを stop してから start しなければ「いけません」。
IPV6_V6ONLY サポート (RFC 3493) より前のシステムでは、IPv4を inet_protocols パラメータで無効にしていても、IPv6サーバはIPv4 接続も受けてしまいます。IPV6_V6ONLY サポートのあるシステムでは、 PostfixはIPv6とIPv4で別々のサーバソケットを使い、それぞれ対応するプロトコルの接続のみを受けます。
IPv4サポートが inet_protocols パラメータで有効になっていると、PostfixはDNSタイプAレコード検索をおこない、IPv4-in-IPv6 クライアントIPアドレス (::ffff:1.2.3.4) を元のIPv4形式 (1.2.3.4) に変換します。後者は IPV6_V6ONLY サポート (RFC 3493) 以前のホストで必要です。
IPv6サポートが inet_protocols パラメータで有効になっていると、 PostfixはDNSタイプAAAAレコード検索をおこないます。
IPv4とIPv6サポートの両方が有効になっていると、Postfix SMTP クライアントはIPv4を使おうとする前にIPv6で接続を試みます。
例:
inet_protocols = ipv4 (デフォルト) inet_protocols = all inet_protocols = ipv6 inet_protocols = ipv4, ipv6
同じ配送先に並列で配送する際の、配送先ごとの並列度の初期値。この制限は smtp(8) を使った配送や、pipe(8) や virtual(8) 配送エージェントを使った配送に適用されます。
警告: 並列度を 1 にすると、悪いメッセージが1つあるだけであるサイトへの全てのメールを止めてしまうことになりかねません。
Postfixが生成したメールのうち、non_smtpd_milters や header_checks、body_checks によるキュー投入前コンテンツ検査を受けるカテゴリ。以下のうちゼロ個以上を、空白またはカンマで区切って指定します。
注意: たいていの場合、Postfixが生成したEメールメッセージのないよう検査を有効にするのは安全ではありません。ユーザは警告を受けます。
この機能はPostfix 2.3以降で使えます。
クライアントの HELO または EHLO コマンドパラメータが reject_invalid_helo_hostname 制限で拒否された場合の、数字のPostfix SMTPサーバ応答コード。
RFC 821 を完全に理解しているのでなければ、これを変更してはいけません。
アイドル状態になっている内部接続チャネルをクライアントが閉じるまでの時間。これはサーバがアイドル状態になったあとで、自主的に終了できるようにすることが目的です。これは例えばアドレス解決および書き換えクライアントによって使われます。
時間単位: s (秒)、m (分)、h (時)、d (日)、w (週)。デフォルトの時間単位は s (秒) です。
内部通信チャネルを通して情報を送受信する際の時間制限。これはデッドロック状態を打破するのが目的です。制限時間を超えると、ソフトウェアは致命的エラーを出して強制終了します。
時間単位: s (秒)、m (分)、h (時)、d (日)、w (週)。デフォルトの時間単位は s (秒) です。
アクティブな内部通信チャネルをクライアントが閉じるまでの時間。これはクライアントが制限に達した際に、サーバが自主的に終了できるようにすることが目的です。これは例えばアドレス解決および書き換えクライアントによって使われます。
時間単位: s (秒)、m (分)、h (時)、d (日)、w (週)。デフォルトの時間単位は s (秒) です。
この機能はPostfix 2.1以降で使えます。
入力時に、長い行は最大でこの長さの断片に分けられます; 配送時には長い行は再構築されます。
smtp_bind_address 設定パラメータのLMTP版。詳細はそちらを参照してください。
この機能はPostfix 2.3以降で使えます。
smtp_bind_address6 設定パラメータのLMTP版。詳細はそちらを参照してください。
この機能はPostfix 2.3以降で使えます。
$max_idle 秒になるまでPostfix LMTP クライアントの接続を開いたままにします。LMTPクライアントが同じ接続を要求された際に、接続は再利用されます。
LMTPクライアントが同じ接続を要求された際に、接続は再利用されます。キャッシュされた接続は以下のいずれかの条件で閉じられます:
これらの制限の多くはPostfixが複数のLMTPクライアントプログラムで共有する接続キャッシュを実装したときになくなる予定です。
smtp_cname_overrides_servername 設定パラメータのLMTP版。詳細はそちらを参照してください。
この機能はPostfix 2.3以降で使えます。
TCP接続を完了するまでの LMTPクライアントの時間制限、またはゼロ (オペレーティングシステムのビルトイン時間制限を使います)。期限までに接続できないと、LMTPクライアントはメール交換機リストの次のアドレスを試行します。
時間単位: s (秒)、m (分)、h (時)、d (日)、w (週)。デフォルトの時間単位は s (秒) です。
例:
lmtp_connect_timeout = 30s
smtp_connection_cache_destinations 設定パラメータのLMTP版。詳細はそちらを参照してください。
この機能はPostfix 2.3以降で使えます。
smtp_connection_cache_on_demand 設定パラメータのLMTP版。詳細はそちらを参照してください。
この機能はPostfix 2.3以降で使えます。
smtp_connection_cache_time_limit 設定パラメータのLMTP版。詳細はそちらを参照してください。
この機能はPostfix 2.3以降で使えます。
smtp_connection_reuse_time_limit 設定パラメータのLMTP版。詳細はそちらを参照してください。
この機能はPostfix 2.3以降で使えます。
LMTP "." を送り、サーバの応答を受け取るまでの、LMTPクライアントの時間制限。期限までに応答を受けないと、メールが複数回配送されるかもしれないという警告がログに記録されます。
時間単位: s (秒)、m (分)、h (時)、d (日)、w (週)。デフォルトの時間単位は s (秒) です。
LMTP DATA コマンドを送り、サーバの応答を受け取るまでの、LMTP クライアントの時間制限。
時間単位: s (秒)、m (分)、h (時)、d (日)、w (週)。デフォルトの時間単位は s (秒) です。
LMTPメッセージコンテンツを送る際のLMTPクライアントの時間制限。接続が $lmtp_data_xfer_timeout 以上の時間行き詰まると、LMTPクライアントは転送を終了します。
時間単位: s (秒)、m (分)、h (時)、d (日)、w (週)。デフォルトの時間単位は s (秒) です。
smtp_defer_if_no_mx_address_found 設定パラメータのLMTP版。詳細はそちらを参照してください。
この機能はPostfix 2.3以降で使えます。
lmtp メッセージ配送 transport を使った同じ配送先への並列配送の最大数。この制限はキューマネージャによって強制されます。メッセージ配送 transport の名前は master.cf ファイルのエントリの最初のフィールドです。
lmtp メッセージ配送 transport を使った、配送ごとの受信者の最大数。この制限はキューマネージャによって強制されます。メッセージ配送 transport の名前は master.cf ファイルのエントリの最初のフィールドです。
このパラメータの値を1に設定すると、lmtp_destination_concurrency_limit の意味がドメインごとの並列度から受信者ごとの並列度に変わります。
LMTPクライアントがリモートLMTPサーバからの応答で無視する、大文字小文字を区別しない LHLO キーワードのリスト (pipelining, starttls, auth など) を持つ、リモートLMTPサーバアドレスでインデックス化された検索テーブル。詳細は lmtp_discard_lhlo_keywords を参照してください。smtpd_discard_ehlo_keyword_address_maps との一貫性を保つため、テーブルはホスト名ではインデックス化されません。
この機能はPostfix 2.3以降で使えます。
LMTPクライアントがリモートLMTPサーバからのLHLO応答で無視する、大文字小文字を区別しないLHLOキーワードのリスト (pipelining, starttls, auth など)。
この機能はPostfix 2.3以降で使えます。
注意:
この動作がログに記録されないようにするには、silent-discard擬似キーワードを指定します。
選択的にLHLOキーワードを破棄するには、lmtp_discard_lhlo_keyword_address_maps 機能を使います。
smtp_enforce_tls 設定パラメータのLMTP版。詳細はそちらを参照してください。
この機能はPostfix 2.3以降で使えます。
smtp_generic_maps 設定パラメータのLMTP版。詳細はそちらを参照してください。
この機能はPostfix 2.3以降で使えます。
smtp_host_lookup 設定パラメータのLMTP版。詳細はそちらを参照してください。
この機能はPostfix 2.3以降で使えます。
LMTP LHLO コマンドで送るホスト名。
デフォルト値はマシンのホスト名です。ホスト名または [ip.add.re.ss] を指定します。
全てのLMTPクライアントに対しては main.cf ファイルでこの情報を指定できますし、もしくは特定のクライアントに対しては master.cf ファイルで指定できます。例:
/etc/postfix/master.cf: mylmtp ... lmtp -o lmtp_lhlo_name=foo.bar.com
この機能はPostfix 2.3以降で使えます。
LHLO コマンドを送り、サーバの応答を受け取るまでの、LMTPクライアントの時間制限。
時間単位: s (秒)、m (分)、h (時)、d (日)、w (週)。デフォルトの時間単位は s (秒) です。
smtp_line_length_limit 設定パラメータのLMTP版。詳細はそちらを参照してください。
この機能はPostfix 2.3以降で使えます。
MAIL FROM コマンドを送り、サーバの応答を受け取るまでの、LMTP クライアントの時間制限。
時間単位: s (秒)、m (分)、h (時)、d (日)、w (週)。デフォルトの時間単位は s (秒) です。
smtp_mx_address_limit 設定パラメータのLMTP版。詳細はそちらを参照してください。
この機能はPostfix 2.3以降で使えます。
smtp_mx_session_limit 設定パラメータのLMTP版。詳細はそちらを参照してください。
この機能はPostfix 2.3以降で使えます。
smtp_pix_workaround_delay_time 設定パラメータのLMTP版。詳細はそちらを参照してください。
この機能はPostfix 2.3以降で使えます。
smtp_pix_workaround_threshold_time 設定パラメータのLMTP版。詳細はそちらを参照してください。
この機能はPostfix 2.3以降で使えます。
QUIT コマンドを送り、サーバの応答を受け取るまでの、LMTPクライアントの時間制限。
時間単位: s (秒)、m (分)、h (時)、d (日)、w (週)。デフォルトの時間単位は s (秒) です。
smtp_quote_rfc821_envelope 設定パラメータのLMTP版。詳細はそちらを参照してください。
この機能はPostfix 2.3以降で使えます。
smtp_randomize_addresses 設定パラメータのLMTP版。詳細はそちらを参照してください。
この機能はPostfix 2.3以降で使えます。
RCPT TO コマンドを送り、サーバの応答を受け取るまでの、LMTP クライアントの時間制限。
時間単位: s (秒)、m (分)、h (時)、d (日)、w (週)。デフォルトの時間単位は s (秒) です。
RSET コマンドを送り、サーバの応答を受け取るまでの、LMTPクライアントの時間制限。LMTPクライアントは受信者アドレス探査を終わらせるためや、キャッシュされた接続がまだ生きているかどうかを確認するために RSET を送ります。
時間単位: s (秒)、m (分)、h (時)、d (日)、w (週)。デフォルトの時間単位は s (秒) です。
Postfix LMTPクライアントのSASL認証を有効にします。
smtp_sasl_mechanism_filter 設定パラメータのLMTP版。詳細はそちらを参照してください。
この機能はPostfix 2.3以降で使えます。
ホストまたはドメインごとに1つの username:password エントリを持つ、オプションの LMTPクライアント検索テーブル。リモートホストやリモートドメインの username:password エントリがない場合、Postfix LMTP クライアントはそのリモートホストに対して認証を試そうとしません。
lmtp_sasl_type で選ばれたSASLプラグインの実装にそのまま渡される、実装に依存する情報。通常はここに設定ファイル名やランデブーポイントの名前を指定します。
この機能はPostfix 2.3以降で使えます。
SASLセキュリティオプション; Postfix 2.3では、利用可能な機能はlmtp_sasl_typeで選択されたSASLクライアントの実装に依存します。
以下のセキュリティ機能が cyrus クライアントSASL実装で定義されています:
例:
lmtp_sasl_security_options = noplaintext
smtp_sasl_tls_security_options 設定パラメータのLMTP版。詳細はそちらを参照してください。
この機能はPostfix 2.3以降で使えます。
smtp_sasl_tls_verified_security_options 設定パラメータのLMTP版。詳細はそちらを参照してください。
この機能はPostfix 2.3以降で使えます。
Postfix LMTPクライアントが認証に使うSASLプラグインの種類。利用可能な種類は "postconf -A" コマンドでリストアップされます。
この機能はPostfix 2.3以降で使えます。
LMTP LHLOサーバ応答が XFORWARD サポートを通知した場合に、LMTPサーバに XFORWARD コマンドを送ります。これはコンテンツフィルタによるメッセージの差し挟みに使われる lmtp(8) 配送エージェントが元のクライアントの名前やアドレス、プロトコル、HELO名をコンテンツフィルタや下流でキューイングするLMTPサーバに転送できるようにします。値を yes に変更する前に、コンテンツフィルタがこのコマンドをサポートしているか確認するのがよいでしょう。
この機能はPostfix 2.1以降で使えます。
smtp_sender_dependent_authentication 設定パラメータのLMTP版。詳細はそちらを参照してください。
この機能はPostfix 2.3以降で使えます。
smtp_skip_5xx_greeting 設定パラメータのLMTP版。 詳細はそちらを参照してください。
この機能はPostfix 2.3以降で使えます。
LMTP QUIT コマンドへの応答を待ちます。
smtp_starttls_timeout 設定パラメータのLMTP版。 詳細はそちらを参照してください。
この機能はPostfix 2.3以降で使えます。
Postfix LMTPクライアントが接続する、デフォルトのTCPポート。
smtp_tls_CAfile 設定パラメータのLMTP版。詳細はそちらを参照してください。
この機能はPostfix 2.3以降で使えます。
smtp_tls_CApath 設定パラメータのLMTP版。詳細はそちらを参照してください。
この機能はPostfix 2.3以降で使えます。
smtp_tls_cert_file 設定パラメータのLMTP版。詳細はそちらを参照してください。
この機能はPostfix 2.3以降で使えます。
smtp_tls_dcert_file 設定パラメータのLMTP版。詳細はそちらを参照してください。
この機能はPostfix 2.3以降で使えます。
smtp_tls_dkey_file 設定パラメータのLMTP版。詳細はそちらを参照してください。
この機能はPostfix 2.3以降で使えます。
smtp_tls_enforce_peername 設定パラメータのLMTP版。詳細はそちらを参照してください。
この機能はPostfix 2.3以降で使えます。
smtp_tls_exclude_ciphers 設定パラメータのLMTP版。詳細はそちらを参照してください。
この機能はPostfix 2.3以降で使えます。
smtp_tls_key_file 設定パラメータのLMTP版。詳細はそちらを参照してください。
この機能はPostfix 2.3以降で使えます。
smtp_tls_loglevel 設定パラメータのLMTP版。詳細はそちらを参照してください。
この機能はPostfix 2.3以降で使えます。
smtp_tls_mandatory_ciphers 設定パラメータのLMTP版。詳細はそちらを参照してください。
この機能はPostfix 2.3以降で使えます。
smtp_tls_mandatory_exclude_ciphers 設定パラメータのLMTP版。詳細はそちらを参照してください。
この機能はPostfix 2.3以降で使えます。
smtp_tls_mandatory_protocols 設定パラメータのLMTP版。詳細はそちらを参照してください。
この機能はPostfix 2.3以降で使えます。
smtp_tls_note_starttls_offer 設定パラメータのLMTP版。詳細はそちらを参照してください。
この機能はPostfix 2.3以降で使えます。
smtp_tls_per_site 設定パラメータのLMTP版。詳細はそちらを参照してください。
この機能はPostfix 2.3以降で使えます。
smtp_tls_policy_maps 設定パラメータのLMTP版。詳細はそちらを参照してください。
この機能はPostfix 2.3以降で使えます。
smtp_tls_scert_verifydepth 設定パラメータのLMTP版。詳細はそちらを参照してください。
この機能はPostfix 2.3以降で使えます。
smtp_tls_secure_cert_match 設定パラメータのLMTP版。詳細はそちらを参照してください。
この機能はPostfix 2.3以降で使えます。
smtp_tls_session_cache_database 設定パラメータのLMTP版。詳細はそちらを参照してください。
この機能はPostfix 2.3以降で使えます。
smtp_tls_session_cache_timeout 設定パラメータのLMTP版。詳細はそちらを参照してください。
この機能はPostfix 2.3以降で使えます。
smtp_tls_verify_cert_match 設定パラメータのLMTP版。詳細はそちらを参照してください。
この機能はPostfix 2.3以降で使えます。
smtp_use_tls 設定パラメータのLMTP版。詳細はそちらを参照してください。
この機能はPostfix 2.3以降で使えます。
XFORWARD コマンドを送り、サーバの応答を受け取るまでの、LMTP クライアントの時間制限。
問題が起こった場合、クライアントはメール交換機リストの次のアドレスを「試しません」。
時間単位: s (秒)、m (分)、h (時)、d (日)、w (週)。デフォルトの時間単位は s (秒) です。
この機能はPostfix 2.1以降で使えます。
local(8) が非Postfixコマンドに配送する際の、オプションのシェルプログラム。デフォルトでは、非Postfixコマンドは直接実行されます; コマンドがシェルのメタ文字やシェルビルトインコマンドを含んでいる場合に限り、コマンドは /bin/sh に与えられます。
"sendmail's restricted shell" (smrsh) は例えば .forward ファイルから実行できるプログラムを制限するために、最も多くの人が使うものでしょう (smrsh は Sendmail 配布物の一部です)。
注意: シェルプログラムが指定されると、コマンドがシェルビルトインコマンドやメタ文字を含んでいない場合でもそれが呼ばれます。
例:
local_command_shell = /some/where/smrsh -c
local メール配送 transport を使った同じ受信者への並列配送の最大数 ("local_destination_recipient_limit = 1" の場合)、または同じローカルドメインローカルドメイン ( "local_destination_recipient_limit > 1" の場合)。この制限はキューマネージャによって強制されます。メッセージ配送 transport の名前は master.cf ファイルのエントリの最初のフィールドです。
.forward ファイルやエイリアスに (メーリングリストマネージャのような) 負荷の高いシェルコマンドがある場合だけに備えた、2という低い制限が推奨されます。同時にこれらをたくさん動かす必要はないでしょう。
local メール配送 transport を使ったメッセージ配送ごとの、最大の受信者数。この制限はキューマネージャによって強制されます。メッセージ配送 transport の名前は master.cf ファイルのエントリの最初のフィールドです。
このパラメータを1より大きい値に変更すると、local_destination_concurrency_limit の意味が受信者ごとの並列度からドメインごとの並列度に変わります。
これらのクライアントから来たメールのメッセージヘッダアドレスを書き換え、不完全なアドレスに $myorigin や $mydomain を付けて更新します; 他のクライアントからのメッセージヘッダは一切書き換えないか、メッセージヘッダを書き換えて不完全なアドレスに remote_header_rewrite_domain パラメータで指定されたドメインを付けて更新するかのどちらかです。
不完全なアドレスにドメイン名を付加する方法の詳細は、append_at_myorigin および append_dot_mydomain パラメータを参照してください。
以下のうち、ゼロ個以上のリストを指定してください:
例:
Postfix < 2.2後方互換な設定: 常にメッセージヘッダを書き換え、不十分なヘッダアドレスに自身のドメインを付加します。
local_header_rewrite_clients = static:all
純粋主義者 (そしてデフォルト) の設定: Postfix sendmailからのメールと、このマシンからのSMTPメールのヘッダのみを書き換えます。
local_header_rewrite_clients = permit_inet_interfaces
中間の設定: Postfix sendmailやローカルクライアント、認証されたSMTP クライアントからのメールのみ、ヘッダアドレスを書き換えて、$myorigin または $mydomain を付加します。
注意: この設定はリモートクライアントからのメールが近隣システムによって転送された場合のメールヘッダアドレスの書き換えは妨げません。
local_header_rewrite_clients = permit_mynetworks, permit_sasl_authenticated permit_tls_clientcerts check_address_map hash:/etc/postfix/pop-before-smtp
ローカル受信者の全ての名前もしくはアドレスを持つ検索テーブル: ドメインが $mydestination や $inet_interfaces、$proxy_interfaces にマッチする受信者アドレスがローカルです。有効な受信者リストを持たないドメインはワイルドカードとして @domain を指定します。技術的には、$local_recipient_maps でリストアップされたテーブルはリストとして使われます: Postfixは検索文字列が見つかるかどうかだけを知る必要があり、検索テーブルの結果は使いません。
このパラメータが空でなければ (デフォルトです)、Postfix SMTPサーバは知らないローカルユーザ宛のメールを拒否します。
Postfix SMTPサーバでのローカル受信者チェックを無効にするには、"local_recipient_maps =" (つまり空値) を指定します。
デフォルトの設定はローカル配送にデフォルトのPostfix local 配送エージェントを使うことを想定しています。次の場合には local_recipient_maps 設定を更新する必要があります:
詳細は LOCAL_RECIPIENT_README ファイルに記述されています。
注意: Postfix SMTPサーバが chroot されて走っている場合、chroot アクセス制限を乗り越えるために proxymap(8) サービスを通してpasswdファイルにアクセスする必要があります。代わりにシステムパスワードファイルのコピーをchroot監獄で管理するのは実用的ではありません。
例:
local_recipient_maps =
mydestination でリストアップされたドメインへの最終配送、および $inet_interfaces や $proxy_interfaces にマッチした [ipアドレス] 配送先に使う、デフォルトのメール配送transportおよびnext-hop配送先。この情報は transport(5) テーブルで上書きできます。
デフォルトでは、ローカルメールは "local" と呼ばれるtransportに配送されます。この "local" は master.cf ファイルで定義されたサービスの名前でしかありません。
transport:nexthop という形の文字列を指定します。ここで transportは master.cf に定義されたメール配送 transport の名前です。:nexthop 部分はオプションです。より詳細は transport(5) マニュアルページを参照してください。
注意: デフォルトの local 配送エージェントを上書きするのであれば、 LOCAL_RECIPIENT_README ドキュメントを再検討する必要があります。そうしないと、SMTPサーバはローカルの受信者宛のメールを拒否してしまうかもしれません。
知らない local(8) 受信者全ての、オプションの配送先。デフォルトでは、$mydestination や $inet_interfaces、$proxy_interfaces にマッチするドメインの知らない受信者宛のメールは、配送できないものとして返されます。
luser_relay では以下の $name 展開がおこなわれます:
$name の代わりに ${name} や $(name) を指定することもできます。
注意: luser_relay はPostfix local(8) 配送エージェントに対してのみ働きます。
注意: UNIX パスワードファイルにないアカウントに対してこの機能を使うのであれば、main.cf ファイルで "local_recipient_maps =" (つまり空値) を指定しなければいけません。そうしないと、Postfix SMTPサーバは非UNIXアカウント宛のメールを "User unknown in local recipient table" として拒否してしまいます。
例:
luser_relay = $user@other.host luser_relay = $local@other.host luser_relay = admin+$local
Received: ヘッダや SMTP グリーティングバナー、バウンスされたメールに表示されるメールシステム名。
PostfixキューおよびほとんどのPostfixデーモンプロセスを所有する UNIX システムアカウント。他のアカウントとグループを共有せず、システムの他のファイルやシステムを所有しないユーザアカウント名を指定します。特に、nobody や daemon を指定しないでください。「専用のユーザIDとグループIDを使ってください。」
このパラメータの値を変更したら、"postfix set-permissions" (Postfix 2.0以前では: "/etc/postfix/post-install set-permissions") を再実行する必要があります。
"YYYYMMDD" 形式のPostfixリリース日。
local(8) UNIX形式のメールボックスが置かれるディレクトリ。デフォルトの設定はシステムの種類に依存します。maildir 形式で配送するには、/ で終わる名前を指定します。
注意: maildir 配送は受信者の権限でおこなわれます。maildir 形式の配送で mail_spool_directory 設定を使う場合、前もってトップレベルの maildir ディレクトリを作らなければいけません。Postfixは作りません。
例:
mail_spool_directory = /var/mail mail_spool_directory = /var/spool/mail
メールシステムのバージョン。安定版は major.minor.patchlevel のように付けられています。試験版はリリース日も含んでいます。バージョン文字列は、例えば SMTP グリーティングバナーで使われるかもしれません。
メールボックス配送に local(8) 配送エージェントが使う、オプションの外部コマンド。コマンドは受信者のユーザIDと主となるグループID権限で動きます。例外: root宛のコマンド配送は $default_privs 権限で実行します。1) root宛のメールは実在ユーザにエイリアスされるべきであり、 2) rootとしてログインせず "su" を使うべきなので、これは問題ではありません。
以下の環境変数がコマンドに渡されます:
他のPostfix設定パラメータとは異なり、mailbox_command パラメータは $name の置換を受けません。これはシェル文法の指定を容易にするためです (例を参照)。
シェルのメタ文字があると、Postfixは負荷の高いシェルプロセスを走らせなければならなくなるため、できるだけ避けてください。Procmail を使って配送しているのであれば、全体の負荷としてシェルでも大差ないでしょう。
注意: システム全体のメール配送に mailbox_command 機能を使うのであれば、root宛のメールを実在のユーザに転送するようなエイリアスを作らなければいけません。
local(8) 配送機能の優先度は高いものから低いものの順に: aliases、.forward ファイル、mailbox_transport_maps、mailbox_transport、mailbox_command_maps、mailbox_command、home_mailbox、mail_spool_directory、fallback_transport_maps、fallback_transport、そして luser_relay。
例:
mailbox_command = /some/where/procmail mailbox_command = /some/where/procmail -a "$EXTENSION" mailbox_command = /some/where/maildrop -d "$USER" -f "$SENDER" "$EXTENSION"
local(8) メールボックス配送で使われる、受信者ごとの外部コマンドを持つ、オプションの検索テーブル。振る舞いは mailbox_command での指定と同じです。
local(8) 配送機能の優先度は高いものから低いものの順に: aliases、.forward ファイル、mailbox_transport_maps、mailbox_transport、mailbox_command_maps、mailbox_command、home_mailbox、mail_spool_directory、fallback_transport_maps、fallback_transport、そして luser_relay。
配送しようとする前に UNIX 形式の local(8) メールボックスにロックする方法。利用可能なファイルロック方法をリストアップするには、"postconf -l" コマンドを使ってください。
maildir 形式の配送では明示的なロックなしでも安全であるため、この設定は無視されます。
注意: dotlock 方式では、メールボックスファイルの親ディレクトリに受信者の UID または GID の書き込み権が必要です。
注意: このパラメータのデフォルトの設定はシステムに依存します。
local(8) の個々のメールボックスまたは maildir の最大サイズ、もしくはゼロ (制限なし)。実際には、これは local(8) 配送エージェントによって実行される外部コマンドが書き込むファイルも含めて、ローカル配送で書かれるあらゆるファイルのサイズを制限します。
この制限はメッセージサイズ制限よりも小さくしてはいけません。
UNIX passwd データベースでの有無にかかわらず、全てのローカル受信者へのメールボックス配送に local(8) 配送エージェントが使う、オプションのメッセージ配送 transport。
local(8) 配送機能の優先度は高いものから低いものの順に: aliases、.forward ファイル、mailbox_transport_maps、mailbox_transport、mailbox_command_maps、mailbox_command、home_mailbox、mail_spool_directory、fallback_transport_maps、fallback_transport、そして luser_relay。
受信者がUNIX passwdデータベースで見つかるかどうかにかかわらず local(8) メールボックス配送に使う、受信者ごとのメッセージ配送transportが書かれた、オプションの検索テーブル。
local(8) 配送機能の優先度は高いものから低いものの順に: aliases、.forward ファイル、mailbox_transport_maps、mailbox_transport、mailbox_command_maps、mailbox_command、home_mailbox、mail_spool_directory、fallback_transport_maps、fallback_transport、そして luser_relay。
安全上の理由から、この機能は正規表現マップでの $number の置換が使えません。
この機能はPostfix 2.3以降で使えます。
Postfix mailq(1) コマンドがインストールされた場所を指定するSendmail互換機能。このコマンドはPostfixメールキューをリストアップするのに使われます。
Postfixマニュアルページがインストールされた場所。
古い機能: 代わりに reject_rbl_client 機能を使ってください。
リモートSMTPクライアントの要求が reject_rbl_client や reject_rhsbl_client、reject_rhsbl_sender、reject_rhsbl_recipient 制限でブロックされた場合の、数字のPostfix SMTPサーバ応答コード。
RFC 821 を完全に理解しているのでなければ、これを変更してはいけません。
アドレスマスカレードを受けるアドレスの種類。
デフォルトでは、アドレスマスカレードはエンベロープ送信者アドレス、およびヘッダ送信者・ヘッダ受信者アドレスに制限されます。これにより、個々のマシンのユーザにメールを転送できるようにしたままで、メールゲートウェイ上でアドレスマスカレードが使えるようになります。
次のゼロ個もしくはそれ以上を指定してください: envelope_sender、envelope_recipient、header_sender、header_recipient
Eメールアドレスのサブドメイン構造が削られるドメインの、オプションのリスト。
リストは左から右へと処理され、最初にマッチしたところで処理を止めます。つまり、
masquerade_domains = foo.example.com example.com
は "user@any.thing.foo.example.com" を "user@foo.example.com" までしか削りませんが、"user@any.thing.else.example.com" を "user@example.com" に削ります。
ドメイン名の前に ! をつけると、そのドメインやサブドメインはマスカレードしないことを意味します。つまり、
masquerade_domains = !foo.example.com example.com
は "user@any.thing.foo.example.com" や "user@foo.example.com" を変化させませんが、"user@any.thing.else.example.com" を "user@example.com" へと削ります。
注意: Postfixバージョン2.2では、メッセージヘッダマスカレードはメッセージヘッダアドレスの書き換えが有効になっている場合にのみなされます:
Postfixバージョン2.2以前の振る舞いにしたければ、"local_header_rewrite_clients = static:all" を指定してください。
例:
masquerade_domains = $mydomain
$masquerade_domains にマッチしてもアドレスマスカレードを受けないユーザ名の、オプションのリスト。
デフォルトでは、アドレスマスカレードは例外を作りません。
ユーザ名のリストや "/file/name"、"type:table" パターンを、カンマまたは空白で区切って指定してください。リストは左から右へと検索され、最初にマッチしたところで検索を止めます。リストから name を除外するには、 "!name" を指定します。"/file/name" パターンはその内容で置き換えられます; "type:table" 検索テーブルは、名前が検索キーにマッチしたときにマッチします (検索結果は無視されます)。次の行を空白で始めることで、長い行を継続します。
例:
masquerade_exceptions = root, mailer-daemon masquerade_exceptions = root
Postfixデーモンプロセスが終了するまでに次のサービス要求を待つ最大時間。Postfixキューマネージャはこのパラメータを無視します。
時間単位: s (秒)、m (分)、h (時)、d (日)、w (週)。デフォルトの時間単位は s (秒) です。
Postfixデーモンプロセスが終了するまでの接続要求の最大数。Postfix キューマネージャや他の長生きなPostfixデーモンプロセスはこのパラメータを無視します。
遅延メッセージの配送を試行する最大の時間間隔。
このパラメータには $minimal_backoff_time 以上の値を設定してください。$queue_run_delay も参照してください。
時間単位: s (秒)、m (分)、h (時)、d (日)、w (週)。デフォルトの時間単位は s (秒) です。
配送できないものとして送り返すまでに、メッセージがキューに入っている最大の時間。
時間単位: s (秒)、m (分)、h (時)、d (日)、w (週)。デフォルトの時間単位は d (日) です。
メール配送の試行を1回だけにするには 0 を指定します。
メッセージの内容に現れたらPostfixが拒否する文字のセット。通常のCライク名エスケープシーケンスが認識されます: \a \b \f \n \r \t \v \ddd (最大3桁の8進数) および \\。
例:
message_reject_characters = \0
この機能はPostfix 2.3以降で使えます。
エンベロープ情報を含む、バイト単位のメッセージの最大サイズ。
メッセージの内容に現れたらPostfixが取り除く文字のセット。通常のCライク名エスケープシーケンスが認識されます: \a \b \f \n \r \t \v \ddd (最大3桁の8進数) および \\。
例:
message_strip_characters = \0
この機能はPostfix 2.3以降で使えます。
SMTP コマンドをMilter (メールフィルタ) アプリケーションに送り、応答を受け取るまでの時間制限。
ゼロ以外の時間の値を指定します (整数値に時間単位を示す1文字サフィックスをつけます)。
時間単位: s (秒)、m (分)、h (時)、d (日)、w (週)。デフォルトの時間単位は s (秒) です。
この機能はPostfix 2.3以降で使えます。
SMTP接続が完了した後でMilter (メールフィルタ) アプリケーションに送られるマクロ。利用可能なマクロ名とその意味は MILTER_README を参照してください。
この機能はPostfix 2.3以降で使えます。
Milter (メールフィルタ) アプリケーションに接続し、プロトコルオプションをやりとりする際の時間制限。
ゼロ以外の時間の値を指定します (整数値に時間単位を示す1文字サフィックスをつけます)。
時間単位: s (秒)、m (分)、h (時)、d (日)、w (週)。デフォルトの時間単位は s (秒) です。
この機能はPostfix 2.3以降で使えます。
メッセージの内容をMilter (メールフィルタ) アプリケーションに送り、応答を受け取るまでの時間制限。
ゼロ以外の時間の値を指定します (整数値に時間単位を示す1文字サフィックスをつけます)。
時間単位: s (秒)、m (分)、h (時)、d (日)、w (週)。デフォルトの時間単位は s (秒) です。
この機能はPostfix 2.3以降で使えます。
SMTP DATAコマンドの後でバージョン4以上の Milter (メールフィルタ) アプリケーションに送られるマクロ。利用可能なマクロ名とその意味は MILTER_README を参照してください。
この機能はPostfix 2.3以降で使えます。
Milter (メールフィルタ) アプリケーションが使えなかったり設定が間違えているときのデフォルトの動作。以下のうち一つを指定します:
この機能はPostfix 2.3以降で使えます。
メッセージ end-of-data の後で Milter (メールフィルタ) アプリケーションに送られるマクロ。利用可能なマクロ名とその意味は MILTER_README を参照してください。
この機能はPostfix 2.3以降で使えます。
SMTP HELO もしくは EHLO の後で Milter (メールフィルタ) アプリケーションに送られるマクロ。利用可能なマクロ名とその意味は MILTER_README を参照してください。
この機能はPostfix 2.3以降で使えます。
Milter (メールフィルタ) アプリケーションでの {daemon_name} マクロの値。利用可能なマクロ名とその意味は MILTER_README を参照してください。
この機能はPostfix 2.3以降で使えます。
Milter (メールフィルタ) アプリケーションでの {v} マクロの値。利用可能なマクロ名とその意味は MILTER_README を参照してください。
この機能はPostfix 2.3以降で使えます。
SMTP MAIL FROM コマンドの後で Milter (メールフィルタ) アプリケーションに送られるマクロ。利用可能なマクロ名とその意味は MILTER_README を参照してください。
この機能はPostfix 2.3以降で使えます。
Milter (メールフィルタ) アプリケーションと通信するメールフィルタのプロトコルバージョンとオプションの拡張プロトコル。この情報は実際のメールフィルタアプリケーションが期待するプロトコルとマッチしていなければいけません。
プロトコルバージョン:
拡張プロトコル:
この機能はPostfix 2.3以降で使えます。
SMTP RCPT TO コマンドの後で Milter (メールフィルタ) アプリケーションに送られるマクロ。利用可能なマクロ名とその意味は MILTER_README を参照してください。
この機能はPostfix 2.3以降で使えます。
未知の SMTP コマンドの後でバージョン3以上の Milter (メールフィルタ) アプリケーションに送られるマクロ。利用可能なマクロ名とその意味は MILTER_README を参照してください。
この機能はPostfix 2.3以降で使えます。
MIMEマルチパート境界文字列の最大長。MIMEプロセッサは最初の $mime_boundary_length_limit 文字が異ならない境界文字列を区別することができません。
この機能はPostfix 2.0以降で使えます。
header_checks(5) マニュアルページに書かれているような、MIMEに関連したメッセージヘッダのコンテンツ検査をおこなう、オプションの検索テーブル。
この機能はPostfix 2.0以降で使えます。
MIME処理で扱う最大の再帰レベル。Postfixは指定された制限よりもネストが深いメールを拒否します。
この機能はPostfix 2.0以降で使えます。
遅延メッセージの配送を試行する最小の時間間隔。このパラメータは到達できない配送先が短期間・メモリ内配送状態キャッシュに保持される時間も制限します。
このパラメータには $queue_run_delay 以上を設定してください。$maximal_backoff_time も参照してください。
時間単位: s (秒)、m (分)、h (時)、d (日)、w (週)。デフォルトの時間単位は s (秒) です。
リモートSMTPクライアントの要求が reject_multi_recipient_bounce 制限でブロックされた場合の、数字のPostfix SMTPサーバ応答コード。
RFC 821 を完全に理解しているのでなければ、これを変更してはいけません。
この機能はPostfix 2.1以降で使えます。
$local_transport メール配送 transport を使って配送されるドメインのリスト。デフォルトではこれは /etc/passwd および /etc/aliases の全ての受信者を検索するPostfix local(8) 配送エージェントです。SMTPサーバは受信者アドレスを $local_recipient_maps で確認し、存在しない受信者を拒否します。ADDRESS_CLASS_README ファイルのローカルドメインクラスも参照してください。
デフォルトの mydestination 値はローカルマシンの名前だけを指定しています。メールドメインゲートウェイ上では、$mydomain も含むべきでしょう。
$local_transport 配送方法は、メールシステムの user@[the.net.work.address] (IPアドレスは inet_interfaces および proxy_interfaces パラメータで指定されているもの) 宛のメールアドレスでも選ばれます。
警告:
バーチャルドメインの名前は指定しないでください - これらのドメインは別の場所で指定されます。詳細情報は VIRTUAL_READMEを参照してください。
このマシンがバックアップMXホストになっているドメイン名は指定しないでください。バックアップMXホストをセットアップする方法は STANDARD_CONFIGURATION_README を参照してください。
デフォルトでは、Postfix SMTPサーバは local_recipient_maps パラメータにリストアップされていない受信者宛のメールを拒否します。local_recipient_maps や unknown_local_recipient_reject_code パラメータの記述は postconf(5) マニュアルを参照してください。
ユーザ名、"/file/name" または "type:table" パターンを空白やカンマで区切ったリストを指定します。"/file/name" パターンはその内容で置き換えられます; "type:table" 検索テーブルは、名前が検索キーにマッチしたときにマッチします (検索結果は無視されます)。次の行を空白で始めることで、長い行を継続します。
例:
mydestination = $myhostname, localhost.$mydomain $mydomain mydestination = $myhostname, localhost.$mydomain www.$mydomain, ftp.$mydomain
このメールシステムのインターネットドメイン名。デフォルトでは $myhostname から最初の要素を引いたものを使います。$mydomain は他の多くの設定パラメータのデフォルト値として使われます。
例:
mydomain = domain.tld
このメールシステムのインターネットホスト名。デフォルトでは gethostname() から得た完全修飾ドメイン名を使います。$myhostname は他の多くの設定パラメータのデフォルト値として使われます。
例:
myhostname = host.domain.tld
"よそ者" よりも多くの権限を持つ "信頼された" SMTPクライアントのリスト。
特に、"信頼された" SMTPクライアントはPostfixを通したメールの中継が許可されます。postconf(5) マニュアルの smtpd_recipient_restrictions の記述を参照してください。
"信頼された" ネットワークアドレスのリストは手動で指定することも Postfixに指定させること (これがデフォルトです) もできます。詳細な情報は mynetworks_style パラメータの記述を参照してください。
mynetworks リストを手動で指定すると、 Postfixは mynetworks_style の設定を無視します。
ネットワークアドレスまたは network/netmask パターンを、空白やカンマで区切ったリストを指定します。次の行を空白で始めることで、長い行を継続します。
netmask にはホストアドレスのネットワーク部分のビット数を指定します。"/file/name" や "type:table" パターンを指定することもできます。"/file/name" パターンはその内容で置き換えられます; "type:table" 検索テーブルはテーブルのエントリが検索文字列にマッチするとマッチします (検索結果は無視されます)。
リストは左から右へと検索され、最初にマッチしたところで検索を止めます。リストからアドレスやネットワークブロックを除外するには、"!pattern" を指定します。
注意: IPバージョン6アドレス情報は mynetworks 値や "/file/name" で指定されるファイル内で [] の内側に指定しなければいけません。IPバージョン6アドレスは ":" 文字を含んでいるため、そうしないと "type:table" パターンと混乱してしまいます。
例:
mynetworks = 127.0.0.0/8 168.100.189.0/28 mynetworks = !192.168.0.1, 192.168.0.0/28 mynetworks = 127.0.0.0/8 168.100.189.0/28 [::1]/128 [2001:240:587::]/64 mynetworks = $config_directory/mynetworks mynetworks = hash:/etc/postfix/network_table
mynetworks パラメータのデフォルト値を生成する方法。これはリレーアクセス制御などのための信頼されたネットワークのリストです。
Postfixがローカルマシンのみを"信頼する"のであれば、"mynetworks_style = host" を指定します。
Postfixがローカルマシンと同じIPサブネットワークにあるSMTP クライアントを"信頼する"のであれば、"mynetworks_style = subnet" を指定します。Linuxでは、インターフェースが "ifconfig" コマンドで指定された場合にのみ正確に働きます。
Postfixがローカルマシンと同じIPクラスA/B/Cネットワークにある SMTPクライアントを"信頼する"のであれば、"mynetworks_style = class" を指定します。ダイアルアップサイトではこれを指定しないでください - Postfixがプロバイダのネットワーク全体を"信頼して"しまいます。代わりに、mynetworks 設定パラメータに書かれているように、手動で明示的に mynetworks リストを指定してください。
ドメイン名で、ローカルで投函されたメールはそこから来たように見え、またローカルで投かんされたメールはそこに配送されます。デフォルトの $myhostname は小さなサイトに適しているでしょう。複数のマシンを持つドメインを運用しているのであれば、(1) これを $mydomain に変えて、(2) それぞれの user を user@that.users.mailhost にエイリアスするような、ドメイン全体のエイリアスデータベースを設定すべきです。
例:
myorigin = $mydomain
header_checks(5) マニュアルページに書かれているような、添付されたメッセージの非MIMEメッセージヘッダのコンテンツ検査をおこなう、オプションの検索テーブル。
この機能はPostfix 2.0以降で使えます。
newaliases(1) コマンドの場所を指定している Sendmail 互換機能。このコマンドは local(8) aliases(5) データベースを再構築するのに使われます。
クライアントの要求が reject_non_fqdn_helo_hostname や reject_non_fqdn_sender、 reject_non_fqdn_recipient 制限で拒否された場合の、数字のPostfix SMTPサーバ応答コード。
Postfix smtpd(8) サーバを通さずに届いた新しいメールに対する Milster (メールフィルタ) アプリケーションのリスト。これには sendmail(1) コマンドラインを通したローカルでの投函やPostfix qmqpd(8) サーバを通して届いた新しいメール、"postsuper -r" でキューに再投入された古いメールも含まれます。詳細は MILTER_README ドキュメントを参照してください。
この機能はPostfix 2.3以降で使えます。
ポストマスターに報告されるエラークラスのリスト。デフォルトでは最も深刻な問題のみが報告されます。偏執的な人はポリシー (UCE およびメールのリレー) やプロトコルエラー (壊れたメールソフトウェア) の報告も有効にしたいかもしれません。
注意: postmaster通知にはSASLパスワードやメッセージの内容のような機密情報が含まれるかもしれません。そのような情報を注意して取り扱うのはシステム管理者の責務です。
エラークラスは:
例:
notify_classes = bounce, delay, policy, protocol, resource, software notify_classes = 2bounce, resource, software
アドレスのローカル部分が owner-listname および listname-request となっているものを特別扱いします: recipient_delimiter が "-" になっていても、そのようなアドレスを分割しません。この機能はメーリングリストに便利です。
明示的な ".domain.tld" パターンを要求する代わりに、自動的に "domain.tld" のサブドメインがマッチするPostfixの機能。これは後方互換性を意図しています: 最終的には、本当にサブドメインにマッチさせたい場合には、明示的な ".domain.tld" 形式のパターンを全ての Postfix機能が要求することになる予定です。
permit_mx_backup SMTPアクセス機能の使用を、プライマリMXホストがリストアップされたネットワークにマッチするドメインだけに制限します。
pickup(8) サービスの名前。このサービスはローカルで投かんされたメールをPostfix maildrop キュー から収集します。
この機能はPostfix 2.0以降で使えます。
クライアントの要求が reject_plaintext_session 受信者制限で拒否された場合の、数字のPostfix SMTPサーバ応答コード。
この機能はPostfix 2.3以降で使えます。
メールが配送される先のアドレスが書かれた Delivered-To: メッセージヘッダをPostfix local(8) 配送エージェントが前置する、メッセージ配送の場面。この情報はメール配送ループの検出に使われます。
デフォルトでは、メールの転送時やファイル(メールボックス)およびコマンドへの配送時に、Postfix local 配送エージェントは Delivered-To: ヘッダを前に付けます。メール転送時に Delivered-To: を無効にするのは勧められません。
forward や file、command のうちゼロ個以上を指定します。
例:
prepend_delivered_header = forward
PostfixコマンドまたはデーモンプロセスのプロセスID。
$queue_directory からのPostfix PIDファイルの相対位置。これは読みとり専用のパラメータです。
Postfixコマンドまたはデーモンプロセスのプロセス名。
検索キーから検索結果へと拡張アドレスをコピーするアドレス検索テーブル。
例えば、"joe@domain -> joe.user" の virtual(5) マッピングでは、"joe+foo@domain" は "joe.user+foo" に書き換えられます。
canonical や virtual、alias、forward、include、generic のうちゼロ個以上を指定します。これらはそれぞれ canonical(5)、virtual(5)、aliases(5) マップ、local(8) .forward および :include: ファイル検索、smtp(8) generic マップで拡張アドレスを展開させます。
注意: この機能を canonical および virtual 以外の種類で有効にすると、メールが他のサイト、特にメーリングリスト配信アドレスに送られると問題を引き起こすかもしれません。
例:
propagate_unmatched_extensions = canonical, virtual, alias, forward, include propagate_unmatched_extensions = canonical, virtual
プロキシまたはネットワークアドレス変換ユニットを通して、このメールシステムがメールを受け取るネットワークインターフェースアドレス。
この機能はPostfix 2.0以降で使えます。
システムが他のドメインのバックアップMXホストである場合、"外部の" プロキシ/NAT アドレスを指定しなければいけません。
例:
proxy_interfaces = 1.2.3.4
proxymap(8) サーバのアクセスが許される検索テーブル。proxy: で始まらないテーブル参照は無視されます。proxymap(8) テーブルアクセスは読み込み専用です。
この機能はPostfix 2.0以降で使えます。
特定の配送先がPostfix active queue を詰まらせているという警告の最小遅延間隔。無効にするには 0 を指定します。
この機能は helpful_warnings パラメータで有効にされます。
この機能はPostfix 2.0以降で使えます。
古い機能: 大きなメーリングリストのメッセージ配送にビジーなメールシステムが使う配送リソースのパーセンテージ。
この機能は古い oqmgr(8) キューマネージャにのみ存在します。現在のキューマネージャはよりよい方法でこの問題を解決しています。
active キューのメッセージの最大数。
Postfixキューマネージャがメモリ内に保持する受信者の最大数、および短期間・メモリ内の "動いていない" 配送先の状態キャッシュサイズの最大サイズ。
あらゆるメッセージに対するメモリ内受信者の最小値。これは必要な場合は他のメモリ内受信者制限 (例えば一般的な qmgr_message_recipient_limit や transport ごとの _recipient_limit) よりも優先されます。このパラメータで許される最小値は 1 です。
QMQP サーバポートへの接続が許されるクライアント。
デフォルトではどのクライアントもこのサービスを使うことが許されません。これは QMQP サーバはどの配送先へもメールをリレーするためです。
クライアントパターンのリストを指定します。リストパターンにはホスト名やドメイン名、インターネットアドレス、network/mask パターンを指定します。mask にはホストアドレスのネットワーク部分のビット数を指定します。パターンにファイル名を指定すると、ファイル名はその内容で置き換えられます; パターンが "type:table" と指定されていると、代わりにテーブル検索が使われます。
パターンは空白またはカンマで区切られます。結果を逆にするには、ファイル名以外のパターンの前に感嘆符 (!) を付けます。
例:
qmqpd_authorized_clients = !192.168.0.1, 192.168.0.0/24
拒否する応答をクライアントに返す前に QMQP サーバが一時停止する時間。これは混乱していたり悪意のあるクライアントを遅くすることが目的です。
時間単位: s (秒)、m (分)、h (時)、d (日)、w (週)。デフォルトの時間単位は s (秒) です。
ネットワーク越しに情報を送受信する時間の制限。$qmqpd_timeout 秒以上にわたって読み書き操作がないと、QMQP サーバは諦めて接続を切ります。
時間単位: s (秒)、m (分)、h (時)、d (日)、w (週)。デフォルトの時間単位は s (秒) です。
Postfixトップレベルキューディレクトリの場所。これは chroot されて動いているPostfixデーモンプロセスのルートディレクトリです。
Postfixキューファイルに格納される (name=value) 属性の最大数。この制限は cleanup(8) サーバによって強制されます。
この機能はPostfix 2.0以降で使えます。
メールを受信するのに必要なキューファイルシステムの、バイト単位の最低空き容量。これは今のところ SMTPサーバがメールを受け付けるかどうかを決めるのに使われています。
デフォルトでは、空き容量が 1.5*$message_size_limit よりも少ないとPostfixバージョン2.1 SMTPサーバは MAIL FROM コマンドを拒否します。空き容量制限を大きくするには、少なくとも 1.5*$message_size_limit の queue_minfree の値を指定します。
Postfixバージョン 2.0 以前では、queue_minfree がゼロの場合は空き容量に要求する最低値はありませんでした。
deferred キュー がキューマネージャによってスキャンされる時間間隔。
このパラメータには $minimal_backoff_time 以上を設定してください。$maximal_backoff_time も参照してください。
時間単位: s (秒)、m (分)、h (時)、d (日)、w (週)。デフォルトの時間単位は s (秒) です。
qmgr(8) サービスの名前。このサービスはPostfixキューを管理し、配送要求のスケジューリングをおこないます。
この機能はPostfix 2.0以降で使えます。
RBL 応答テンプレートを持つ、オプションの検索テーブル。テーブルは RBL ドメイン名でインデックス化されます。デフォルトでは、Postfixは default_rbl_reply 設定パラメータで指定されたデフォルトのテンプレートを使います。RBL応答テンプレートの議論はそこを参照してください。
この機能はPostfix 2.0以降で使えます。
Postfixサブシステムや機能に関する構築方法や設定方法、操作方法が書かれたPostfix READMEファイルの場所。
受信者確認、ビルトインコンテンツフィルタリング、アドレスマッピングを有効または無効にします。通常は、これらは smtpd(8) や qmqpd(8)、pickup(8) デーモンに対して master.cf のコマンドライン引数として指定されます。
以下のオプションをゼロ個以上指定します。オプションは main.cf 設定を上書きします。これらは smtpd(8) や qmqpd(8)、pickup(8) 自身が実装しているか、cleanup サーバに渡されます。
注意: 「コンテンツフィルタの前の」receive_override_options 設定が main.cfファイルで指定される場合は、「コンテンツフィルタの後の」receive_override_options 設定を master.cf に書きます (またはその逆)。
例:
receive_override_options = no_unknown_recipient_checks, no_header_body_checks receive_override_options = no_address_mappings
この機能はPostfix 2.1以降で使えます。
受信者アドレスでインデックス化された、オプションの BCC (blind carbon-copy) アドレス検索テーブル。BCC アドレス (複数の結果はサポートされていません) はPostfixの外からメールが入ってきたときに加えられます。
この機能はPostfix 2.1以降で使えます。
テーブルの検索順序は次の通りです:
使用するデータベースの種類や名前を指定します。変更後は "postmap /etc/postfix/recipient_bcc" を実行してください。
注意: BCC アドレス宛のメールがバウンスすると、送信者に返されます。
注意: 自動BCC受信者は新しいメールに対してのみ生成されます。メーラループを避けるために、自動BCC受信者はPostfixが内部で転送するメールやPostfix自身が生成するメールに対しては生成されません。
例:
recipient_bcc_maps = hash:/etc/postfix/recipient_bcc
recipient_canonical_maps アドレスマッピングを受けるアドレス。デフォルトでは、recipient_canonical_maps アドレスマッピングはエンベロープ受信者アドレス、およびヘッダ受信者アドレスに適用されます。
以下の1つ以上を指定します: envelope_recipient, header_recipient
この機能はPostfix 2.2以降で使えます。
エンベロープおよびヘッダ受信者アドレスに対する、オプションのアドレスマッピング検索テーブル。テーブルの書式と検索は canonical(5) に記述されています。
注意: $recipient_canonical_maps は $canonical_maps の前に処理されます。
例:
recipient_canonical_maps = hash:/etc/postfix/recipient_canonical
ユーザ名と拡張アドレス (user+foo) の間の区切り。aliases や canonical、 virtual、relocated、.forward ファイル検索での効果については canonical(5) および local(8)、relocated(5)、virtual(5) を参照してください。基本的には、ソフトウェアは user や .forward を試す前に user+foo や .forward+foo を試します。
例:
recipient_delimiter = +
リモートSMTPクライアントの要求が "reject" 制限で拒否された場合の、数字のPostfix SMTPサーバ応答コード。
RFC 821 を完全に理解しているのでなければ、これを変更してはいけません。
Postfix SMTPサーバが permit_tls_clientcerts 機能でアクセスを許可するリモートSMTPクライアント証明書のリスト。Postfixリスト操作ルーチンは空白やその他の文字を特別なものとして扱うため、この機能は証明書名を使いません。代わりに、偽るのが難しく検索に使うのが容易な証明書のフィンガープリントを使います。
Postfix検索テーブルは (キー、値) の組の形式です。キーしか必要ないため、値は自由に、例えばユーザ名やホスト名を選ぶことができます: D7:04:2F:A7:0B:8C:A5:21:FA:31:77:E1:41:8A:EE:80 lutzpc.at.home
例:
relay_clientcerts = hash:/etc/postfix/relay_clientcerts
さらにきめ細かく制御するには、それぞれのクライアントに適切な access(5) ポリシーを選ぶために check_ccert_access を使ってください。RESTRICTION_CLASS_README を参照してください。
この機能はPostfixバージョン2.2で使えます。
relay メッセージ配送 transport を使った、同じ配送先への並列配送数の最大数。この制限はキューマネージャによって強制されます。メッセージ配送 transport の名前は master.cf ファイルのエントリの最初のフィールドです。
この機能はPostfix 2.0以降で使えます。
relay メッセージ配送 transport を使った、配送ごとの受信者数の最大値。この制限はキューマネージャによって強制されます。メッセージ配送 transport の名前は master.cf ファイルのエントリの最初のフィールドです。
このパラメータの値を1に設定すると、relay_destination_concurrency_limit の意味がドメインごとの並列度から受信者ごとの並列度に変わります。
この機能はPostfix 2.0以降で使えます。
このシステムがメールをリレーしようとする配送先のドメイン (およびそのサブドメイン)。サブドメインへのマッチは parent_domain_matches_subdomains パラメータで制御されます。relay_domains 値の使われ方についての詳細は permit_auth_destination および reject_unauth_destination SMTP受信者制限の記述を参照してください。
$relay_domains にマッチするドメインは $relay_transport メール配送transportを使って配送されます。SMTPサーバは受信者アドレスを $relay_recipient_maps で確認し、存在しない受信者を拒否します。ADDRESS_CLASS_README ファイルのリレードメインアドレスクラスも参照してください。
注意: Postfixは自動的にはこのシステムを一次もしくはバックアップ MX ホストにリストアップしているドメインにメールを転送しません。postconf(5) マニュアルページの permit_mx_backup 制限を参照してください。
ホストまたはドメイン、"/file/name" パターン、"type:table" 検索テーブルをカンマや空白で区切って指定してください。次の行を空白で始めることで、長い行を継続します。。"/file/name" パターンはその内容で置き換えられます; "type:table" 検索テーブルはドメインまたはその親ドメインが検索キーとして現れるとマッチします。
クライアントの要求が reject_unauth_destination 受信者制限で拒否された場合の、数字のPostfix SMTPサーバ応答コード。
RFC 821 を完全に理解しているのでなければ、これを変更してはいけません。
$relay_domains にマッチするドメインの、全ての有効なアドレスを持つオプションの検索テーブル。有効な受信者リストを持たないドメインはワイルドカードとして @domain を指定します。技術的には、$local_recipient_maps でリストアップされたテーブルはリストとして使われます: Postfixは検索文字列が見つかるかどうかだけを知る必要があり、検索テーブルの結果は使いません。
このパラメータが空でなければ、Postfix SMTPサーバは知らないリレーユーザ宛のメールを拒否します。この機能はデフォルトでは無効になっています。
ADDRESS_CLASS_README ファイルのリレードメインアドレスクラスも参照してください。
例:
relay_recipient_maps = hash:/etc/postfix/relay_recipients
この機能はPostfix 2.0以降で使えます。
$relay_domains にリストアップされたドメインへのリモート配送での、デフォルトのメール配送transportおよびnext-hop配送先。nexthop配送先の優先度は、$relay_transport、$sender_dependent_relayhost_maps、$relayhost、受信者ドメインからのものの順に下がっていきます。この情報は transport(5) テーブルで上書きできます。
transport:nexthop という形の文字列を指定します。ここで transportは master.cf に定義されたメール配送 transport の名前です。:nexthop 部分はオプションです。より詳細は transport(5) マニュアルページを参照してください。
ADDRESS_CLASS_README ファイルのリレードメインアドレスクラスも参照してください。
この機能はPostfix 2.0以降で使えます。
非ローカルメールのnext-hop配送先; 受信者アドレスの非ローカルドメインを上書きします。この情報は relay_transport や default_transport、sender_dependent_relayhost_maps、transport(5) テーブルで上書きできます。
イントラネットでは組織のドメイン名を指定します。内部DNSがMX レコードを使っていないのであれば、その代わりにイントラネットのゲートウェイホスト名を指定してください。
SMTP の場合、ドメイン名、ホスト名、hostname:port、[hostname]:port、 [hostaddress] または [hostaddress]:port を指定してください。[hostname] の形式はMX検索を無効にします。
UUCP を使って接続しているのであれば、UUCP_README ファイルを参照すると役に立つ情報があります。
例:
relayhost = $mydomain relayhost = [gateway.my.domain] relayhost = uucphost relayhost = [an.ip.add.ress]
もう存在しないユーザやドメインの新しい連絡先の情報を持つ、オプションの検索テーブル。テーブルの書式や検索は relocated(5) に記述されています。
この機能を使うのであれば、必要な DBM または DB ファイルを構築するために "postmap /etc/postfix/relocated" を変更後に実行し、変更を反映させるために "postfix reload" を実行してください。
例:
relocated_maps = dbm:/etc/postfix/relocated relocated_maps = hash:/etc/postfix/relocated
このパラメータが空の場合、リモートクライアントからのメッセージヘッダは全く書き換えません; そうでない場合、メッセージヘッダを書き換え、不完全なアドレスに指定されたドメイン名を付け加えます。local_header_rewrite_clients パラメータはPostfixがローカルとみなすクライアントを制御します。
例:
安全な設定: リモートSMTPクライアントからの不完全なヘッダアドレスに "domain.invalid" を付け加え、これらのアドレスとローカルアドレスを混同しないようにします。
remote_header_rewrite_domain = domain.invalid
デフォルトで純粋主義な設定: リモートクライアントからのヘッダを一切書き換えません。
remote_header_rewrite_domain =
メール配送の試行前に local(8) 受信者のホームディレクトリが存在しなければならないかどうか。デフォルトではこのテストは無効になっています。メールサーバにホームディレクトリをインポートしている環境では便利かもしれません (「推奨しません」)。
受信者アドレスの引用の中を見ることで、正確にではなく安全にアドレスを解決します。
デフォルトでは、余分な @ や % や ! 演算子が見えたままになるようにするため、Postfixアドレスリゾルバは RFC 822 のようにアドレスのローカル部分に引用符を付けません。 この振る舞いは安全ですが、技術的には間違っています。
"resolve_dequoted_address = no" を指定すると、Postfixリゾルバはアドレスのローカル部分にある余分な @ などの演算子は知らなくなります。これはPostfixがSendmailシステムのバックアップMX サービスを提供する際に user@domain@domain アドレスを使ったあいまいなメールリレー攻撃の機会を開いてしまうことになります。
"@" null ドメインで終わっているアドレスを無効なものとして拒否するのではなく、ローカルホスト名が指定されているものとして解決します。
この機能はPostfix 2.1以降で使えます。それ以前のバージョンは null ドメインを常にローカルホスト名として解決します。
Postfix SMTPサーバは "@" null ドメインで終わっているアドレスからの、またはそのようなアドレス宛のメールや、"@" null ドメインで終わるような形に書き換えられるアドレスからのメールを拒否するためにこの機能を使います。
"user@ipaddress" を無効なアドレスとして拒否するのではなく、"user@[ipaddress]" としてそのアドレスを解決します。
この機能はPostfix 2.3以降で使えます。
アドレス書き換えサービスの名前。このサービスはアドレスを標準的な形に書き換え、(配送方法、next-hop ホスト、受信者) の組へと解決します。
この機能はPostfix 2.0以降で使えます。
Postfix設定例ファイルがあるディレクトリ名。
このパラメータは使うべきではありません。これはPostfixバージョン2.3で sender_dependent_relayhost_maps に置き換えられました。
送信者アドレスでインデックス化された、オプションの BCC (blind carbon-copy) アドレス検索テーブル。BCC アドレス (複数の結果はサポートされていません) はPostfixの外からメールが入ってきたときに加えられます。
この機能はPostfix 2.1以降で使えます。
テーブルの検索順序は次の通りです:
使用するデータベースの種類や名前を指定します。変更後は "postmap /etc/postfix/sender_bcc" を実行してください。
注意: BCC アドレス宛のメールがバウンスすると、送信者に返されます。
注意: 自動BCC受信者は新しいメールに対してのみ生成されます。メーラループを避けるために、自動BCC受信者はPostfixが内部で転送するメールやPostfix自身が生成するメールに対しては生成されません。
例:
sender_bcc_maps = hash:/etc/postfix/sender_bcc
sender_canonical_maps アドレスマッピングを受けるアドレス。デフォルトでは、sender_canonical_maps アドレスマッピングはエンベロープ送信者アドレスとヘッダ送信者アドレスに適用されます。
以下の1つ以上を指定します: envelope_sender, header_sender
この機能はPostfix 2.2以降で使えます。
エンベロープおよびヘッダ送信者アドレスに対する、オプションのアドレスマッピング検索テーブル。テーブルの書式と検索は canonical(5) に記述されています。
例: 「送信者」アドレスを "user@ugly.domain" から "user@pretty.domain" に書き換えたいが、受信者アドレス "user@ugly.domain" にはメールを送れるままにしておきたい場合。
注意: $sender_canonical_maps は $canonical_maps の前に処理されます。
例:
sender_canonical_maps = hash:/etc/postfix/sender_canonical
グローバルな relayhost パラメータ設定を、送信者単位で上書きします。テーブルは送信者アドレスと @domain で検索されます。この情報は relay_transport、default_transport および transport(5) テーブルで上書きされます。
安全上の理由から、この機能は正規表現マップでの $number の置換が使えません。
この機能はPostfix 2.3以降で使えます。
Postfix sendmail(1) コマンドの場所を指定している Sendmail互換機能。このコマンドはPostfixキューにメールを投函するのに使われます。
異常に見えるサーバをフォークするまでにPostfix master(8) が待つ時間。
時間単位: s (秒)、m (分)、h (時)、d (日)、w (週)。デフォルトの時間単位は s (秒) です。
set-gid Postfixコマンドおよびグループ書き込み可能なPostfix ディレクトリを所有するグループ。このパラメータの値を変更したら、"postfix set-permissions" (Postfix 2.0以前では: "/etc/postfix/post-install set-permissions") を再実行する必要があります。
"User unknown" 応答で受信者テーブルの名前を表示します。余分な詳細はトラブルシューティングを容易にしますが、関係ない情報も晒すことになります。
この機能はPostfix 2.0以降で使えます。
showq(8) サービスの名前。このサービスはメールキュー状態レポートを生成します。
この機能はPostfix 2.0以降で使えます。
SMTP セッションの最初に、常に EHLO を送ります。
"smtp_always_send_ehlo = no" では、Postfixはサーバのグリーティングバナーに "ESMTP" という単語が現れたときのみ EHLO を送ります (例: 220 spike.porcupine.org ESMTP Postfix)。
IPv4接続の際にPostfix SMTPクライアントがバインドする、オプションの数字のネットワークアドレス。
全ての SMTPクライアントに対しては main.cf ファイルでこれを指定できますし、もしくは特定のクライアントに対しては master.cf ファイルで指定できます。例:
/etc/postfix/master.cf: smtp ... smtp -o smtp_bind_address=11.22.33.44
注意1: inet_interfaces が 1つしかIPv4アドレスを指定しておらず、そのアドレスが非ループバックアドレスの場合、そのアドレスは自動的に smtp_bind_address として使われます。これはバーチャルIPホスティングをサポートしていますが、マルチホームなファイアウォールでは問題になるかもしれません。詳細は inet_interfaces ドキュメントを参照してください。
注意2: アドレス情報を [] の中に入れることもできますが、ここではこの形式は推奨しません。
IPv6接続の際にPostfix SMTPクライアントがバインドする、オプションの数字のネットワークアドレス。
この機能はPostfix 2.2以降で使えます。
全ての SMTPクライアントに対しては main.cf ファイルでこれを指定できますし、もしくは特定のクライアントに対しては master.cf ファイルで指定できます。例:
/etc/postfix/master.cf: smtp ... smtp -o smtp_bind_address6=1:2:3:4:5:6:7:8
注意1: inet_interfaces が1つしかIPv6アドレスを指定しておらず、そのアドレスが非ループバックアドレスの場合、そのアドレスは自動的に smtp_bind_address6 として使われます。これはバーチャルIPホスティングをサポートしていますが、マルチホームなファイアウォールでは問題になるかもしれません。詳細は inet_interfaces ドキュメントを参照してください。
注意2: アドレス情報を [] の中に入れることもできますが、ここではこの形式は推奨しません。
Postfix SMTPクライアントがログの記録やSASLパスワード検索、TLSポリシーの決定、TLS証明書の検証に使うサーバ名を、DNS CNAMEレコードが上書きできるようにします。"no" という値により、DNS CNAME レコードの間違ったホスト名情報に対して、Postfix smtp_tls_per_site ホスト名ベースのポリシーを強化し、SASLパスワードファイルの検索をより予測可能なものにします。Postfix 2.3ではこれがデフォルト設定です。
この機能はPostfix 2.2.9以降で使えます。
TCP接続を完了するまでの SMTPクライアントの時間制限、またはゼロ (オペレーティングシステムのビルトイン時間制限を使います)。
期限内に接続できないと、Postfix SMTPクライアントはメール交換機リストの次のアドレスを試します。時間制限を無効にするには (すなわちオペレーティングシステムによって実装されている時間制限を使うには) 0 を指定します。
時間単位: s (秒)、m (分)、h (時)、d (日)、w (週)。デフォルトの時間単位は s (秒) です。
指定された配送先に対するSMTP接続キャッシュを恒久的に有効にします。 SMTP接続キャッシュを使うと、メール処理が終わってもすぐには接続を閉じません。代わりに、最大 $smtp_connection_cache_time_limit 秒の間、接続を開き続けます。これにより他の配送に接続を再利用できるようになり、メール配送パフォーマンスを向上できます。
配送先または擬似配送先のリストを、カンマまたは空白で区切って指定します:
この機能はPostfix 2.2以降で使えます。
配送先が active キューに大容量のメールを持つ間だけSMTP接続キャッシュを有効にします。SMTP接続キャッシュを使うと、メール処理が終わってもすぐには接続を閉じません。代わりに、最大 $smtp_connection_cache_time_limit 秒の間、接続を開き続けます。これにより他の配送に接続を再利用できるようになり、メール配送パフォーマンスを向上できます。
この機能はPostfix 2.2以降で使えます。
SMTP接続キャッシュが有効になっている時の、接続を閉じるまでのSMTPセッション再利用が可能な回数。
この機能はPostfix 2.2で使えます。Postfix 2.3では $smtp_connection_reuse_time_limit で置き換えられています。
SMTP接続キャッシュが有効になっている時の、使われていないSMTP クライアントソケットを閉じずに開いたままにする時間。リモートサイトから許可を得ずに大きな値を指定してはいけません。
この機能はPostfix 2.2以降で使えます。
PostfixがSMTP接続を繰り返し使おうとする期間。タイマーは接続が開始された時点で始まります (つまり接続、グリーティングとheloの待ち時間も、その後のメール配送トランザクションの待ち時間と同様に含まれます)。
この機能はリモートSMTPサーバとのパフォーマンス安定性問題に対処するものです。この問題はPostfixに限ったものではありません: これは複数のMXホストを持つ1つのサイトに大量のSMTP eメールを送る場合にはどんなMTAでも起こりえます。
問題はMXホストのうち1つが他のものよりも遅くなったときに始まります。SMTPクライアントは速いMXホストと遅いMXホストに同じ確率で接続したとしても、遅いMXホストはそれぞれのクライアント要求に対応するのに時間がかかるため、遅いMXホストは早いMXホストよりも内向きの同時接続数が多くなってしまいます。
遅いMXホストは接続をひきつけるものになります。あるMXホストが他のホストよりN倍遅くなると、その影響に対抗できるN個の速いMXホストがなければメール配送のレイテンシが支配されてしまいます。そしてMXホストの数がNよりも小さいと、メール配送のレイテンシは最も遅いMXホストの効率をMXホストの合計数で割ったものになってしまいます。
その解としてPostfix 2.2とは違う方法で接続キャッシュを使います。(配送の回数を制限するのではなく) 接続が繰り返して使われる期間を制限することで、Postfixは複数のMXホストにわたる同時接続の分布を公正な状態にするだけではなく、パフォーマンスがよい接続をおこなう配送を好むようになります。これはまさにわれわれが望んでいる状態です。
300sというデフォルトの再利用の時間制限は、遅い配送での最大レイテンシを公正に見積もっている、さまざまなSMTPトランザクションのタイムアウトと同程度の長さです。デフォルトの接続再利用時間制限時間内に、ホストが1つの接続で数千のメッセージを受けてしまうかもしれないことに注意してください。キャッシュされた接続あたり10というPostfixバージョン2.2のデフォルト制限よりも、この数値はずっと大きくなっています。1回の接続でたくさんのメッセージが送られるとバグが表面化するMTAとの相互運用性の問題を避けるため、この制限を低くすることが必要になるかもしれません。接続やメール配送のレイテンシが再利用時間制限を超えている場合、再利用の時間制限を低くすると接続を再利用する利点が失われる恐れがあります。
この機能はPostfix 2.3以降で使えます。
SMTP "." を送り、サーバの応答を受け取るまでの SMTPクライアントの時間制限。
期限までに応答を受けないと、メールが複数回配送されるかもしれないという警告がログに記録されます。
時間単位: s (秒)、m (分)、h (時)、d (日)、w (週)。デフォルトの時間単位は s (秒) です。
SMTP DATA コマンドを送り、サーバの応答を受け取るまでの SMTP クライアントの時間制限。
時間単位: s (秒)、m (分)、h (時)、d (日)、w (週)。デフォルトの時間単位は s (秒) です。
SMTPメッセージコンテンツを送る際のSMTPクライアントの時間制限。$smtp_data_xfer_timeout 秒以上接続に進展がないと、Postfix SMTPクライアントは転送を終了します。
時間単位: s (秒)、m (分)、h (時)、d (日)、w (週)。デフォルトの時間単位は s (秒) です。
MX レコードがIPアドレスに解決できない場合、メール配送を遅延します。
デフォルト (no) は配送できないものとしてメールを返します。古いバージョンの Postfixでは、デフォルトでは誰かがMXレコードを修正するかメールが古くなりすぎるまでメールの配送を試行し続けました。
注意: PostfixはローカルMTA自身と同じ、もしくは優先度が低いMX レコードを常に無視します。
この機能はPostfix 2.1以降で使えます。
smtp メッセージ配送 transport を使った同じ配送先への並列配送の最大数。この制限はキューマネージャによって強制されます。メッセージ配送 transport の名前は master.cf ファイルのエントリの最初のフィールドです。
smtp メッセージ配送 transport を使った、配送ごとの最大の受信者数。この制限はキューマネージャによって強制されます。メッセージ配送 transport の名前は master.cf ファイルのエントリの最初のフィールドです。
このパラメータの値を1に設定すると、smtp_destination_concurrency_limit の意味がドメインごとの並列度から受信者ごとの並列度に変わります。
Postfix SMTPクライアントがリモートSMTPサーバからの応答で無視する、大文字小文字を区別しない EHLO キーワードのリスト (pipelining, starttls, auth など) を持つ、リモートSMTPサーバアドレスでインデックス化された検索テーブル。詳細は smtp_discard_ehlo_keywords を参照してください。smtpd_discard_ehlo_keyword_address_maps との一貫性を保つため、テーブルはホスト名ではインデックス化されません。
この機能はPostfix 2.2以降で使えます。
Postfix SMTPクライアントがリモートSMTPサーバからのEHLO応答で無視する、大文字小文字を区別しない EHLO キーワードのリスト (pipelining, starttls, auth など)。
この機能はPostfix 2.2以降で使えます。
注意:
この動作がログに記録されないようにするには、silent-discard擬似キーワードを指定します。
選択的に EHLO キーワードを破棄するには、smtp_discard_ehlo_keyword_address_maps 機能を使います。
強制モード: リモートサーバがTLS暗号化を使うことを要求し、メールを平文では送りません。また、これはリモートSMTPサーバホスト名がリモートサーバ証明書の情報にマッチし、その証明書がPostfix SMTPクライアントが信頼するCAによって発行されていることも必要とします。証明書が確認できなかったりホスト名がマッチしなければ、配送は遅延され、メールはキューにとどまります。
サーバホスト名は SubjectAlternativeName で dNSNames として与えられるすべての名前に対してマッチされます。dNSNames が指定されていないと、 CommonName がチェックされます。この振る舞いは smtp_tls_enforce_peername オプションで変えられます。
RFC 2487 をサポートし、かつ、有効なサーバ証明書を提供するサーバのみに接続することが確実な場合にのみ、このオプションは便利です。よるある用途としては、メールハブにすべてのEメールを送るというものです。
この機能はPostfix 2.2以降で使えます。Postfix 2.3以降では smtp_tls_security_level を代わりに使ってください。
見つからなかったり到達できない SMTP 配送先への、オプションのリレーホストのリスト。Postfix 2.2以前では、このパラメータは fallback_relay という名前でした。
デフォルトでは、配送先が見つからない場合にはメールは送信者に返され、配送先に到達できない場合には配送が遅延されます。
fallback relayはSMTPによる配送先でなければいけません。ドメイン、ホスト、host:port、[host]:port、[address] または [address]:port を指定します; [host] の形式はMX検索を無効にします。複数のSMTP 配送先を指定すると、Postfixは指定された順でそれらを試します。
MXホストとfall-backホスト間のメーラループを避けるため、Postfixバージョン2.3以降ではMXホストである配送先に対しては smtp_fallback_relay 機能を使いません。
通常はインターネット越しのメール送信時にローカルで有効なアドレスを世界中で有効なアドレスに変換するような、SMTPクライアントでアドレス書き換える、オプションの検索テーブル。これはローカルマシンがインターネットドメイン名を持たず、localdomain.local のようなものを使っている場合に必要です。
テーブルの書式と検索は generic(5) に記述されています; 例は ADDRESS_REWRITING_README および STANDARD_CONFIGURATION_README ドキュメントに示されています。
この機能はPostfix 2.2以降で使えます。
SMTP EHLO または HELO コマンドで送るためのホスト名。
デフォルト値はマシンのホスト名です。ホスト名または [ip.add.re.ss] を指定します。
全ての SMTPクライアントに対しては main.cf ファイルでこの情報を指定できますし、もしくは特定のクライアントに対しては master.cf ファイルで指定できます。例:
/etc/postfix/master.cf: mysmtp ... smtp -o smtp_helo_name=foo.bar.com
この機能はPostfix 2.0以降で使えます。
HELO または EHLO コマンドを送り、最初のサーバの応答を受け取るまでのSMTPクライアントの時間制限。
時間単位: s (秒)、m (分)、h (時)、d (日)、w (週)。デフォルトの時間単位は s (秒) です。
Postfix SMTPクライアントがホストのIPアドレスを検索するのに使うメカニズム。このパラメータはDNS検索が無効になっていると無視されます。
以下のうち一つを指定します:
この機能はPostfix 2.1以降で使えます。
Postfixが SMTP で送るメッセージヘッダおよび本体行の最大長。長い行は "<CR><LF><SPACE>" を挿入することで分割します。これは MIME でフォーマットされたメールへの被害を最小にします。
長い行を持つメールを受け取らないサーバの実装があるため、デフォルトでは行の長さは 990 文字に制限されます。
MAIL FROM コマンドを送り、サーバの応答を受け取るまでの SMTP クライアントの時間制限。
時間単位: s (秒)、m (分)、h (時)、d (日)、w (週)。デフォルトの時間単位は s (秒) です。
メール交換機検索から得られるMX (メール交換機) IPアドレスの最大数、またはゼロ (制限なし)。2.3より前のバージョンのPostfixでは、この制限はデフォルトで無効になっています。
この機能はPostfix 2.1以降で使えます。
諦めるか fall-back リレーホストに配送するまでの、配送要求ごとの SMTP セッションの最大数、またはゼロ (制限なし)。この制限はSMTPの最初のハンドシェイクが完了できなかった (Postfixバージョン2.2以前) もしくはEHLOおよびTLSハンドシェイクが完了できなかった (Postfixバージョン2.3以降) セッションを無視します。
この機能はPostfix 2.1以降で使えます。
SMTP セッションの最初に EHLO は送りません。smtp_always_send_ehlo パラメータも参照してください。
PIX ファイアウォール"<CR><LF>.<CR><LF>" バグを回避するために、Postfix SMTPクライアントが ".<CR><LF>" を送ってから一時停止する時間。
短すぎる時間を選択すると、遅いネットワーク接続で大きなメッセージを送ったときにこの回避策は効果がなくなります。
"smtp fixup" モードが有効になったファイアウォールを通る配送に対して、PIX ファイアウォール "<CR><LF>.<CR><LF>" バグ回避が有効になるまでに、メッセージがキューに入っていなければいけない時間。
デフォルトでは、キューに入って500秒以内のメールにはこの回避策を無効にします。言い換えると、たいていの場合、最初の配送試行ではこの回避策は無効にされます。
PIX ファイアウォール "<CR><LF>.<CR><LF>" バグ回避を最初の配送試行でも有効にするには 0 を指定します。
QUIT コマンドを送り、サーバの応答を受け取るまでの、SMTPクライアントの時間制限。
時間単位: s (秒)、m (分)、h (時)、d (日)、w (週)。デフォルトの時間単位は s (秒) です。
RFC 821 で要求されるように、 SMTP MAIL FROM および RCPT TO コマンドでのアドレスに引用符を付けます。これは "." でローカル部分が終わるアドレスの前後に引用符を置くことも含みます。
デフォルトは RFC 821 を満たします。壊れたSMTPサーバにメールを送らなければいけないのであれば、 master.cf で特別なSMTPクライアントを設定してください:
/etc/postfix/master.cf: broken-smtp . . . smtp -o smtp_quote_rfc821_envelope=no
そして transport(5) テーブルで問題の配送先宛のメールを "broken-smtp" メッセージ配送に送ります。
この機能はPostfix 2.1以降で使えます。
優先度が同じMXホストアドレスの順番をランダムにします。これはPostfix SMTPクライアントのパフォーマンス機能です。
SMTP RCPT TO コマンドを送り、サーバの応答を受け取るまでの SMTP クライアントの時間制限。
時間単位: s (秒)、m (分)、h (時)、d (日)、w (週)。デフォルトの時間単位は s (秒) です。
RSET コマンドを送り、サーバの応答を受け取るまでの、SMTPクライアントの時間制限。SMTPクライアントは受信者アドレス探査を終わらせるためや、キャッシュされたセッションがまだ使えるかどうかを確認するために RSET を送ります。
この機能はPostfix 2.1以降で使えます。
Postfix SMTPクライアントの SASL 認証を有効にします。デフォルトでは、 Postfix SMTPクライアントは認証を使いません。
例:
smtp_sasl_auth_enable = yes
送信者単位のSASLパスワードが無効になっている場合、SMTPサーバがSASL認証をサポートしていないと、smtp_sasl_password_maps がそのサーバに対するSASLログイン/パスワード情報を持っていてもメール配送を遅延します。
この機能はPostfix 2.3以降で使えます。
空でなければ、リモートSMTPサーバが提供するSASLメカニズムのリストに対する、Postfix SMTPクライアントフィルタ。クライアントとサーバの実装が異なれば、サポートするメカニズムのリストも異なるかもしれません。デフォルトでは、Postfix SMTPクライアントは2つで共通なメカニズムを使います。smtp_sasl_mechanism_filter はクライアントが利用を考慮するサーバメカニズムをさらに制限します。
メカニズム名、"/file/name" パターン、もしくは "type:table" 検索テーブルを指定します。"type:table" 検索からの右側部分の結果は無視されます。
この機能はPostfix 2.2以降で使えます。
例:
smtp_sasl_mechanism_filter = plain, login smtp_sasl_mechanism_filter = /etc/postfix/smtp_mechs smtp_sasl_mechanism_filter = !gssapi, !login, static:rest
リモートのホスト名またはドメインごと、もしくは送信者単位の認証が有効になっている場合には送信者アドレスごとに1つの username:password エントリを持つ、オプションのSMTPクライアント検索テーブル。username:password エントリがない場合、Postfix SMTPクライアントはそのリモートホストに対して認証を試そうとしません。
Postfix SMTPクライアントは chroot 監獄に入る前に検索テーブルを開くので、パスワードファイルを /etc/postfix に置いたままにすることができます。
smtp_sasl_type で選ばれたSASLプラグインの実装にそのまま渡される、実装に依存する情報。通常はここに設定ファイル名やランデブーポイントの名前を指定します。
この機能はPostfix 2.3以降で使えます。
SASLセキュリティオプション; Postfix 2.3では、利用可能な機能はsmtp_sasl_typeで選択されたSASLクライアントの実装に依存します。
以下のセキュリティ機能が cyrus クライアントSASL実装で定義されています:
以下のゼロ個以上を指定します:
例:
smtp_sasl_security_options = noplaintext
Postfix SMTPクライアントがTLS暗号化SMTPセッションで使う、SASL認証セキュリティオプション。
この機能はPostfix 2.2以降で使えます。
検証されたサーバ証明書を使ったTLS暗号化SMTPセッションでPostfix SMTPクライアントが使う、SASL認証セキュリティオプション。この機能はまだ開発中です。Postfix 2.3リリースには含まれません。
この機能はPostfix 2.4以降で使えるようになるはずです。
Postfix SMTPクライアントが認証に使うSASLプラグインの種類。利用可能な種類は "postconf -A" コマンドでリストアップされます。
この機能はPostfix 2.3以降で使えます。
Postfix SMTPサーバの EHLO 応答で XFORWARD サポートが通知された場合に、非標準的な XFORWARD コマンドを送ります。
これにより、コンテンツフィルタにメールを投入するのに使われる "smtp" 配送エージェントが元のメールの名前やアドレス、プロトコル、HELO 名をコンテンツフィルタや下流でキューに入れる SMTPサーバに渡すことができます。これは localhost[127.0.0.1] 等よりも便利なログを生成することができます。
この機能はPostfix 2.1以降で使えます。
Postfix SMTPクライアントで、送信者単位での認証を有効にします; これはSASL認証でのみ利用可能で、別の送信者からのメールが適切な資格を使うことを保証するためSMTP接続キャッシュを無効にします。
この機能はPostfix 2.3以降で使えます。
グリーティングで 4XX (立ち去って、後で再び試してください) 状態コードを返す SMTPサーバをスキップします。
デフォルトでは、Postfixは次のメール交換機に移ります。Postfixがすぐに配送を遅延させるべきであれば、"smtp_skip_4xx_greeting = no" を指定してください。
この機能はPostfix 2.0 以前で使えます。それ以降のバージョンの Postfixは 4XX 状態コードで挨拶する SMTPサーバを常に飛ばします。
グリーティングで 5XX (立ち去って、二度と試さないでください) 状態コードを返す SMTPサーバをスキップします。
デフォルトでは、Postfixは次のメール交換機に移ります。Postfixがすぐに配送をバウンスさせるべきであれば、"smtp_skip_5xx_greeting = no" を指定してください。デフォルトの設定は間違っていますが、多くの人がこうなると期待しているものです。
SMTP QUIT コマンドへの応答を待ちません。
Postfix SMTPクライアントによる、TLSスタートアップおよびシャットダウン手順の中での読み書き操作の制限時間。
この機能はPostfix 2.2以降で使えます。
Postfix SMTPクライアント証明書を発行した認証局 (CA) の証明書を持つファイル。これはCA証明書がクライアント証明書ファイルの中にまだ存在しない場合にのみ必要です。
例:
smtp_tls_CAfile = /etc/postfix/CAcert.pem
この機能はPostfix 2.2以降で使えます。
Postfix SMTPクライアントがリモートSMTPサーバ証明書を確認するのに使う、 PEMフォーマットの認証局証明書を持つディレクトリ。必要な "hash" リンク、例えば "$OPENSSL_HOME/bin/c_rehash /etc/postfix/certs" を作るのを忘れないでください。
このオプションをchrootモードで使うには、このディレクトリ (もしくはコピー) がchroot監獄の中になければいけません。
例:
smtp_tls_CApath = /etc/postfix/certs
この機能はPostfix 2.2以降で使えます。
PEMフォーマットの、Postfix SMTPクライアントRSA証明書を持つファイル。このファイルはクライアントのプライベートキーを含んでいるかもしれず、またこれらはサーバ証明書およびキーファイルと同じかもしれません。
もし1つ以上のサーバに対してクライアントTLS証明書を示さなければいけないのでなければ、クライアント証明書の設定はしないでください。クライアント証明書はたいていは必要なく、それがない環境でうまく動いている設定に問題を起こすかもしれません。推奨する設定は、デフォルトで設定されているようにすることです:
smtp_tls_cert_file = smtp_tls_dcert_file = smtp_tls_key_file = smtp_tls_dkey_file =
デフォルト設定を使うのにもっともよい方法は、もし main.cf に上のパラメータがあれば、それをコメントアウトすることです。
証明書を確認するには、CA証明書 (証明書チェーンの場合には、すべてのCA 証明書) が使えなければいけません。これらの証明書をサーバ証明書に加えるとよいでしょう。その場合はサーバ証明書を最初にして、それから発行CAのものとします。
例: "client.domain" 用の証明書は、自身が "root CA" の証明書を持つ "intermediate CA" によって発行されました。"cat client_cert.pem intermediate_CA.pem root_CA.pem > client.pem". として、client.pem ファイルを作成します。
これらのCA自身によって発行されたリモートSMTPサーバ証明書にアクセスしたいのであれば、smtp_tls_CAfile にCA証明書を加えることもでき、その場合は smtp_tls_cert_file や smtp_tls_dcert_file で持つ必要はありません。
ここで与えられる証明書は SSL クライアント証明書として使えるものでなければならず、そのために "openssl verify -purpose sslclient ..." テストに通らなければいけません。
例:
smtp_tls_cert_file = /etc/postfix/client.pem
この機能はPostfix 2.2以降で使えます。
古いPostfix < 2.3での、Postfix SMTPクライアントTLS暗号リストの制御。この機能はすべてのTLSセキュリティレベルに適用されるため、デフォルトではない暗号リストを選んでしまうと簡単に相互運用性問題が生じてしまいます。公開されたインターネットにEメールを配信するホストでデフォルトではないTLS暗号リストを使ってはいけません: 除外した暗号しかサポートしていないサーバにEメールが遅れなくなってしまいます。対向のサーバ間でTLSソフトウェアおよび設定を制御することが可能であれば、内部のMTAに対して暗号リストを制限して使うことがより適切かもしれません。
注意: パラメータ値の前後に "" 引用符を使わないでください。
この機能はPostfixバージョン2.2で使えます。Postfix 2.3以降では使われません; 代わりに smtp_tls_mandatory_ciphers を使ってください。
PEMフォーマットでの、Postfix SMTPクライアントDSA証明書を持つファイル。このファイルはサーバプライベートキーも含んでいるかもしれません。
より詳細は smtp_tls_cert_file 以下の議論を参照してください。
例:
smtp_tls_dcert_file = /etc/postfix/client-dsa.pem
この機能はPostfix 2.2以降で使えます。
PEMフォーマットでの、Postfix SMTPクライアントDSAプライベートキーを持つファイル。プライベートキーは暗号化してはいけません。言い換えると、鍵はパスワードなしでアクセスできなければいけません。
このファイルは $smtp_tls_cert_file で指定されるサーバ証明書ファイルと一緒にすることもできます。
この機能はPostfix 2.2以降で使えます。
TLS暗号化を強制した場合に、リモートSMTPサーバホスト名がリモートSMTPサーバ証明書の情報にマッチすることを要求します。RFC 2487では、MTA クライアントがホスト名をチェックすることは要求していません。
相手の厳密な名前のチェックを無効にするために、このオプションを "no" に設定することができます。この設定は smtp_tls_per_site テーブルで制御されるセッションには影響しません。
ホスト名検証の無効化は、特別なCAが作られる閉じた環境では意味があるかもしれません。注意せずに使うと、このオプションは "man-in-the-middle (中間者)" 攻撃の危険性を開けてしまいます (この攻撃者の CommonName がログに記録されます)。
この機能はPostfix 2.2以降で使えます。Postfix 2.3以降では smtp_tls_security_level を代わりに使ってください。
すべてのTLSセキュリティレベルにおいて、Postfix SMTPクライアントの暗号リストから除外する暗号もしくは暗号のタイプをリストアップします。これはOpenSSLの暗号リストではなく、空白またはカンマで区切られたシンプルなリストです。要素は単一の暗号、もしくは1つ以上の "+" で区切られた暗号プロパティで、後者の場合すべてのプロパティがマッチしたときのみ除外されます。
例 (問題を起こすものもあります):
smtp_tls_exclude_ciphers = aNULL smtp_tls_exclude_ciphers = MD5, DES smtp_tls_exclude_ciphers = DES+MD5 smtp_tls_exclude_ciphers = AES256-SHA, DES-CBC3-MD5 smtp_tls_exclude_ciphers = kEDH+aRSA
最初の設定は、匿名暗号を無効にします。次の設定はMD5ダイジェストアルゴリズムもしくは (シングル) DES暗号アルゴリズムを使う暗号を無効にします。次の設定はMD5とDESを一緒に使う暗号を無効にします。次の設定は "AES256-SHA" と "DES-CBC3-MD5" の2つの暗号を無効にします。最後の設定はRSA認証で "EDH" 鍵交換を使う暗号を無効にします。
この機能はPostfix 2.3以降で使えます。
PEMフォーマットでの、Postfix SMTPクライアントRSAプライベートキーを持つファイル。このファイルは $smtp_tls_cert_file で指定されるクライアント証明書ファイルと一緒にすることもできます。
プライベートキーは暗号化してはいけません。言い換えると、鍵はパスワードなしでアクセスできなければいけません。
例:
smtp_tls_key_file = $smtp_tls_cert_file
この機能はPostfix 2.2以降で使えます。
TLS行動に関するPostfix SMTPクライアントのさらなるロギングを有効にします。それぞれのログレベルは下位のログレベルで記録される情報も含みます。
問題があったときのみ "smtp_tls_loglevel = 3" を使ってください。ログレベル4は使わないことを強くおすすめします。
この機能はPostfix 2.2以降で使えます。
TLS暗号が強制された場合にPostfix SMTPクライアントが使う最低限のTLS暗号グレード。デフォルト値の "medium" は、TLSを強制したいほとんどの配送先に適しており、今日の暗号解読方法では解読は無理です。配送先ベースで暗号を設定する方法に関する情報は smtp_tls_policy_maps を参照してください。
以下の暗号グレードがサポートされています:
この機能はPostfix 2.3以降で使えます。
TLSが必須なセキュリティレベルにおいて、SMTPクライアントの暗号リストから除外する暗号もしくは暗号のタイプを追加でリストアップします。このリストは smtp_tls_exclude_ciphers (文法の詳細はそちらを見てください) で除外するものとしてあげられたものに加えて機能します。
この機能はPostfix 2.3以降で使えます。
TLS暗号が強制された場合にPostfix SMTPクライアントが使うTLSプロトコルのリスト。main.cf では、値は空白やカンマ、転んで区切ります。ポリシーテーブルでは (smtp_tls_policy_maps 参照) コロンのみが有効な区切り文字です。値を空にすると、すべてのプロトコルを許可することを意味します。有効なプロトコル名 (SSL_get_version(3) 参照) は "SSLv2"、"SSLv3" および "TLSv1" です。
SSLバージョン2には既知の脆弱性があり現在は推奨できないため、デフォルト設定は "SSLv3" と "TLSv1" のみをリストアップしています。これは、デフォルトでは "encrypt" セキュリティレベル以上においてはSSLバージョン2は使われないことを意味します。
セキュリティレベルについての更なる情報は smtp_tls_policy_maps パラメータのドキュメントや TLS_README を参照してください。
この機能はPostfix 2.3以降で使えます。
TLSがまだ有効になっていなければ、STARTTLSを提供するリモートSMTPサーバのホスト名をログに記録します。
ログのレコードは次のようなものです:
postfix/smtp[pid]: Host offered STARTTLS: [name.of.host]
この機能はPostfix 2.2以降で使えます。
next-hop配送先やリモートSMTPサーバホスト名ごとのPostfix SMTP クライアントTLS利用ポリシーを持つ、オプションの検索テーブル。両方の検索に成功すると、より特定されたサイトごとのポリシー (NONE、 MUST, etc) が特定度の弱いもの (MAY) を上書きし、より安全なサイトごとのポリシー (MUST, etc) がより安全度の弱いもの (NONE) を上書きします。Postfix 2.3以降では smtp_tls_per_site は全くお勧めしません; 代わりに smtp_tls_policy_maps を使ってください。
サイトごとのテーブル検索キーとして生のホスト名を使うことはお勧めできません。常に完全な nexthop を使ってください ([] でくくり、もしあれば ":port" サフィックスをつけます)。ポートサフィックスのない受信者ドメインやMXが有効となった transport next-hopは生のホスト名に見えるかも知れませんが、それらは配送先として適したものです。
next-hop配送先またはサーバホスト名を左側部分に指定します; ワイルドカードは使えません。next-hop配送先は受信者のドメインもしくは transport(5) テーブル、relayhost パラメータ、relay_transport パラメータで指定される配送先のいずれかです。右側部分には以下のキーワードのいずれか1つを指定します:
上のキーワードはPostfix 2.3で導入された新しい smtp_tls_security_level パラメータの "none"、"may"、"encrypt" および "verify" セキュリティレベルに対応します。Postfix 2.3からは、どのようにポリシーが指定されているかに関わらず、smtp_tls_mandatory_ciphers および smtp_tls_mandatory_protocols パラメータはTLS暗号が強制されているときのみ適用されます。暗号がオプションの接続では "export" グレード以上の暗号すべてが有効になります。
安全なDNS検索メカニズムが使えない限り、MX応答やCNAME応答でのホスト名が間違っていると、PostfixがTLSポリシー検索やサーバ証明書の検証で使うホスト名が変わってしまいます。サーバホスト名とサーバ証明書が完全にマッチしていたとしても、Postfixが正しいサーバに接続されたかどうかは保証できません。可能な回避方法については TLS_README (古い、サイトごとのTLSポリシーでDNSの抜け穴を閉じる) を参照してください。
この機能はPostfix 2.2以降で使えます。Postfix 2.3以降では、代わりに smtp_tls_policy_maps を使ってください。
next-hop配送先ごとのPostfix SMTP クライアントTLSセキュリティポリシーを持つ、オプションの検索テーブル; 空ではない値が指定されると、古い smtp_tls_per_site パラメータをこれで上書きします。TLSセキュリティレベルのより詳細な議論は TLS_README を参照してください。
受信者ドメインもしくは transport テーブル、$local_transport、$virtual_transport、$relay_transport、$default_transport で指定されたnext-hop配送先全体で、TLSポリシーテーブルはインデックス化されます。これには四角カッコで括られたものや非デフォルト配送先サーバポートサフィックスを含みます。LMTPソケット形式プレフィックス (inet: や unix:) は検索キーには含みません。
next-hopドメイン、もしくはUNIXドメインソケットを使ったLMTPでの $myhostname だけが証明書検証の nexthop 名として使われます。ポートおよび四角カッコは検索キーとして使われますが、サーバ名検証には使われません。
検索キーが四角カッコや :port サフィックスのないドメイン名 (通常は受信者ドメイン) で、完全なドメインがテーブルでは見つからない場合は、transport(5) テーブルの場合と同様に "." で始まる親ドメインが再帰的にマッチします。これにより、ある受信者ドメインとそのサブドメイン全てに対するセキュリティポリシーを指定できるようになります。
検索結果はセキュリティレベルですが、関連する main.cf 設定を上書きする、空白やカンマで区切られた name=value 属性もオプションで続けることができます。TLSセキュリティレベルはセキュリティが上がる順に:
例:
main.cf: smtp_tls_policy_maps = hash:/etc/postfix/tls_policy
tls_policy: example.edu none example.mil may example.gov encrypt protocols=TLSv1 example.com verify ciphers=high example.net secure .example.net secure match=.example.net:example.net [mail.example.org]:587 secure match=nexthop
注意: hostname 戦略が smtp_tls_secure_cert_match の非デフォルト設定やポリシーテーブルの match 属性に書かれていると、DNS偽装に対する secure レベルの脆弱性となってしまう可能性があります。secure-channel に対する hostname 戦略を DNSセキュリティが保障されていない環境で使わないでください。
この機能はPostfix 2.3以降で使えます。
リモートSMTPサーバ証明書の検証の深さ。CAファイルにリストアップされた CAによって直接発行された証明書であれば、検証の深さは1で十分です。デフォルト値 (5) はより長いチェーンでも十分な値です (ルートCAは実際に証明書を発行する特別なCAを発行して...)。
この機能はPostfix 2.2以降で使えます。
"secure" TLSセキュリティレベルでのサーバ証明書の peername 検証方法。"secure" TLSポリシーテーブル ($smtp_tls_policy_maps) のエントリで、オプションの "match" 属性はこの main.cf 設定を上書きします。
このパラメータは1つ以上のパターンもしくは戦略をカンマ、空白またはコロンで区切って指定します。ポリシーテーブルではコロンのみが有効な区切り文字です。
パターンや戦略の文法についての記述は smtp_tls_verify_cert_match パラメータを参照してください。セキュアなグローバルDNSはないことから、証明書の検証でMX検索の結果を使うのはDNSのアクティブ (man-in-the-middle; 中間者) 攻撃を受ける心配があるため、"hostname" 戦略はこの場面では避けるべきです。
サンプル main.cf 設定:
smtp_tls_secure_cert_match = nexthop
サンプルポリシーテーブルの上書き:
example.net secure match=example.com:.example.com .example.net secure match=example.com:.example.com
この機能はPostfix 2.3以降で使えます。
Postfix SMTPクライアントでのデフォルトのSMTP TLSセキュリティレベル; 空ではない値が指定されると、古い smtp_use_tls や smtp_enforce_tls、smtp_tls_enforce_peername パラメータをこれで上書きします。
以下のセキュリティレベルのうち1つを指定してください:
例:
TLSなし、旧形式: smtp_use_tls=no and smtp_enforce_tls=no.
main.cf: smtp_tls_security_level = none
日和見TLS:
main.cf: smtp_tls_security_level = may
強制 (ハイグレード) TLS 暗号化:
main.cf: smtp_tls_security_level = encrypt smtp_tls_mandatory_ciphers = high
TLS検証の強制、ホスト名またはnexthopドメイン:
main.cf: smtp_tls_security_level = verify smtp_tls_mandatory_ciphers = high smtp_tls_verify_cert_match = hostname, nexthop, dot-nexthop
正確なnexthop名マッチングを使ったセキュリティチャネルTLS:
main.cf: smtp_tls_security_level = secure smtp_tls_mandatory_protocols = TLSv1 smtp_tls_mandatory_ciphers = high smtp_tls_secure_cert_match = nexthop
この機能はPostfix 2.3以降で使えます。
オプションのPostfix SMTPクライアントTLSセッションキャッシュを持つファイルの名前。btree や sdbmのように、enumerationをサポートしたデータベースの種類を指定します; 並列アクセスをサポートしている必要はありません。ファイルが存在しないと作成されます。smtp(8) デーモンはこのパラメータを直接使うのではなく、tlsmgr(8) デーモンでキャッシュが間接的に実装されています。これは、このパラメータのSMTPインスタンスごとの master.cf の上書きが有効にならないことを意味します。tlsmgr(8) デーモンがサポートしているそれぞれのキャッシュデータベースについての注意: $smtpd_tls_session_cache_database、$smtp_tls_session_cache_database (Postfix 2.3以降では $lmtp_session_cache_database も) は別々に保管される必要があります。現時点では複数のキャッシュを1つのデータベースに保管することはできません。
注意: dbm データベースは適しません。TLSセッションオブジェクトは大きすぎます。
例:
smtp_tls_session_cache_database = btree:/var/spool/postfix/smtp_scache
この機能はPostfix 2.2以降で使えます。
Postfix SMTPクライアントTLSセッションキャッシュ情報が期限切れとなる時間。キャッシュの整理は $smtp_tls_session_cache_timeout 秒ごとに定期的に実行されます。$smtp_tls_session_cache_database と同様、このパラメータは tlsmgr(8) デーモンで実装されており、そのためSMTPインスタンスごとに master.cf を上書きすることはできません。
この機能はPostfix 2.2以降で使えます。
"verify" TLSセキュリティレベルでのサーバ証明書の peername 検証方法。"verify" TLSポリシーテーブル ($smtp_tls_policy_maps) のエントリで、オプションの "match" 属性はこの main.cf 設定を上書きします。
このパラメータは1つ以上のパターンもしくは戦略をカンマ、空白またはコロンで区切って指定します。ポリシーテーブルではコロンのみが有効な区切り文字です。
パターンにはドメイン名もしくはドメイン名サフィックスを指定します:
戦略には next-hop ドメインからサーバ証明書で期待される名前への変換を指定します:
サンプル main.cf 設定:
smtp_tls_verify_cert_match = hostname, nexthop, dot-nexthop
サンプルポリシーテーブルの上書き:
example.com verify match=hostname:nexthop .example.com verify match=example.com:.example.com:hostname
この機能はPostfix 2.3以降で使えます。
日和見モード: リモートSMTPサーバがSTARTTLSサポートを案内したら TLSを使い、案内がなければ平文でメールを送ります。注意: SMTPサーバには設定されていなくてもSTARTTLSを提供するものがあります。Postfix < 2.3では、TLSハンドシェイクに失敗し、他のサーバが使えないと、配送は遅延されてメールはキューにとどまります。これが懸念されるのであれば、代わりに smtp_tls_per_site 機能を使ってください。
この機能はPostfix 2.2以降で使えます。Postfix 2.3以降では smtp_tls_security_level を代わりに使ってください。
XFORWARD コマンドを送り、サーバの応答を受け取るまでの SMTP クライアントの時間制限。
時間単位: s (秒)、m (分)、h (時)、d (日)、w (週)。デフォルトの時間単位は s (秒) です。
この機能はPostfix 2.1以降で使えます。
XVERP コマンドを指定できる SMTPクライアント。このコマンドは同時に1つの受信者に、受信者ごとのリターンアドレスを付けてメールを配送するように要求します。
デフォルトでは、どのクライアントも XVERP を指定することはできません。
このパラメータはPostfixバージョン2.1で改名されました。デフォルト値は Postfixバージョン2.0と後方互換です。
network/netmask パターンを空白やカンマで区切ったリストを指定します。mask にはホストアドレスのネットワーク部分のビット数を指定します。ホスト名や .domain 名 (最初にドットを付けると domain 以下のあらゆる名前にマッチするようになります)、"/file/name"、 "type:table" パターンを指定することもできます。"/file/name" パターンはその内容で置き換えられます; "type:table" 検索テーブルはテーブルのエントリが検索文字列にマッチするとマッチします (検索結果は無視されます)。次の行を空白で始めることで、長い行を継続します。
注意: IPバージョン6アドレス情報は smtpd_authorized_verp_clients 値や "/file/name" で指定されたファイルの中で [] の内側に指定しなければいけません。IPバージョン6アドレスは ":" 文字を含んでいるため、そうしないと "type:table" パターンと混乱してしまいます。
XCLIENT 機能が使える SMTPクライアント。このコマンドはアクセス制御で使われる SMTPクライアント情報を上書きします。通常は、 SMTP ベースのコンテンツフィルタや fetchmail のようなプログラム、SMTP サーバアクセスルールのテストに使われます。詳細は XCLIENT_README ドキュメントを参照してください。
この機能はPostfix 2.1以降で使えます。
デフォルトでは、どのクライアントも XCLIENT を指定できません。
network/netmask パターンを空白やカンマで区切ったリストを指定します。mask にはホストアドレスのネットワーク部分のビット数を指定します。ホスト名や .domain 名 (最初にドットを付けると domain 以下のあらゆる名前にマッチするようになります)、"/file/name"、 "type:table" パターンを指定することもできます。"/file/name" パターンはその内容で置き換えられます; "type:table" 検索テーブルはテーブルのエントリが検索文字列にマッチするとマッチします (検索結果は無視されます)。次の行を空白で始めることで、長い行を継続します。
注意: IPバージョン6アドレス情報は smtpd_authorized_xclient_hosts 値や "/file/name" で指定されるファイル内で [] の中に指定しなければいけません。IPバージョン6アドレスは ":" 文字を含んでいるため、そうしないと "type:table" パターンと混乱してしまいます。
XFORWARD 機能を使うことが許される SMTPクライアント。このコマンドは SMTP ベースのコンテンツフィルタの後のロギングを改善するのに使われる情報を渡します。詳細は XFORWARD_README ドキュメントを参照してください。
この機能はPostfix 2.1以降で使えます。
デフォルトでは、どのクライアントも XFORWARD を指定できません。
network/netmask パターンを空白やカンマで区切ったリストを指定します。mask にはホストアドレスのネットワーク部分のビット数を指定します。ホスト名や .domain 名 (最初にドットを付けると domain 以下のあらゆる名前にマッチするようになります)、"/file/name"、 "type:table" パターンを指定することもできます。"/file/name" パターンはその内容で置き換えられます; "type:table" 検索テーブルはテーブルのエントリが検索文字列にマッチするとマッチします (検索結果は無視されます)。次の行を空白で始めることで、長い行を継続します。
注意: IPバージョン6アドレス情報は smtpd_authorized_xforward_hosts 値や "/file/name" で指定されるファイル内で [] の中に指定しなければいけません。IPバージョン6アドレスは ":" 文字を含んでいるため、そうしないと "type:table" パターンと混乱してしまいます。
SMTP グリーティングバナーで 220 状態コードの後に続くテキスト。メールバージョンが宣伝されるのを見るのが好きな人もいます。デフォルトでは、Postfixはバージョンを示しません。
テキストの最初の $myhostname を指定しなければ「いけません」。これは SMTP プロトコルによって要求されています。
例:
smtpd_banner = $myhostname ESMTP $mail_name ($mail_version)
クライアントがサービスに接続することが許される同時接続数。デフォルトでは、この制限はデフォルトのプロセス制限値の半分に設定されます。
この機能を無効にするには、0 という制限を指定します。
警告: この機能の目的は不正使用を制限することです。正当なメールトラフィックを規制するために使ってはいけません。
この機能はPostfix 2.2以降で使えます。
時間単位ごとにクライアントがこのサービスに接続を試行することが許される最大の接続試行数。時間単位は anvil_rate_time_unit 設定パラメータで指定されます。
デフォルトでは、クライアントは単位時間にPostfixが受けることができる限りの数の接続を張ることができます。
この機能を無効にするには、0 という制限を指定します。
警告: この機能の目的は不正使用を制限することです。正当なメールトラフィックを規制するために使ってはいけません。
この機能はPostfix 2.2以降で使えます。
例:
smtpd_client_connection_rate_limit = 1000
接続カウントや接続速度、SMTP要求速度の制限から除外されるクライアント。パラメータ値の文法は mynetworks パラメータの記述を参照してください。
デフォルトでは、信頼されたネットワークのクライアントが除外されます。ネットワークブロックやホスト名、.domain 名 (最初のドットは domain 以下のあらゆる名前にマッチさせます) のリストを指定します。
注意: IPバージョン6アドレス情報は smtpd_client_event_limit_exceptions 値や "/file/name" で指定されるファイル内で []の中に指定しなければいけません。IPバージョン6アドレスは ":" 文字を含んでいるため、そうしないと "type:table" パターンと混乱してしまいます。
この機能はPostfix 2.2以降で使えます。
単位時間にこのサービスに対して許される、クライアントのメッセージ配送要求の最大数で、Postfixが実際にメッセージを受け入れるかどうかは関係ありません。時間単位は anvil_rate_time_unit 設定パラメータで指定されます。
デフォルトでは、1つのクライアントは単位時間にPostfixが受け付けられるだけのメッセージ配送要求を送ることができます。
この機能を無効にするには、0 という制限を指定します。
警告: この機能の目的は不正使用を制限することです。正当なメールトラフィックを規制するために使ってはいけません。
この機能はPostfix 2.2以降で使えます。
例:
smtpd_client_message_rate_limit = 1000
リモートSMTPクライアントが単位時間にこのサーバとネゴシエートできる、新しい (つまりキャッシュされていない) TLSセッションの最大数。時間単位は anvil_rate_time_unit 設定パラメータで指定されます。
デフォルトでは、Postfixが単位時間で受け入れられる新しいTLSセッションの数と同じだけ、リモートSMTPクライアントはネゴシエートできます。
この機能を無効にするには、0 という制限を指定します。それ以外では、クライアントごとの同時セッション制限以上の制限を指定してください。そうしないと、適切なクライアントのセッションまで拒否されてしまうかもしれません。
警告: この機能の目的は不正使用を制限することです。正当なメールトラフィックを規制するために使ってはいけません。
この機能はPostfix 2.3以降で使えます。
例:
smtpd_client_new_tls_session_rate_limit = 100
単位時間にこのサービスに対してクライアントが許される、受信者アドレスの最大数で、Postfixが実際にメッセージを受け入れるかどうかは関係ありません。時間単位は anvil_rate_time_unit 設定パラメータで指定されます。
デフォルトでは、1つのクライアントは単位時間にPostfixが受け付けられるだけの受信者アドレス数を書くことができます。
この機能を無効にするには、0 という制限を指定します。
警告: この機能の目的は不正使用を制限することです。正当なメールトラフィックを規制するために使ってはいけません。
この機能はPostfix 2.2以降で使えます。
例:
smtpd_client_recipient_rate_limit = 1000
SMTPサーバがクライアントからSMTP接続の要求を受けた際に適用する、オプションのアクセス制限。
デフォルトでは全ての接続要求を許可します。
制限のリストをカンマまたは空白で区切って指定します。次の行を空白で始めることで、長い行を継続します。制限は指定された順に適用されます; 最初にマッチした制限が勝ちます。
以下の制限はクライアントホスト名またはクライアントネットワークアドレス情報に特有のものです。
これに加えて、以下の一般的な制限 を使えます。これらの制限は SMTP コマンドのどの場面にも適用できます。
/etc/postfix/main.cf: smtpd_client_restrictions = sleep 1, reject_unauth_pipelining smtpd_delay_reject = noこの機能はPostfix 2.3で使えます。
この場面で有効な他の制限:
例:
smtpd_client_restrictions = permit_mynetworks, reject_unknown_client_hostname
Postfix SMTPサーバが SMTP DATA コマンドの場面で適用する、オプションのアクセス制限。
この機能はPostfix 2.0以降で使えます。
制限のリストをカンマまたは空白で区切って指定します。次の行を空白で始めることで、長い行を継続します。制限は指定された順に適用されます; 最初にマッチした制限が勝ちます。
以下の制限がこの場面で有効です:
例:
smtpd_data_restrictions = reject_unauth_pipelining smtpd_data_restrictions = reject_multi_recipient_bounce
有効な RCPT TO コマンドを受け取るまで、SMTPメールトランザクションの開始を遅らせます。SMTPサーバが有効な MAIL FROM コマンドを受け取ったらすぐにメールトランザクションを開始するのであれば、"no" を指定してください。
たくさんのメールを拒否するようなサイトでは、デフォルトの設定によりディスクやCPU、メモリリソースの使用を減らせます。欠点としては、拒否された受信者はメールトランザクションIDではなくNOQUEUEとログに記録されてしまいます。これを使うと、複数の受信者をもつメールのログファイル分析が複雑になります。
この機能はPostfix 2.3以降で使えます。
$smtpd_client_restrictions および $smtpd_helo_restrictions、$smtpd_sender_restrictions の評価を RCPT TO コマンドまで待ちます。または、$smtpd_client_restrictions および $smtpd_helo_restrictions の評価を ETRN コマンドまで待ちます。
Postfix SMTPサーバが RCPT TO の前にコマンドを拒否すると間違った動作をしてしまうクライアントがあるようなので、この機能はデフォルトで有効になっています。
デフォルトの設定には一つ大きな利点があります: Postfixがクライアント名/アドレスや送信者アドレスを拒否する際に受信者情報をログに記録できるようになり、誰のメールが拒否されたかがわかるようになります。
SMTPサーバがリモートSMTPクライアントへのEHLO応答で送らない、大文字・小文字を区別しないEHLOキーワード (pipelining, starttls, auth など) のリストを持つ、リモートSMTPクライアントアドレスでインデックス化された検索テーブル。詳細は smtpd_discard_ehlo_keywords を参照してください。堅牢性の理由から、テーブルはホスト名で検索されません。
この機能はPostfix 2.2以降で使えます。
SMTPサーバがリモートSMTPクライアントへのEHLO応答で送らない、大文字・小文字を区別しないEHLOキーワード (pipelining, starttls, auth など) のリスト。
この機能はPostfix 2.2以降で使えます。
注意:
この動作がログに記録されないようにするには、silent-discard擬似キーワードを指定します。
EHLOキーワードを選択的に破棄するには、smtpd_discard_ehlo_keyword_address_maps 機能を使います。
Postfix SMTPサーバがSMTP END-OF-DATAコマンドの場面で適用する、オプションのアクセス制限。
この機能はPostfix 2.2以降で使えます。
文法の詳細は smtpd_data_restrictions を参照してください。
強制TLS: SMTPクライアントにSTARTTLSサポートを通知し、クライアントが TLS暗号化を使うことを要求します。RFC 2487 により、これは公に参照されるSMTPサーバの場合には適用してはいけません。このオプションはデフォルトで無効になっており、専用サーバでのみ使うべきです。
注意 1: "smtpd_enforce_tls = yes" を指定すると、"smtpd_tls_auth_only = yes" も指定したことになります。
注意2: "sendmail -bs" から呼び出されると、Postfixはサーバのプライベートキーにアクセスする権限がないため、STARTTLSを提供しません。これは意図された振る舞いです。
この機能はPostfix 2.2以降で使えます。Postfix 2.3以降では、代わりに smtpd_tls_security_level を使ってください。
Postfix 2.1以降: メールの配送なしで クライアントが $smtpd_soft_error_limit 以上 $smtpd_hard_error_limit 以下のエラーを出した後に入れる、SMTPサーバ応答の遅延。
Postfix 2.0 以前: メールの配送なしで クライアントが $smtpd_soft_error_limit 以下のエラーを出した際に拒否 (4xx または 5xx) 応答を送る前に入れる、SMTPサーバの遅延。
Postfix SMTPサーバがクライアントの ETRN 要求の場面で適用する、オプションの制限。
PostfixのETRN実装はPostfix "高速 flush" サービスに適格な配送先のみを受け入れます。詳細は ETRN_README を参照してください。
制限のリストをカンマまたは空白で区切って指定します。次の行を空白で始めることで、長い行を継続します。制限は指定された順に適用されます; 最初にマッチした制限が勝ちます。
以下の制限は ETRN コマンドで受け取るドメイン名情報に特有特有のものです。
この場面で有効な他の制限:
例:
smtpd_etrn_restrictions = permit_mynetworks, reject
RBL 応答テンプレートの $name 展開で許される文字。許可されたセットにない文字は "_" で置き換えられます。空白のような特別な文字を指定するには、 C 形式のエスケープを使います。
このパラメータは $parameter 展開を受けません。
この機能はPostfix 2.0以降で使えます。
Postfix SMTPサーバに 221 コードで即座にセッションを終了させるコマンドのリスト。これはシステムに対して明らかに不正をはたらこうとしているクライアントを切断するのに使えます。このパラメータにリストアップされているコマンドに加え、メッセージヘッダの "Label:" フォーマットに続くコマンドでも切断します。
この機能はPostfix 2.2以降で使えます。
リモートSMTPクライアントがメールの配送なしに発生させることが許されるエラーの数。制限を超えるとPostfix SMTPサーバは接続を切ります。
リモートSMTPクライアントが SMTP セッションの最初で HELO または EHLO コマンドで自己紹介することを要求します。
例:
smtpd_helo_required = yes
Postfix SMTPサーバが SMTP HELO コマンドの場面で適用する、オプションの制限。
デフォルトでは全てを許可します。
制限のリストをカンマまたは空白で区切って指定します。次の行を空白で始めることで、長い行を継続します。制限は指定された順に適用されます; 最初にマッチした制限が勝ちます。
以下の制限は HELO または EHLO コマンドで受け取るホスト名情報に特有です。
この場面で有効な他の制限:
例:
smtpd_helo_restrictions = permit_mynetworks, reject_invalid_helo_hostname smtpd_helo_restrictions = permit_mynetworks, reject_unknown_helo_hostname
EHLO や RSET、DATA の終わりの受信時に消し去られるまでの、 Postfix SMTPサーバコマンドラインヒストリの最大行数。
Postfix SMTPサーバがジャンクコマンド (NOOP や VRFY、ETRN、RSET) でエラーカウンタを増加させる前に、リモートの SMTPクライアントが送ることができるジャンクコマンドの数。ジャンクコマンド数はメールが配送されるとリセットされます。smtpd_error_sleep_time および smtpd_soft_error_limit 設定パラメータも参照してください。
Postfix smtpd(8) サーバを通して届いた新しいメールに対する Milter (メールフィルタ) アプリケーションのリスト。詳細は MILTER_README ドキュメントを参照してください。
この機能はPostfix 2.3以降で使えます。
文法チェックや状態の変更を行わずに、Postfixサーバが "250 OK" と応答するコマンドのリスト。このリストはPostfix SMTPサーバに組み込まれたいずれのコマンドも上書きします。
null 送信者アドレスの代わりに SMTP access(5) テーブルで使われる検索キー。
リモートSMTPクライアントのホスト名検索を試行し、クライアントIPアドレスにその名前がマッチすることを検証します。クライアント名が検索できなかったり検証できなかった場合、名前の検索が無効になっている場合は、クライアント名は "unknown" と設定されます。名前の検索を無効にすることで、DNS検索による遅延を減らすことができ、内向きの最大配送速度を早くすることができます。
この機能はPostfix 2.3以降で使えます。
アイドル状態の SMTPD ポリシーサービス接続が閉じられるまでの時間。
この機能はPostfix 2.1以降で使えます。
アクティブな SMTPD ポリシーサービス接続が閉じられるまでの時間。
この機能はPostfix 2.1以降で使えます。
委譲された SMTPD ポリシーサーバに接続し、書き込み、受信するまでの時間制限。
この機能はPostfix 2.1以降で使えます。
Postfix SMTPサーバがプロキシフィルタに対して自分を通知する方法。デフォルトでは、Postfixホスト名が使われます。
この機能はPostfix 2.1以降で使えます。
メールフィルタリングプロキシサーバのホスト名とTCPポート。プロキシはPostfix SMTPサーバからの全てのメールを受け取り、他の Postfix SMTPサーバプロセスに結果を渡すと想定されています。
TCPで接続するには "host:port" もしくは "inet:host:port" を、UNIXドメインに接続するには "unix:pathname" を指定します。host はIPアドレスやシンボル名として指定することができます; MX検索はおこなわれません。host や host: が指定されないと、ローカルマシンであると想定されます。パス名はPostfixキューディレクトリからの相対パスで解釈されます。
この機能はPostfix 2.1以降で使えます。
"inet:" や "unix:" のプレフィックスはPostfix 2.3以降で使えます。
プロキシフィルタに接続し、情報を送受信する時間制限。接続に失敗すると、クライアントは一般的なエラーメッセージを受け取り、より詳細情報が maillog ファイルにログとして記録されます。
時間単位: s (秒)、m (分)、h (時)、d (日)、w (週)。デフォルトの時間単位は s (秒) です。
この機能はPostfix 2.1以降で使えます。
Postfix SMTPサーバがメッセージ配送要求ごとに受け付ける、最大の受信者数。
Postfix SMTPサーバが超過したそれぞれの受信者に対してセッションごとのエラーカウンタを増加させる前に、リモートの SMTPクライアントが $smtpd_recipient_limit で指定された制限を超えて送ることができる受信者の数。
Postfix SMTPサーバが RCPT TO コマンドの場面で適用するアクセス制限。
デフォルトでは、Postfix SMTPサーバは以下のものを受け取ります:
重要: このパラメータの設定を変更したら、少なくとも以下のどれか一つの制限を指定しなければいけません。そうしないと、Postfixはメールの受信を拒否してしまいます:
reject, defer, defer_if_permit, reject_unauth_destination
制限のリストをカンマまたは空白で区切って指定します。次の行を空白で始めることで、長い行を継続します。制限は指定された順に適用されます; 最初にマッチした制限が勝ちます。
以下の制限は RCPT TO コマンドで受け取る受信者アドレスに特有です。
この場面で有効な他の制限:
例:
smtpd_recipient_restrictions = permit_mynetworks, reject_unauth_destination
明示的に reject_unlisted_recipient アクセス制限が指定されていなくても、Postfix SMTPサーバが知らない受信者アドレス宛のメールを拒否するように要求します。これはPostfixキューが配送できない MAILER-DAEMON メッセージで埋め尽くされることを防ぎます。
この機能はPostfix 2.1以降で使えます。
明示的に reject_unlisted_sender アクセス制限が指定されていなくても、Postfix SMTPサーバが知らない送信者アドレスからのメールを拒否するように要求します。これは急激に増加したワームやウィルスからの騙られたメールを遅くすることができます。
この機能はPostfix 2.1以降で使えます。
ユーザが定義した、アクセス制限グループの別名。この別名は smtpd_recipient_restrictions などや Postfix access(5) テーブルの右側部分で指定することができます。
主な応用方法の一つに、受信者ごとの UCE 制御の実装があります。他の例は RESTRICTION_CLASS_README ドキュメントを参照してください。
SASL サーバの初期化に使われるアプリケーション名。これは SASL 設定ファイルの名前を制御します。デフォルト値は smtpd であり、smtpd.conf という名前の SASL 設定ファイルに対応します。
この機能はPostfix 2.1および2.2で利用可能です。Postfix 2.3では、smtpd_sasl_path と改名されました。
Postfix SMTPサーバの SASL 認証を有効にします。デフォルトでは、Postfix SMTPサーバは認証を使いません。
リモートの SMTPクライアントが認証されると、リレーアクセスを許可するのに次のように permit_sasl_authenticated アクセス制限が使えます:
smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, ...
認証されていないクライアントからの全ての SMTP 接続を拒否するには、"smtpd_delay_reject = yes" (これはデフォルトです) を指定し、以下のものを使います:
smtpd_client_restrictions = permit_sasl_authenticated, reject
SASLの設定と操作の詳細は SASL_README ファイルを参照してください。
SASL認証のユーザ名を smtpd(8) Received メッセージヘッダで報告します。
この機能はPostfix 2.3以降で使えます。
Postfixが AUTH サポートを提供しない SMTPクライアント。
AUTH が提供されるたびに、必要かどうかにかかわらずログインとパスワードを要求してしまうバグを持ったクライアント (少なくとも Netscape 4) があります。これを回避するために、例えばPostfixがローカルのクライアントに AUTH を提供しないようにするためには $mynetworks を指定します。
network/netmask パターンを空白やカンマで区切ったリストを指定します。mask にはホストアドレスのネットワーク部分のビット数を指定します。"/file/name" や "type:table" パターンを指定することもできます。"/file/name" パターンはその内容で置き換えられます; "type:table" 検索テーブルはテーブルのエントリが検索文字列にマッチするとマッチします (検索結果は無視されます)。次の行を空白で始めることで、長い行を継続します。
注意: IPバージョン6アドレス情報は smtpd_sasl_exceptions_networks 値や "/file/name" で指定されたファイルの中で [] の内側に指定しなければいけません。IPバージョン6アドレスは ":" 文字を含んでいるため、そうしないと "type:table" パターンと混乱してしまいます。
例:
smtpd_sasl_exceptions_networks = $mynetworks
この機能はPostfix 2.1以降で使えます。
SASL認証 realm の名前。
デフォルトでは、ローカル認証 realm 名は null 文字列です。
例:
smtpd_sasl_local_domain = $mydomain smtpd_sasl_local_domain = $myhostname
smtp_sasl_type で選ばれたSASLプラグインの実装にそのまま渡される、実装に依存する情報。通常はここに設定ファイル名やランデブーポイントの名前を指定します。
この機能はPostfix 2.3以降で使えます。以前のバージョンでは smtpd_sasl_application と呼ばれていました。
SASLセキュリティオプション; Postfix 2.3では、利用可能な機能は smtpd_sasl_type で選択されたSASLサーバの実装に依存します。
以下のセキュリティ機能は cyrus サーバSASL実装用に定義されているものです:
Postfix SMTPサーバがクライアントに提供する認証メカニズムを制限します。使用できる認証メカニズムのリストはシステムに依存します。
以下のゼロ個以上を指定します:
デフォルトでは、Postfix SMTPサーバは平文パスワードを受け付けますが、匿名ログインは受け付けません。
警告: クライアントはサーバが案内した順番 (例えば PLAIN ANONYMOUS CRAM-MD5) で認証方法を試すようであり、平文パスワードを無効にすると、これはクライアントが CRAM-MD5 を使えたとしても匿名でログインしようとしてしまうことを意味します。そのため、平文ログインを無効にする場合、匿名ログインも無効にしてください。Postfixは匿名ログインを認証とは扱いません。
例:
smtpd_sasl_security_options = noanonymous, noplaintext
Postfix SMTPサーバがTLS暗号化されたSMTPセッションに使う、SASL認証セキュリティオプション。
この機能はPostfix 2.2以降で使えます。
Postfix SMTPサーバが認証に使うSASLプラグインの種類。利用可能な種類は "postconf -a" コマンドでリストアップされます。
この機能はPostfix 2.3以降で使えます。
送信者 (MAIL FROM) アドレスを持つ SASL ログイン名の、オプションの検索テーブル。
ゼロ個以上の "type:table" 検索テーブルを指定します。DBやDBMのようなインデックス化されたファイルからの検索や、NISや LDAP、SQLのようなネットワーク上のテーブルからの検索では、user@domain という送信者アドレスで次のように検索操作がおこなわれます:
どの場合でも、テーブル検索の結果は "見つからない" か、カンマや空白で区切られた SASL ログイン名のリストのどちらかでなければいけません。
Postfix SMTPサーバが MAIL FROM コマンドの場面で適用する、オプションの制限。
デフォルトでは全てを許可します。
制限のリストをカンマまたは空白で区切って指定します。次の行を空白で始めることで、長い行を継続します。制限は指定された順に適用されます; 最初にマッチした制限が勝ちます。
以下の制限は MAIL FROM コマンドで受け取る送信者アドレスに特有です。
この場面で有効な他の制限:
例:
smtpd_sender_restrictions = reject_unknown_sender_domain smtpd_sender_restrictions = reject_unknown_sender_domain, check_sender_access hash:/etc/postfix/access
Postfix SMTPサーバが全ての応答を遅くする前に、リモートSMTP クライアントがメールの配送なしに発生させることが許されるエラーの数。
Postfixバージョン2.1以降では、Postfix SMTPサーバは全ての応答を $smtpd_error_sleep_time 秒だけ遅延します。
Postfixバージョン2.0以前では、Postfix SMTPサーバは全ての応答を (エラー数) 秒だけ遅延します。
Postfix SMTPサーバがTLSハンドシェイクの開始からシャットダウン手順の間に読み書きする操作の時間制限。
この機能はPostfix 2.2以降で使えます。
Postfix SMTPサーバが応答を送って、リモートSMTPクライアントの要求を受け取るまでの時間制限。
注意: SMTP時間制限を非常に大きな値にする場合、一般的な ipc_timeout パラメータも更新する必要があるかもしれません。
時間単位: s (秒)、m (分)、h (時)、d (日)、w (週)。デフォルトの時間単位は s (秒) です。
Postfix SMTPサーバ証明書を発行した認証局 (CA) の証明書を持つファイル。これはCA証明書がサーバ証明書ファイルの中にまだ存在しない場合にのみ必要です。このファイルには信頼した他のCAの証明書を含むこともできます。chrootモードで使いたければ、信頼したCAのリストに対してこのファイルを使わなければいけません。
例:
smtpd_tls_CAfile = /etc/postfix/CAcert.pem
この機能はPostfix 2.2以降で使えます。
Postfix SMTPサーバがリモートのSMTPクライアントに、クライアント証明書を検証する目的で提供する、PEMフォーマットの認証局証明書を持つディレクトリ。必要な "hash" リンク、例えば "$OPENSSL_HOME/bin/c_rehash /etc/postfix/certs" を作るのを忘れないでください。
このオプションをchrootモードで使うには、このディレクトリ (もしくはコピー) がchroot監獄の中になければいけません。この場合、CA証明書はクライアントには提供されず、その結果、例えばNetscapeクライアントはそれらのCAによって発行された証明書を出さないかもしれません。そのためこの機能の利用はお勧めできません。
例:
smtpd_tls_CApath = /etc/postfix/certs
この機能はPostfix 2.2以降で使えます。
TLSセッションキャッシングが無効になっているとき (smtpd_tls_session_cache_database が空) でも、Postfix SMTPサーバにTLSセッションID発行を強制します。この振る舞いはPostfix < 2.3と互換です。
TLSセッションキャッシングが無効になっている場合、Postfix 2.3以降では、Postfix SMTPサーバはセッションIDを生成しないようにできます。これによりほとんど再利用できないセッションをクライアントがキャッシュしないようにします。
デフォルトでは、Postfix SMTPサーバは常にTLSセッションIDを生成します。これはMS Outlookのようなメールクライアントアプリケーションの既知の欠陥を回避し、他のMTAとの互換性問題も予防するかもしれません。
例:
smtpd_tls_always_issue_session_ids = no
この機能はPostfix 2.3以降で使えます。
リモートSMTPクライアントにクライアント証明書を依頼します。この情報は例えば permit_tls_clientcerts 機能を使っての、証明書ベースのメールリレーに必要です。
Netscapeのようなクライアントには、($smtpd_tls_CAfile のCAのリストの) 証明書が使えないと文句を言うか、複数のクライアント証明書を提供してそこから選べるようにするものもあります。これは面倒なので、デフォルトではこのオプションは "off" になっています。
この機能はPostfix 2.2以降で使えます。
Postfix SMTPサーバでTLS暗号化がオプションになっていると、暗号化されていない接続ではSASL認証を通知したり受け付けたりしません。
この機能はPostfix 2.2以降で使えます。
リモートSMTPクライアント証明書の検証の深さ。発行CAがローカルのCAファイルにリストアップされていれば、検証の深さは 1で十分です。デフォルト値はより長いチェーンでも十分な値です (ルートCAは実際に証明書を発行する特別なCAを発行して...)。
この機能はPostfix 2.2以降で使えます。
PEMフォーマットの、Postfix SMTPサーバRSA証明書を持つファイル。このファイルはサーバプライベートキーも含んでいるかもしれません。
"信頼できる" CAによって署名された証明書がない、公開されたインターネットMXホストは自己署名もしくはプライベートCAによって署名された証明書を生成し、たいていのクライアントに提供する準備をしなければいけません。クライアントはサーバを認証できませんが、Postfix 2.3もしくは同様なソフトウェアを動かしているのでなければ、サーバ証明書を要求し続けるでしょう。
公開されたインターネットMXホストではないサーバでは、Postfix 2.3は証明書なしの設定をサポートしています。これは単に匿名TLS暗号を使うことになり、たいていのSMTPクライアントではサポートされていません。たいていはそのようなクライアントはTLSハンドシェイクに失敗した後で平文に落とそうとはしないため、サーバはTLSが有効なクライアントからeメールを受け取れなくなるでしょう。誤って証明書なしで設定してしまうのを避けるため、 Postfix 2.3は管理者が明示的に "smtpd_tls_cert_file = none" を設定したときのみ証明書なしの動作を有効にします。これにより新しいPostfix設定が誤って証明書なしで動かないようにすることを保証します。
RSAおよびDSA証明書の両方がサポートされています。両方のタイプが存在すると、使われる暗号はクライアントに存在する証明書がどちらかで決まります。NetscapeおよびOpenSSLクライアントでは特に暗号を選ばない限り、RSA証明書が優先されます。
証明書を検証するには、CA証明書 (証明書チェーンの場合はすべてのCA証明書) が使えなければいけません。これらの証明書をサーバ証明書に加えるとよいでしょう。その場合はサーバ証明書を最初にして、それから発行CAのものとします。
例: "server.dom.ain" の証明書は、自身が "root CA" の証明書を持つ "intermediate CA" によって発行されました。"cat server_cert.pem intermediate_CA.pem root_CA.pem > server.pem" として、server.pem ファイルを作成します。
これらのCA自身によって発行されたS証明書を受け入れたければ、CA証明書も smtpd_tls_CAfile に加えます。その場合には smtpd_tls_dcert_file や smtpd_tls_cert_file の中にそれらを持つ必要はありません。
ここで与えられた証明書はSSLサーバ証明書として使えるものでなければならず、そのために "openssl verify -purpose sslserver ..." テストに通らなければいけません。
例:
smtpd_tls_cert_file = /etc/postfix/server.pem
この機能はPostfix 2.2以降で使えます。
古いPostfix < 2.3での、Postfix SMTPサーバTLS暗号リストの制御。デフォルトではない暗号リストを選んでしまうと簡単に相互運用性問題が生じてしまいます。公開されたインターネット上のMXホストでデフォルトではないTLS暗号リストを使ってはいけません。TLSハンドシェイクを始めるものの共通の暗号に合意できないクライアントは、SMTPサーバにEメールを送れないかもしれません。接続するクライアントのTLSソフトウェアおよび設定を制御することが可能であれば、専用のMSAまたは内部メールハブに対して暗号リストを制限して使うことがより適切かもしれません。
注意: パラメータ値の前後に "" 引用符を使わないでください。
この機能はPostfixバージョン2.2で使えます。Postfix 2.3以降では使われません; 代わりに smtpd_tls_mandatory_ciphers を使ってください。
PEMフォーマットでの、Postfix SMTPサーバDSA証明書を持つファイル。このファイルはサーバプライベートキーも含んでいるかもしれません。
より詳細は smtpd_tls_cert_file 以下の議論を参照してください。
例:
smtpd_tls_dcert_file = /etc/postfix/server-dsa.pem
この機能はPostfix 2.2以降で使えます。
Postfix SMTPサーバがEDH暗号で使うDHパラメータを持つファイル。
他のTLSパッケージで配布されたパラメータセットと厳密に同じものを使うのではなく、次のようなコマンドで自分自身のパラメータセットを生成する方がより安全です:
openssl gendh -out /etc/postfix/dh_1024.pem -2 -rand /var/run/egd-pool 1024
実際のエントロピーソースは異なるかもしれません。/dev/random を持っているシステムもあります; それがないシステムでは http://egd.sourceforge.net/ から取得できる "Entropy Gathering Daemon EGD" の利用を検討してもよいでしょう。
例:
smtpd_tls_dh1024_param_file = /etc/postfix/dh_1024.pem
この機能はPostfixバージョン2.2で使えます。
Postfix SMTPサーバがEDH暗号で使うDHパラメータを持つファイル。
smtpd_tls_dh1024_param_file 設定パラメータの議論も参照してください。
例:
smtpd_tls_dh512_param_file = /etc/postfix/dh_512.pem
この機能はPostfixバージョン2.2で使えます。
PEMフォーマットでの、Postfix SMTPサーバDSAプライベートキーを持つファイル。このファイルは $smtpd_tls_dcert_file で指定されるサーバ証明書ファイルと一緒にすることもできます。
プライベートキーは暗号化してはいけません。言い換えると、鍵はパスワードなしでアクセスできなければいけません。
この機能はPostfix 2.2以降で使えます。
すべてのTLSセキュリティレベルにおいて、SMTPサーバの暗号リストから除外する暗号もしくは暗号のタイプをリストアップします。有効な暗号を除外すると、相互運用性の問題が生じるかもしれません。そうすることが必要でなければ、暗号を除外「しないでください」。これはOpenSSLの暗号リストではありません; 空白またはカンマで区切られたシンプルなリストです。要素は単一の暗号、もしくは1つ以上の "+" で区切られた暗号プロパティで、後者の場合すべてのプロパティがマッチしたときのみ除外されます。
例 (問題を起こすものもあります):
smtpd_tls_exclude_ciphers = aNULL smtpd_tls_exclude_ciphers = MD5, DES smtpd_tls_exclude_ciphers = DES+MD5 smtpd_tls_exclude_ciphers = AES256-SHA, DES-CBC3-MD5 smtpd_tls_exclude_ciphers = kEDH+aRSA
最初の設定は、匿名暗号を無効にします。次の設定はMD5ダイジェストアルゴリズムもしくは (シングル) DES暗号アルゴリズムを使う暗号を無効にします。次の設定はMD5とDESを一緒に使う暗号を無効にします。次の設定は "AES256-SHA" と "DES-CBC3-MD5" の2つの暗号を無効にします。最後の設定はRSA認証で "EDH" 鍵交換を使う暗号を無効にします。
この機能はPostfix 2.3以降で使えます。
PEMフォーマットでの、Postfix SMTPサーバRSAプライベートキーを持つファイル。このファイルは $smtpd_tls_cert_file で指定されるサーバ証明書ファイルと一緒にすることもできます。
プライベートキーは暗号化してはいけません。言い換えると、鍵はパスワードなしでアクセスできなければいけません。
TLS行動に関するPostfix SMTPサーバのさらなるロギングを有効にします。それぞれのログレベルは下位のログレベルで記録される情報も含みます。
問題があったときのみ "smtpd_tls_loglevel = 3" を使ってください。ログレベル4は使わないことを強くおすすめします。
この機能はPostfix 2.2以降で使えます。
TLS暗号が強制された場合にPostfix SMTPサーバが使う最低限のTLS暗号グレード。smtpd_tls_mandatory_exclude_ciphers や smtpd_tls_exclude_ciphers にリストアップされた暗号のタイプは、選択された暗号グレードのベース定義から除外されます。日和見なTLS暗号では、smtpd_tls_exclude_ciphers で指定されたもののみを除外して、無条件に "export" グレードを使います。
以下の暗号グレードがサポートされています:
この機能はPostfix 2.3以降で使えます。
TLSが必須なセキュリティレベルにおいて、SMTPサーバの暗号リストから除外する暗号もしくは暗号のタイプを追加でリストアップします。このリストは smtpd_tls_exclude_ciphers (文法の詳細はそちらを見てください) で除外するものとしてあげられたものに加えて機能します。
この機能はPostfix 2.3以降で使えます。
TLS暗号が強制された場合にPostfix SMTPサーバが受け入れるTLSプロトコル。日和見なTLS暗号では、すべてのプロトコルが常に受け入れられます。リストが空の場合、サーバは利用可能なすべてのTLSプロトコルバージョンをサポートします。空ではない値の場合、プロトコル名のリストを空白やカンマ、コロンで区切ります。サポートされているプロトコル名は "SSLv2"、"SSLv3" および "TLSv1" で、大文字・小文字の区別はありません。
例:
smtpd_tls_mandatory_protocols = SSLv3, TLSv1
この機能はPostfix 2.3以降で使えます。
Postfix SMTPサーバがプロトコルや使われた暗号、クライアントCommonNameやクライアント証明書を発行したCommonNameといった情報を含む Received: メッセージヘッダを生成するように要求します。これは他のメールサーバを通っていく間に情報が書き換えられるかもしれないため、デフォルトでは無効になっています。最終配送先によって記録された情報のみが信頼できます。
この機能はPostfix 2.2以降で使えます。
TLS暗号化が強制された場合、TLS接続の続行を許可するためにリモートSMTP クライアント証明書を要求します。このオプションは "smtpd_tls_ask_ccert = yes" という指定もなされます。
TLS暗号化が任意の場合、この設定は無視され、警告がメールログに記録されます。
この機能はPostfix 2.2以降で使えます。
Postfix SMTPサーバでのSMTP TLSセキュリティレベル; 空ではない値が指定されると、古い smtpd_use_tls や smtpd_enforce_tls パラメータをこれで上書きします。"smtpd_tls_wrappermode = yes" とすると、このパラメータは 無視されます。
以下のセキュリティレベルのうち1つを指定してください:
注意1: "verify" および "secure" レベルはサポートされていません。Postfix SMTPサーバは警告をログに記録し、変わりに "encrypt" を使います。SMTPクライアント証明書を検証するには、TLS_README の smtpd_tls_ask_ccert、smtpd_tls_req_ccert および permit_tls_clientcerts に関する議論を参照してください。
注意2: "smtpd_tls_security_level = encrypt" のパラメータ設定は "smtpd_tls_auth_only = yes" も指定したことになります。
注意3: "sendmail -bs" から呼び出されると、Postfixはサーバのプライベートキーにアクセスする権限がないため、STARTTLSを提供しません。これは意図された振る舞いです。
この機能はPostfix 2.3以降で使えます。
オプションのPostfix SMTPサーバTLSセッションキャッシュを含むファイルの名前。btree や sdbmのように、enumerationをサポートしたデータベースの種類を指定します; 並列アクセスをサポートしている必要はありません。ファイルが存在しないと作成されます。smtpd(8) デーモンはこのパラメータを直接使うのではなく、tlsmgr(8) デーモンでキャッシュが間接的に実装されています。これは、このパラメータのSMTPDインスタンスごとの master.cf の上書きが有効にならないことを意味します。tlsmgr(8) デーモンがサポートしているそれぞれのキャッシュデータベースについての注意: $smtpd_tls_session_cache_database、$smtp_tls_session_cache_database (Postfix 2.3以降では $lmtp_session_cache_database も) は別々に保管される必要があります。現時点では複数のキャッシュを1つのデータベースに保管することはできません。
注意: dbm データベースは適しません。TLSセッションオブジェクトは大きすぎます。
例:
smtpd_tls_session_cache_database = btree:/var/spool/postfix/smtpd_scache
この機能はPostfix 2.2以降で使えます。
Postfix SMTPサーバTLSセッションキャッシュ情報が期限切れとなる時間。キャッシュの整理は $smtpd_tls_session_cache_timeout 秒ごとに定期的に実行されます。$smtpd_tls_session_cache_database と同様、このパラメータは tlsmgr(8) デーモンで実装されており、そのためSMTPDインスタンスごとに master.cf を上書きすることはできません。
この機能はPostfix 2.2以降で使えます。
Postfix SMTPサーバをSTARTTLSコマンドを使うのではなく、非標準の "ラッパー" モードで走らせます。
このサービスをサポートしたければ、master.cf で特別なポートを有効にし、 SMTPサーバのコマンドラインで "-o smtpd_tls_wrappermode=yes" を指定してください。以前はこの目的のためにポート465 (smtps) が選ばれていました。
この機能はPostfix 2.2以降で使えます。
日和見TLS: STARTTLSサポートをクライアントに通知はしますが、クライアントがTLS暗号化を使うことは要求しません。
注意: "sendmail -bs" から呼び出されると、Postfixはサーバのプライベートキーにアクセスする権限がないため、STARTTLSを提供しません。これは意図された振る舞いです。
この機能はPostfix 2.2以降で使えます。Postfix 2.3以降では、代わりに smtpd_tls_security_level を使ってください。
送信者に返されてしまうメールをキューにとどめておくための安全ネット。このパラメータはローカルで生成されるバウンスを無効にし、5xx 応答コードを 4xx に変えることでPostfix SMTPサーバがメールを恒久的に拒否してしまわないようにします。しかし、soft_bounce ではアドレス書き換えの間違いやメールルーティングの間違いを直すことはできません。
例:
soft_bounce = yes
古いメールボックスの排他的ロックファイルが取り除かれるまでの時間。これはファイルまたはメールボックスへの配送に使われます。
時間単位: s (秒)、m (分)、h (時)、d (日)、w (週)。デフォルトの時間単位は s (秒) です。
メッセージヘッダに8ビットテキストを持つメールを拒否します。これは不完全に書かれたアプリケーションからのメールをブロックします。
正当なEメールを拒否する可能性があるため、この機能を一般的な目的のメールサーバで有効にすべきではありません。
この機能はPostfix 2.0以降で使えます。
strict_7bit_headers と strict_8bitmime_body の両者を有効にします。
正当なEメールを拒否する可能性があるため、この機能を一般的な目的のメールサーバで有効にすべきではありません。
この機能はPostfix 2.0以降で使えます。
8 ビット MIME コンテンツエンコード情報のない 8 ビットメッセージ本体テキストを拒否します。これは不完全に書かれたアプリケーションからのメールをブロックします。
残念ながら、これは要求に有効な 8 ビット MIME メールを含んだ majordomo 承認要求も拒否してしまいます。また、(例えば qmail や古いバージョンの Postfixからのバウンスのように) 8 ビットコンテンツを MIME カプセル化しないメーラからのバウンスを拒否します。
正当なEメールを拒否する可能性があるため、この機能を一般的な目的のメールサーバで有効にすべきではありません。
この機能はPostfix 2.0以降で使えます。
message/* または multipart/* MIME コンテンツタイプに対して無効な Content-Transfer-Encoding: 情報を持つメールを拒否します。これは不完全に書かれたアプリケーションからのメールをブロックします。
一回違反した後のメールを拒否してしまうため、この機能を一般的な目的のメールサーバで有効にすべきではありません。
この機能はPostfix 2.0以降で使えます。
SMTP MAIL FROM および RCPT TO コマンドで受け取るアドレスが <> で括られていて、そのアドレスが RFC 822 形式のコメントやフレーズが含まれていないことを要求します。これは不完全に書かれたアプリケーションからのメールをブロックします。
デフォルトでは、Postfix SMTPサーバは MAIL FROM および RCPT TO アドレスの RFC 822 文法を受け入れます。
古い SUN mailtool 互換機能。代わりに "mailbox_delivery_lock = dotlock" を使ってください。
"site!user" から "user@site" への書き換えを有効にします。これはマシンが UUCP ネットワークに接続されている場合に必要です。これはデフォルトで有効になっています。
注意: Postfixバージョン2.2では、メッセージヘッダアドレスの書き換えは以下のいずれかの条件に当てはまったときのみにおこなわれます:
Postfixバージョン2.2以前の振る舞いにしたければ、"local_header_rewrite_clients = static:all" を指定してください。
例:
swap_bangpath = no
Postfixロギングの syslog facility 名。syslog.conf(5) で定義された facility を指定します。デフォルト facility は "mail" です。
警告: デフォルトではない syslog_facility 設定はPostfixプロセスの初期化が終わった後で有効になります。初期化している間のエラーはデフォルトの facility でログに記録されます。コマンドライン引数をパースしている際のエラーやPostfix main.cf設定ファイルにアクセスしている間のエラーがその例です。
例えば "smtpd" が "postfix/smtpd" となるようにするために syslog レコードのプロセス名の前に付けられるメールシステムの名前。
警告: デフォルトではない syslog_name 設定は Postfixプロセスの初期化が終わった後で有効になります。初期化している間のエラーはデフォルトの facility でログに記録されます。コマンドライン引数をパースしている際のエラーやPostfix main.cf設定ファイルにアクセスしている間のエラーがその例です。
smtp(8) または smtpd(8) プロセスが内部擬似乱数生成器 (PRNG) に種を与えるために tlsmgr(8) サーバから要求する擬似乱数のバイト数。デフォルトの32バイト (256ビットと等価) は 128ビット (または168ビット) のセッションキーを生成するのに十分です。
この機能はPostfix 2.2以降で使えます。
"EXPORT" 以上のグレードの暗号用のOpenSSL暗号リスト。これは smtpd_tls_mandatory_ciphers や smtp_tls_mandatory_ciphers、lmtp_tls_mandatory_ciphers における "export" 設定の意味を定義します。これは日和見 ("may") TLSクライアントセキュリティレベルでの暗号リストであり、SMTPサーバの暗号リストのデフォルトです。この設定は変更しないことを強く推奨します。
この機能はPostfix 2.3以降で使えます。
"HIGH" グレードの暗号用のOpenSSL暗号リスト。これは smtpd_tls_mandatory_ciphers や smtp_tls_mandatory_ciphers、 lmtp_tls_mandatory_ciphers における "high" 設定の意味を定義します。この設定は変更しないことを強く推奨します。
この機能はPostfix 2.3以降で使えます。
"LOW" 以上のグレードの暗号用のOpenSSL暗号リスト。これは smtpd_tls_mandatory_ciphers や smtp_tls_mandatory_ciphers、lmtp_tls_mandatory_ciphers における "low" 設定の意味を定義します。この設定は変更しないことを強く推奨します。
この機能はPostfix 2.3以降で使えます。
"MEDIUM" 以上のグレードの暗号用のOpenSSL暗号リスト。これは smtpd_tls_mandatory_ciphers や smtp_tls_mandatory_ciphers、lmtp_tls_mandatory_ciphers における "medium" 設定の意味を定義します。これはTLSクライアント側でTLS暗号化が必須な場合 (で、サーバ証明書を検証する際に匿名暗号が無効になっている場合) の暗号リストのデフォルトです。この設定は変更しないことを強く推奨します。
この機能はPostfix 2.3以降で使えます。
暗号化せずに認証を提供する "NULL" グレードの暗号用のOpenSSL暗号リスト。これは smtpd_tls_mandatory_ciphers や smtp_tls_mandatory_ciphers、lmtp_tls_mandatory_ciphers における "null" 設定の意味を定義します。この設定は変更しないことを強く推奨します。
この機能はPostfix 2.3以降で使えます。
メモリ内乱数生成器 (PRNG) プールに種を(再び)与える際に、tlsmgr(8) が $tls_random_source から読み込むバイト数。デフォルトの32バイト (256ビット) は128ビットの対称キーには十分によい値です。EGDもしくはデバイスファイルを使う場合、最大の255バイトが読み込まれます。
この機能はPostfix 2.2以降で使えます。
tlsmgr(8) が管理する擬似乱数生成器 (PRNG) 状態ファイルの名前。ファイルが存在しなければ作成され、その長さは1024バイトに固定されます。
このファイルはPostfixによって改変されるため、$config_directory 以下ではなく、おそらく /var ファイルシステムに保存するべきです。chroot監獄の中に置くべきではありません。
この機能はPostfix 2.2以降で使えます。
$tls_random_exchange_name で指定されたファイルに擬似乱数生成器 (PRNG) の状態を tlsmgr(8) が保存しようとする時間間隔。
この機能はPostfix 2.2以降で使えます。
tlsmgr(8) が外部ソースからメモリ内擬似乱数生成器 (PRNG) プールに再び種を与えるまでの最大時間間隔。実際に再び種を与えようとする時間間隔は0から指定された時間の間で、PRNGを使って計算されます。
この機能はPostfix 2.2以降で使えます。
メモリ内 tlsmgr(8) 擬似乱数生成器 (PRNG) プールへの外部エントロピーソース。確実にnon-blockingソースを指定してください。このソースが通常のファイルではない場合、エントロピーソース形式を前に付けなければいけません: EGD互換ソケットインターフェースには egd:/path/to/egd_socket を、デバイスファイルには dev:/path/to/device のようにします。
注意: OpenBSDシステムでは、/dev/urandom がタイムアウトエラーを出す場合、 /dev/arandom を指定してください。
この機能はPostfix 2.2以降で使えます。
trace サービスの名前。このサービスは bounce(8) デーモンによって実装されており、メールの配送記録を管理したり、"sendmail -v" で冗長な配送が要求された場合にメール配送レポートを生成します。
この機能はPostfix 2.1以降で使えます。
受信者アドレスから (メッセージ配送 transport、next-hop 配送先) へのマッピングを持つ、オプションの検索テーブル。詳細は transport(5) を参照してください。
ゼロ個以上の "type:table" 検索テーブルを指定します。この機能をローカルファイルで使うのであれば、変更後に "postmap /etc/postfix/transport" を実行してください。
安全上の理由から、Postfix 2.3ではこの機能は正規表現マップでの $number の置換が使えません。
例:
transport_maps = dbm:/etc/postfix/transport transport_maps = hash:/etc/postfix/transport
Postfixキューマネージャが異常なメッセージ配送 transport に接触しようとする時間間隔。
時間単位: s (秒)、m (分)、h (時)、d (日)、w (週)。デフォルトの時間単位は s (秒) です。
(例えば pickup(8) や qmgr(8) デーモンのような) Postfixデーモンにトリガーを送る制限時間。この時間制限はメールシステムの負荷が大きい場合にプログラムが動かなくならないようにします。
時間単位: s (秒)、m (分)、h (時)、d (日)、w (週)。デフォルトの時間単位は s (秒) です。
メッセージに To: または Cc: メッセージヘッダがない場合にPostfix cleanup(8) サーバが挿入するメッセージヘッダ。
送信者または受信者アドレスが reject_unknown_sender_domain または reject_unknown_recipient_domain 制限で拒否された場合の、数字のPostfix SMTPサーバ応答コード。一時的なDNSエラーの場合には、応答は常に450です。
RFC 821 を完全に理解しているのでなければ、これを変更してはいけません。
有効なアドレス <=> 名前のマッピングのないクライアントが reject_unknown_client_hostname 制限で拒否された場合の、数字のPostfix SMTPサーバ応答コード。SMTPサーバは一時的なエラー状態でマッピングが失敗した場合には常に450で応答します。
RFC 821 を完全に理解しているのでなければ、これを変更してはいけません。
HELO または EHLO コマンドで指定されたホスト名が reject_unknown_helo_hostname 制限で拒否された場合の、数字のPostfix SMTPサーバ応答コード。
RFC 821 を完全に理解しているのでなければ、これを変更してはいけません。
受信者アドレスがローカルで、$local_recipient_maps がその受信者にマッチしない検索テーブルのリストを指定していた場合に、Postfix SMTP サーバが応答する数字のコード。ドメインが $mydestination や $proxy_interfaces、$inet_interfaces にマッチする場合に、受信者アドレスをローカルと見なします。
デフォルトの設定は 550 (メールを拒否します) ですが、最初は 450 を使って local_recipient_maps 設定が問題ないかどうか確認する時間を取ると、より安全です。
例:
unknown_local_recipient_reject_code = 450
この機能はPostfix 2.0以降で使えます。
受信者アドレスが $relay_domains にマッチするが、relay_recipient_maps がその受信者にマッチしない検索テーブルのリストを指定していた場合に、 Postfix SMTPサーバが応答する数字のコード。
この機能はPostfix 2.0以降で使えます。
受信者アドレスが $virtual_alias_domains にマッチするが、$virtual_alias_maps がその受信者にマッチしない検索テーブルのリストを指定していた場合のSMTP サーバの応答コード。
この機能はPostfix 2.0以降で使えます。
受信者アドレスが $virtual_mailbox_domains にマッチするが、$virtual_mailbox_maps がその受信者にマッチしない検索テーブルのリストを指定していた場合のSMTP サーバの応答コード。
この機能はPostfix 2.0以降で使えます。
受信者アドレスが reject_unverified_recipient 制限によって拒否された場合の、数字のPostfix SMTPサーバ応答コード。
Postfixの他の場所と異なり、それでもアドレスを受け付けるために250を指定することができます。
RFC 821 を完全に理解しているのでなければ、これを変更してはいけません。
この機能はPostfix 2.1以降で使えます。
送信者アドレスが reject_unverified_sender 制限によって拒否された場合の、数字のPostfix SMTPサーバ応答コード。
Postfixの他の場所と異なり、それでもアドレスを受け付けるために250を指定することができます。
RFC 821 を完全に理解しているのでなければ、これを変更してはいけません。
この機能はPostfix 2.1以降で使えます。
PostfixがPostfix sendmail(1) コマンドラインや SMTPコマンドで VERP 区切り文字として受け付ける文字。
この機能はPostfix 1.1以降で使えます。
指定されたバーチャルエイリアスドメイン、つまり全てのアドレスが他のローカルまたはリモートドメインのアドレスにエイリアスされるドメインのリストに対して、Postfixが最終配送先になります。SMTPサーバは $virtual_alias_maps で受信者アドレスを確認し、存在しない受信者を拒否します。ADDRESS_CLASS_README ファイルのバーチャルエイリアスドメインクラスも参照してください。
この機能はPostfix 2.0以降で使えます。デフォルト値は Postfixバージョン1.1と後方互換です。
デフォルト値は $virtual_alias_maps になっており、バーチャルエイリアスドメイン に関する情報を全て1カ所にとどめることができるようになっています。たくさんのユーザがいる場合、よく更新される情報 (バーチャルアドレス -> ローカルまたはリモートアドレスのマッピング) をあまり更新されない情報 (バーチャルドメイン名のリスト) から分ける方がよいでしょう。
ユーザ名、"/file/name" または "type:table" パターンを空白やカンマで区切ったリストを指定します。"/file/name" パターンはその内容で置き換えられます; "type:table" 検索テーブルはテーブルのエントリが検索文字列にマッチするとマッチします (検索結果は無視されます)。次の行を空白で始めることで、長い行を継続します。
これ以上の情報は VIRTUAL_README や ADDRESS_CLASS_README ドキュメントも参照してください。
例:
virtual_alias_domains = virtual1.tld virtual2.tld
それぞれの元の受信者から virtual エイリアス展開で生成されるアドレスの最大数。
この機能はPostfix 2.1以降で使えます。
特定のメールアドレスやドメインを他のローカルまたはリモートアドレスにエイリアスする、オプションの検索テーブル。テーブルの書式や検索は virtual(5) に記述されています。Postfixアドレス操作の概要は ADDRESS_REWRITING_README ドキュメントを参照してください。
この機能はPostfix 2.0以降で使えます。デフォルト値は Postfixバージョン1.1と後方互換です。
インデックス化されたファイルでこの機能を使う場合、ファイルを更新したら "postmap /etc/postfix/virtual" を実行してください。
例:
virtual_alias_maps = dbm:/etc/postfix/virtual virtual_alias_maps = hash:/etc/postfix/virtual
virtual エイリアス展開の最大のネストの深さ。現在は再帰制限は展開グラフの左側の分岐のみに適用されるため、最悪の場合ツリーの深さは展開および再帰制限の合計に達します。これは将来変更される予定です。
この機能はPostfix 2.1以降で使えます。
virtual メッセージ配送 transport を使った同じ配送先への、最大の並列配送数。この制限はキューマネージャによって強制されます。メッセージ配送 transport の名前は master.cf ファイルのエントリの最初のフィールドです。
virtual メッセージ配送 transport を使った配送ごとの、最大の受信者数。この制限はキューマネージャによって強制されます。メッセージ配送 transport の名前は master.cf ファイルのエントリの最初のフィールドです。
このパラメータの値を1に設定すると、対応する配送先ごとの並列制限はドメインごとの並列度から受信者ごとの並列度へと virtual_destination_concurrency_limit の意味を変えます。
virtual(8) メールボックス配送に使う受信者ごとのグループIDを持つ検索テーブル。
検索テーブルには、指定されたドメインで特定の "user@domain.tld" エントリを持たないどのユーザにもマッチする "@domain.tld" を左側部分に指定します。
受信者アドレスにオプションの拡張アドレス (user+foo@domain.tld) がついていると、virtual(8) 配送エージェントはまず完全なアドレスを検索し、検索に失敗すると、拡張を外したアドレス (user@domain.tld) を検索します。
注意 1: セキュリティ上の理由で、セキュリティホールを開けてしまうかもしれないため、virtual(8) 配送エージェントは正規表現検索テーブルでの $1 などの正規表現置換を使えません。
注意 2: セキュリティ上の理由で、セキュリティホールを開けてしまうかもしれないため、virtual(8) 配送エージェントは proxymap(8) サービスの使用要求は静かに無視します。代わりにテーブルを直接オープンします。Postfixバージョン2.2以前では virtual(8) 配送エージェントは致命的エラーで終了します。
virtual(8) 配送エージェントが $virtual_mailbox_maps テーブル検索からの結果の全てのパス名前に付けるプレフィックス。これは制御不能なマップがファイルシステムをメールボックスで散らかさないようにするための安全策です。virtual_mailbox_base を "/" にすることもできますが、この設定は推奨しません。
例:
virtual_mailbox_base = /var/mail
Postfixは指定されたドメインのリストの最終配送先になります; メールは $virtual_transport メール配送transportで配送されます。デフォルトでは、これはPostfix virtual(8) 配送エージェントです。SMTPサーバは $virtual_mailbox_maps で受信者アドレスを確認し、存在しない受信者宛のメールを拒否します。ADDRESS_CLASS_README ファイルのバーチャルメールボックスドメインクラスも参照してください。
このパラメータは mydestination 設定パラメータと同じ文法を期待します。
この機能はPostfix 2.0以降で使えます。デフォルト値は Postfixバージョン1.1と後方互換です。
個々のメールボックスまたは maildir ファイルの、バイト単位の最大サイズ、またはゼロ (制限なし)。
配送を試行する前にUNIX形式の virtual(8) メールボックスをロックする方法。利用可能なファイルロック方法をリストアップするには、"postconf -l" コマンドを使ってください。
maildir 形式の配送ではアプリケーションレベルでのロックがなくても安全であるため、この設定は無視されます。
注意 1: dotlock 方式では、受信者メールボックスファイルの親ディレクトリに受信者の UID または GID の書き込みアクセス権が必要です。
注意 2: このパラメータのデフォルトの設定はシステムに依存します。
$virtual_mailbox_domains にマッチするドメインの全ての有効なアドレスを持つ、オプションの検索テーブル。
検索テーブルには、指定されたドメインで特定の "user@domain.tld" エントリを持たないどのユーザにもマッチする "@domain.tld" を左側部分に指定します。
virtual(8) 配送エージェントは受信者ごとのメールボックスまたは maildir パス名を検索するためにこのテーブルを使います。検索結果がスラッシュ ("/") で終わっていると maildir 形式の配送が実行され、それ以外のパスは UNIX 形式のメールボックスファイルが想定されます。$virtual_mailbox_baseが無条件にこのパスの前に付けられることに注意してください。
受信者アドレスにオプションの拡張アドレス (user+foo@domain.tld) がついていると、virtual(8) 配送エージェントはまず完全なアドレスを検索し、検索に失敗すると、拡張を外したアドレス (user@domain.tld) を検索します。
注意 1: セキュリティ上の理由で、セキュリティホールを開けてしまうかもしれないため、virtual(8) 配送エージェントは正規表現検索テーブルでの $1 などの正規表現置換を使えません。
注意 2: セキュリティ上の理由で、セキュリティホールを開けてしまうかもしれないため、virtual(8) 配送エージェントは proxymap(8) サービスの使用要求は静かに無視します。代わりにテーブルを直接オープンします。Postfixバージョン2.2以前では virtual(8) 配送エージェントは致命的エラーで終了します。
a) 全てのアドレスが他のローカルもしくはリモートドメインのアドレスにエイリアスされるドメイン名と、b) 他のローカルもしくはリモートドメインのアドレスにエイリアスされるアドレスを持つ、オプションの検索テーブル。 Postfixバージョン2.0より前で使えます。Postfixバージョン2.0以降では、virtual_alias_domains と virtual_alias_maps という 2つの制御に分かれて置き換えられました。
virtual(8) 配送エージェントが $virtual_uid_maps テーブル検索からの結果として受け付ける最小のユーザ ID の値。この値よりも小さな返り値は拒否され、メッセージは遅延されます。
$virtual_mailbox_domains にリストアップされたドメインへの最終配送での、デフォルトのメール配送transportおよびnext-hop配送先。この情報は transport(5) テーブルで上書きできます。
transport:nexthop という形の文字列を指定します。ここで transportは master.cf に定義されたメール配送 transport の名前です。:nexthop 部分はオプションです。より詳細は transport(5) マニュアルページを参照してください。
この機能はPostfix 2.0以降で使えます。
virtual(8) 配送エージェントが受信者のメールボックスへの書き込みに使用する受信者ごとのユーザ ID を持つ検索テーブル。
検索テーブルには、指定されたドメインで特定の "user@domain.tld" エントリを持たないどのユーザにもマッチする "@domain.tld" を左側部分に指定します。
受信者アドレスにオプションの拡張アドレス (user+foo@domain.tld) がついていると、virtual(8) 配送エージェントはまず完全なアドレスを検索し、検索に失敗すると、拡張を外したアドレス (user@domain.tld) を検索します。
注意 1: セキュリティ上の理由で、セキュリティホールを開けてしまうかもしれないため、virtual(8) 配送エージェントは正規表現検索テーブルでの $1 などの正規表現置換を使えません。
注意 2: セキュリティ上の理由で、セキュリティホールを開けてしまうかもしれないため、virtual(8) 配送エージェントは proxymap(8) サービスの使用要求は静かに無視します。代わりにテーブルを直接オープンします。Postfixバージョン2.2以前では virtual(8) 配送エージェントは致命的エラーで終了します。