Postfix FAQ

以下のFAQは主としてPostfixメーリングリストから持ってきたものです。メーリングリストについての 情報はPostfixの公式ウェブサイトにあります。 これはPostfix: The Definitive GuideのAppendixにあるFAQをさらに拡張したバージョンで、 今も成長し続けています。IKEDA Nozomu によって日本語に翻訳 されています。このページに対して何か質問やコメント、 提案があれば、それらを私 <kdent@seaglass.com> に送ってください。

質問は以下のカテゴリに分類されています:

*Postfixメーリングリスト *Postfix のコンパイル
*一般的な質問 *エイリアス
*エラー・警告メッセージ *メールキュー
*ロギング *DNS問題
*バーチャルドメイン *UBEブロック
*アンチウィルス

FAQ全体がこのHTMLファイルに含まれているので、FAQ内の検索には ブラウザの検索機能が使えます。

(訳注: これは Kyle Dent さんがまとめたPostfix の FAQを、 許可をいただいて日本語に翻訳したものです。翻訳に関する質問等は Kyle さんではなく、 ike@kobitosan.net までお送りください。)


(元になった原文の)最終更新: Sat Jul 24 17:31:03 2004

Postfixメーリングリスト

1. Postfixメーリングリストの購読をやめるには?
2. メーリングリストにメッセージを送ったのに返事がありません。 他の多くの質問には返事があるのに。私は...

Postfix のコンパイル

3. make を実行したらこんなエラーがいっぱい 出ました: gcc -Wmissing-prototypes -Wformat -g -o -I....

一般的な質問

4. 接続してきたクライアントにgreetingを送る時にPostfixが 使うバナーを変えるには?
5. Postifxがバウンスメッセージを送るときに、送信者に"For further assistance, please send ...
6. ソースコードを修正するにはどうすればいいの?
7. mbox形式とMaildir形式のメールボックス、どちらがよいでしょう?
8. main.cfに'include'ディレクティブみたいなのはないですか?
9. メールの配送確認を受け取ることはできませんか?
10. 特定のアドレスがemailメッセージを受け取るたびに、 自動的にリプライを送るようにする...
11. 私のメールサーバから送られるすべてのemailの最後に 免責条項(やその他の文章)を...
12. すべてのメッセージのコピーを取っておくには?
13. ユーザのメールボックスにクオータやサイズ制限をかけるには?
14. 私のドメイン名がヘッダ中のあるアドレスについて しまうのはなぜ? 例えば、Pos...
15. 私のPostfixが特定の機能付きでビルドされたかどうかを 知る方法は? パッケージから...
16. Postfixを25番以外のポートでlistenさせるには?
17. Postfixバージョン1.xxと2.xxの主な違いは何?
18. わかった。でも主に設定ファイルが心配なんです。アップグレードするときに どうすればいいの?
19. 私のシステムにはいくつかのインターフェースが あるんだけど、そのうち一つだけにPostfixをbindするには?
20. Sendmailでは4時間メッセージを配送できなかった時に 警告を受け取っていました。Post...
21. mailbox_transport と mailbox_command の違いは何?
22. 我々の内部システムはすべてメールゲートウェイを 中継します。メールが外に出て行く...
23. 存在しないメールボックスに送られたすべてのメッセージを 特定のユーザに転送するようにPost...
24. わかった。じゃあ、Postfixにまずすべてのメッセージを 受け取らせて、それから存在しない...
25. 設定ファイルや検索テーブルを更新したときに、Postfixを リロードする必要はあるの?
26. Postfixに恒久的なエラーコード (554)を返すように 設定したはずなのに、一時的なエラ...
27. うちにはよく外出しているユーザが何人かいます。 オープンリレーにしないで彼らが私のサーバ...
28. 次のような制限をmaster.cfファイルのsmtpd制限に 加える必要が出てきました: -o sm...
29. クライアントがsmtpdサービスに接続するとき常に長い遅延が生じて しまうようです。接続を確立して...
30. SMTPD で外からの接続を受け付けないようにして Postfix を動かす ことってできるの? ...

エイリアス

31. エイリアスにあるリストの最初のアドレスだけが メッセージを受け取れます。でも、それ以外...
32. このようなエイリアスで、info: peter,heloise 誰かが メッセージを info と peter の両方に送る...
33. あるリストから展開されるアドレスが何かを知るために エイリアスリストのテストをしようとして...

エラー・警告メッセージ

34. メッセージを受け取れないようです。このエラーの意味は?: "<test@example.com>: mail fo...
35. なぜこんなメッセージがログに残っているの? その ファイルはみんな /etc にあるはずでしょ? warnin...
36. 知らないユーザにメールが届くと、Postfixは "User uknown in (local|virtual|relay) rec...
37. こんなのを受け取りました。 postfix/smtp[18860]: fatal: unknown service: smtp/tcp 何が問題なの?

メールキュー

38. 必要ないって分かってるメールがキューにたまってるん だけど、何か消す方法はない?
39. mailq と postqueue の間に奇妙な違いがあることが わかりました。mailq コマンドはキュー...
40. メッセージが期限切れでバウンスされずにとどまっている時間って 変えられないの?
41. ある時間経ったら個々のメッセージを期限切れでキューから 消すようにする方法ってないで...
42. 以前設定に問題がありました。今は直っていますが、 システムは古い、間違った設定を使っ...
43. キューにたまっている大量のメールが、実際のemail アドレスではなく"MAILER-DAEMON"が...

ロギング

44. Postfixはどこに情報をログとして記録するのですか?
45. To や From アドレスのような他の情報と一緒に メッセージのサブジェクトをPostfix...
46. メールに何が起こっているのかを正確に知るための、 デバッグオプションや冗長ログを記録...
47. Fromアドレスに関するエントリが、私のログには 見あたりません。どうなっているのでしょう?
48. Postfixのログエントリを解析するのに便利なプログラム ってない?
49. 私が使っているウィルススキャンの方法では、すべての メッセージがPostfixに再投入されます...
50. システム時計は正確なのに、メールログエントリは違う 時刻になってしまいます。何が問題なの?

DNS問題

51. ホストが見つからないっていうエラーを受け取ったん だけど、検索してみたら答が返ってきま...
52. 私の場合、host -t MX example.comをやってみました。 私は答を得られたのに、Postfixは "Host...
53. PostfixがMXレコードを無視してAレコードのシステムに 直接配送しようとしているみたい。...

バーチャルドメイン

