ユーザからメール配送要求があると、送信側SMTPが受信側SMTPとTCPコネクションを 確立する。送信側SMTPは一連のSMTPコマンドを発行し、受信側SMTPがこれに答える。 メール本文を送信できる体制にあることが確認されると送信側SMTPは受信側SMTP宛てに メール本文を送る。 受信側SMTPは受け取ったメールをファイルに格納し、そのメールをどのようにして 読むかは受信者に任される。 送信側SMTPは何らかの理由でメールが直ちに受信側SMTPに配送できない時などに メールを一旦ファイルに格納し、後に再度配送を試みる。 また、インターネットに直接接続されていないドメイン宛てのメールは中継ホスト を経由して配送される。
SMTPによるメール転送の実際
HELO | メールドメイン名の確認 |
FROM:<reverse-path>により、メール送信者を宣言。受信側SMTPは このコマンドにより、reverse-path, forward-path, mail-data のバッファをクリアする。 | |
RCPT | TO:<forward-path>によりメール受信者を宣言。 |
DATA | メール本文の送信開始 |
SEND | メールを利用者端末に送る |
SOML | SEND or MAIL |
SAML | SEND and MAIL |
RSET | Reset |
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 | 通信失敗 |
Network News を読む・書くには、近くのサーバーにアクセス。
ニュース記事はサーバー間でバケツリレー方式で配送。
Port番号119
NNTPコマンド
ARTICLE | メッセージID・番号 | 記事を取り出す |
BODY | メッセージID・番号 | 記事の本文を取り出す |
HEAD | メッセージID・番号 | 記事のヘッダを取り出す |
STAT | メッセージID・番号 | 記事の状態を取り出す |
GROUP | ニュースグループ名 | ニュースグループを指定 |
HELP | ヘルプ・メッセージを取り出す | |
IHAVE | メッセージID | サーバー間でのやりとりで、 自分が持っている記事のメッセージIDを示す。もし、その記事を 要求されたときは転送する。 |
LAST | 記事のポインタをひとつ前に移す | |
LIST | サーバーの持つニュースグループと番号のリストを要求する | |
NEWGROUPS | date time [GMT] | date time 以降に作成された ニュースグループのリストを要求 |
NEWNEWS | newsgroup date time [GMT] | date time 以降に投稿された ニュース記事のメッセージIDのリストを要求する。 |
NEXT | 記事のポインタをひとつ次に移す | |
POST | 記事を投稿する。記事には RFC850 に規定されたヘッダが必要。 | |
QUIT | 接続終了 | |
SLAVE | スレーブサーバーであることの宣言 |