2007.11.01 (0.6.1) 正式版
  blancoMailCore初の正式版としてリリースします。
  (test) テストコードを改善 (Subjectの連番を前のほうに移動)
  (リソースバンドル) RECEIVE_FILTER_BY_SUBJECT の説明にプロパティファイル上での記述例を追加しました。
    →JavaDoc部分およびプロパティファイルのコメントが影響範囲。ソースコードは変更せず。

2007.11.01 (0.6.0) RC6
  RC6

2007.11.01 (0.4.9) RC5
  (lib) ビルド環境について、JavaMail 1.4 -> 1.4.1へと依存を変更。
        (クラスパスなどについては変更無し。)
  (削除) testresult.txt を削除。xlsの試験項目表側を正とします。
  (test) JUnitテストコードを少しだけ改善。
  (test)ケータイ文字化け試験のためのテストコードを追加。

2007.11.01 (0.4.8) RC4
  blancoLog: 0.0.3がまったく動作しないレベルのバグを持っていた。これを修正。
  JavaMail 1.4.1対応。(readme.txtのみ更新)
  Sender: privateメソッドの入力チェックを強化しました。
  Sender: FROMのADDRESSフィールドがnullである場合の例外を処理を実装。

2007.10.31 (0.4.7) RC3
  ・blancoLog最新版を取り込み。

2007.10.23 (0.4.6) RC2
  ・セッションログ書込処理の際の例外処理を追加。
  ・メッセージ定義(BlancoMailCoreMessageResourceBundle.xls)上のTOやCCが To や Ccのように
    大文字小文字混じりになっていることが判明。これを修正。
  ・その他、メッセージ定義(BlancoMailCoreMessageResourceBundle.xls)の文言を修正。

2007.10.16 (0.4.5) 出荷候補版
  readme.txt の記述内容を改善。

2007.09.30 (0.4.4) α4版
  ・TestStubの内容を増強
    ヘッダーリストをログ出力に追加。
    SentDateをログ出力に追加。
    添付ファイルのMimeTypeをログ出力に追加。

2007.09.29 (0.4.3) α3版
  ・(移動)BlancoMailSettingFactory.java
    Factoryクラスは サブパッケージではなくルートパッケージに配置するよう変更。
  TODO リリース時に、ワードドキュメントにパッケージ移動を反映させること。
  ・BlancoMailMessageクラスの説明文を強化。
  ・メール送信と受信で、コーディングの仕方がﾋﾞﾐｮｳにずれている箇所を修正。
    → String sessionLogDirectory = ""; これを = null; に変更。
  ・ymotoさんからの指摘事項 (BlancoMailSettingフィールド名) について、これを反映。
  ・Message-IDを上書きするかどうかのスイッチについて、これの外部化しました。
       具体的には、"mail.from" の箇所のコーディングを if で分岐。
  ・TestStub の内容整備。
    個別に項目をテキスト出力するように調整。
    ※なお、TestStub の testパッケージへの移動を考えたが、現状 TestStubは 非public 移動は不適と判断。
  【次期バージョン構想】
  TODO Folderのclose(true)のところについて、これを実行するかどうかをリソースバンドル上の外部フラグ化すること。
  TODO PrintStreamフォーククラスの作成。
       セッションログ出力をSystem.outにフォーク出力するためのオプションの作成。
       ただし このオプションの作成は セキュリティ上のリスクを伴うことが予想されます。
       次期バージョン時に よく検討すること。
  TODO リソースバンドル化候補。以下のDescription部分。
       "Mail message body"
       ただし、そもそも Description に格納された内容の効能がわからないので、次期バージョンまで保留。

2007.09.27 (0.4.2) α2版
  ・Message-ID命名方法を一部調整
    JavaMail 1.4のデフォルト挙動は不都合と考えています。
    →常に mail.from に Fromアドレスを設定し、Message-ID の一部にFromアドレスが設定されるようにします。
  TODO 試験観点：B, Qエンコードをどう考えるのか？
       Qエンコードは PostPetがダメという話を聞いたことがあります。
       ただし JavaMail 1.4では 基本的に Bエンコードの模様です。
       JavaMail 1.4では ABCあいう のようなときに Bエンコーディングされていました。

