The dot-qmail deliver program for postfix
What's this?
This is for the people those who are suffering from Postfix's
lacking facility of scripting aid, which had been given by dot-qmail
mechanism in qmail.
これまで .qmail-* とか、.qmail-*-default をばりばり使っていたのに、
管理者がMTAを Postfix に変えてしまって、
Postfix の .forward 機構では満足な振り分けができなくて
困っている人に捧ぐ。あるいは純粋にqmailの拡張アドレスを使いたい人に。
Prerequisite
You are running postfix with the parameter
`recipient_delimiter = +
' or
`recipient_delimiter = -
' in main.cf.
If the command line as below produces something, you have it.
postconf|grep '^recipient_delimiter'
上のように打ってみて何か出て来ればPostfixで拡張アドレスが
使えるようになっているはず。なっていないときは頼み込んで入れてもらおう。
管理者が自分なら /etc/postfix/main.cf
に
または、
なんてのを足し、postfixの設定をリロードしておく。
How to install
-
Copy dotqmail
to
some directory
`~/script
' for example.
-
Install zsh 4.0 or higher.
-
Modify the 1st line of dotqmail script so that it points
to installed zsh.
eg.
#!/usr/local/bin/zsh -f
↓
#!/bin/zsh -f
If you have zsh in /usr/local/bin
, you dont have
to change the first line.
-
Add the next line to your ~/.forward
A typical content of your ~/.forward
is
as follows.
~/Maildir/
|"$HOME/script/dotqmail"
dot-qmail life
そもそも分類したいメイルをひとつのアドレスに集めてしまうことが
愚かである。ご飯と味噌汁を同じ丼に入れて出されたら分けるの大変じゃろ?
procmailで振り分け,なんてのが賢いように書かれているが
procmail,すぐ分かるか? わしゃ分からん。難しすぎる。
レシピ記述に間違いがあったら,もうアウト。難しいものは間違えやすい。
ということで,最初から自分宛てのメイルを1つだけでなく,
用途ごとにたくさん作るのが賢い分類法で,とても簡単。たとえば,
アドレスがたくさん必要な状況としてこんな例を考えよう。
レポートの電子受理
きょーびレポートも電子メイルで受けたいやね。じゃ,
宛先は自分宛てにして,そうだSubjectは「第1回レポート」にさせよう。
よし。
んがー,Subjectが「第一回レポート」だったりむちゃくちゃで,
自動振り分けできん! そうだ,Postfixは拡張アドレスが使えた。
今度の2回目レポートは,宛先を
taro+report-2@example
に変えよう。
~/.forward+report-2
を作ってそこに専用maildir書けば
いいんだな。よし。
んがー、宛先間違えやがって tao+report2
じゃないっつーの。
間違えた宛先は全部 ~/.forward
が吸い込んじゃうのかよ。
これじゃ最初と変わらん。qmailだったら間違いアドレスはちゃんと
エラーにして送り返してくれるのに、Postfixじゃエラーにならんから
送った学生が間違えたことにも気付かん。タチ悪いなこれ。
※注 上記の例は recipient_delimiter = +
の場合で、recipient_delimiter = -
で設定した場合は
taro+report-2 ではなく、taro-report-2 などとなる。
そんなちみは dotqmail
スクリプトで安心。
~/.forward+report-2
ではなく、
~/.qmail-report-2
というファイルを作って
dotqmail
スクリプトでここに配送させるようにすれば、
taro+report-2
宛てに送って来たらちゃんと配送、
存在しない宛先に送って来たらエラーで返す、つまり、
qmailのときと同じ挙動をしてくれる(ただし返るエラーは違う)。
この例をまとめると、~/.forward
に、
~/.qmail
に
~/.qmail-report-2
に
./report-2/
または
| /usr/local/bin/imstore -d report-2
などと書く(後者はいきなり ~/Mail/report-2/
フォルダに
格納してくれてああ便利)完了。~/.forward+report-2
なんかは
作らなくてよいのである。
dot-qmail機構の概要
以下の説明では、ユーザの基本メイルアドレスを taro@example.com
と仮定する。
設置ファイル
dot-qmailファイルと受信アドレスの関係は以下のようになる。
.qmail | taro@example.com |
.qmail-ext | taro-ext@example.com |
.qmail-default |
他の .qmail-ext に該当しない全ての
taro-*@example.com | (デフォルト)
dot-qmailの書式
1行に1エントリで何エントリでも記述可能。
各行の先頭文字によって4種類の配送をする。
環境変数
dot-qmailファイルに | で始まるコマンド起動を書いておくと、
qmail-command(8)でセットされるのと同じ環境変数をセットした上で
そのコマンドを呼ぶ。
-ext
の部分は多段設定可能で、
たとえば .qmail-foo-bar-default
NO WARRANTY
Command execution via email has essential risk. Use with care.
無保証。
yuuji@
Fingerprint16 = FF F9 FF CC E0 FE 5C F7 19 97 28 24 EC 5D 39 BA
HIROSE Yuuji -
ASTROLOGY /
BIKE
/
EPO /
GUEST BOOK
/
YaTeX