【NET技術.015】メールのプロトコル②
佐藤@IT雑貨屋です。
今回もメールのプロトコルについて続けていきいます。
◆メール受信のプロトコル(POP)
メール受信、つまりメールサーバに保存されたメールデータを取得するためのプロトコルの代表的なものに、POPとIMAPがあります。
POP(Post Office Protocol)はサーバ上にあるメールをすべてクライアントにダウンロードするプロトコルです。ここでは以下の流れでクライアントとメールサーバ間で通信を行います。
POPもクライアントサーバ間のプロトコルですが、コネクションを確立後、まずはサーバから準備が出来た事を示す「+OK」が返されます。その後、ユーザー認証を行い、メールデータの受信を開始します。
POPで使用される主なコマンドやレスポンスには、以下のものがあります。
<POPリクエストの主なコマンド>
USER:ユーザー名の送信
PASS:パスワードの送信
APOP:APOPを使った認証
LIST:メールの確認、一覧表の取得
RETR:メールのメッセージの取得
QUIT:終了
<主なPOPのレスポンス>
+OK:正常
-ERR:エラー発生
◆メール受信のプロトコル(IMAP)
IMAP(Internet Message Access Protocol)はPOPと同様に、電子メールなどのメッセージを取得するためのプロトコルです。IMAPではメールを全てダウンロードせずに、サーバ側で管理します。メールの既読管理やフォルダ管理もサーバで行うため、複数のコンピュータから同じアカウントでメールを読む場合に一元管理できるという利点があります。
ログインなどの基本的なコマンドはPOPと同様です。IMAPでは、クライアントに保管されているメールをサーバに保存する事も可能です。
◆メールで様々な書式を扱うためのプロトコル(MIME)
インターネット上でのメールでは、以前はテキストデータしか扱えませんでした。しかしMIME(Multipurpose Internet Mail Extensions)が登場したことで、画像や動画、プログラムなど様々な種類のバイナリデータを送れるようになりました。
MIMEはヘッダ部とボディ部(本文)に分かれており、ボディ部は、MIMEヘッダとボディ(データ)からなる空く数のパートで構成されています。
<MIMEの例>
Mime-Version: 1.0 (1.0)
Content-Type: multipart/mixed: boudary* Kugirl
Content-Transfer-Encoding: 7bit
--kugiru
Content-Type: text/plain: charset=iso-2022-jp
お世話になります。
--kugiru
Content-Type: image/jpeg; name="picture.jpg"
Content-Transfer-Encoding: base64
B0GD1041GaaA4YQd~(中略)~QzDFgH0014D
--kugiru
Content-Typeい続く部分では、ヘッダに続く情報がどの様な情報のデータなのかを示しています。またContent-Transfer-Encodingでは、メール本文の変換方式が示されます。バイナリデータをテキストデータに変換する際に使われる一般的な方式にはBASE64があります。