2007.09.27 (0.4.1)
  ・メール送信時の Message-ID 命名方法の改善
    JavaMail 1.4のデフォルトの挙動では不都合があると考え、以下のような仕様としました。
     (1)Message-IDの一部に、SEND_HOSTを利用するように仕様変更。
        →具体的には mail.host に SEND_HOSTの値を設定する。
     (2)Message-IDの一部に SEND_USER_NAMEを利用するように仕様変更。
        →具体的には SEND_USER_NAME が指定されていたら mail.from に SEND_USER_NAMEの値を設定する。
     ※逆に言うと、適切な Message-ID付与のために、SEND_HOST および SEND_USER_NAME を設定することが望まれます。
  ・readme.txtにワードドキュメントおよびホームページにリンクを記載。
  ・統計情報がnullならメソッドのエントリポイントにてインスタンス作成するように仕様変更。
    これにより、ソースコード上のnullチェックが不要になる。
  ・.classpathのjarファイル並び順を調整。
  ・BlancoMailSetting: SEND_LOCAL_HOST フィールドを追加しました。
    指定された値は mail.smtp.localhost に利用され、SMTPの EHLO コマンド送出時に利用されます。
    →この値は Message-IDには利用しません。
  ・BlancoMailSettingバリューオブジェクトの説明欄を見直しました。
  ・BlancoMail* のJavaDoc対応部分の記載を改善。
  TODO 更に踏み込んで、ワードドキュメントの同梱も検討すること。
  TODO BlancoMailSettingに FromアドレスおよびFrom表示名を登録することができる機能があれば便利である可能性がある。
       ただし、一方で Fromアドレスを不用意な設定値のまま送信してしまうリスクが増えるとも考えられる。
       このため、現時点では、この仕様については保留しておくこととする。
       →危ないので、これは保留し続けたほうが良いかも…。

2007.09.26 (0.4.0) α版
  ・readme.txtファイルの内容を調整
  ・SMTP認証が有効である場合にのみユーザ名・パスワードの設定状況をチェックするよう変更。
  ・SMTP認証を行わない場合には、ユーザ名・パスワードのチェックを無効化。
  TODO HTMLメール受信の試験実施。
  TODO Notesメール受信の試験実施。

2007.09.26 (0.3.3)
  今度こそ、これをα版としたい…
  ・各種バリューオブジェクト定義書の名称について、これを大文字で統一しました。
  ・FactoryクラスのgetInstanceメソッドのJavaDoc内サンプルを調整。
  ・統計情報の受信のスキップ分のカウントを別計上するよう変更。
    スキップの内部名称を変更。

