SMTPGATE (SMTPから、{SMTP,NNTP}への変換) の設定ディレクトリーを指定します。
SMTP メッセージの受け付けと、中継を、
"recipient@the-host-of-DeleGate" に対して、
バインドするためには、それぞれの recipient (受信者) に対しての
"SMTPGATE/users/recipient" に作成し、設定、ログ、カウンター、および、
スプールのファイルを保存するための設定ディレクトリーを作成します。
その後、"SMTPGATE/users/recipient/conf" 設定ファイルを作成します。
例) SMTP から SMTP へ転送
// "feedback@delegate.org" で、転送メッセージが受け付けられ、
// "delegate-en@smtpgate.etl.go.jp" に向けられます。
delegate.org# delegated -P25 SERVER=smtp
[the contents of SMTPGATE/users/feedback/conf]
INHERIT: sendmail
SERVER-HOST: mail.etl.go.jp
RECIPIENT: delegate-en@smtpgate.etl.go.jp
ACCEPT/From: !%, !MAILER_DAEMON@, !hotmail.com, ...
例) SMTP から NNTP へ転送
[the contents of SMTPGATE/users/feedback/conf]
INHERIT: postnews
SERVER-HOST: news.delegate.org
OUTPUT/Newsgroups: mail-lists.delegate-en
OUTPUT/Distribution: world
OUTPUT/Reply-To: feedback@delegate.org
OUTPUT/Subject: [DeleGate-En] ${subject:hc}
OUTPUT/Header: X-Seqno: ${seqno}
OUTPUT/Header: UNIX-From: ${unixfrom}
ACCEPT/User-Text: delegate ## ボディに 語句 "delegate" が含まれていない場合拒否
ACCEPT/Max-Bytes: 50000 ## header+body が、50kB 以上の場合拒否
ACCEPT/Min-Body-Bytes: 64 ## 64B 以下のボディの場合拒否
OPTION: isn,rni,res,reb
SMTPGATE 設定ファイルは、命令行の集まりによってなるファイルで、
それぞれは、インターネットメッセージのメッセージヘッダーのように見えます。
それぞれの行で、シャープキャラクター (#) に続く注釈は無視されます。
命令は、3つのグループに分類されます;
CONTROL , ACCEPT , OUTPUT
- CONTROL
- ゲートウェイ、対象サーバー、エンベロープ中の対象アドレスの機能を指定します。
注記: 設定は、 INHERIT 命令の、"sendmail" や、"postnews" と同様に、
他の recipient から継承できます。
- INHERIT: {sendmail | postnews | recipient}
- SERVER-HOST: host
- SERVER-PORT: portNumber
- RECIPIENT: EmailAddressForm ("sendmail" とともに使用)
- CONTROL/SENDER: EmailAddressForm (SMTP の From エンベロープ)
- CONTROL/BCC: EmailAddressForm
- CONTROL/Errors-To: EmailAddress (エラーや拒否で複製を送るアドレス)
- ARCHIVE: archiveFileNameForm
- MYAUTH: username:password (NNTP サーバーの AUTHINFO)
- OPTION: OptionList
isn -- シーケンス番号加算 (${seqno}によって参照される)
rni -- メッセージ ID なしを拒否
res -- 空件名 (Subject) を拒否
reb -- 空本文 (Body) を拒否
axo -- X-Original ヘッダーを付与
rxo -- X-Original ヘッダーを除去
gwt -- GateWay 追跡
ntr -- 追跡フィールド (Received:) を付加しない
- ACCEPT
-
指定した場合、指定したパターンに一致する
フィールドを持つメッセージだけ受け付けます。
- ACCEPT/Sender: ListOfEmailAddressPattern
- ACCEPT/Recipient: ListOfEmailAddressPattern
- ACCEPT/From: ListOfEmailAddressPattern
- ACCEPT/To: ListOfEmailAddressPattern
- ACCEPT/Max-Bytes: messageSize
- ACCEPT/Min-Body-Bytes: bodySize
- ACCEPT/Max-Exclams: theNumberOfExclamationMarks
- ACCEPT/User-Text: listOfWords (件名 または 本文内)
- REJECT/User-Text: listOfWords (件名 または 本文内)
- ACCEPT/Client-Host: srcHostList
- OUTPUT
- 入力メッセージの元のフィールドを書換え、
出力メッセージのヘッダーフィールドに書き出します。
- Newsgroups: fieldBodyForm ("postnews" とともに使用)
- Distribution: fieldBodyForm ("postnews" とともに使用)
- Reply-To: fieldBodyForm
- To: fieldBodyForm
- Subject: fieldBodyForm
- Header: fieldName: fieldBodyForm
- FILTER: filterCommand
- 置換
- 次に示すパターンが命令のボディ部分のフィールド ...Form
に現れた場合、ヘッダーの値または、入力メッセージのエンベロープで置換されます。
- ${sender} -- エンベロープ中の sender(送信者)(RCPT To 内)
- ${recipient} -- エンベロープ中の recipient (受信者)(MAIL From 内)
- ${recipient.name} -- recipient のローカル名部分
- ${recipient.mx} -- recipient のメールエクスチェンジャー(eXchanger)
- ${header.field} -- 入力メッセージのヘッダーフィールド(field)ボディ
- ${from} -- 入力メッセージの From フィールド
- ${unixfrom} -- recipient に対する、Unix-From 文字列
- ${subject} -- 入力メッセージの Subject フィールド
- ${subject:hc} -- head-cleaned Subject フィールド
- ${seqno} -- シーケンス番号
- ${seqno/10} -- シーケンス番号/10 (ARCHIVEとともに使用)
- ${seqno/100} -- シーケンス番号/100 (ARCHIVEとともに使用)
- ${date+format} -- 現在時刻を整形した文字列 (ARCHIVEとともに使用)
SMTP-DeleGateが、recipient@mailhost, のようなアドレスをともなう受信者にバインドするメッセージを受信したとき、
以下の順序の2つのディレクトリーで、recipient の設定ファイルを検索します。
- SMTPGATE/users/recipient/
- SMTPGATE/admin/recipient/
recipient の設定が見つからない場合、
以下のディレクトリー内のデフォルト設定 (存在する場合) を使用します。
他の場合、組み込みのデフォルト設定が使用されます。
デフォルトは、"/-/builtin/config/smtpgate/@default/conf" にあり、
MOUNT オプションでカスタマイズできます。
デフォルトの内容は、次のようになっており、受信者のメールエクスチェンジャーを経由して、
受信者のアドレスに入力メッセージを配送します。
CONTROL/INHERIT: sendmail
CONTROL/RECIPIENT: ${recipient}
CONTROL/SERVER-HOST: ${recipient.mx}
各 recipient のディレクトリーには、以下のファイルがあります。
- recipient/conf -- 設定ファイル
- recipient/log -- ログファイル
- recipient/count -- ${seqno} 用カウンターファイル (任意)
- recipient/spool/ -- 中継されたメッセージの記録ディレクトリー (任意)
- recipient/rejected/ -- リジェクトされたものの保管ディレクトリー (任意)
任意のものは、ファイルやディレクトリーを手動で作成することで有効にできます。
デフォルト記録ファイルのかわりに、
ユーザーはファイル名と保存単位を ARCHIVE 命令で定義できます。
例)
- ARCHIVE: spool/%05${seqno}-${date+%Y%m%d-%H%M%S}-%05${pid}
- ## spool/ がある場合、デフォルトの保存が有効
- ARCHIVE: arc-${seqno} ## シーケンス番号をつけて保存
- ARCHIVE: arc-%4${seqno/10} ## 10メッセージ毎の保存ファイル
- ARCHIVE: arc-${date+%Y-%m} ## 月毎の保存ファイル