GrapeCity Secure Mail for .NET 4.0J > メールプロトコルの概要 > 基本的なメッセージ構造 |
ここまではメッセージ配信の過程を説明したので、次に、何が実際に送信されるのかを見ていきます。E メールメッセージは、「エンベロープ」と「コンテンツ」の2つのエンティティを持つとみなされます。エンベロープはメッセージ配信を実現するために必要なデータであり、コンテンツは受信者に配信されるべきオブジェクトです。この標準が提案された当初は、コンテンツとしてはテキストが想定されていました。当然ながら、マルチメディアの登場に伴い、ASCII 以外のファイルを送信する機能が必要になります。これは、後に MIME(Multipurpose Internet Mail Extensions)の使用によって実装されることになります。この概要トピックでは、例を挙げながら、ASCII テキストのみのメッセージ送信を規定した RFC 822 の仕様に沿ったメッセージ構造を確認します。
E メールメッセージ構造は、「メモ」の枠組みを使用するように定義されています。つまり、メッセージには指定の方法で構成されたデータを先頭に配置し、構造上の特定の決まりのないデータを後に続ける必要があります。この、メッセージにおいて厳格に定義された部分がエンベロープであり、定義が緩やかな部分がコンテンツです。
メッセージのヘッダには、メッセージのコンテンツに関するデータが含まれます。ヘッダは ASCII テキスト行の集合で、ヘッダフィールド、コロン、およびヘッダフィールド値で構成されます。ヘッダフィールドには、構造化(structured)、非構造化(unstructured)の2つの型があります。構造化ヘッダフィールドは、「From:」や「Date:」のように、必要に応じてデータを解析できるように特定の書式に従うべきフィールドです。非構造化ヘッダフィールドは、「Subject:」や「Comments:」のように、書式の決まりに従う必要がないフィールドであり、単なる文字列とみなされます。各ヘッダフィールドには、特に決められた順序はありません。しかし、いずれもメッセージコンテンツの前に配置する必要があります。
次に、一般に使用される E メールヘッダフィールドの一部を示します。
ヘッダフィールド | 説明 |
---|---|
Cc: | カーボンコピー(追加の受信者を指定する場所) |
Comments: | 一部の E メールクライアントによって使用され、送信者の詳細情報を指定する標準外ヘッダ |
Content-Description:* | メッセージコンテンツに関する、人間が読むことのできる文字列 |
Content-Id:* | 一意の MIME 識別子(「Message-ID:」と同様の機能) |
Content-Transfer-Encoding:* | 使用された MIME エンコードの種類 |
Content-Type:* | MIME 対応のメールプログラムに対し、メッセージ内のデータの種類を通知 |
Date: | メールの送信日時 |
Errors-To: | メールによって生じたエラーに関するフィールド |
From: | ユーザー定義のメール送信者名 |
Message-ID: | メッセージに割り当てられた一意の識別子 |
MIME-Version:* | 送信者の使用した MIME バージョン |
Organization: | 任意形式のヘッダ(通常は組織名) |
Priority: | メッセージの優先度を割り当て |
Received: | メッセージ履歴のログ(このフィールドは、メッセージを中継するすべてのメール転送エージェントによって追加される) |
Reply-To: | 返信先アドレス |
Return-Path: | ユーザーのコンピュータから見た最後の転送システムによって追加され、メール送信者のアドレスに関する情報を保持 |
Sender: | メッセージを送信したエージェントの認証済み識別名 |
Subject: | ユーザー定義のメールの件名 |
To: | E メールの受信者 |
* = MIME トピックで詳細に解説するヘッダ
以上のフィールドの他、RFC 822 では、ユーザー定義フィールドを作成できることを規定しています。これは、拡張フィールドまたは X ヘッダと呼ばれます。これらは、送信側クライアントによって作成され、値を設定されます。ただし、受信側クライアントが X ヘッダの処理手段を備えている場合しか使用できません。
本文は、送信者が受信者に受信してもらおうとする E メール部分そのものです。これは積荷部分に過ぎず、TCP/IP メールプロトコルにおいてはそれ以外の用途はありません。通常、本文は実際のメールテキスト、または何らかの添付データ(またはその両方)によって構成されます。
一般的に、単純なテキストメールメッセージでは本文とヘッダはいずれも7ビットデータであり、すべてのメールサーバー間で互換性があります。1行の長さは 1000 文字未満となります。
例として、基本的なテキストメールの構造を検証します。この例では、送信者は単純にメールクライアントを起動し、受信者と件名を指定し、簡単なメモを記します。
To: test@email.com This is a test message to see the message form. |
次に、このメールを送信します。送信されたメッセージは次のようになります。
Return-Path: <test@email.com> Received: from YOURCOMPUTER ([192.168.0.0]) by yourserver.com (Post.Office MTA v3.5 release 215 ID# 0- 54045U100L2S100V35) with ESMTP id com for <me@test.com>; Thu, 1 Feb 2001 16:46:38 -0500 To: test@email.com From: me@test.com Subject: email test Message-ID: <0000c93a04003b07d1@[192.168.0.0]> Date: Thu, 01 Feb 2001 16:47:39 -0500 This is a test message to see the message form. |
最初の 11 行がメールヘッダです。この例では、ユーザー定義のヘッダは「From:」と「Subject:」のみです。その他のフィールドは、メッセージ配信の過程において、メールクライアントとメールサーバーによって追加されたものです。このメッセージには MIME ヘッダが含まれていないため、コンテンツは ASCII テキストだと予測されます。これは、先のメッセージの最後で確認できるとおりです。では、メールに添付データを付けて送信するとどうなるでしょうか?ここで、MIME が使用されることになります。MIME(Multipurpose Internet Mail Extensions)は、ASCII 以外のメッセージをフォーマットする方法を指定します。