54. バーチャルエイリアスでプログラムにメッセージを 配送する方法ってある?
55. postmaster というアドレスのようなグローバルな バーチャルエイリアスをつくって、私...

UBEブロック

56. 助けて! オープンリレーになってるみたい。ログに こんなメッセージがたくさん書かれ...
57. 助けて! オープンリレーになったかもしれない。 どうやってチェックすればいいの?
58. 助けて! 間違いなくオープンリレーになってしまった。 いろんなブラックリストに載っちゃっ...
59. エンベロープ送信者アドレスに何もないspamをたくさん 受け取ったんだけど、これってブロッ...
60. ある送信者アドレスをブロックするように制限しました。 なぜ制限された送信者からのメッセー...
61. header_checks や body_checks のどのエントリが メッセージを拒否したのか、知る方法...
62. 応答しないサーバから存在しないユーザ宛のメールが たくさん来てしまい、存在しないサー...
63. 本体やヘッダのチェックを設定に加えて、ある サブジェクト行や添付ファイルをブロックする...
64. たくさんのウィルスを止めるために、本体行チェックを いくつか設定に加えました。だいたい...
65. header_checks や body_checks を使って条件比較は できますか?例えばこんな感じで:...
66. header_checks や body_checks を使ってspamをブロック しているのですが、正当なemailまで私の...
67. わかった。でもログからブロックされた文字列を含んだ レポートを受け取れるようにしたいだけ...
68. spamをブロックするためにブラックリストの一つを 使ってて、それはうまくいってます。でもう...
69. header_checks や body_checks で作った正規表現って、 どうやってテストすればいいの?
70. もし、accessマップであるドメインを example.com REJECT No spam accepted のようにブ...
71. strict_7bit_headers = yes を設定している人はたいてい 成功しているの?
72. DNSに2つMXホストを設定してます。最初のMXシステムには大量の スパムチェックをセットアップしたんだ...

アンチウィルス

73. ある添付ファイルを、ファイル名の拡張子に基づいて ブロックすることってできるの?

Postfixメーリングリスト

1. (訳注: 本家の)Postfixメーリングリストの購読をやめるには?

メッセージの本文に "unsubscribe postfix-users"と書いた メールを <majordomo@postfix.org> に送ってください。 こんなメッセージになるはずです:

To: <majordomo@postfix.org>
From: <you@yourdomain.com>
Subject:

unsubscribe postfix-users

[Back][Top]


2. メーリングリストにメッセージを送ったのに返事がありません。 他の多くの質問には返事があるのに。私は何か間違ったことをしたので しょうか?

実際には、Postfixメーリングリストでは返事がもらえないことはほとんど ないです。かなり寛大なリストなので。でも、確実に答がもらえるように、 十分な情報を提供するための基本的な投稿ルールをいくつか挙げて おきましょう:

  1. 意味が広すぎる "うまくいきません" メッセージは 送っちゃダメ。問題を詳しく説明してください。リストへのメッセージの 原稿では、あなたの問題を解く側のことを考慮しましょう。 あなたが問題の要因かもしれないと思った、該当するログエントリや 設定の情報、その他あなたの環境の詳細を示してください。

  2. 常に postconf -n の 出力結果を送りましょう。あなたが問題に関係ないと思っていても、 その設定の中に、リストのエキスパートがすぐに答を出せるような ちょっとした情報があるかもしれません。リストのメンバーには、 十分な情報がない質問には答えたくない人もいます。

  3. プレインテキストのメッセージを送りましょう。 HTML を解釈しないメールクライアントを使っていて、HTML で書かれた メッセージを読みたくないリストのメンバーもいるので。

  4. すでに存在するスレッドを新しい質問でハイジャック してはいけません。新しいメッセージを始めてアドレスにタイプしましょう。 タイプ量が多いのであれば、アドレスブックに登録しておきましょう。

[Back][Top][Feedback]


Postfix のコンパイル

3. make を実行したらこんなエラーがいっぱい出ました:

gcc  -Wmissing-prototypes -Wformat -g -o -I.  -I../../Include -DLINUX2 -c ...

どうやったらこのエラーを回避できるの?

これはエラーじゃないです。'missing-prototypes' っていう文字列は、 プロトタイプが前で宣言されずにグローバル関数が定義されたら警告を 表示しろってコンパイラに伝えるためのディレクティブです。あなたが 見た行はビルドプロセスからの正常な出力です。

[Back][Top][Feedback]


一般的な質問

4. 接続してきたクライアントにgreetingを送る時にPostfixが つかうバナーを変えるには?

smtpd_banner パラメータで設定します。 デフォルトでは次のように設定されます:

smtpd_banner = $myhostname ESMTP $mail_name

普通はこのバナーを変えない方がよいでしょう。これを 変えるにしても、最初の "$myhostname ESMTP" は規格が要求しているので 絶対にそのままにしておくべきです。

[Back][Top][Feedback]


5. Postifxがバウンスメッセージを送るときに、送信者に"For further assistance, please send mail to <postmaster>" と伝えます。しかし、そのアドレスに私のドメイン名を含めたい、つまり <postmaster@example.com> としたいのです。 どうすればよいのでしょう?

これには通知を受け取った人たちが、その人のローカルのpostmasterに 連絡を取るようにという意味が込められているのです。問題を扱う必要が あるのはたぶん彼らなので。本当にこれを変えたいんだったら、 ソースコードをいじる必要があります。

[Back][Top][Feedback]


6. ソースコードを修正するにはどうすればいいの?

そんな質問をする人は修正しちゃダメです。そのまま使い続けるか、 修正してくれる C 使いを探しなさい。

[Back][Top][Feedback]


7. mbox形式とMaildir形式のメールボックス、どちらがよいでしょう?

場合によります。重要な点として、NFS越しにメール置き場をマウント するんだったら、mboxを使っちゃダメです。その他の点では、mboxは ほとんど一般的にサポートされてるけれど、複数のプログラムがメール ファイルにアクセスする必要がある場合にはファイルロック問題の 影響を受けやすい、maildirフォーマットはファイルロック問題は なくなったけど、膨大な数のメッセージをサーバに置いておくユーザが いるようなシステムでは拡張性がないかもしれない、という感じです。

パフォーマンスを考慮しても、やっぱり場合によります。 maildirでは特定のメッセージを読んだり削除したりする分には多分 速いけど、メールファイルに新しいメッセージを追加するのはおそらく mboxの勝ちです。でもPostfixの観点からは、そんなのはたいした問題 じゃないです。それよりもPOP/IMAPサーバに何を使うかとかの、 他の要因で決めたらどうでしょう。全て同じだったら、たぶん maildirを選ぶのがよいでしょう。

