1. カメラ
  2. カーオーディオ&エレクトロニクス
  3. ホームオーディオ
  4. パーソナルオーディオ
  5. テレビ
  6. スマートホーム
  >> 電子技術オンライン >  >> スマートホーム >> スマートライフ

MIME 形式のメールをデコードする方法

現在送信されている電子メールのほとんどは、MIME (Multipupose Internet Mail Extensions) 形式です。これにより、プレーン テキストおよびリッチ テキスト/HTML バージョン、インライン画像、および添付ファイルを含む電子メールを送信できます。 MIME 拡張を標準の RFC/822 形式のメッセージに追加できるため、古いメール システムとの下位互換性が実現されます。

ステップ 1

メール メッセージの内容を読み込みます。

ステップ 2

「Content-Type」ヘッダーを確認してください。コンテンツ タイプがマルチパート (つまり、「マルチパート/混合」、「マルチパート/代替」など) の場合、メッセージには解析する複数のセクションがあります。コンテンツ タイプがマルチパートの場合は、以下の手順に進みます。

ステップ 3

Content-Type ヘッダーには、MIME メッセージを生成したコードが MIME パートの境界を指定するために使用する一意の文字列を含める必要があります。例:

コンテンツ タイプ:マルチパート/混合。境界="part_c7161025_fe8a_45f4_83ef_6befcfa5d021"

この場合の境界文字列は「part_c7161025_fe8a_45f4_83ef_6befcfa5d021」です。

ステップ 4

各 MIME 部分は、空白行の 2 つのダッシュ ("--") が先行する境界文字列によって区切られます。パーツの境界を探すために、メッセージを 1 行ずつスキャンする必要があります。境界間のすべてのテキスト 最後の CR/LF を除く その MIME 部分の一部です。

重要:最後の MIME 部分は境界文字列で終わり、さらに 2 つのダッシュが続きます。

例:

--part_c7161025_fe8a_45f4_83ef_6befcfa5d021 最初の MIME 部分。

--part_c7161025_fe8a_45f4_83ef_6befcfa5d021 2 番目の MIME パート

--part_c7161025_fe8a_45f4_83ef_6befcfa5d021 最後の MIME 部分。

--part_c7161025_fe8a_45f4_83ef_6befcfa5d021--

ステップ 5

次に、各 MIME パーツを解析する必要があります。各 MIME 部分の形式は、元の RFC/822 形式のメッセージに似ています。これには一連のヘッダーが含まれ、その後に空白行が続き、その後に本文データが続きます。

ステップ 6

MIME パート自体は、独自の「Content-Type」ヘッダーと境界文字列を持つマルチパートにすることができます。コードは、子ノードに到達するまで MIME パーツを再帰的に解析する必要があります。

ステップ 7

MIME パーツは、単にバイナリの添付ファイルにすることができます。この場合、通常、転送エンコーディングとともに Filename ヘッダーが提供されます。 BASE64 は一般的なエンコーディング タイプです。この場合、MIME パート本体全体を BASE64 でデコードする必要があります。例として、添付された JPG 画像の最初の数行を次に示します:

------= NextPart_003_01C755EF.43F2628D Content-Type:画像/jpeg; name="testimage.jpg" Content-Transfer-Encoding:base64 Content-Description:testimage.jpg Content-Disposition:attachment;ファイル名="testimage.jpg"

/9j/4AAQSkZJRgABAQEAYABgAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0a HBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIy MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCAQABQQDASIA AhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQA

ステップ 8

メッセージの HTML 本文は、ContentType:Text/Html の MIME セクションにあり、ContentType:Multipart/Alternative MIME セクション内にある必要があります。

ステップ 9

メッセージの平文本文は、ContentType:Text/plain の MIME セクションにあり、ContentType:Multipart/Alternative MIME セクション内にある必要があります。

ヒント

詳細については、RFC 822 http://www.ietf.org/rfc/rfc0822.txt?number=822 および RFC 1341 http://www.ietf.org/rfc/rfc1341.txt?number=1341 を参照してください。 C# でコーディングしている場合は、優れた無料のライブラリを http://www.codeproject.com/csharp/mime_project.asp で入手できます。