Smdn.Formats.Mimeのリリースと変更履歴の一覧です。

§1 リリース一覧

以下のバージョンはすべてMIT X11ライセンスでのリリースとなります。

バージョン パッケージ
0.39 (2014-08-15) ソースコード
Smdn.Formats.Mime-0.39.tar.bz2
DLL
.NET 4.5

.NET 4

.NET 3.5
DLL
(単一アセンブリ版)
.NET 4.5

.NET 4

.NET 3.5
0.38 (2014-08-01) ソースコード
Smdn.Formats.Mime-0.38.tar.bz2
DLL
.NET 4.5

.NET 4

.NET 3.5
DLL
(単一アセンブリ版)
.NET 4.5

.NET 4

.NET 3.5
0.37 (2014-05-07) ソースコード
Smdn.Formats.Mime-0.37.tar.bz2
DLL
.NET 4.5

.NET 4

.NET 3.5
DLL
(単一アセンブリ版)
.NET 4.5

.NET 4

.NET 3.5
0.36 (2014-04-23) ソースコード
Smdn.Formats.Mime-0.36.tar.bz2
DLL
.NET 4.5

.NET 4

.NET 3.5
DLL
(単一アセンブリ版)
.NET 4.5

.NET 4

.NET 3.5
0.35 (2013-07-15) ソースコード
Smdn.Formats.Mime-0.35.tar.bz2
DLL
.NET 4.5

.NET 4

.NET 3.5

.NET 2.1
DLL
(単一アセンブリ版)
.NET 4.5

.NET 4

.NET 3.5

.NET 2.1
0.34 (2013-02-07) ソースコード
Smdn.Formats.Mime-0.34.tar.bz2
DLL
.NET 4.5

.NET 4

.NET 3.5

.NET 2.1
DLL
(単一アセンブリ版)
.NET 4.5

.NET 4

.NET 3.5

.NET 2.1
0.33 (2012-10-22) ソースコード
Smdn.Formats.Mime-0.33.tar.bz2
DLL
.NET 4.5

.NET 4

.NET 3.5

.NET 2.1
DLL
(単一アセンブリ版)
.NET 4.5

.NET 4

.NET 3.5

.NET 2.1
0.32 (2012-10-08) ソースコード
Smdn.Formats.Mime-0.32.tar.bz2
DLL
.NET 4.5

.NET 4

.NET 3.5

.NET 2.1
DLL
(単一アセンブリ版)
.NET 4.5

.NET 4

.NET 3.5

.NET 2.1
0.31 (2012-10-01) ソースコード
Smdn.Formats.Mime-0.31.tar.bz2
DLL
.NET 4.5

.NET 4

.NET 3.5

.NET 2.1
DLL
(単一アセンブリ版)
.NET 4.5

.NET 4

.NET 3.5

.NET 2.1
0.24 (2012-09-25) ソースコード
Smdn.Formats.Mime-0.24.tar.bz2
0.30 (2012-09-24) ソースコード
Smdn.Formats.Mime-0.30.tar.bz2
DLL
.NET 4.5

.NET 4

.NET 3.5

.NET 2.1
DLL
(単一アセンブリ版)
.NET 4.5

.NET 4

.NET 3.5

.NET 2.1
0.23 (2012-09-08) ソースコード
Smdn.Formats.Mime-0.23.tar.bz2
0.22 (2011-01-08) ソースコード
Smdn.Formats.Mime-0.22.tar.bz2
0.21 (2010-12-11) ソースコード
Smdn.Formats.Mime-0.21.tar.bz2
0.20 (2010-04-25) ソースコード
Smdn.Formats.Mime-0.20.tar.bz2
0.19 (2010-04-18) ソースコード
Smdn.Formats.Mime-0.19.tar.bz2
0.18 (2010-03-22) ソースコード
Smdn.Formats.Mime-0.18.tar.bz2
0.17 (2010-02-22) ソースコード
Smdn.Formats.Mime-0.17.tar.bz2
0.16 (2010-01-23) ソースコード
Smdn.Formats.Mime-0.16.tar.bz2
0.15 (2009-12-16) ソースコード
Smdn.Formats.Mime-0.15.tar.bz2
0.14 (2009-06-13) ソースコード
Smdn.Formats.Mime-0.14.tar.bz2

以下0.14より前のバージョンについては特に使用条件を定めていません。

バージョン パッケージ
0.13 (2008-04-27) TundereBirdに含まれているものを使ってください
0.12 (2008-04-07) TundereBirdに含まれているものを使ってください
0.11 (2008-03-10) TundereBirdに含まれているものを使ってください
0.10 (2008-03-06) TundereBirdに含まれているものを使ってください
バージョン パッケージ