[Back][Top][Feedback]


8. main.cfに'include'ディレクティブみたいなのは ないですか?

ないです。複雑な設定をするたいていの管理者は、必要なファイルを cat でまとめる Makefile を作っちゃいます。 他に日常的な管理業務を持ってるなら、Makefileにそれも付けちゃいましょう。 Makefile はこんなエントリになるでしょう:

main.cf: file1 file2 file3
        cat file1 file2 file3 > main.cf.new
        mv main.cf.new main.cf

そして make main.cf と叩いて、 設定ファイルを再構築します。

[Back][Top][Feedback]


9. メールの配送確認を受け取ることはできませんか?

今のところPostfixではできません。

[Back][Top][Feedback]


10. 特定のアドレスがemailメッセージを受け取るたびに、自動的に リプライを送るようにするもっともよい方法は?

Unixのほとんど全てのバージョンには vacation プログラムが含まれていて、これが まさにその目的をかなえます。

[Back][Top][Feedback]


11. 私のメールサーバから送られるすべてのemailの最後に免責条項 (やその他の文章)を追加するには?

これはPostfixでは意図的に直接実装されてません。MTAの仕事じゃないし、 MIMEやデジタル署名を考えると、思ったほど単純じゃないのです。 MIMEメッセージには構造があって、それがとても複雑になりえます。 デジタル署名は、署名されたメッセージが改変されていないことを 署名するので、メッセージの最後にフッタを付けると、両方を壊すことに なります。短い文章をemailメッセージのヘッダに付ける人もいるけど、 多分ほとんどのユーザにはその分は見えないでしょう。クライアントを 設定して、要求された文章を加えるのが本当の解でしょう。

そうは言ったものの、文を追加するようなコンテンツ フィルタを設定することも可能です。以下はコンテンツフィルタを 使うときのPostfix設定の注意点です。フィルタはMIMEを考慮している べきです。また、あなたはデジタル署名は使えなくなることを認識して おくべきです。

[Back][Top][Feedback]


12. すべてのメッセージのコピーを取っておくには?

always_bcc パラメータにアドレスを指定して おきます。そのアドレスが全てのメッセージのコピーを受け取ります。 バージョン 2.1 (とその前のスナップショット版) 以降だと、特定の ユーザ宛のメッセージのみを保存するのに、sender_bcc_mapsrecipient_bcc_maps も使えます。

[Back][Top][Feedback]


13. ユーザのメールボックスにクオータやサイズ制限をかけるには?

ホントはPostfixの機能じゃないのですが、mbox-形式のメールボックスを 使っているのであれば、求めているものは mailbox_size_limit パラメータで得られるでしょう。 maildir形式のメールボックスを使っている場合には、このパラメータは メールボックス全体のサイズではなく、個々のメールファイルのサイズを 制限するだけ、ということに注意が必要です。

通常のオペレーティングシステムやIMAPサーバの 設定で実装される、メール格納場所で強制するメールボックスクオータが もっとも良い方法でしょう。IMAPサーバがLMTP越しにメッセージを 受け取る場合、Postfixがメッセージを受け取るまでクォータを超える 状況を検出できないので、バウンスされることになってしまいます。 クォータを超えたユーザ宛のメールを拒否したいなら、クォータを超えた ユーザをリストアップしたアクセステーブルを使う必要があるでしょう。

[Back][Top][Feedback]


14. 私のドメイン名がヘッダ中のあるアドレスについてしまうのはなぜ? 例えば、Postfixをインストールする前は以下のようなヘッダだったのに:

To: billy

それが今はこんなふうになっちゃいます:

To: billy@mail.example.com

Postfixは規定された完全装飾なヘッダを要求するので、不完全な アドレスは修正しようとするのです。 append_at_myorigin = no を指定してアドレス補完を しないようにすることもできるけど、システムの他の部分で混乱を招く ことになってしまうかもしれません。

もっともよい解決策は、ユーザが To:From: ヘッダで正しいアドレスを確実に指定することです。そしてネットワーク越しに 受け取った完全修飾アドレスがないメッセージは、reject_non_fqdn_recipient 制限をアンチspam ルールの中に入れておきましょう。

[Back][Top][Feedback]


15. 私のPostfixが特定の機能付きでビルドされたかどうかを知る方法は? パッケージからPostfixを取ってきたけど、SASLやTLSサポートが 含まれているかどうか知りたいので。

SMTPDが何をサポートしているかチェックする方法の一つは、それを 聞いてみることです。次を試してみてください:

$ telnet mail.example.com 25
Trying 192.168.100.11...
Connected to 192.168.100.11.
Escape character is '^]'.
220 scallop.seaglass.com ESMTP Postfix
EHLO localhost
250-scallop.seaglass.com
250-PIPELINING
250-SIZE 10240000
250-VRFY
250-ETRN
250-STARTTLS
250-XVERP
250 8BITMIME
quit

強調された行を入力してください。もちろん mail.example.com は自分のメールサーバの ホスト名に置き換えて。

$ postconf -m

の出力結果も参考になるかも。サポートされた検索 テーブルの形式が全て表示されます。

smtpd バイナリにコンパイル されたライブラリもチェックしてみましょう。多くのプラットホームで lddelfdump みたいなライブラリを表示するコマンドがサポートされてます。

そして最後に、Simon Mudd が postfinger というユーティリティを作っていて、 これを使うとインストールされたPostfixに関する有益な情報が たくさん得られます。

[Back][Top][Feedback]


16. Postfixを25番以外のポートでlistenさせるには?

master.cf ファイルの smtpd エントリにポートを設定します。 必要に応じて、存在する smtpd エントリを 変更しても追加してもよいです。

An entry like the following causes Postfix to listen on port 10025:

10025      inet  n     -     n     -     -     smtpd

[Back][Top][Feedback]


17. Postfixバージョン1.xxと2.xxの主な違いは何?

“RELEASE_NOTES ファイルを読んでね。それを書いていると1週間の 半分を費やしてしまうし、せっかく書いても誰も読んでくれないと 悲しいから。” Postfix の作者、Wietse Venema。

ということです。

[Back][Top][Feedback]


18. わかった。でも主に設定ファイルが心配なんです。アップグレードするときに どうすればいいの?

