C#で書いた.NET Framework/Mono用MIMEメッセージライブラリです。 MIME形式のメッセージの読み込み、デコードが出来ます。
現在対応している機能の一覧です。
emlファイルを読み込んでヘッダの一覧とボディの内容を表示する例。
using System;
using System.IO;
using Smdn.Formats.Mime;
public class ReadMail {
public static void Main(string[] args) {
using (var reader = new StreamReader("~/sample.eml")) {
var message = MimeMessage.Create(reader);
Dump(message);
}
}
private static void Dump(MimeMessage message)
{
DumpHeaders(message);
Console.WriteLine(message.Body);
foreach (var part in message.SubParts) {
Dump(part);
}
}
private static void DumpHeaders(MimeMessage message)
{
foreach (var header in message.Headers) {
Console.Write("{0}: ", header.Key);
foreach (var val in header.Value) {
Console.WriteLine(val);
}
}
}
}
本ライブラリを使用したサンプルアプリケーションTundereBirdもご覧ください。
以下の環境で動作することを確認済みです。
version 0.13の時点で手元にある計9,189通のメール(スパム、メーリングリスト・メールマガジンから、携帯から、添付ファイル付きなどを含む)を解析した結果、ほぼ正常に解析できています。 ただし解析した結果が「読める」かどうかまでは検証していません。 またMono 1.9ではJISからのデコードが出来ない場合があるようです。
今後対応する予定の機能です。