[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[postfix-jp: 1558] Re: 必ずフィルターを通す設定。



On Sat, Oct 22, 2005 at 12:20:30AM +0900, masamune@xxxxxxxx wrote:

| >> これを実現する方法があればヒントとか教えてもらえますでしょうか。
| >> それとも標準のpostfix では無理なのでしょうか。
| >
| > 利用者が各サーバーを選ぶ基準は何でしょうか?
| > ドメインごとに別のサーバーを使うということならtransport(5)が使えて、
| > 負荷分散が目的ならMXのプライオリティーを揃えてrelayhostを利用する
| > という解法がありますね。
| 
| それぞれのサーバーごとに利用組織が分かれていて、電子メールの実際の送受信は
| 各サーバーの能力とip addressで行わせたいです。
| 各利用組織同士は直接関係がないから。
|   (専用のレンタルサーバーのようなイメージでしょうか。)

いまひとつどのような構成なのか見えてこないのですが、仮に

* 各hostは複数のdomainのMXが向いており、mail spoolも持つ

と仮定します。だとすると、XFORWARDとXCLIENTで何とかなるかもしれません
ただし、XFORWARDをサポートするのはamavisd-newくらいしかないですし、
amavisd-newはXCLIENTをサポートしません。

各host --> smtpd --> amavisd-new --> smtpd --> 各ホスト

後者のsmtpdは前者のsmtpdに接続してきたhostのIP addressを元にaction
FILTERで各hostにmessageを戻すわけです。幸い、XCLIENTとXFORWARDのコマンド
に大きく違いはないので、amavisd-newのSMTP clientにXCLIENTをサポートさせ
るのはそうむずかしくはありません。ただし、自己責任でどうぞ(テストもして
いません)。

--- amavisd-orig	Sat Oct 22 03:27:54 2005
+++ amavisd	Sat Oct 22 03:30:17 2005
@@ -4329,8 +4329,8 @@
     $remaining_time = undef;
 
     $which_section = 'fwd-xforward';
-    if ($msginfo->client_addr ne '' && $smtp_handle->supports('XFORWARD')) {
-      my($cmd) = join(' ', 'XFORWARD', map
+    if ($msginfo->client_addr ne '' && $smtp_handle->supports('XCLIENT')) {
+      my($cmd) = join(' ', 'XCLIENT', map
         { my($n,$v) = @$_;
           # may encode value as xtext/rfc3461 in future attributes:
           # char between "!" (33) and "~" (126) inclusive, except "+" and "="
@@ -4339,7 +4339,7 @@
           $v =~ s/[^\041-\176]/?/g;
           $v =~ s/[<>()\\";@]/?/g;  # other chars that are special in headers
                    # postfix/smtpd/smtpd.c NEUTER_CHARACTERS (but ':' for IPv6)
-          $v = substr($v,0,255)  if length($v) > 255;  # see XFORWARD_README
+          $v = substr($v,0,255)  if length($v) > 255;  # see XCLIENT_README
           $v eq '' ? () : ("$n=$v") }
         ( ['ADDR', $msginfo->client_addr], ['NAME',$msginfo->client_name],
           ['PROTO',$msginfo->client_proto],['HELO',$msginfo->client_helo] ));


関連するのはsmtpd_authorized_xclient_hostsと
smtpd_authorized_xforward_hostsです。

http://www.postfix.org/XFORWARD_README.html
http://www.postfix.org/XCLIENT_README.html

| フィルターの機能をそれぞれのサーバーごとにインストールすればかんたんなんです
| が

これは、そのとおりですね。

| 外のサーバーに切り出すという条件になってるので難しいです。

各hostの手前にvirus scannerを置く方法もあります。ただし、別の問題も発生
します。

-- 
Tomoyuki Sakurai - Tomi -
_______________________________________________
Postfix-jp-list mailing list
Postfix-jp-list@xxxxxxxxxxxxxxxxxxxx
http://lists.sourceforge.jp/mailman/listinfo/postfix-jp-list

Follow-Ups
[postfix-jp: 1559] Re: 必ずフィルターを通す設定。, masamune
References
[postfix-jp: 1548] 必ずフィルターを通す設定。, masamune
[postfix-jp: 1554] Re: 必ずフィルターを通す設定。, Yoshisato YANAGISAWA
[postfix-jp: 1557] Re: 必ずフィルターを通す設定。, masamune

[検索ページ] [Postfix-JP ML Home]