もちろんアップグレードの前にバックアップを取りましょう。でも、make upgrade コマンドが自動的に今ある設定ファイルを 更新してくれます。1.0 から 2.0 に行くときに、古いファイルをそのまま 使おうとしてはいけません。

アップグレードして新しいバージョンになったとき、 変更したくなりそうな互換性の調整が2つあります。一つは local_recipient_maps に適当なマップを設定するか デフォルトの設定を使うかという点と、もう一つは unknown_local_recipient_reject_code を恒久的 エラー (554) に変更するという点です。

[Back][Top][Feedback]


19. 私のシステムにはいくつかのインターフェースがあるんだけど、そのうち 一つだけにPostfixをbindするには?

Postfixで使いたいインターフェースのIPアドレスを inet_interfaces パラメータに書けばよいです。

[Back][Top][Feedback]


20. Sendmailでは4時間メッセージを配送できなかった時に警告を受け取って いました。Postfixでは受け取れないのですか?

delay_warning_time パラメータがこれを 制御してます。デフォルトでは送られないように0になってます。

[Back][Top][Feedback]


21. mailbox_transportmailbox_command の違いは何?

mailbox_transport パラメータは master.cf のサービスに対して設定されるのに対し、 mailbox_command はメールサーバファイル システムの実際のコマンド名を参照するのです。

メールボックス配送に影響するパラメータはいくつか あって、パラメータを優先度順に並べると、 mailbox_transport, mailbox_command_maps, mailbox_command, home_mailbox となります。システムにユーザが 見あたらないと、パラメータ fallback_transport と続いて luser_relay が作用するようになります。

[Back][Top][Feedback]


22. 我々の内部システムはすべてメールゲートウェイを中継します。 メールが外に出て行く前に、メッセージヘッダから内部システムの ホスト名やIPアドレスを削ったり隠したりする方法はないですか?

内部システムを示すようなヘッダ行にマッチして、そのアクションを IGNORE とするようなヘッダチェックを加えます。

/^received:.*192\.168\.144\.32/     IGNORE

[Back][Top][Feedback]


23. 存在しないメールボックスに送られたすべてのメッセージを特定の ユーザに転送するようにPostfixを設定するには?

luser_relay パラメータにアドレスを指定して、 local_recipient_maps を無効にすればよいです。

luser_relay = info
local_recipient_maps =

これをやる時は気を付けて。spamの蔓延によって、 指定されたアドレスは大量のジャンクメールを受け取ることになって しまうので。

[Back][Top][Feedback]


24. わかった。じゃあ、Postfixにまずすべてのメッセージを受け取らせて、 それから存在しないユーザ宛だとしてバウンスさせるには?

コツは単に local_recipient_maps を無効に するだけです。SMTPサーバは全てを受け取った上で、その直後に ローカル配送エージェントがユーザがいないことを見つけ、そして メッセージがバウンスされます。あまりそうすることはおすすめできないけど。 サーバがバウンス通知を送ろうとしてしまうような、大量のジャンクを 受け取ることになるし。アドレスを詐称された罪のない人に嘘のバウンス メッセージがあなたの(またはおそらく他の)メールサーバから殺到することに なってしまいます。

[Back][Top][Feedback]


25. 設定ファイルや検索テーブルを更新したときに、Postfixをリロード する必要はあるの?

更新したものの形式に依存します。

簡単な回答: Postfixが起動時にメモリに 読み込むものはリロードが必要です。そんなファイルの例としては、main.cfmaster.cf、正規表現を使った検索テーブルが あります。DB や DBM ファイルはメモリに読み込まれないので、更新しても リロードは不要です。inet_interfaces パラメータの 変更の場合、reload では不十分です。この場合は Postfix を stop してから start しないといけません。

完全な回答: ほとんどのPostfixデーモンは 寿命が短いので、デーモンが期限切れになって新しく起動されるときに、 実際には新しい設定が自動的に認識されてしまいます。でも、pickupqmgr、もしかすると trivial-rewrite みたいに長く動いているものは main.cf の変更を検知しないので、 そのデーモンが使うパラメータを変更するにはPostfixのリロードが 必要になるのです。master.cf への変更は 常にリロードが必要です。 inet_interfaces パラメータの変更の場合、reload では不十分です。この場合は Postfix を stop してから start しないといけません。

この回答を寄せてくれた Vi[ck]tor Duchovni さんに 感謝します。

[Back][Top][Feedback]


[Back][Top]


26. Postfixに恒久的なエラーコード (554)を返すように設定したはずなのに、 一時的なエラー (454) を返します。なぜそうなるの?

きっと soft_bounce = yes にしてるんでしょう。 それと、DNSに一時的な問題がある場合にもPostfixは自動的に恒久的エラーを 一時的なエラーに変更します。

[Back][Top][Feedback]


27. うちにはよく外出しているユーザが何人かいます。オープンリレーに しないで彼らが私のサーバを通してメールを送れるようにするには? 送信者のアドレスが私のドメインからになっていたらリレーを許可すると いうだけではダメなの?

絶対ダメです。スパマーはあなたのサーバを使ってメールを中継させようと するときにあなたのドメインを使うことを知ってます。ユーザが静的な IPアドレスを持ってるんだったら、それをmynetworks パラメータに加えてしまいましょう。 静的なIPアドレスを持ってないようなら、彼らが接続しているISPのSMTP サーバを使えないか確かめるのが最も簡単な選択肢です。それができない ようだったら、SMTP AUTHやpop-before-smtpの1つを検討する必要が 出てくるでしょう。

[Back][Top][Feedback]


28. 次のような制限を master.cf ファイルの smtpd制限に加える必要が出てきました:

-o smtpd_recipient_restrictions=check_recipient_access hash:/etc/postfix/recipie
nt_access

check_recipient_access と検索テーブルの 間に必要なスペースはどうすればいいの?

スペースの代わりにカンマを入れます:

...
-o smtpd_recipient_restrictions=check_recipient_access,hash:/etc/postfix/recipie
nt_access

それとも、main.cf に 必要な全ての制限を持つ変数を定義して、master.cf で使ってもよいでしょう:

#
# main.cf
#
...
other_restrictions =
      check_recipient_access hash:/etc/postfix/recipient_access
      reject_unknown_recipient_domain
      ...

#
# master.cf
#
...
-o smtpd_recipient_restrictions=$other_restrictions

[Back][Top][Feedback]


29. クライアントがsmtpdサービスに接続するとき常に長い遅延が生じて しまうようです。接続を確立してからPostfixが200バナーを送るまでに 1分もかかります。なぜこうなるのでしょう?

