バウンスメール解析システム BounceHammer
Upcoming SlideShare
Loading in...5
×
 

バウンスメール解析システム BounceHammer

on

  • 12,655 views

 

Statistics

Views

Total Views
12,655
Views on SlideShare
9,065
Embed Views
3,590

Actions

Likes
5
Downloads
10
Comments
1

10 Embeds 3,590

http://1-byte.jp 3501
http://bouncehammer.jp 29
http://wiki.onakasuita.org 26
http://webcache.googleusercontent.com 15
https://twitter.com 8
url_unknown 6
https://abs.twimg.com 2
http://www.slideshare.net 1
https://twimg0-a.akamaihd.net 1
http://plus.url.google.com 1
More...

Accessibility

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel

11 of 1

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
  • YAPC::Asia Tokyo 2010の二日目に発表で使用したスライドです。直接ファイル(PDF)をダウンロードするリンクは http://bouncehammer.jp/ja/what-is-new/2010/10/yapcasia-tokyo-2010.html にもあります。
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    バウンスメール解析システム BounceHammer バウンスメール解析システム BounceHammer Presentation Transcript

    • BounceHammer オープンソースのバウンスメール解析システム BounceHammer 株式会社キュービックルート azumakuniyuki YAPC::Asia Tokyo 2010 / バウンスメール解析システム BounceHammer / Developed by Cubicroot Co. Ltd.
    • BounceHammer 自己紹介 東 邦 之 * なまえ = azumakuniyuki * しごと = サーバ管理者 > 10年 * しごと = プログラマー < 2年 * おうち = 京都市 YAPC::Asia Tokyo 2010 / バウンスメール解析システム BounceHammer / Developed by Cubicroot Co. Ltd.
    • BounceHammer BounceHammer? * ばうんすはんまーと読む * バウンスメール解析専用 * 配信システムではない * 基本的にコマンドラインツール * もちろんPerl製 YAPC::Asia Tokyo 2010 / バウンスメール解析システム BounceHammer / Developed by Cubicroot Co. Ltd.
    • BounceHammer バウンスメール? * エラーで返ってきたメール * 中身はだいたい英語 * リターンメール・不達メール YAPC::Asia Tokyo 2010 / バウンスメール解析システム BounceHammer / Developed by Cubicroot Co. Ltd.
    • BounceHammer From: * Mailer-Daemon * Mail Delivery Subsystem * Postmaster@... YAPC::Asia Tokyo 2010 / バウンスメール解析システム BounceHammer / Developed by Cubicroot Co. Ltd.
    • BounceHammer Subject: * Returned mail: see transcript ... * failure notice * Undelivered Mail Returned to ... YAPC::Asia Tokyo 2010 / バウンスメール解析システム BounceHammer / Developed by Cubicroot Co. Ltd.
    • BounceHammer Bounc eHam できること merが * エラーメールを解析する * エラー理由特定(宛先不明/拒否/...) * 宛先分類(携帯/Webメール/PC/...) * 解析したらデータベースに蓄積 * 解析済みデータはYAMLで出力 YAPC::Asia Tokyo 2010 / バウンスメール解析システム BounceHammer / Developed by Cubicroot Co. Ltd.
    • BounceHammer エラー理由 * 宛先不明 * ドメイン指定拒否 * メールボックスいっぱい * メールが大きすぎる * セキュリティ的なエラー YAPC::Asia Tokyo 2010 / バウンスメール解析システム BounceHammer / Developed by Cubicroot Co. Ltd.
    • BounceHammer 役立つ場面 * 一般的なMTAで配信している * でもバウンス処理はしていない * そこそこ沢山配信している * でもバウンス処理はしていない YAPC::Asia Tokyo 2010 / バウンスメール解析システム BounceHammer / Developed by Cubicroot Co. Ltd.
    • BounceHammer 役立つ人々 * コンテンツプロバイダ * メールマガジンスタンド * メール配信しているところ全部 * まだバウンス処理をしていない人 YAPC::Asia Tokyo 2010 / バウンスメール解析システム BounceHammer / Developed by Cubicroot Co. Ltd.
    • BounceHammer 放置すると... * 携帯宛はブロックされる → 困る * 有効配信数がわからない → 困る * 遅延がひどくて送れない → 困る * 遅延で配信時間がかかる → 困る YAPC::Asia Tokyo 2010 / バウンスメール解析システム BounceHammer / Developed by Cubicroot Co. Ltd.
    • BounceHammer 放置すると... とにかく困る YAPC::Asia Tokyo 2010 / バウンスメール解析システム BounceHammer / Developed by Cubicroot Co. Ltd.
    • BounceHammer バウンス処理は * 確実にやるべき * 配信数が少なくてもやるべき * メール1通でも送るならやるべき YAPC::Asia Tokyo 2010 / バウンスメール解析システム BounceHammer / Developed by Cubicroot Co. Ltd.
    • BounceHammer B ounc eHam 処理すると... merで * バウンスの理由が正確にわかる * バウンス記録を構造化して保存 * ウェブ管理画面でアドレス管理 * メール配信の合理化と健全化に * 自前でバウンス処理実装不必要 YAPC::Asia Tokyo 2010 / バウンスメール解析システム BounceHammer / Developed by Cubicroot Co. Ltd.
    • BounceHammer Bounc eHam 処理すると... merで とにかく良い YAPC::Asia Tokyo 2010 / バウンスメール解析システム BounceHammer / Developed by Cubicroot Co. Ltd.
    • BounceHammer B ounc eHam インストール merの * Perlモジュールを入れる * ./configure && make * make install * データベースの準備 * 設定ファイルの編集 YAPC::Asia Tokyo 2010 / バウンスメール解析システム BounceHammer / Developed by Cubicroot Co. Ltd.
    • BounceHammer 解析済みデータの利用 * 解析済みデータはYAML ¦¦ JSON * CSVでも出力(表計算ソフトで利用) * MTAでバウンス照合→削除 * 配信プログラムでバウンス照合 * ウェブサイトでバウンス照合 YAPC::Asia Tokyo 2010 / バウンスメール解析システム BounceHammer / Developed by Cubicroot Co. Ltd.
    • BounceHammer B ounc eHam 動かしてみる merを * 解析はmbox ¦¦ Maildir/を引数に * STDINからも読む(/etc/aliases) * /etc/crontabで定時処理させる * 必要に応じて解析済みデータ取得 YAPC::Asia Tokyo 2010 / バウンスメール解析システム BounceHammer / Developed by Cubicroot Co. Ltd.
    • BounceHammer 解析コマンド * mailboxparserというコマンド # mailboxparser /var/mail/root % mailboxparser ~/Maildir/cur ~/Maildir/new % cat /var/mail/azuma | mailboxparser - { "bounced": 1221728044, "addresser": "user1@example.jp", "recipient": "domain-does- not-exist@example.gov", "senderdomain": "example.jp", "destination": "example.gov", "reason": "hostunknown", ... } YAPC::Asia Tokyo 2010 / バウンスメール解析システム BounceHammer / Developed by Cubicroot Co. Ltd.
    • BounceHammer 解析速度 * Linode(Xeon L5520x4 2.27GHz) * mbox = 約500通/秒 * Maildir/ = 約200通/秒 YAPC::Asia Tokyo 2010 / バウンスメール解析システム BounceHammer / Developed by Cubicroot Co. Ltd.
    • BounceHammer 出力コマンド * datadumperというコマンド * YAML,JSON,CSVで出力する * いろいろ条件指定ができます % datadumper --howrecent 1y 1年以内の記録 % datadumper --reason userunknown 宛先不明だけ % datadumper --hostgroup cellphone 携帯だけ % datadumper --format csv --destination gmail.com YAPC::Asia Tokyo 2010 / バウンスメール解析システム BounceHammer / Developed by Cubicroot Co. Ltd.
    • BounceHammer MTAと協調させる * 配信プログラムはいじりたくない * でもバウンスした宛先に送るの嫌 * バウンスした宛先はMTAが削除 ! YAPC::Asia Tokyo 2010 / バウンスメール解析システム BounceHammer / Developed by Cubicroot Co. Ltd.
    • BounceHammer Send /etc/mail/access mail * DISCARDで宛先不明は破棄する # cd /etc/mail # datadumper --format csv --reason userunknown > | cut -d, -f3 | grep @ > | sed s/^/To:/g;s/$/ DISCARD/g > ./access # makemap hash access.db < access YAPC::Asia Tokyo 2010 / バウンスメール解析システム BounceHammer / Developed by Cubicroot Co. Ltd.
    • BounceHammer 配信プログラムで照合 * 配信プログラムで宛先照合をする * YAMLで出力した宛先一覧を読む * 一致した宛先は送信対象から外す * YAMLが読めるなら言語を問わず YAPC::Asia Tokyo 2010 / バウンスメール解析システム BounceHammer / Developed by Cubicroot Co. Ltd.
    • BounceHammer YAMLファイルで照合 # datadumper > /tmp/bounce.yaml #/usr/bin/perl use JSON::Syck; my @A = 配信対象のメールアドレス配列; my @B = JSON::Syck::LoadFile("/tmp/bounce.yaml"); foreach my $e ( @A ){ unless( grep { $e eq $_->{recipient} } @B ){ バウンス記録に一致しないので配信する; } } YAPC::Asia Tokyo 2010 / バウンスメール解析システム BounceHammer / Developed by Cubicroot Co. Ltd.
    • BounceHammer ウェブサイトに組み込む * HTTPベースのAPIを使う * ユーザ毎のページに状態を表示 * 「登録されているアドレスは...」 * メールを受け取れるアドレスに * JSONが読めるなら言語を問わず YAPC::Asia Tokyo 2010 / バウンスメール解析システム BounceHammer / Developed by Cubicroot Co. Ltd.
    • BounceHammer HTTP-APIで照合 #/usr/bin/perl use JSON::Syck; use LWP::UserAgent; my $A = ユーザのメールアドレス; my $H = http://127.0.0.1/b.cgi/search/recipient/; my $U = new LWP::UserAgent(); my $R = $U->request( HTTP::Request->new( GET => $H.$A )); my $J = JSON::Syck::Load( $R->content() ) || []; foreach my $e ( @$J ){ 内容を取得; } YAPC::Asia Tokyo 2010 / バウンスメール解析システム BounceHammer / Developed by Cubicroot Co. Ltd.
    • BounceHammer Bounc eHam 今後 merの * 次の2.6.0でエラーの理由 += 4; * なるべく国産モジュール使いたい * ORMは国産化完了(DBIC→Skinny) * CGI::Application::.+ → ? * APIで書き込み可能にする YAPC::Asia Tokyo 2010 / バウンスメール解析システム BounceHammer / Developed by Cubicroot Co. Ltd.
    • BounceHammer 続きはWebで http://bouncehammer.jp/ YAPC::Asia Tokyo 2010 / バウンスメール解析システム BounceHammer / Developed by Cubicroot Co. Ltd.
    • BounceHammer 続きは雑誌で http://gihyo.jp/magazine/SD Software Design 2010年11月号 創刊20周年記念号に載ります! 10月18日発売! 次の月曜日です! YAPC::Asia Tokyo 2010 / バウンスメール解析システム BounceHammer / Developed by Cubicroot Co. Ltd.