2007.09.26 (0.3.2)
  【ひととおりの製造工程が完了したものと判断】
  ・添付ファイル名を必ず指定する必要があるように仕様変更。(BlancoMailMessageAttachment.xls)
  ・Subjectについて必ず指定する必要があるように仕様変更。(BlancoMailMessage.xls)
  ・送信、受信用のファクトリクラスを導入。
  ・送信時に、添付ファイルのtoStringメソッド (objAttachment.toString())は呼び出さないように変更。
    なぜなら、大きな添付ファイル付きのメール送信時に例外が発生した際に、エラーメッセージ生成時のメモリおよびCPUコストが大きいためです。
  ・タイムアウトの試験について一部をJUnit化。ただし環境依存の側面があり、単純にJUnit実行できません。
  ・添付ファイルのデフォルト最大サイズを少し減らして1MB程度に変更する。
  ・統計情報をあつめる機能およびバリューオブジェクトを追加。
  ・受信時のメールサイズの算出について JavaMailは LISTコマンドの応答結果のサイズを参考にしていることが確認できた。

  ※TODOの整理
  【試験】
  TODO αテスト
       ・機能性チェック
       ・APIの使い勝手チェック
       βテスト
       ・ケータイキャリアごとの挙動の違い
       ・メールサーバの種類＋クライアント(ケータイ機種)の種類
       ・7bitモードをOFFにした状態での動作検証。
  TODO 試験計画書の作成(WORDドキュメント予定)
  TODO 試験観点に JavaVMのバージョンについても言及。
  TODO さまざまなケータイキャリア上での文字化けテストの実施。
  【他プロジェクト】
  TODO BlancoLogBinaryLoggerの排他方法の検討。
  TODO 送信失敗情報の解析により、存在するアドレスかどうかの判定機能などを検討。
  TODO 空メールによる入会処理について、そのままでは迷惑メールの踏み台になる恐れがあります。
  【将来構想】
  TODO 機種依存文字のチェック機能。これは共通ライブラリ化が妥当と想定しています。
  TODO (receive) Fromアドレスによるメールマッチング仕様の検討を実施すること。
       →まずは Subjectマッチングの使い勝手を良く観察してから。
  TODO 指定のサイズを超えるメールなどblancoMailCoreが処理できないメールを一斉に削除する機能は未実装です。
       メソッドとしては delete処理できないメール メソッドのようなものとなります。
       少なくとも 既存 receiveメソッドとは別の実装であるべきです。
       しかし これを実装する前に、まず このAPIの使われ方を考慮した仕様策定が必要です。
       サイズオーバのメールややSubject異なりのようなメールは、機械的には処理できず、人間がハンドリングする可能性があるからです。
  TODO 検討(優先度=低): 添付ファイルのバイナリデータのmime化後のものについて空行は必要か？
  TODO blancoMailRpcの検討。(仕様検討として)
  TODO blancoMailQueue (あるいは blancoMailPump) の検討。(仕様検討として)
  TODO メールをSQLで操作するJDBCドライバ実装の検討。(仕様検討として)
  TODO blancoMailSubversion: メールによるファイルのバージョン管理(仕様検討として)
       誰がリソースを取り出したかのリストを戻す機能。コミットもメールで実現。
  TODO blancoMailWebService: ウェブサービスによるメール送受信。(仕様検討として)

2007.09.26 (0.3.1)
  ・BlancoMailSender, BlancoMailReceiver について getInstanceでインスタンス取得するよう変更。
  ・BlancoMailSenderSample.java: バグ: attachment.setFileName("aaa.txt"); が抜けているのを修正。

2007.09.25 (0.3.0)
  ・テストモードを実装。かなり単純な仕様によって実装しました。
    →テストモードでは 現状 toStringをログファイルに書き出しているだけです。巨大な添付ファイルの際に、この仕様では不都合があることが既にわかっています。
  ・テストモード用のディレクトリを用意。ただし、受信時ディレクトリは名称を予約しただけで対応する実装は無い。
  ・ログディレクトリの存在チェック機能を強化。無ければ作成。作成不可ならエラー処理。存在してもディレクトリではなくファイルであればエラー。
  ・一通りの JUnitコードを実装完了。
    MBMCS301-MBMCS304 は試験実施できていません。
    MBMCR301-MBMCR308 は試験実施できていません。
    MBMCS901, MBMCR901 についてはコンソール出力を確認。
  TODO blancoResourceBundleが自動生成するステップ数が 少し多すぎる。
       →内容を精査したが、現時点では これはやむをえないものと判断します。

2007.09.24 (0.2.9)
  ・メッセージ定義書を中心に考えてリファクタリングを実施。

2007.09.24 (0.2.8)
  ・メッセージ: ソースコード中のメッセージ文字列を外だし作業を実施。

2007.09.22 (0.2.7)
  ・APOPをデフォルトでONするように仕様変更。
  ・checkSettingという BlancoMailSettingバリューオブジェクトの妥当性検証メソッドを作成。
  ・Subjectがnullや "" の場合には例外扱いになるよう仕様変更。
  ・mainからはじまるサンプルを test/srcフォルダに作成