この遅延はあなたのサーバのDNSリゾルバに原因があることがほとんどです。 クライアントが接続するとき、Postfixは接続してきたクライアントの IPアドレスのホスト名を検索しようとします。リゾルバがちゃんと 設定されていなかったりDNSサーバの応答が遅いと遅延が起こります。 キャッシュのみのDNSサーバをPostfixサーバと同じシステムで動かすと よいでしょう。

リゾルバの設定ミスで最もよくあるのは、smtpd サービスがchrootされて動いていて、必要な設定ファイルが全て chrootの区画に揃っていないというものです。

[Back][Top][Feedback]


30. SMTPD で外からの接続を受け付けないようにして Postfix を動かすことって できるの?

できます。master.cf ファイルの smtpd 行をコメントアウトします。

#smtp      inet  n       -       n       -       -       smtpd

[Back][Top][Feedback]


エイリアス

31. エイリアスにあるリストの最初のアドレスだけがメッセージを 受け取れます。でも、それ以外は直接送られたメールは問題なく 受け取れるのですが、エイリアスの一部になるとメッセージが 届きません。

配送に外部プログラムを使ってるなら、それが同時に1アドレス以上を 扱えないのではないでしょうか? そんな例が、例えば maildrop の場合であります。Postfix が同時に 1つのメッセージだけを配送するように渡すことにするためには、 main.cftransport_destination_recipient_limit パラメータに1をセットします。 transport は配送をおこなう配送方法(transport)の名前です。 maildrop を使うなら、パラメータは次のように なります:

maildrop_destination_recipient_limit = 1

[Back][Top][Feedback]


32. このようなエイリアスで、

info:     peter,heloise

誰かがメッセージを infopeter の 両方に送ると、peter は2回メッセージを 受け取ります。Sendmailを使っていたときは同じユーザに行く同じメールを 検出して、そうはならなかったのに。Postfixで同じことができますか?

できません。Postfixのアーキテクチャでは、こういう重複を検出するのは とても負荷が高いのです。これは高レベルのセキュリティとパフォーマンスを 持つマルチコンポーネントシステムと、こういった重複を簡単に検出できる モノリシックシステムの間のトレードオフなのです。

[Back][Top][Feedback]


33. あるリストから展開されるアドレスが何かを知るためにエイリアスリストの テストをしようとしています。他のメールサーバではEXPNコマンドを 使って完全な受信者リストが得られたのに、Postfixでは動かないようです。

PostfixはEXPNをサポートしてません。Postfixのアーキテクチャと セキュリティ面での設計上、権限のないSMTPサーバはローカルエイリアスに ついて何も知らないのです。配送時に実際にエイリアスを展開するのは 権限を持つローカル配送エージェントです。メーリングリストマネージャを 使っているなら、リストに誰がいるかを知らせるコマンドがきっと あるでしょうし、そうでなければメールサーバシステムのエイリアスシステムを チェックする必要があるかもしれないですね。

[Back][Top][Feedback]


エラー・警告メッセージ

34. メッセージを受け取れないようです。このエラーの意味は?: "<test@example.com>: mail for example.com loops back to myself"

PostfixはDNSの答があなたのサーバを示しているけど、サーバが そのドメイン宛のメールを扱うように設定されていない場合に このエラーを報告します。Postfixは mydestinationrelay_domainsvirtual_mailbox_domainsvirtual_alias_domains にリストアップされた ドメイン、そして解決したIPアドレスが inet_interfacesproxy_interfaces にあるようなドメイン 宛のメールを受け取ります。そのドメインはこれらのパラメータのうちの どれかに入っていないといけません。

[Back][Top][Feedback]


35. なぜこんなメッセージがログに残っているの? そのファイルはみんな /etc にあるはずでしょ?

warning: /var/spool/postfix/etc/services/services and /etc/services/services differ
warning: /var/spool/postfix/etc/resolv.conf/resolv.conf and /etc/resolv.conf/resolv.conf differ
warning: /var/spool/postfix/etc/hosts/hosts and /etc/hosts/hosts differ
warning: /var/spool/postfix/etc/nsswitch.conf/nsswitch.conf and /etc/nsswitch.conf/nsswitch.conf differ

Postfixのコンポーネントがchrootで動いていると、そのコンポーネント から見えるファイルシステムは queue_directory (デフォルト: /var/spool/postfix) 以下の サブディレクトリに制限されてしまうのです。システムリソースの いくつかはchrootされたディレクトリにコピーしなきゃいけなくて、 しかもPostfixはシステムのものとchroot環境のものの同期が取れて いるかどうかチェックします。

[Back][Top][Feedback]


36. 知らないユーザにメールが届くと、Postfixは "User unknown in (local|virtual|relay) recipient table." というメッセージを付けて 拒否します。単にユーザが存在しないというようにすることはできない?

それは、管理者としてのあなたに問題の解決策について役に立つ 情報を提供しようという考えによるものです。単に "User unknown." とするために、

show_user_unknown_table_name = no

とすることもできます。

[Back][Top][Feedback]


37. こんなのを受け取りました:

postfix/smtp[18860]: fatal: unknown service: smtp/tcp

何が問題なの?

ほぼ間違いなく、 /var/spool/postfix/etc/services が見つからないか 読めないのでしょう。

[Back][Top][Feedback]


メールキュー

38. 必要ないって分かってるメールがキューにたまってるんだけど、 何か消す方法はない?

# postsuper -d ALL

ALL はすべて大文字であること、そしてこのコマンドを 実行してしまうとキューにある全てのメールを消してしまうことに 注意が必要です。

[Back][Top][Feedback]


39. mailqpostqueue の間に奇妙な違いがあることがわかりました。mailq コマンドはキューには何もないって言うけど、postqueue はたくさんのメッセージを報告します。 これってどういうこと?

あなたが実行した mailq は Sendmail の ものです。Postfixのインストールがどこかうまくいってません。 Postfixは代替となる mailq コマンドを インストールします。Postfixのインストールを見直す必要があります。 これはSendmailの mailq がPostfixの mailq よりもパスの前の方にある (この場合、 Sendmailのものを例えば mailq.sendmail のように名前を変えてください) か、Postfixのインストールが完全に 了していないというような、簡単な問題でしょう。

[Back][Top][Feedback]


40. メッセージが期限切れでバウンスされずにとどまっている時間って 変えられないの?

