付録H.2 Sendmailの定義例
- ここでは,「smtpgw.hitachi.co.jp」というドメイン名にメールを受信した時にmhs_mailerに転送する場合を例にして説明しています。
- <この項の構成>
- (1) 受信メールのアドレスをmhs_mailerが認識できるようにする定義
- (2) mhs_mailerを起動するための条件の定義
- (3) メーラの定義
- (4) E-mailアドレスを書き換えるためのルールセットの定義
(1) 受信メールのアドレスをmhs_mailerが認識できるようにする定義
OperatorChars=.:%@!^[]+
- OperatorCharsは,アドレス中の特殊文字を定義するオプションです。この記述では,「OperatorChars=」に続く各文字をアドレス要素(トークン)を区切る文字として認識するように定義しています。したがって,O/R形式のアドレスの'/'及び'='は区切り記号とはみなされなくなります。
(2) mhs_mailerを起動するための条件の定義
- SendmailのCXマクロにmhs_mailerを起動するドメイン名定義を追加します。「smtpgw.hitachi.co.jp」というドメイン名宛てにメールを受信した時にmhs_mailerを起動する場合,次のCXマクロを設定します。
CX smtpgw.hitachi.co.jp
- また,上記のCXマクロで設定したドメイン名宛てのメールを受信した場合に,「smtpgw」というメーラに転送することをルールセット0に設定します。
R$+<@$=X> $#smtpgw $@$j $:$1<@$2>
R$+<@$=X.> $#smtpgw $@$j $:$1<@$2>
(3) メーラの定義
- ここでは,(2)で定義された「smtpgw」というメーラでメールを受信する場合に,起動するプログラムとしてmhs_mailerを定義します。また,mhs_mailerを起動するためのファイルパス名の指定や,起動時に指定する引数などを設定します。
Msmtpgw, P=/smtpbin/mhs_mailer, F=DxhFmMSu,
S=28/28, R=28/28, A=mhs_mailer $u
- コンマで区切られた部分がそれぞれ定義項目になります。各項目の定義は次のようになります。
- Msmtpgw
- Mの次にメーラ名称を指定します。(2)の設定で指定するメーラ名と一致させる必要があります。
- P=/smtpbin/mhs_mailer
- 起動するプログラムmhs_mailerの絶対パス名を指定します。
- このパス名には,インストール先のディレクトリ名を含めて絶対パスを指定します。
- F=DxhFmMSu
- mhs_mailerの処理を定義したフラグ
- F,M,Sは必ず指定してください。Mail - SMTPでエンベロープ送信者を取得する為,nは指定しないでください。Version 6 06-50以前のMail - SMTPを使用していた場合,nを削除してください。それ以外のフラグは,ユーザの運用形式に応じて指定してください。
- Xを指定した場合は,インターネットから受信したメールで「.」だけの行が「..」に変換されてしまいます。「..」に変換されるのを防ぐには,Xフラグを削除してください。送信者がquoted-printable形式のデータを送付している場合,添付ファイルが正常にデコードできない場合があります。
- 9を指定した場合は,インターネットから受信したシングルパートのMIMEメールが8bitメールに変換されてしまう為,指定しないでください。
- S=28/28,R=28/28
- 送信者および受信者アドレスの書き換えルールセットの番号を指定します。ここでは使用するルールセットとしてルールセット28を適用することを指定しています。ルールセット(28)は「付録H.2(4) E-mailアドレスを書き換えるためのルールセットの定義」で定義します。
- A=mhs_mailer $u
- メーラの起動時に必要な引数を定義しています。$uは受信者のアドレスを示すマクロです。
(4) E-mailアドレスを書き換えるためのルールセットの定義
- ここでは,(3)で定義されたルールセット28(S28)のアドレス変換定義を追加します。(3)の設定で指定するルールセット番号と一致させる必要があります。
S28
R$- $@$1<@$j>
R$+<@$+.> $1<@$2>
- このルールセットによって,E-mailアドレスにドメインパートを含むように書き換えます。また,E-mailアドレスのドメインパートの終わりに付加されているドットを削除します。