.NET Core/.NET Framework/Mono対応のMIMEメッセージ処理ライブラリです。 .NET Standard 2.0/1.6に対応しています。

MIME形式のメッセージの読み込み、デコードが出来ます。

メールのダウンロード機能は含まれていません。 IMAP4クライアントライブラリSmdn.Net.Imap4.ClientまたはPOP3クライアントライブラリSmdn.Net.Pop3.Clientと組み合わせてご利用ください。

MIT X11ライセンスを採用しています。

ダウンロード

リリース ターゲットフレームワーク 備考
サイズ
342.5kB
sha1sum
ab005d42f26d8e4b74eac8416e4fcf117e09a008
(ソースコード)
.NET Framework 4.5/4/3.5 メンテナンス版
今後重要な更新を除いて機能追加等はしません。
Smdn.Formats.Mime (NuGet) .NET Framework 4.7.1/4.5
.NET Standard 2.0/1.6
開発版
v0.40に.NET Standard対応を加えたものに相当します。
サイズ
332.1kB
sha1sum
a2ffac63e272897aa9c5be29436373b89fd7f30e
(ソースコード)
サイズ
341.7kB
sha1sum
09244471b3a0d323e9b68d2a6be03bf89c5c8a5e
(ソースコード)
開発版(アルファリリース)
機能的には概ね安定していますが、APIが未確定です。

ビルド済みパッケージ・過去のバージョンをダウンロードしたい場合、また変更履歴についてはリリース一覧をご覧ください。

機能と特徴

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

  • 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)
  • メッセージのパース・デコード
  • 添付ファイルの読み込み・抽出
  • 分割メールの再結合
  • メッセージの組み立て・エンコード(不完全)

サンプルコード

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());
    }
  }
}
Imports System
Imports Smdn.Formats.Mime

Class Sample
  Shared Sub Main()
    ' 電子メール形式のファイルsample.emlを読み込む
    Using mail As 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())
    End Using
  End Sub
End Class

使い方・ドキュメント

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

不具合・要望・質問等

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

動作状況

以下のフレームワークで概ね問題なく動作することを確認済みです。

  • .NET Core
  • .NET Framework
  • Mono

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

対応予定

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

  • エンコード機能

参考文献