C#で書いた.NET Framework/Mono用MIMEメッセージライブラリです。 MIME形式のメッセージの読み込み、デコードが出来ます。

§1 ダウンロード

本ライブラリはMIT X11ライセンスでのリリースとなります。

最新版 (ソースコード)
Smdn.Formats.Mime-0.39.tar.bz2
開発版
http://svn.smdn.jp/anonsvn/libs/Smdn/trunk/よりチェックアウトできます
ビルド済みパッケージ・過去のバージョン
リリース一覧をご覧ください

§2 機能

現在対応している主な機能の一覧です。

  • Content-Type
    • multipart/*, message/partialなど
  • Content-Disposition
  • Content-Transfer-Encoding
    • base64, quoted-printable, 7bit, 8bit, binary, uuencode
  • MIME Encoding
    • B-Encoding(base64), Q-Encoding(quoted-printable)
  • メッセージのパース・デコード
  • 添付ファイルの読み込み・抽出
  • 分割メールの再結合
  • メッセージの組み立て・エンコード(不完全)

§3 サンプル

emlファイルを読み込んで件名・差出人・日付と本文を表示する例。

using System;
using Smdn.Formats.Mime;

class Sample {
  static void Main(string[] args) {
    // 電子メール形式のファイルsample.emlを読み込む
    using (Mail mail = Mail.Load("sample.eml")) {
      // 各ヘッダのデコード済みの値を表示
      Console.WriteLine("From: {0}", mail.From);
      Console.WriteLine("Date: {0}", mail.Date);
      Console.WriteLine("Subject: {0}", mail.Subject);
      Console.WriteLine();

      // メールの本文を文字列として取得して表示
      Console.WriteLine(mail.ReadContentAsText());
    }
  }
}

詳細・その他のサンプルコードはドキュメント・サンプルをご覧ください。 また、本ライブラリを使用したサンプルアプリケーションSimpleMailer, MailReassemblerもあわせてご覧ください。

§4 不具合・要望・質問等

不具合の報告、ライブラリに対する要望や提案、使い方の質問などは掲示板へどうぞ。

§5 動作状況

以下の環境で動作することを確認済みです。

  • .NET Framework 4.5
  • .NET Framework 4
  • .NET Framework 3.5 SP 1
  • Mono 3.4.0
  • Mono 3.0.12
  • Mono 2.11.3
  • Mono 2.10.8
  • Mono 2.8.2

version 0.13の時点では、手元にある計9,189通のメール(スパム、メーリングリスト・メールマガジンから、携帯から、添付ファイル付きなどを含む)を解析した結果、ほぼ正常に解析できています。 ただし解析した結果が「読める」かどうかまでは検証していません。 またMono 1.9ではJISからのデコードが出来ない場合があるようです。

§6 対応予定

今後対応する予定の機能です。

  • エンコード機能

§7 参考文献

asin:4873110289