2007.09.20 (0.2.6)
  ・BlancoMailSettingFactory.xls 対応を追加。(バリューオブジェクトとリソースバインディングの自動バインド)
  ・メール受信時のFolderのcloseが成功してはじめて正常終了扱いにするように変更。
  ・PrintStream の文字エンコーディングについて考慮。メールのエンコードと同一でよいものとする。
  (削除) BlancoMailSettingFactory.java
  (変更) BlancoMailSetting.xls, BlancoMailSettingResourceBundle.xls
  (メール送信) 全ての添付ファイルの合計サイズについて、これの最大許容サイズを超えた場合に例外扱いとする仕様を実装。
  (メール受信) 指定のサイズを超えるメールの受信をスキップする機能を追加。
  (メール受信) Subjectマッチングによりメール受信の判断をおこなう機能を追加。
  ※TODOの整理、ソースコード内のTODOの整理を実施。

2007.09.17 (0.2.5)
  BlancoMailSettingに名称統一。後の blanco化への準備。
  削除: BlancoMailCoreResourceBundle.xls
  削除: BlancoMailCore_ja.properties
  削除: BlancoMailCore.properties
  削除: BlancoMailCoreResourceBundle.java
  jarファイルに _jaプロパティファイルが入らないように変更しました。

2007.09.17 (0.2.4)
  ・タイムアウト値について、送受信時両方で利用されていました。プロパティ名やフィールド名を変更しました。
  ・サーバ名は、同一のままだと、送信・受信の設定をプロパティファイル化した時点で破綻することが判明。
  ・サーバ接続設定をプロパティファイルで全てまかなうことができるようになる。
    →ソースコードからの各種設定情報の追放。自動テスト実行が 少しだけ改善される。

2007.09.17 (0.2.3)
  ・BlancoMailSettingバリューオブジェクトとリソースバンドル定義書との同期作業を実施。
    基本的に内容がセットになるようにする。
  ・文言などを調整。

2007.09.17 (0.2.2)
  ・SMTP認証 について BlancoMailSettingにもフィールドを追加。プロパティファイル連動を実装。
  ・APOP認証 について とりあえず実装。(mail.pop3.apop.enable) ただし接続試験は未実施。
  ・POP before SMTP については、blancoMailCoreでは 特に対応は実施しないことに決定。
    そもそもPOP before SMTPは サーバ側のIPアドレス管理による実現なのだから、blancoMailCoreでの対応は不要との判断から。
    blancoMailCore利用者側で メール送信より先にメール受信を実施すれば良いものと考える。

2007.09.16 (0.2.1)
  connectTransport, connectStoreメソッドを抽出。
  メソッドの並び順を一部調整。
  JavaDocを改善。実際に生成をともなって記述内容をチェック実施。

2007.09.15 (0.2.0)
  ・Transport, Storeの異常系の際のクローズ漏れ可能性を修正。Service系のcloseは、失敗しても正常終了扱いでも良いように判断。(System.outに出力のみ)

2007.09.14 (0.1.9)
  ・Transport層のクローズ忘れバグがあったのを修正しました。

2007.09.14 (0.1.8)
  ・ReplyTo フィールドへの対応。
  ・TO内, CC内, BCC内で同一アドレスが重複して与えられた場合に例外を発生させるチェックを追加。
  ・TOおよびCCにおいて指定の宛先数を超える場合に例外を発生させる仕様を追加。※BCCはチェックしません。

2007.09.14 (0.1.7)
  ・BlancoMailSettingFactory を新規に作成。BlancoMailSettingは このクラスから取得することとする。
  ・BlancoLogBinaryLoggerを blancoLogに分離。blancoLogをクラスパスに追加。
  ・(削除)BlancoLogBinaryLogger.java
  ・リソースバンドルのインスタンス化タイミングを変更。非staticフィールド化。
  ・メール送受信時のヘッダーフィールドの設定・取得について機能追加。