§1.1 単一アセンブリ版

試用や配布がしやすいようにすべてのファイルを一つのアセンブリにまとめてビルドしたものです。 Smdn.Net.Imap4.ClientSmdn.Net.Pop3.Clientと組み合わせて使用する場合は、型名が衝突するため通常版を使用してください。

§1.2 ビルド設定等

コンパイラにMono mcsを使用、オプションに/debug- /optimize+ /define:TRACEを指定してビルドしています。

§2 変更履歴

§2.1 0.39 (2014-08-15)

  • 修正・改善
    • 上位ライブラリのインターフェイス変更にあわせて実装を修正
    • その他機能上の変更はなし

§2.2 0.38 (2014-08-01)

  • 機能追加
    • Mail.GetHeaderValueOf()について、ヘッダの値を取得する際にコメントを削除してどうかを指定できるオーバーロードを追加
  • 修正・改善
    • アセンブリの製品名(AssemblyProductAttribute)およびバージョン情報(AssemblyInformationalVersionAttribute)にバージョン番号と対象フレームワークを含むパッケージ名の情報を埋め込むようにした
    • DateヘッダにJSTやGMTなどのタイムゾーン名称が含まれる値が設定されている場合でもMail.Dateプロパティが正しい値を返すように修正
    • 添付ファイルの検出処理を改善

§2.3 0.37 (2014-05-07)

  • 修正・改善
    • Mail.AttachedFilesをAttachedFile[]からReadOnlyCollection<AttachedFile>に変更

§2.4 0.36 (2014-04-23)

  • 修正・改善
    • .NET Framework 2.0のサポートを廃止
    • 上位ライブラリを更新
    • その他機能上の変更はなし

§2.5 0.35 (2013-07-15)

  • 修正・改善
    • ファイルへの上書きを行う場合に以前の内容が残ったままとなる可能性があったのを修正
    • キャッシュされた長さ0の配列を使用するように修正
    • List<>およびDictionary<,>が確保する初期サイズが必要最低限となるように修正

§2.6 0.34 (2013-02-07)

  • 修正・改善
    • UUDecodingStreamのコンストラクタでleaveStreamOpenに指定した値が反映されない不具合を修正

