bounceHammer has been EOL'ed on February 29, 2016

Sisimai
商用サポート

  • 1一式導入・設定・保守・開発の補助
  • 2独自MTA用解析モジュールの開発
  • 3個別案件の対応とメールサポート
  • 4バウンス管理・運用コンサルティング
  • 5スポット解析・解析済みデータ提供

bounceHammer 2.6.0

2010/10/26

bounceHammer 2.6.0 Release

bounceHammer 2.6.0をリリースしました。


主な変更点は次の通り(リリースノートから抜粋)です。全ての変更点は リリースノート[日本語] をご覧ください。 ソースアーカイブは ダウンロードから入手して下さい。

主な変更点

新機能

  • 新しいエラー理由: 発信者アドレスによる拒否(rejected)、 システムエラー(systemerror)、内容・形式によるエラー(contenterr)、 配送時間切れ(expired) 。
  • 解析精度の向上: 新しくEximに対応, Gmail, qmail, 幾つかの MDA(mail.local, procmail, maildrop, vpopmail, vmailmgr)の精度が向上。
  • 出力データの'deliverystatus'のフォーマット変更: 整数値から文字列になりました。例) 512 -> "5.1.2"

細かな改善点

  • lib/Kanadzuchi/BdDR/内のデータベース用クラスファイル: BounceLogs.pm, Masters.pm, DailyUpdates.pmのコード改善(thanks to @nekokak)
  • WebUI/システム情報(Profile)のページ表題が空であった部分を修正。
  • bin/datadumperコマンドで取得する1ページあたりの行数を調整。
  • lib/Kanadzuchi/MTA/Google.pmはサブディレクトリUS/に移動しました。
  • UNIXドメインソケットでのデータベース接続の改善。
  • RFC 3463, 3886, 4468, 4954, 5248, 5336対応。

修正されたバグ

  • lib/Kanadzuchi/MTA/*.pmでバウンスメール解析中に出る警告メッセージ``Use of uninitialized value...''を修正。

bounceHammer 2.6.0へアップグレードする

ダウンロードページのリンクから bounceHammer-2.6.0のアーカイブ(Tar ball)を入手してください。

bounceHammer 2.5.0以前のバージョンから それぞれアップグレードする場合は次の作業も行ってください。

Version 2.4.0以降からのアップグレードは上書きインストール後、 Version 2.6.0から登場した新しい機能"日々の更新記録(DailyUpdates)"用の データベーステーブルを作成してください。 このテーブルには毎日の推定バウンス数等が記録されます。作成手順は下記の通りです。

2010/10/28追記
bouncehammer.cfで明示的に指定したUNIXドメインソケットのPATHが無視されるバグ情報と 修正パッチ がありますので、 Bug 2.6.0-001もご覧ください。
2010/10/30追記
Exim用解析ライブラリKanadzuchi::MTA::Eximで"Use of uninitialized value in regexp compilation" の警告が出るバグ情報と 修正パッチ がありますので、 Bug 2.6.0-001もご覧ください。
2010/11/01追記
Time::Pieceモジュールが1.14よりも古いと解析実行時にエラーが出るバグがありますので、 Bug 2.6.0-003もご覧ください。
2010/11/01追記
構築実行ユーザのシェルがtcshの場合、make installが失敗バグがありますので、 Bug 2.6.0-004もご覧ください。

新しいエラー理由の登録作業

Version 2.5.0以降からのアップグレードは上書きインストール後、 Ver.2.5.0から増えた検出できるエラー理由4種類をデータベースに登録、 Google(Gmail)用解析モジュールの登録の作業を行ってください。詳細な手順は下記を参考にしてください。

ソースアーカイブのディレクトリ/src/sql/update-2.6.0.sqlを実行する $ cd /usr/local/src/bouncehammer-2.6.0/src/sql
MySQLでの実行例
$ cat ./update-2.6.0.sql | /usr/local/mysql/bin/mysql -ubouncehammer -Dbouncehammer -h127.0.0.1 -p
 
PostgreSQLでの実行例
$ cat ./update-2.6.0.sql | /usr/local/pgsq/bin/psql -Ubouncehammer -dbouncehammer
 
SQLiteでの実行例
$ cat ./update-2.6.0.sql | sqlite3 /usr/local/var/db/bouncehammer.db

作成するデータベースの種類、お使いのデータベース環境に合わせて 適宜コマンドのオプション部分を読み替えてください。

Google(Gmail)用解析モジュールの登録

Version 2.6.0から、Google(Gmail)用解析モジュールがlib/Kanadzuchi/MTA/US/ ディレクトリに移動しました。 この作業は、インストールディレクトリ/etc/available-countries を使用していてなおかつGmailからのバウンスメールを解析する場合に行ってください。 設定ファイルavailable-countriesを使用していない (インストールディレクトリ/etc/available-countriesが存在しない)場合は、 この作業を行わずともGmailからのバウンスメールも自動で解析されます。

# cd /usr/local/bouncehammer/etc
# vi ./available-countries
"us":のあたりを下記のように編集 "us":
 "webmail": 1
 "agents": [ "Google" ] ←この行を追加

UNIXドメインソケットでの接続改善

Version 2.6.0から、UNIXドメインソケットでのデータベース接続が改善されました。 bounceHammerをインストールしたサーバとデータベースが同じホストの場合、 次の記述例を参考にしてください。TCP/IPで接続している場合は読み飛ばしてください。

# cd /usr/local/bouncehammer/etc
# vi ./bouncehammer.cf
database:
 hostname: localhost ←ソケット接続の場合はlocalhostまたは空の値
 port: /path/to/socket ←ソケット接続の場合はソケットへのPATHか空の値

bounceHammer 2.6.0からの新機能

bounceHammer2.6.0から検出できるエラーが4種類増えました。 増えたのは次の4つです。

  • expired - 配送時間切れ: 宛先ホストに繋がらないなどの理由で一定時間内に配送できなかったもの
  • rejected - 発信者アドレス(Envelope From)による拒否
  • contenterr - メールの形式によるエラー
  • systemerror - 宛先サーバまたはネットワークのエラー

これまでのバージョンではエラー理由をUndefined(未定義)で検出していたものがより細かく検出されます。

解析済みデータ形式の一部仕様変更

bounceHammer 2.6.0からmailboxparserコマンドが出力する 解析済みデータ(YAML/JSON)内、deliverystatusの形式が整数値から文字列に変更になりました。 この項目はエラー理由の特定のために使用した値が記録されているだけですが、 独自に実装した照合プログラムなどでdeliverystatusを整数値として扱っている場合はご注意下さい。