2007.09.13 (0.1.6)
  Transportインスタンスの sendに渡す受信者アドレスについて messageから取得するように変更。

2007.09.13 (0.1.5)
  JavaDocコメント欄の内容を調整。
  author欄を調整。

2007.09.13 (0.1.4)
  ・基本的な動作をチェック。
  ・Receiverも Sender同様のリファクタリング作業を実施。

2007.09.13 (0.1.3)
  ・セッションログディレクトリの指定方法を変更。
  ・BlancoLogBinaryLoggerを作成。(いずれは別プロダクトに分離予定)
  ・blancoMailCore 標準出力を常にByteArrayOutputStreamで取得し、
  ・状況に応じて 正常終了またはエラーのログディレクトリに出力するように変更。
    →事後でファイル名が決定できるメリットがあるが、メモリ消費量増加がデメリット。
    error
    success
    の２ディレクトリを設定できるのが特徴。
  ・エラー時に メールデータをエラー用ディレクトリに出力という仕様を実装。
    メール受信時にも、エラーメール格納ディレクトリを指定しておけば、そこにメールが格納される。

2007.09.12 (0.1.2)
  ※TODOの整理、ソースコード内のTODOの整理を実施。
  【試験】
  TODO 試験計画書の作成(WORDドキュメント予定)
  TODO さまざまなケータイキャリア上での文字化けテストの実施。
  【他プロジェクト】
  TODO BlancoLogBinaryLoggerの排他方法の検討。
  【将来構想】
  TODO 指定のサイズを超えるメールなどblancoMailCoreが処理できないメールを一斉に削除する機能は未実装です。
       メソッドとしては delete処理できないメール メソッドのようなものとなります。
       少なくとも 既存 receiveメソッドとは別の実装であるべきです。
       しかし これを実装する前に、まず このAPIの使われ方を考慮した仕様策定が必要です。
       サイズオーバのメールややSubject異なりのようなメールは、機械的には処理できず、人間がハンドリングする可能性があるからです。
  TODO 検討(優先度=低): 添付ファイルのバイナリデータのmime化後のものについて空行は必要か？
  TODO blancoMailRpcの検討。(仕様検討として)
  TODO blancoMailQueue (あるいは blancoMailPump) の検討。(仕様検討として)
  TODO メールをSQLで操作するJDBCドライバ実装の検討。(仕様検討として)

2007.09.12 (0.1.1)
  セッションデバッグをファイル出力する機能の実装。ディレクトリ名を指定すると、そのディレクトリにセッションデバッグをファイル出力します。

2007.09.11 (0.1.0)
  readme.txtに blancoCommonsの言及を追加。
  受信: マルチパートの際にテキストパートが複数回発生する可能性を考慮。
  共通: BlancoMailCoreUtilクラスを非public化

2007.09.10 (0.0.9)
  送信: メール本文の後方に付与する改行コードは１行で良いと判断。
  受信: 添付ファイル受信機能を実装。
  受信: メールヘッダをBlancoMailMessageに格納できるように機能追加。
  JUnit: 「添付ファイル無し」「添付ファイルあり」を追加。
  ソースコードに TODO を追記。

2007.09.10 (0.0.8)
  JavaMailのjarファイルについて mail.jarを利用するように変更。
  BlancoMailMessageに受信用フィールドを追加。

2007.09.10 (0.0.7)
  仕様検討メモ: 添付ファイル送受信の際に、サイズチェック機能が必要

2007.09.09 (0.0.6)
  lib.jarフォルダに旧バージョンが混入していたのを改善。

2007.09.09 (0.0.5)
  全体的に実装を継続中です。

2007.09.08 (0.0.4)
  受信: 受信処理を実装中。

2007.09.08 (0.0.3)
  送信: 添付ファイル処理を実装。

2007.09.07 (0.0.2)
  ほんとうの最初の一歩のコーディング。
  送信: 添付ファイル対応は未実施。
  受信: なにも処理が実装されていない。

2007.09.07 (0.0.1)
  新規作成。
