bounceHammer has been EOL'ed on February 29, 2016

製品ライフサイクルの終了

2010年3月にオープンソースソフトウェアとして公開して以来、多くのユーザ様・企業様にダウンロードし、 ご利用いただきましたbounceHammerは、2016年2月29日(月)を持ちまして製品ライフサイクルの終了(EOL: End Of Life) となりました。長きにわたりbounceHammerをご使用いただき誠に有り難う御座いました。 開発元では後継となるバウンスメール解析ライブラリとして、より高精度で高速なSisimai(シシマイ) を二条項BSDライセンスで公開しています。

Sisimai
商用サポート

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

tablectl/マスタデータの編集

 

tablectl - マスターテーブルの操作

tablectlコマンドは、bounceHammerデータベースのマスターテーブルの閲覧、編集、 更新などを行うコマンドです。

マスターテーブルとは、バウンスの記録を保持するBounceLogsテーブルが参照するデータテーブルで、 Addressers(発信者アドレス), SenderDomains(発信者ドメイン), Destinations(受信者ドメイン), HostGroups(宛先分類), Providers(宛先所属), Reasons(差戻理由) の6個があります。

このコマンドはインストールしたディレクトリ/bin/tablectlにあります。

コマンドの使用例

tablectlは、bounceHammerのデータベース/マスターテーブルに対して、SQL文を発行せずとも ある程度の操作が出来るようになっています。 また、tablectlコマンドよりも捜査の範囲は限定されていますが、管理画面(WebUI)でも一部の操作が可能です。

実際のところ、tablectlコマンドが必要になる事はあまりありません。 SenderDomainsテーブル以外の4つのマスターテーブルは、HostGroupsとReasonsは インストール直後のデータ登録 で必要なデータを入れていますし、AddressersとDestinationsは必要に応じて自動的にデータが挿入されます。

エラー理由(Reasons)マスターテーブルの内容を出力
# tablectl --list -tw
 
発信者ドメイン(SenderDomains)に'example.co.jp'を追加
# tablectl --table s --insert --name 'example.co.jp' --description 'Example K.K.'
 
発信者アドレス(Addresser)のID1の説明を更新
# tablectl --update -ta --id 1 --description 'this is my address'
 
受信者ドメイン(Destinations)のID4のデータを削除
# tablectl --remove -td --id 4
 
ヘルプを表示
# tablectl --help

利用可能なオプション

テーブル制御用オプション

-t, --table 文字
tablectlがどのマスターテーブルに対して操作をするか指定します。 このオプションの引数はそれぞれのマスターテーブルを表す一文字です。 指定できる文字は、 a: Addresser(発信者アドレス), s: SenderDomains(発信者ドメイン), d: Destinations(受信者ドメイン), h: HostGroups(宛先分類), p: Providers(宛先所属), w: Reasons(差戻理由[w]hy) です。
--list
-t オプションで指定したテーブルの全レコードを出力します。 --id, --nameで出力するレコードを絞り込めます。 SQLのSELECT * FROM WHERE (...)に相当します。
--update
-t オプションで指定したテーブルの、--idオプションで 指定したレコードの更新を行います。 更新できるカラムは、--name, --decription, --disableのいずれかで 指定します。SQLのUPDATEに相当します。
--insert
-t オプションで指定したテーブルに、 --name, --description, --disableオプションで指定したレコードを 作成します。SQLのINSERT INTOに相当します。
--remove
-t オプションで指定したテーブルの、--idオプションで 指定したレコードの削除を行います。

カラム用オプション

--id 数
--updateで更新する、 --removeで削除する、 --listで出力するデータのIDを指定します。 SQLの WHERE id = に相当します。
--name 名前
--insertで登録する、 --updateで更新する、 --listで出力するデータの名前を指定します。SQLの WHERE name = に相当します。 --insertで新たにデータを登録するときは必ずこのオプションで名前を 指定しなければなりません。
--description 説明
--insertで登録する、 --updateで更新する、 --listで出力するデータの説明部分を指定します。 SQLの WHERE description = に相当します。
--disabled 1 or 0
--insertで登録する、 --updateで更新する、 --listで出力するデータの無効フラグを指定します。 SQLの WHERE disable = に相当します。 --disabledおよびdisabledカラムは実装はされていますが、 ほとんど使用されていません。 bounceHammerの将来のリリースで削除されたり名称が変わったりするかもしれません。

その他のオプション

-C, --conf 設定ファイル
読み込む設定ファイルを指定します。このオプションを使用しない場合、 インストール先/etc/bouncehammer.cfが使用されます。 複数の設定ファイルを処理毎に使い分ける場合などでは有用でしょう。
-T, --test
テストモードで動作します。通常は動作に必要な設定値を インストール先/etc/bouncehammer.cfから読出しますが、 このオプションを指定するとbouncehammer.cfが無くても動作します。 -C test-run.cf と等価です。
-F, --fotmat 文字
--listオプションによるマスターテーブルの出力を指定した フォーマットで出力します。このオプションを指定しない場合は、 YAML形式で出力されます。--insert, --update, --remove オプションを指定した場合、このオプションの指定は無視されます。
文字 説明
y YAML形式 | e.g.) -Fy
a アスキーテーブル | -Fa
e.g.) アスキーテーブルで結果を得るtablectl -list -ts -Fa
--silent (ver.2.1.0以降)
このオプションを付けると、次の-v, --verboseオプションの 有無にかかわらず冗長なメッセージおよびエラーの出力がなくなります。

また、コマンドをsendmail等のデーモンが実行した場合、エラーが起きても exit(0)=成功で終了します。--silentオプションを付けずに sendmail等MTAがコマンドを起動し、エラーが発生した場合は exit(75)=EX_TEMPFAILで終了します。
-v, --verbose
処理過程が冗長に表示されます。
--help
コマンドのヘルプが表示されます。
--version
バージョン番号が表示されます。

SenderDomainsテーブル

マスターテーブルのうちSenderDomains(発信者ドメイン)は、必要なデータを手動で登録する必要があります。

bounceHammerの利用形態として、多くの場合は自社・自組織から送信した メールのエラーを記録するというものです。 宛先となるメールアドレスは多種多様なので、その宛先ドメイン(Destinations)も 全て把握する事はできませんが、発信者ドメインは自社・自組織が保有している=全部把握できる、 ものです。


よって、自社・自組織で保有・管理しているドメインのうち メールアドレスとして使用されているもの、かつbounceHammerで管理したいものだけを SenderDomainsテーブルに登録しておく必要があります。

コマンド実行結果のスクリーンショットでの説明

tablectl -Fa --table senderdomain --list

下記のスクリーンショットは、データベースのマスターテーブルに登録されている 基本データのうち、発信者アドレス(Sender domain)の一覧をアスキーテーブルで 書き出すコマンドと出力内容の説明です。