電子メールの基礎_________ |
電子メール配送のシステム |
電子メールはどのように配送されるのでしょうか。ユーザーがメールを読み書きするソフト(OutlookExpress等)をMUA(mail user agent)と呼びますが、このソフトがメールを直接配送するわけではありません。MUAはユーザーが書いたメールをMTA(mail transport agent)と呼ばれる別のソフトに渡します。実際の配送はこのMTAの仕事です。
MTAの代表がsendmailです。1982年に米国のEric Allman氏によって開発されたソフトで、現在でも改良・機能強化が続けられています。初めてTCP/IPを実装したBerkeleyUNIXと共に送り出されたこともあり、MTAの標準となりました。
sendmailは、SMTP(simple mail transfer protocol)という単純なコマンド応答型のプロトコルを使いメールのやりとりをします。従ってsendmailはインターネットメールを送受信するためのUNIX上のプログラムで、メールの送信と受信の両方に利用されています。UNIX同士の通信の場合は、それぞれの端末にメールサーバーが実装されているため、送信も受信もすべてSMTPだけで行うことができますが、Windowsなどの場合には受信専用のPOP3(Post Office Protocol)やIMAP4というプロトコルを使って、メールサーバーからメールを取り込むことになります。IMAP4とはPOP3の後継プロトコルとして登場したプロトコルであり、メールボックスをすべてメールサーバーで管理することによってモバイル環境にも対応したプロトコルです。
電子メール配送のしくみ
ところで、あなたは以下のようなメールを受け取ったことありませんか?
The original message was received at Fri, 26 May 2000 09:23:32 +0900 from vaio@vaio.vip.co.jp [210.162.185.148] ----- The following addresses had permanent fatal errors ----- <vaio@vaio.vip.c.jp> ←vaio.vip.co.jpのところを、vaio.vip.c.jpとタイプミスしている。 ----- Transcript of session follows ----- 550 <vaio@vaio.vip.c.jp>... Host unknown (Name server: vaio.vip.c.jp.: host not found) |
これは宛名を間違って入力して送信したため宛先不明で返ってきたことを意味します。一番最後にある「550」という3桁の数字が、SMTP応答コードというものです。
SMTPプロトコルでは、コマンドを受け付ける場合を含め、応答には必ず3桁の数字からなる応答コードを行の先頭に付けます。この応答コードにより、それぞれの状態を把握することができます。
代表的なSMTP応答コードには、
220 | <domain>Service ready | <指定されたドメイン>に対して、サービスを開始する。 |
221 | <domain>Service closing transmission channel | <指定されたドメイン>のサービスを終了し、接続を遮断する。 |
250 | Requested mail action okay, completed | メールサーバーへのコマンド受付OK。 |
251 | User not local; will forward to <forward-path> | 受信者が存在しないので<forward-path>に転送する。 |
354 | Start mail input; end with <CRLF>.<CRLF> | 本文の開始;.だけの行で本文終了。 |
421 | <domain> Service not available,closing transmission channel | サービスは利用不能。接続を閉じる。 |
450 | Requested mail action not taken: mailbox unavailable | メールボックスが利用できないため、要求された処理は実行不能。 |
451 | Requested action aborted: local error in processing | 処理中にエラーが発生。要求された処理は失敗。 |
452 | Requested action not taken: insufficient system storage | 記憶装置の空き領域が不十分なため、要求された処理は実行不能。 |
500 | Syntax error, command unrecognized | 文法に間違いがあるため、コマンドが理解できない。 |
501 | Syntax error in parameters or arguments | 引数の文法に間違いがある。 |
502 | Command not implemented | そのコマンドは実装されていない。 |
503 | Bad sequence of commands | コマンドの発行順序が間違っている。 |
504 | Command parameter not implemented | 使っているコマンドのパラメータは実装されていない。 |
550 | Requested action not taken: mailbox unavailable | メールボックスが利用できないため、要求された処理は実行不能。 |
551 | User not local; please try <forward-path> | 受信者が存在しない。<forward-path>に送信せよ。 |
552 | Requested mail action aborted: exceeded storage allocation | ディスク不足のため、要求された処理は実行不能。 |
553 | Requested action not taken: mailbox name not allowed | メールボックスの名前が不適切なため、要求された処理は実行不能。 |
554 | Transaction failed | トランザクション処理の失敗。 |
等があります。
次に、メールクライアントからメールを送信するときの手順を、telnetを使ったメール送信手順で説明しましょう。
・telnet 遠隔操作端末ソフトウエア。つまり、本来は遠隔地にあるパソコンやワークステーションの保守のためのソフト。Windowsでは「スタート」−「ファイル名を指定して実行」に「telnet」と入力すると起動することができます。ポート番号は23番。 |
使用方法は接続ダイアログボックスの中のホスト名に、接続ホスト名、あるいはIPアドレスを入力し、ポート番号に25(SMTPの標準ポート番号)と入力します。
SMTPで使われる代表的なtelnetコマンドとしては、下記のコマンドがあります。
telnetを利用した送信例(黄文字が入力したコマンド)
>telnet smtp.mail.or.jp 25 |
尚、telnetについての詳しい利用方法について知りたい方は、専門書等が書籍店に多数ありますので、そちらを参照してください。
CopyRight (C) 2000-2013 by T.Shiraishi All right reserved 無断転載禁止/リンクフリー |