maximal_queue_lifetime パラメータが、 配送できないと見なす前にメッセージがキューにとどまるべき時間を 決めます。デフォルトは5日 (5d) です。

[Back][Top][Feedback]


41. ある時間経ったら個々のメッセージを期限切れでキューから消すように する方法ってないですか? それか、異なる配送先に対して キューの寿命を別々に持たせる方法は?

キューファイルを明示的に期限切れにするようなオプションはありません。 キューマネージャはメッセージの期限切れを、どれだけの間キューに いたかと maximal_queue_lifetime の値 (前の質問を参照) で判断します。キューにたまったメッセージには複数の 受信者がいて単一の配送先じゃないかもしれないので、配送先ごとに別々の キュータイムを持たせることもできません。

また、Postfix の最近のバージョンでは bounce_queue_lifetime パラメータができたので、 配送できない不達通知がキューにとどまる時間を短くできます。

[Back][Top][Feedback]


42. 以前設定に問題がありました。今は直っていますが、システムは古い、 間違った設定を使ったままでキューのメールを配送しようとしてしまいます。 新しい設定を使わせるには何をしなきゃいけないのでしょう?

postsuper -r コマンドで、もう一度メッセージを キューに入れてやる必要があります。

[Back][Top][Feedback]


43. キューにたまっている大量のメールが、実際のemailアドレスではなく "MAILER-DAEMON"が作ったように見えるんだけど、これはどこから来たの?

これらは、前に配送できなかったメールの元の送信者に配送できないという、 あなたのサーバから来たバウンスメッセージです。あなたのサーバが 存在しないユーザ宛のメッセージを受け取る場合に非常によく起こります。 関連する質問 を読んでください。

すでに存在しないユーザ宛のメッセージを拒否しているので あれば、あなたのユーザの誰かがウィルスに感染しているために起こって いるのかもしれません。元のメッセージがどこから来たのか確認するために ログをチェックしてください。

[Back][Top][Feedback]


ロギング

44. Postfixはどこに情報をログとして記録するのですか?

Postfixはログのメッセージをシステムの syslogd デーモンに記録します。実際のログファイルの場所を見つけるには、 システムのドキュメントをチェックしてみてください。

[Back][Top][Feedback]


45. To や From アドレスのような他の情報と一緒にメッセージのサブジェクトを Postfixにログとして記録させることはできますか?

header_checks ファイルに、Subject: ヘッダに常にマッチしてその結果が 'WARN' となるような エントリを加えると、サブジェクトをログに記録できます。

/^subject:/      WARN

[Back][Top][Feedback]


46. メールに何が起こっているのかを正確に知るための、デバッグオプションや 冗長ログを記録するオプションのようなものってある?

master.cf の特定のコンポーネントに、 1つ、またはそれ以上 -v オプションを加えて、 ログを増やしてやることができます。

smtp      inet  n     -    n    -     -     smtpd -v

特定のサイトのトランザクションに関しての追加情報も、 main.cfdebug_peer_list パラメータにサイト名を加えると 得られます。そして必要な情報を全部得るには、debug_peer_level を調節してください。

debug_peer_list = example.com
debug_peer_level = 2

[Back][Top][Feedback]


47. Fromアドレスに関するエントリが、私のログには見あたりません。 どうなっているのでしょう?

Fromアドレスはキューマネージャがログに記録します。qmgr をchrootして動かしているんだったら、 syslogソケットを /var/spool/postfix に 持たなきゃいけません。起動時にソケットを追加できる syslogd デーモンがあるプラットホームも あります。それ以外の環境だと、chrootの中で動くようにするのは ちょっとトリッキーです。システムのsyslogドキュメントを見てください。

[Back][Top][Feedback]


48. Postfixのログエントリを解析するのに便利なプログラムってない?

PostfixのホームページにあるLogfile analysis を参照。

[Back][Top][Feedback]


49. 私が使っているウィルススキャンの方法では、すべてのメッセージが Postfixに再投入されますが、それだとすべて2回ログに記録されて しまいます。Postfixがある事柄だけログに記録しないような設定ってある?

本当にPostfixのログを制限したいわけじゃないよね? Postfixは いつか必要になるかもしれない全ての情報をログに記録するんです。 その代わり、Unixには探している情報だけを取り出すための操作や フィルタリングなんかをおこなうツールがたくさんあります。 例えば、もし2回目のメッセージ投入が relay=vscan を含んでいるなら、ログ解析の 時にフィルタリングで外してしまいましょう。

$ grep -v "relay=vscan" maillog > analyze_log

[Back][Top][Feedback]


50. システム時計は正確なのに、メールログエントリは違う時刻になって しまいます。何が問題なの?

chrootで動かしてますね。TIMEZONEを決めるのにシステムが使うファイルが chrootにあることを確認してください。

[Back][Top][Feedback]


DNS問題

51. ホストが見つからないっていうエラーを受け取ったんだけど、 検索してみたら答が返ってきました。なぜPostfixは見つけられないの?

Postfix(のような全てのMTA)はメールをメール交換機(MX)に配送します。 ドメインを探してDNSをチェックしているときに、MXレコードを検索して いることを確かめてください。

[Back][Top][Feedback]


52. 私の場合、host -t MX example.com を やってみました。私は答を得られたのに、Postfixは "Host not found, try again" と文句を言うんです。

Postfixがchrootの中で動いているんでしょう。必要なファイルが全て chrootに揃っているか、確かめてください。特に resolv.conf がなかったり間違ってることが よくあります。必要なファイルを全て postfix アカウントが読めるように、パーミションの チェックも忘れずに。

[Back][Top][Feedback]


53. PostfixがMXレコードを無視してAレコードのシステムに直接配送しようと しているみたい。これって普通なの?

main.cf disable_dns_lookups = yes にしているなら、 それが正常です。また、ブラケットで指定されたtransportマップを 使っているなら、その場合Postfixはブラケット内のシステムに直接 配送してしまいます。

example.com     smtp:[mail.example.com]

[Back][Top][Feedback]


バーチャルドメイン

54. バーチャルエイリアスでプログラムにメッセージを配送する方法ってある?

直接はできません。pipe配送やシステムのローカルアドレスに配送する ように、virtual エイリアスを使ってアドレスを書き換える必要があります。

[Back][Top][Feedback]


55. postmaster というアドレスのようなグローバルな バーチャルエイリアスをつくって、私の全てのドメインの postmaster を同じアドレスに届けることってできる?

