メールとニュースの配送システム

テキストベースの情報伝達。メールは1対1であるのに対し、ニュースは多数が参加する。

SMTP: Simple Mail Transfer Protocol

RFC821
SMTPのモデル

ユーザからメール配送要求があると、送信側SMTPが受信側SMTPとTCPコネクションを 確立する。送信側SMTPは一連のSMTPコマンドを発行し、受信側SMTPがこれに答える。 メール本文を送信できる体制にあることが確認されると送信側SMTPは受信側SMTP宛てに メール本文を送る。 受信側SMTPは受け取ったメールをファイルに格納し、そのメールをどのようにして 読むかは受信者に任される。 送信側SMTPは何らかの理由でメールが直ちに受信側SMTPに配送できない時などに メールを一旦ファイルに格納し、後に再度配送を試みる。 また、インターネットに直接接続されていないドメイン宛てのメールは中継ホスト を経由して配送される。

SMTPによるメール転送の実際

コマンド
HELOメールドメイン名の確認
MAILFROM:<reverse-path>により、メール送信者を宣言。受信側SMTPは このコマンドにより、reverse-path, forward-path, mail-data のバッファをクリアする。
RCPTTO:<forward-path>によりメール受信者を宣言。
DATAメール本文の送信開始
SENDメールを利用者端末に送る
SOMLSEND or MAIL
SAMLSEND and MAIL
RSETReset
VRFYユーザIDを渡し、本名を知る
EXPN実際の受信者に展開
HELP
NOOP
QUIT終了
TURN受信と送信を交代
応答コード
211システムの状態、システム・ヘルプの答え
214ヘルプ・メッセージ
220サービス・レディ
221通信チャンネルを切断
250メール受信完了
251メール受信者はローカルドメインにいないので、転送する
354メール送信を開始せよ
421サービスできない。通信チャンネルを切断
450メールボックスが無いので受信できない
451エラー発生、中断
452ディスク領域不足。受信できない
500文法エラー
501パラメータまたは引数に文法エラー
502コマンドは実装されていない
503コマンドの順序が違う
504コマンドのパラメータが実装されていない
550メールボックスが無いので実行できない
551ユーザはローカルにいない
552ディスク領域割り当てができない。中断
553メールボックスの名前が不正
554通信失敗

NNTP: Network News Transfer Prtocol

RFC977

Network News を読む・書くには、近くのサーバーにアクセス。 ニュース記事はサーバー間でバケツリレー方式で配送。
Port番号119
NNTPコマンド
ARTICLEメッセージID・番号記事を取り出す
BODYメッセージID・番号記事の本文を取り出す
HEADメッセージID・番号記事のヘッダを取り出す
STATメッセージID・番号記事の状態を取り出す
GROUPニュースグループ名ニュースグループを指定
HELPヘルプ・メッセージを取り出す
IHAVEメッセージIDサーバー間でのやりとりで、 自分が持っている記事のメッセージIDを示す。もし、その記事を 要求されたときは転送する。
LAST記事のポインタをひとつ前に移す
LISTサーバーの持つニュースグループと番号のリストを要求する
NEWGROUPSdate time [GMT]date time 以降に作成された ニュースグループのリストを要求
NEWNEWSnewsgroup date time [GMT]date time 以降に投稿された ニュース記事のメッセージIDのリストを要求する。
NEXT記事のポインタをひとつ次に移す
POST記事を投稿する。記事には RFC850 に規定されたヘッダが必要。
QUIT接続終了
SLAVEスレーブサーバーであることの宣言