§2.7 0.33 (2012-10-22)

  • 機能追加
    • 分割メッセージ・分割メール(message/partial)を結合するためのメソッドMimeMessage.ReassembleFragmentedMessageを追加
    • ヘッダも含めたメッセージ全体を保存するためのメソッドMimeMessage.Saveを追加
    • カプセル化されたMIMEメッセージを格納するためのプロパティMimeMessage.EncapsulatedMessageを追加
    • Content-Typeがuuencodeのメールをデコード出来るようにした (ただし、本文中にuuencodeされたファイルが複数格納されている場合は、先頭のファイルのみを取得可能)
    • MimeMessage.ToString、Mail.ToStringをオーバーライドし、ヘッダを含めたメッセージ全体を文字列で返すようにした
    • MimeHeader.ToStringをオーバーライドし、入力ストリーム中でのヘッダフィールドの内容(改行・空白文字等を維持したもの)を文字列で返すようにした
  • 修正・改善
    • Content-Typeがmessage/*のメッセージの場合、カプセル化されたMIMEメッセージをMimeMessage.EncapsulatedMessageに格納するように動作を変更
    • カプセル化されたメッセージ(message/*)から作成されたAttachedFileインスタンスのSaveメソッドを呼び出した場合、ヘッダも含めたメッセージ全体を保存するように動作を変更
    • Content-Typeのmedia-typeの大文字小文字の違いを無視していなかったのを修正
    • ヘッダの最後のパラメータが';'で終わる場合に、MimeHeader.GetParameter()が末尾に';'の付いた値を返してしまう不具合を修正
    • パーサにおける若干のパフォーマンス改善

§2.8 0.32 (2012-10-08)

  • 機能追加
    • MimeMessage.Load(string file)メソッドを使った場合は、デフォルトではメール本文の内容をメモリ上に展開せず、直接ファイルから読み込むようにした
    • MimeMessageクラスに以下のプロパティを追加
      • 自身を格納しているメッセージパートを返すParentPartプロパティ
      • 自身を格納している最上位のメッセージパートを返すRootPartプロパティ
      • ネストの深さに関わらず、入れ子になっているすべてのメッセージパートを返すAllPartsプロパティ
      • メッセージパートの通番を文字列形式で返すPartSpecifierプロパティ
    • Mailクラスに以下のメソッド・プロパティを追加
      • MimeMessage.Loadメソッドに対応するLoadメソッドのオーバーロード
      • すべての添付ファイルを指定されたディレクトリに保存するSaveAttachedFilesToDirectoryメソッド
      • すべての添付ファイルを指定されたパス・ファイル名で保存するSaveAttachedFilesAsメソッド
    • AttachedFileクラスに以下のメソッド・プロパティを追加
      • AttachedFileを添付しているMailのインスタンスを返すMailプロパティ
      • 添付ファイルをContent-Type・Content-Disposition等に設定されているファイル名で保存するSaveメソッド
      • 任意のMimeMessageからインスタンスを作成するCreateFromメソッド
    • MimeHeaderクラスに以下のメソッドを追加
      • すべてのパラメータを取得するGetAllParametersメソッド
      • すべてのパラメータを列挙するForEachParametersメソッド
  • 修正・改善
    • ';'で終わり、パラメータがないヘッダーフィールドの場合にMimeHeader.GetValueWithoutParameterが';'を含む値を返してしまう不具合を修正
    • MimeMessage.SaveContentメソッドで既存のファイルを上書きする場合、ファイルの末尾に以前のファイル内容が残ってしまう不具合を修正
    • MimeHeaderCollection内の順序が入力メッセージ中でのヘッダの出現順序と同じとするように修正
    • MimeHeaderCollection.TryGeyHeaderをTryGetHeaderに改名
    • Mail.GetHeaderValueOfメソッドで、パラメータ部分も取得するかどうかを指定できるオーバーロードを追加
    • Mail.AttachedFileプロパティについて
      • 戻り値をIEnumerable<AttachedFile>からAttachedFile[]に変更
      • 常に同じインスタンスを返すように修正
      • ネストの深さに関わらず、入れ子になっているすべての添付ファイルを返すように修正
      • 添付ファイルとして扱うメッセージパートの判定基準を修正

§2.9 0.31 (2012-10-01)

主に添付ファイル関連の操作の追加、MIMEエンコードの実装不備の修正、ヘッダの解析に関する実装の改善。

  • 機能追加
    • MimeMessage.SaveContent(), MimeMessage.CopyContentTo(), MimeMessage.ReadContent(Action<Stream>)メソッドを追加
    • MimeHeaderCollection.TryGetHeader()メソッドを追加
    • MimeMessage.Load等のメソッドで、ヘッダの値の形式が不正などの理由でデコードに失敗した場合に、代替的なデコード処理を行うためのコールバックを指定できるようにした
    • 添付ファイルを取得するためのプロパティMail.AttachedFilesを追加
    • RFC 2231の形式でエンコードもしくは分割されたヘッダパラメータを結合・デコードするようにした
    • MIMEエンコードされたヘッダパラメータをデコードするようにした
  • 修正・改善
    • Qエンコードされた文字列をデコードする際にアンダースコアを空白に置き換えるように修正
    • Qエンコードする際に空白文字・一部の記号が正しくクオートされていなかったのを修正
    • MIMEエンコードされた文字列に言語コードが含まれていてもエラーとならないように修正 (言語コードは無視)
    • ヘッダの値の形式が不正などの理由でデコードに失敗しても例外をスローせず、デコードを施していない値を保持するように修正
    • Content-TypeのMIMEタイプの値が不正な場合でも例外をスローせず、text/plainとして扱うように修正
    • Content-Dispositionの値が不明・不正な場合でも例外をスローせず、MimeMessageDisposition.Unknownとして扱うように修正
    • MimeHeader.Valueプロパティの値について、複数行に跨がるヘッダフィールドの場合でも空白・タブ・改行を含むそのままの値を返すように変更し、MimeHeader.GetValueWithoutParameter()ではそれらを単一のスペースに置換した値を返すように変更
    • Mail.AttachmentsをMail.AttachmentPartsにリネーム
    • Mail.InlineMessagesをMail.InlineMessagePartsにリネーム

§2.10 0.24 (2012-09-25)

  • 修正・改善
    • 添付ファイルを含むメール等の大きなサイズのメッセージを読み込んだ場合でも内部バッファがLarge Object Heapにアロケートされることがないように修正

§2.11 0.30 (2012-09-24)

  • 機能追加
    • メールをよりシンプルに扱うためのラッパークラスMailを追加
    • MimeMessageクラスにIDisposableを実装、内部バッファを任意のタイミングで開放できるようにするためにDisposeメソッドを追加
    • MimeMessageBuilderクラスを追加、MimeMessageクラスからメッセージの組立機能を分離、その他組立関連のクラスを名前空間Smdn.Formats.Mime.Formattingに移動
    • .NET 4.5用のcsprojファイルを追加
  • 修正・改善
    • 添付ファイルを含むメール等の大きなサイズのメッセージを読み込んだ場合でも内部バッファがLarge Object Heapにアロケートされることがないように修正
    • MimeMessage.ReadContentでStreamReader/BinaryReaderをCloseした場合でも内部バッファは閉じないようにし、例外もスローされることがないようにした
    • MimeMessageBuilder.WriteContentでStreamWriter/BinaryWriterをCloseした場合でも内部バッファは閉じないようにし、例外もスローされることがないようにした
    • パーサー・デコーダーの内部実装を簡略化
    • その他細かい修正

§2.12 0.23 (2012-09-08)

  • 修正・改善
    • MimeMessage.Loadメソッドで指定した代替エンコーディング(もしくはコールバックメソッド)を、B/Q-Encodeされたヘッダのデコードにも使用するように変更
    • デコード後にMimeHeader.Encodingプロパティ・MimeHeader.Charsetプロパティの値をセットするように変更
    • MimeEncoding.Decodeメソッドで文字コードが見つからない場合にスローする例外をFormatExceptionからEncodingNotSupportedExceptionに変更

§2.13 0.22 (2011-01-08)

  • 修正・改善
    • 上位ライブラリのインターフェイス変更にあわせて実装を修正

§2.14 0.21 (2010-12-11)

  • 機能追加
    • MimeMessage.Loadメソッドに、charsetパラメータからの文字セットの自動取得に失敗した場合に使用する代替エンコーディング(もしくはコールバックメソッド)を指定できるオーバーロードを追加
    • charsetパラメータの検索テーブルにISO-2022-JPを追加
  • 修正・改善
    • 内部バッファの境界でCRとLFが区切られると二つの改行として扱われてしまう不具合を修正 (ご指摘ありがとうございました)
    • charsetパラメータの前後の空白を無視し、文字セット名に含まれる空白・アンダーバー・ハイフンの違いは無視するように改善 (ご要望ありがとうございました)
    • charsetパラメータからの文字セットの取得に失敗した場合、NotSupportedExceptionから派生したEncodingNotSupportedExceptionをスローするように変更
    • StringComparison.Ordinal*の動作を期待していた箇所でInvariantCulture*を使用していたのを修正
    • ライブラリがスローするArgumentExceptionなどいくつかの例外メッセージをよりわかりやすい表記に統一
    • その他上位ライブラリのバグ等細かい修正

§2.15 0.20 (2010-04-25)

  • 機能追加
    • .NET Framework 2.0, 3.5, 4の各バージョン用のプロジェクトファイルを追加

§2.16 0.19 (2010-04-18)

  • 修正・改善
    • 上位ライブラリのインターフェイス変更にあわせて実装を修正

§2.17 0.18 (2010-03-22)

  • 修正・改善
    • StringComparison.Ordinal*の動作を期待していた箇所でInvariantCulture*を使用していたのを修正
    • その他内部実装の微細な変更

§2.18 0.17 (2010-02-22)

  • 機能追加
    • Content-Transfer-EncodingおよびCharsetに基づいてデコード・エンコードするStreamを取得するためのユーティリティメソッドを追加

§2.19 0.16 (2010-01-23)

  • TundereBirdバージョンアップに伴うリリース

§2.20 0.15 (2009-12-16)

  • 機能追加
    • 添付ファイル・代替メッセージの作成機能、メッセージのエンコード・フォーマット機能を追加(ただしインターフェイスは未確定)
  • 修正・改善
    • エンコーディングにutf8, shift-jisなど正式な名称とは異なる値が指定されている場合に解析に失敗する不具合を修正
    • インターフェイスを修正
  • その他
    • アセンブリ構成を変更

§2.21 0.14 (2009-06-13)

  • ライセンスをMIT X11に変更
  • 拡張子およびファイル内容からのMIMEタイプの判定処理を追加
  • Content-Transfer-Encodingヘッダの値が;で終端する場合にデコードできない不具合を修正

§2.22 0.13 (2008-04-27)

  • コメントを含む場合等にMIME-Versionヘッダの値を正しく認識できない不具合を修正
  • 改行・空白を含まずに連続するencoded-wordsを正しくデコードできない不具合を修正
  • ヘッダを含まないmultipartメッセージ等で解析に失敗する不具合を修正

§2.23 0.12 (2008-04-07)

  • 元のメッセージの改行文字を保持するように修正
  • Q-Encodeされた文字列を正しくデコードしない不具合を修正
  • Q-EncodeおよびB-Encodeされた文字列を正しく認識できない場合がある不具合を修正
  • メッセージの解析時に入力ストリームの8ビット目が損失する不具合を修正
  • Quoted-Printableのデコード処理の不具合を修正

§2.24 0.11 (2008-03-10)

  • stringからインスタンスをコンストラクトできるようにした

§2.25 0.10 (2008-03-06)

  • 初版