と定義します。
メールの配送は
このドキュメントではMTAとして一般的に使用されているsendmailを取り上げて話を進めて行きます。
から構成される。これらはそれぞれ以下のような役目を担っている。
SMTP(Simple Mail Transfer Protocol)以外の配送方法はsendmailの外部のプログラムを使用して、実現しています。
各メーラの定義は以下のように行います。
Mメーラの名前,\ P=配送プログラムのパス,\ F=配送に使用するフラグ,\ S=発信人アドレスの書き換えルール,\ R=受信人アドレスの書き換えルール,\ M=,\ A=配送プログラムへ与えるコマンドライン
メーラの宣言は行の先頭にMと書かれている行から始まります。 以下の物は宣言の例です。
Mlocal, P=/usr/libexec/mail.local, F=lsDFMmrn, S=10, R=20/0, A=mail -d $u Mesmtp, P=[IPC], F=mDFMuXa, S=11, R=21, A=IPC $h, E=\r\n, L=990 Muucp, P=/usr/bin/uux, F=mDFMu, S=12, R=21, M=100000, A=uux - -r -gB $h!rmail ($u)
ルールセットの宣言は
で始まります。ルールセットの終りを宣言する物はありません。 また、各ルールはS<ルールセット番号>
と記述します。R<パターン> 書き換えパターン
mail_acount<@relay_host>
のようになります。ちなみに、上記の例だと以下のようになります。
Kensaku Masuda <greg@greg.rim.or.jp> -> greg<@greg.rim.or.jp> greg@greg.rim.or.jp (Kensaku Masuda) -> greg<@greg.rim.or.jp> greg@greg.rim.or.jp:apt.fxis.fujixerox.co.jp -> greg<@greg.rim.or.jp:apt.fxis.fujixerox.co.jp>
です。
このツールが出力する、最終的な出力はトリプルと呼ばれる3つの属性の組みです(ローカルの場合は2つで十分です)。以下に例を示します。
$# smtp $@ mailhost.greg.rim.or.jp. $: greg@greg.rim.or.jp $# local $:greg3つの属性は以下のような意味があります。
1つ目の例では、SMTPを利用し、転送先はmailhost.greg.rim.or.jpで、ユーザはgreg@greg.rim.or.jpでる事を示しています。 2つ目の例では、ローカルへ配送し、ユーザはgregである事を示しています。
の2種類があります。 マクロの宣言は
マクロ名のうち、一般的にアルファベットの小文字は予約されているマクロ名だと思って下さい。以下に、予約されているマクロ名をあげます。
これらのマクロは予約されてはいますが、ユーザが自由に定義する事も出来ます。