
Ubuntu日本語フォーラム

ログインしていません。
すみません、Postfixのフォーラムを探したのですがめぼしいものが見つからなくて、このフォーラムに質問させていただきました。
「題名」に記載した件ですが、その様な目的でネット検索して見つかるのは、
「/etc/postfix/aliases.reg に
/^[a-z]+(@localhost.localdomain)?$/ "| /bin/sh /tmp/test.sh"
と記述すれば、任意のメールを受信した際に test.sh を実行できる」と言った情報までです。
この方法ではtest.shでメールを処理は出来ますが、本来受信するはずだったユーザのメール
ボックスにはメールが届きません。
通常のaliases であれば、
hoge: "\hoge, | /bin/sh /tmp/test.sh" の様な記述で本来の受信者にも届きますが、
上記aliases.regの例では正規表現を使うため、「\本来の受信者,」の記述が出来ません。
試しに
/^[a-z]+(@localhost.localdomain)?$/ "\&, | /bin/sh /tmp/test.sh"
等もやってみましたが、エラーになるだけでした。
「メールを該当ユーザに配信しつつ処理を行う」が実現できればaliases.regに拘りませんが、
どなたか良い方法ご存知の方はお教え願います。
オフライン
何を参考にされたか分からないため、的確な回答はできません。
aliases.reg ファイルは Postfix の設定に使用するキーワードに含まれないため、何らかのキーワードのパラメーターで指定されているファイル名だと思います。
質問の内容からすると、たぶん alias_maps のパラメーターとして regexp:/etc/postfix/aliases.reg または pcre:/etc/postfix/aliases.reg として指定されているのだろうと推測します。
であれば、後方参照を使って以下のようにすれば良さそうに思えます。※未検証です。
/^([a-z]+)(@localhost.localdomain)?$/ "\${1}$[2}, | /bin/sh /tmp/test.sh"
:参考:
http://www.postfix-jp.info/trans-2.1/jh … ble.5.html (日本語だけどバージョンが古い)
Postfix manual - regexp_table(5) (英文)
Postfix manual - pcre_table(5)] (日本語だけどバージョンが古い)
Postfix manual - pcre_table(5) (英文)
#なお、本来は Postfix のフォーラムなり ML に質問すべき内容です。
オフライン
色々割愛し過ぎてすみません、でもくみ取っていただいた通りの意図でした。
で、教えていただいた設定を試してみたところ、メールが残る様にはなりましたが後ろのスクリプトを動かせませんでした。
教えていただいた「:参考:」を研究してみます。結果はまた報告します。
どうも有難うございました。
オフライン
今回の質問の意図は、
「AD認証によるpostfixのユーザにquotaを設定したい」と言うものでした。postfixにもquota機能はありますが、Mailbox形式の保存方法でしか上手く設定出来なかったので標準のディスクquotaを使うことにしました。ただ、AD認証なのでpostfixサーバには最初は各ユーザのホームディレクトリがありません。postfixもdovecotも賢くて最初にメールを受信したり、最初にimapアクセスを受けたりした時点で初めて$HOME/Maildir/{new,cur,tmp}を作成してくれます。dovecotはどうやらPAMの機能でこれを実現しているのではないかと思いますが、postfixは独自にやっている様に思えます。
それでメール受信時に「未だそのユーザでquota設定して無ければquota設定する」スクリプトを作ろうと思い、本フォーラムに質問させていただいた次第です。
ryさんにアドバイスいただきましたが、カレントなユーザのMaildirに受け取ることが出来ると、コマンドの実行がエラーになってしまい、結局上手く実行できませんでした。
そんなとき、たまたまネット検索でincrondの事を知り(知らなかったので)、$HOMEが作成されたことを検知してedquotaを実行する様に設定できました。今回はこれで解決としたいと思います。
ryさん、場違いでなおかつ情報不足の質問にも関わらず丁寧なご返信を有難うございました。
オフライン