投げ銭

★当サイトへの投げ銭(PayPal)★

LINK


(無償)
logo
世界中で使われるISO標準オフィスソフト(MSオフィス互換)
The Document Foundation Wiki

人気の投稿(1ヶ月間)

Ad

Ad

投げ銭

★当サイトへの投げ銭(PayPal)★

2015年4月30日木曜日

【Postfix 2.6.6 x86_64】transport設定で正規表現を使う場合について【Linux CentOS 6.5 x86_64】

受信メールを他のプログラムなどに処理させるために、トランスポート設定を行った。
処理対象にする受信メールの送信先アドレスを正規表現をつかってフィルタリングした。


■設定方法

(1)トランスポート処理対象メールの送信先アドレス正規表現とその委託先をmaster.cfファイルに記述した。 

委託先として指定した、test:localhost は、後述のpipe処理用サービスである。

[root@test postfix]# vim /etc/postfix/transport
(省略)
/^test-.*\_0.*@example\.domain\.tld$  test:localhost
(省略)

ところで、別のメールサーバにSMTPで転送するには、次のように記述する。
/^test-.*\_0.*@example\.domain\.tld$  smtp:another-sever.tld:25


(2)上で記述したファイルを、main.cf ファイルに登録した。

<注意>
transportファイルの検索を高速にするためのバイナリ化処理は行わない!
正規表現を利用する場合はテキストファイルのまま使用する。
# /usr/sbin/postmap /etc/postfix/transport

[root@test postfix]# vim /etc/postfix/main.cf
(省略)
#コメントアウト#transport_maps = hash:/etc/postfix/transport
transport_maps = regexp:/etc/postfix/transport
test_destination_recipient_limit = 1
(省略)

(3) マスターファイルに、委託先についてに記述した。

argv= には、パイプ先になる標準入力対応のプログラムとその引数を記述する。
user= には、そのプログラムを実行するLinuxユーザー名を記述する。
$sender や、$mailbox などの変数をつかって情報を取得できる。 (他にもある。)

[root@test postfix]# vim /etc/postfix/master.cf
(省略)
test       unix  -       n       n       -       1       pipe
  flags= user=uucp argv=/etc/testscript.sh testarg1 ${sender} ${mailbox} testarg4
(省略)


(参考)
・How can I route some emails to a script in Postfix?
< http://serverfault.com/questions/322657/how-can-i-route-some-emails-to-a-script-in-postfix > 2015年4月30日

・[debian-users:37348] Re: postfixで正規表現ルックアップテーブル
< http://lists.debian.or.jp/debian-users/200306/msg00121.html > 2015年4月30日

投げ銭

★当サイトへの投げ銭(PayPal)★

Ad

Ad