一言で言うと、できません。新しいドメインを追加するプロセスやスクリプトに 必要なエイリアスを作るステップを入れることをおすすめできるだけです。

[Back][Top][Feedback]


UBEブロック

56. 助けて! オープンリレーになってるみたい。ログにこんなメッセージが たくさん書かれてるのが見つかった:

May 20 06:38:46 scallop postfix/smtp[21383]: connect to 
mail.example.com[10.11.12.13]: Connection refused (port 25)
May 20 06:38:46 scallop postfix/smtp[21383]: 79AA4234A9: 
to=<jenny796@example.com>, relay=none, delay=55262, 
status=deferred (connect to mail.example.com[10.11.12.13]:
Connection refused)

example.comなんて 全然知らないんだけど。どうすればいいの?

落ち着いて。これはたぶん、あなたのシステムで配送できない偽装 メッセージに対して、Postfixが送ろうとしているバウンス通知です。 このログの前に、配送できない jenny796@example.com からのメッセージの エントリがログの前の方にあるはずです。たぶんオープンリレーでは ないのですが、存在しないユーザ宛のメッセージを受け取らないように システムを設定する方がよいでしょう。local_recipient_maps に関する情報を参照して ください。

[Back][Top][Feedback]


57. 助けて! オープンリレーになったかもしれない。どうやって チェックすればいいの?

ネットワークの外にシステムにアクセスできるのであれば、それを使って あなたのシステムを通して外部のアドレスに送るようなメッセージを送って みてください。外部のシステムから、emailクライアントがあなたのシステムを SMTPサーバとして使うように設定します。それからあなたのシステムで 宛先として扱わないアドレス宛にメールを送ってみます。これが 配送されれば、オープンリレーで動かしてしまっています。

[Back][Top][Feedback]


58. 助けて! 間違いなくオープンリレーになってしまった。いろんな ブラックリストに載っちゃったよ。Postfixの設定はあってるはずなのに。 なぜ私のシステムは中継してしまったの?

ファイアウォールのようなゲートウェイマシンやルータ、その他の メールシステムがインターネットとあなたのPostfixの間にある場合、 その組み合わせでメールが自由に中継されるようになってしまっているかも。 ゲートウェイシステムのIPアドレスが mynetworks パラメータに入っていて、Postfix システムへの全てのメールを通すように設定してあると、全て中継する ことを認めてしまうことになるのです。ゲートウェイシステムを mynetworks から削れば直るでしょう。

[Back][Top][Feedback]


59. エンベロープ送信者アドレスに何もないspamをたくさん受け取ったんだけど、 これってブロックできない?

リターンパスが空ということだけでメッセージをブロックしてはダメです。 空のエンベロープアドレスを受け取ることは規格で要請されます。 このテクニックはエラー通知がループするのを防ぐために使われます。 なので、それ以外の手段でspamを区別する必要があります。

[Back][Top][Feedback]


60. ある送信者アドレスをブロックするように制限しました。なぜ制限された 送信者からのメッセージは、クライアントが MAIL FROM コマンドを発行してすぐにブロックされないの?

デフォルトでは、Postfixは RCPT TO コマンドを 受け取るまではクライアントを拒否しません。そうしないと、拒否されたことを 認識しないSMTPクライアントがあって、メッセージを送り続けようとして しまい、本来より長く接続が続いてログが警告メッセージであふれて しまうことになるからです。デフォルトのもう一つの利点として、 メッセージを拒否する前に、接続してきたクライアントの情報を完全に できるのです。デフォルトの動作は smtpd_delay_reject = no とすることで変えられます。

[Back][Top][Feedback]


61. header_checksbody_checks のどのエントリがメッセージを 拒否したのか、知る方法ってないの?

そんなことないです。多くの人がユニークな目印をRHSにつけて、 ルールを識別します。簡単にナンバリングするのもよいでしょう。 例えば、

/freehotsex/    REJECT Message content rejected [182]

とすると、このルールがメッセージを拒否するのに 使われたときに、ログに "Message content rejected [182]" と書かれます。

[Back][Top][Feedback]


62. 応答しないサーバから存在しないユーザ宛のメールがたくさん来てしまい、 存在しないサーバにバウンス通知を配送しようとして、キューが常に いっぱいになっちゃいます。これを防ぐ方法ってない?

存在しないユーザ宛のメールは受け取っちゃダメです。From アドレスは たいていニセモノなので、実際には送っていない人にメッセージを バウンスしてしまいます。そういったメールはキューに受け取らず、 拒否 するように Postfix を設定しなければいけません。 状況に応じて local_recipient_mapsrelay_recipient_maps の適切な方を 設定してください。reject_unknown_sender_domain 制限を smtpd 制限の 中に含めるようにする必要もあるかも。詳細は LOCAL_RECIPIENT_README を見てね。

[Back][Top][Feedback]


63. 本体やヘッダのチェックを設定に加えて、あるサブジェクト行や 添付ファイルをブロックするような正規表現を持つファイルを 配置したけど、テストしてみたらブロックされるべきサブジェクトや 添付ファイルを持つメッセージを送ることができてしまいました。 私は何か間違ったことをしたのでしょうか?

Postfixを再起動しました? それと、正規表現が期待した動作をするか 確かめるために、postmap で正規表現を テストしてみる方がよいかも。

多くのemailクライアントで普通に表示されるものでも、 エンコードされたメッセージ (base64等) はブロックできないことに 気を付けて。メッセージが元々エンコードされてきたかどうかを知るには、 Content-Transfer-Encoding: ヘッダを探して ください。

[Back][Top][Feedback]


64. たくさんのウィルスを止めるために、本体行チェックをいくつか 設定に加えました。だいたいはうまくいくけど、時々使われてないように みえるのはなぜ?

すり抜けたメッセージはたぶんbase64か何かでエンコードされてます。 前の質問を参照。

[Back][Top][Feedback]


65. header_checksbody_checks を使って条件比較はできますか? 例えばこんな感じで:

/^to: joey/ AND /^subject: hot deals/      REJECT

あるユーザ宛だけののあるサブジェクトを ブロックするように。

Postfix のヘッダ・本体チェックは同時に1行の論理メッセージしか 考慮できないので、これはうまくいきません。簡単なチェックにしか 使えないのです。もっとしっかりしたものが欲しければ、必要な賢さを 持つコンテンツフィルタをセットアップするのがよいでしょう。

[Back][Top][Feedback]


