SMTPセッションとフィルタ (ヘルプ)

XMail にフィルタシステムがあるおかげで、あなたはお望みの機能を XMail に追加して他のどこにもない強力なメッセージングシステムを構築することができます。ここでは、メーラなどの SMTP クライアントが XMail に接続して電子メールを送信するときに何が行われるかということと、XMail のフィルタシステムがどの段階で実行されるかについて具体例を挙げて概略を説明します。あなたが XMail 対応のオリジナルフィルタを準備するときの参考にしてください。


ある日のSMTPセッション

以下は、ある日 cop@hunet.jp 氏が love@soopoo.jp 氏あてに電子メールを送信したとき、彼が使用しているメーラと XMail との間でやりとりされたデータとその簡易な説明です。ただし、青色はメーラが XMail へ送ったデータ、赤色が XMail からメーラへ送られたデータであることを示します。また、XMail に接続するのはメーラだけではなく、他の SMTP サーバの場合もあり、その場合も同様のセッション内容となります。

(XMail が待ち受けている IP アドレスの TCP ポートへメーラが接続)
(SMTPセッション開始)
220 hunet.jp <1238906842.1660@hunet.jp> [XMail 1.25 ESMTP Server] service ready; Sun, 5 Apr 2009 13:47:22 +0900
EHLO hunet.jp (SMTP 認証を利用することをメーラが XMail へ通知)
250-hunet.jp (対応可能な認証方法や許可コマンドなどについて XMail がメーラに通知)
250-VRFY
250-ETRN
250-8BITMIME
250-PIPELINING
250-AUTH RSA-AUTH
250-SIZE
250 STARTTLS

AUTH LOGIN (利用する認証タイプをメーラが XMail に通知)
334 VXNlcm5hbWU6 (認証のためのワンタイム文字列(チャレンジ)を XMail がメーラに通知)
Y29wOmh1bmV0Lm5lLmpw (受け取った文字列をもとに生成した文字列(レスポンス)をメーラが XMail に通知)
334 UGFzc3dvcmQ6 (パスワードを暗号化するためのワンタイム文字列を XMail がメーラに通知)
**** (暗号化した文字列をメーラが XMail に通知)
235 Authentication successful (認証に成功したことを XMail がメーラに通知)
MAIL From:<cop@hunet.jp> (送信元アドレスをメーラが XMail に通知)
250 OK (送信元アドレスを受け取ったことを XMail がメーラに通知)
RCPT To:<love@soopoo.jp> (あて先アドレスをメーラが XMail に通知)
250 OK (あて先アドレスを受け取ったことを XMail がメーラに通知)
DATA (メッセージ本体の送信を開始することをメーラが XMail に通知
354 Start mail input; end with <CRLF>.<CRLF> (メッセージ本体の送信を開始してよいことを XMail がメーラに通知)
(メーラが XMail へメッセージデータを送信開始)
(ドット1個のみの行をメーラが XMail に送ってデータ送信を終了)
250 OK <S9305E> (メッセージ本体の受け取りを完了したことを XMail がメーラに通知)
QUIT (SMTP セッションの終了をメーラが XMail に通知)
221 [XMail 1.25 ESMTP Server] service closing transmission channel (セッションが終了したことを XMail がメーラに通知)
(SMTPセッション終了)


セッション段階とXMailの動作、フィルタの起動

前掲セッションの各段階における XMail の動作内容と参照ファイル、対応する XMailCFG の管理メニューは以下の通りです。ただし、ファイルリストはアルファベット順であり、XMail による実際の参照順ではありません。

■セッションの段階■XMailの動作/参照ファイル/XMailCFGメニュー
セッション開始から
235 Authentication ...
まで
メーラ(SMTPクライアント)に対するアクセスコントロール、認証を行います。
mailusers.tab[ユーザの管理]、[リストの管理]
smtp.hnprop.tab[セキュリティ]-[SMTPホワイトリストの管理(ドメイン名ベース)]
smtp.ipmap.tab[セキュリティ]-[SMTPアクセス許可]
smtp.ipprop.tab[セキュリティ]-[SMTPホワイトリストの管理(IPベース)]
smtpauth.tab[セキュリティ]-[SMTP認証アカウントの管理]
smtpextauth.tab 対応メニューなし
spammers.tab[アンチ・スパム]-[不正アクセスホストの管理]
MAIL From: ...
250 OK まで
メーラが提示した送信者アドレスに対するアクセスコントロールを行います。
spam-address.tab [アンチ・スパム]、[スパムアドレスの管理]
RCPT To: ...
250 OK まで
メーラが提示したあて先アドレスの解析とアクセスコントロール、フィルタの起動を行います。
フィルタ [SMTP RCPT後処理] を起動
aliasdomain.tab[エイリアスの管理]-[ドメインエイリアス]
aliases.tab[エイリアスの管理]-[一般エイリアス]
commandalias.tab[エイリアスの管理]-[コマンドエイリアス]-[コマンドエイリアス]
domains.tab[ドメインの管理]
extaliases.tab[オプション]-[拡張エイリアスの管理]
mailusers.tab[ユーザの管理]、[リストの管理]
smtprelay.tab[セキュリティ]-[SMTPリレー許可]
MailRoot/cmdaliases/
内の設定ファイル
[エイリアスの管理]-[コマンドエイリアス]-[コマンドエイリアス]
MailRoot/custdomains/ 
内の設定ファイル
[エイリアスの管理]-[コマンドエイリアス]-[カスタムドメイン処理]
フィルタ [SMTP DATA前処理] を起動
DATA
250 OK <S9305E> まで
メーラからメッセージデータを受け取ります。
フィルタ [SMTP DATA後処理] を起動
QUIT
221 [XMail 1.25 ... まで
SMTPセッションが終了します。
セッション終了後 フィルタ [SMTPセッション終了後処理] を起動 - ローカルユーザあてである場合
フィルタ [SMTPセッション開始前処理] を起動 - アウトバウンドメッセージである場合


フィルタでできること、できないこと

XMail で提供される 5 種類のフィルタ実行機能を利用し、XMailCFG では各種の機能を XMail に追加しています。 詳細は「XMailにおけるフィルタ」を参照してください。

メッセージの加工やコマンドの実行、データベースシステムとの連携など、要するに工夫次第です。OS の操作も可能です。 コマンドの実行ではコンソールモードで実行できる多くのプログラムが利用できます。 もちろん、あなたが自作したものも利用してください。

XMail のフィルタシステムでは実行できないこともあります。

XMailCFG