66. header_checksbody_checks を使ってspamをブロックしているの ですが、正当なemailまで私のチェックでブロックされてしまうことが あります。ヘッダや本体をチェックしないようにするために、ある メールをホワイトリストに載せるような方法はありますか?

ありません。ヘッダや本体のチェックは全てのメッセージにかけられるので、 全てのメッセージに簡単に適用できるチェックにとどめるべきです。 もっとしっかりしたものが欲しければ、必要な賢さを持つコンテンツフィルタを セットアップするのがよいでしょう。自分の所有するユーザ宛の コンテンツフィルタを無効にしたいだけなら、"Turning Off Body and Header Checks for Internal Users" を見てください。

自分専用のコンテンツフィルタを作りたいならそうする こともできるけど、SpamAssassin や Bogofilter なんていうスパム ブロック用のツールもすでにたくさんあります。こういったツールはたいてい ホワイトリストルールを指定することもできます。Postfix Add-on Software ページの "Virus/SPAM content filters" を見てください。

こちらも参照:

[Back][Top][Feedback]


67. わかった。でもログからブロックされた文字列を含んだレポートを受け取れる ようにしたいだけなんだけど。これを受け取れるようにできないの?

チェックをすり抜けるように、レポートを(base64なんかで)エンコード したり、圧縮して添付として送ればいいんじゃない?

[Back][Top][Feedback]


68. spamをブロックするためにブラックリストの一つを使ってて、それはうまく いってます。でもうちの顧客/パートナーでリストアップされてしまって いるのがあって、うちのサーバは律儀にそこからのメッセージを拒否して しまうのです。ブラックリストを使ったままで、彼らのメッセージだけを 許可する方法ってある?

あるアドレスやドメインからのメッセージを受け取るようにする ホワイトリストを作ればよいかと。例:

#
# main.cf
#
smtpd_recipient_restrictions =
    permit_mynetworks
    reject_unauth_destination
    ...
    check_sender_access hash:/etc/postfix/whitelist
    reject_rbl_client dnsbl.njabl.org
    ...

#
# whitelist
#
@customer_domain.com	OK

ホワイトリストが reject_rbl_client の前にチェックされることを 確認してください。Eメールアドレスは簡単に詐称されることを忘れないで。 ホワイトリストに設定を加えるときは、毎回サーバをオープンリレーに してしまわないように細心の注意を払ってください。ホワイトリストが reject_unauth_destination (やその他の 拒否制限) の後になっていることを確認してください。

[Back][Top][Feedback]


69. header_checks や body_checks で作った正規表現って、どうやって テストすればいいの?

postmap コマンドを使ってやります。メッセージの 1行を表す文字列を指定します:

$ postmap -q "Content-Type:..." regexp:/etc/header_checks

または、メッセージのコンテンツを持つファイルを リダイレクトしてやると、メッセージ全体をテストします:

$ postmap -q - regexp:/etc/body_checks < msg_file

postmap を使うのと 実際にPostfixがメッセージをチェックするときで、気を付けないと いけない違いが2つあります。postmap コマンドは複数行にまたがったヘッダ行を理解しないのと、postmap はヘッダと本体の区別をしないという点です。 また、/.../i を使っている正規表現で 大文字・小文字を区別したマッチングをテストする場合、postmap には -f オプションが必要です。

[Back][Top][Feedback]


70. もし、accessマップであるドメインを

example.com     REJECT No spam accepted

のようにブロックしたとすると、host.example.com みたいなサブドメインも 一緒にブロックされることになるの?

parent_domain_matches_subdomains の設定に よります。これが "smtpd_access_maps" を含んでいると、答は yes で、 サブドメインはブロックされます。そうしたくなければ、parent_domain_matches_subdomains に "smtpd_access_maps" を入れないように設定します。

parent_domain_matches_subdomains =
      debug_peer_list,fast_flush_domains,mynetworks,
      permit_mx_backup_networks,qmqpd_authorized_clients,
      relay_domains

そうした場合でも、ピリオドで始まるエントリを 加えてやれば、特定のドメインのサブドメインをブロックできます。

example.com      REJECT No spam accepted
.example.com     REJECT No spam accepted

こうすると、parent_domain_matches_subdomains から "smtpd_access_maps" を外しても同じことができます。

[Back][Top][Feedback]


71. strict_7bit_headers = yes を設定している人は たいてい成功しているの?

このパラメータはかなり厳密になる傾向があって、たくさんのメールを 拒否してしまいます。ヘッダにゴミのような文字がたくさんある メッセージをブロックしたいだけなら、次の正規表現チェックを header_checks マップで試してみてください:

/[^[:print:]]{7}/  REJECT Your mailer is not RFC 2047 compliant

これはヘッダに少なくとも表示できない文字が7文字ある メッセージをブロックします。

[Back][Top][Feedback]


72. DNSでMXホストを2つ設定してます。1つ目のMXシステムでは完璧なスパム チェックを設定してるんだけど、プライマリサーバが使えるのに、 バックアップMXに直接たくさんのスパムが配送されちゃいます。 プライマリサーバが動いているときにはそっちに強制的にメールを 送らせる方法ってない?

スパマーに配送先を強制する方法なんてありません。セカンダリMX システムを動かしてるのなら、完全に同じUBEチェックを設定しているか 確かめないと、それがメールを通しちゃいます。それを何らかの理由で 同じ設定ができないのなら、使うのをやめるしかないです。 多くのサイトで、まさにそんな理由で単一のメール交換機が動いてます。 正規のメールだったらたいてい何日かは送り直そうとするので、 メールサーバがかなり長い時間ダウンしている時にしかメールを 失いません。

[Back][Top][Feedback]


アンチウィルス

73. ある添付ファイルを、ファイル名の拡張子に基づいてブロックすることって できるの?

はい、header_checks を使って簡単なウィルス ブロックができます。実行ファイルやその他の危険な拡張子を持つ 添付ファイルがついたメッセージを拒否するようなチェックを設定します。 こんなのからはじめたらどうでしょう (正規表現バージョン):

/^content-(type|disposition):.*name*=.*\.(exe|pif)/    REJECT We cannot accept executable attachments

そして pcre では:

/^content-(type|disposition):.*name\s*=.*\.(exe|pif)/    REJECT We cannot accept executable attachments

"exe" や "pif" の他に、あなたのユーザの環境で危険な 拡張子の分 (ヒント: Windows にはたくさんあります)だけ 追加すればよいでしょう。本当のウィルススキャンパッケージを使えば さらに幸せになれます。

[Back][Top][Feedback]