SlideShare a Scribd company logo
1 of 30
Download to read offline
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.

More Related Content

Viewers also liked

The Power of Integrated Care: Implementing Health Homes in Medicaid
The Power of Integrated Care: Implementing Health Homes in MedicaidThe Power of Integrated Care: Implementing Health Homes in Medicaid
The Power of Integrated Care: Implementing Health Homes in MedicaidNASHP HealthPolicy
 
Maximizing the business value from social computing
Maximizing the business value from social computingMaximizing the business value from social computing
Maximizing the business value from social computingSocialKwan
 
Reunion inicial de padres
Reunion inicial de padresReunion inicial de padres
Reunion inicial de padresLa profe
 
Phuong phap luyen tri nao omizumi kagayaki
Phuong phap luyen tri nao omizumi kagayakiPhuong phap luyen tri nao omizumi kagayaki
Phuong phap luyen tri nao omizumi kagayakiTrần Hà Vĩ
 
“Health Homes” and Behavioral Health/General Medical Care Integration
“Health Homes” and Behavioral Health/General Medical Care Integration“Health Homes” and Behavioral Health/General Medical Care Integration
“Health Homes” and Behavioral Health/General Medical Care IntegrationNASHP HealthPolicy
 
Signals & systems
Signals & systemsSignals & systems
Signals & systemsswathichv
 
Flash americanbloger
Flash americanblogerFlash americanbloger
Flash americanblogerLuis Barreiro
 
δρομο παιρνω ... δρομο αφηνω
δρομο παιρνω ... δρομο αφηνωδρομο παιρνω ... δρομο αφηνω
δρομο παιρνω ... δρομο αφηνωteo70
 
Advancing Health Equity through State Implementation of Health Reform
Advancing Health Equity through State Implementation of Health ReformAdvancing Health Equity through State Implementation of Health Reform
Advancing Health Equity through State Implementation of Health ReformNASHP HealthPolicy
 
William shakespeare
William shakespeareWilliam shakespeare
William shakespeareAmilleya
 
Your first year in mba
Your first year in mbaYour first year in mba
Your first year in mbaShravan Shetty
 
Daring and doing is the new black
Daring and doing is the new blackDaring and doing is the new black
Daring and doing is the new blackAnna Oscarsson
 
Codigo Tributario Boliviano AIT
Codigo Tributario Boliviano AITCodigo Tributario Boliviano AIT
Codigo Tributario Boliviano AITGustavo Mariaca
 
Evaluation Question 6
Evaluation Question 6Evaluation Question 6
Evaluation Question 6Zac
 
Algoritmiek
AlgoritmiekAlgoritmiek
Algoritmiekbonejp
 
Samenvatting wegcode
Samenvatting wegcodeSamenvatting wegcode
Samenvatting wegcodeStef
 

Viewers also liked (20)

The Power of Integrated Care: Implementing Health Homes in Medicaid
The Power of Integrated Care: Implementing Health Homes in MedicaidThe Power of Integrated Care: Implementing Health Homes in Medicaid
The Power of Integrated Care: Implementing Health Homes in Medicaid
 
Reading and writing
Reading and writingReading and writing
Reading and writing
 
Maximizing the business value from social computing
Maximizing the business value from social computingMaximizing the business value from social computing
Maximizing the business value from social computing
 
Reunion inicial de padres
Reunion inicial de padresReunion inicial de padres
Reunion inicial de padres
 
Phuong phap luyen tri nao omizumi kagayaki
Phuong phap luyen tri nao omizumi kagayakiPhuong phap luyen tri nao omizumi kagayaki
Phuong phap luyen tri nao omizumi kagayaki
 
Hyper
HyperHyper
Hyper
 
Marley
MarleyMarley
Marley
 
“Health Homes” and Behavioral Health/General Medical Care Integration
“Health Homes” and Behavioral Health/General Medical Care Integration“Health Homes” and Behavioral Health/General Medical Care Integration
“Health Homes” and Behavioral Health/General Medical Care Integration
 
Signals & systems
Signals & systemsSignals & systems
Signals & systems
 
Flash americanbloger
Flash americanblogerFlash americanbloger
Flash americanbloger
 
δρομο παιρνω ... δρομο αφηνω
δρομο παιρνω ... δρομο αφηνωδρομο παιρνω ... δρομο αφηνω
δρομο παιρνω ... δρομο αφηνω
 
Sourcing - 101
Sourcing - 101Sourcing - 101
Sourcing - 101
 
Advancing Health Equity through State Implementation of Health Reform
Advancing Health Equity through State Implementation of Health ReformAdvancing Health Equity through State Implementation of Health Reform
Advancing Health Equity through State Implementation of Health Reform
 
William shakespeare
William shakespeareWilliam shakespeare
William shakespeare
 
Your first year in mba
Your first year in mbaYour first year in mba
Your first year in mba
 
Daring and doing is the new black
Daring and doing is the new blackDaring and doing is the new black
Daring and doing is the new black
 
Codigo Tributario Boliviano AIT
Codigo Tributario Boliviano AITCodigo Tributario Boliviano AIT
Codigo Tributario Boliviano AIT
 
Evaluation Question 6
Evaluation Question 6Evaluation Question 6
Evaluation Question 6
 
Algoritmiek
AlgoritmiekAlgoritmiek
Algoritmiek
 
Samenvatting wegcode
Samenvatting wegcodeSamenvatting wegcode
Samenvatting wegcode
 

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

Perl and eMail at Kansai.pm #13 Meeting in Kyoto
Perl and eMail at Kansai.pm #13 Meeting in KyotoPerl and eMail at Kansai.pm #13 Meeting in Kyoto
Perl and eMail at Kansai.pm #13 Meeting in Kyotoazumakuniyuki 🐈
 
JSONでメール送信 | HTTP API Server ``Haineko''/YAPC::Asia Tokyo 2013 LT Day2
JSONでメール送信 | HTTP API Server ``Haineko''/YAPC::Asia Tokyo 2013 LT Day2JSONでメール送信 | HTTP API Server ``Haineko''/YAPC::Asia Tokyo 2013 LT Day2
JSONでメール送信 | HTTP API Server ``Haineko''/YAPC::Asia Tokyo 2013 LT Day2azumakuniyuki 🐈
 
Pub/Sub model, msm, and asio
Pub/Sub model, msm, and asioPub/Sub model, msm, and asio
Pub/Sub model, msm, and asioTakatoshi Kondo
 
実際に流れているデータを見てみよう
実際に流れているデータを見てみよう実際に流れているデータを見てみよう
実際に流れているデータを見てみよう彰 村地
 
Sflt17 meteorではじめる最速ウェブアプリ開発
Sflt17 meteorではじめる最速ウェブアプリ開発Sflt17 meteorではじめる最速ウェブアプリ開発
Sflt17 meteorではじめる最速ウェブアプリ開発Hironao Sekine
 
JavaScript.Next
JavaScript.NextJavaScript.Next
JavaScript.Nextdynamis
 
MediaRecorder と WebM で、オレオレ Live Streaming
MediaRecorder と WebM で、オレオレ Live StreamingMediaRecorder と WebM で、オレオレ Live Streaming
MediaRecorder と WebM で、オレオレ Live Streamingmganeko
 
おまえらこのライブラリ使ってないの? m9 (2013-07)
おまえらこのライブラリ使ってないの? m9	(2013-07)おまえらこのライブラリ使ってないの? m9	(2013-07)
おまえらこのライブラリ使ってないの? m9 (2013-07)Toru Furukawa
 
JavaScript.Next Returns
JavaScript.Next ReturnsJavaScript.Next Returns
JavaScript.Next Returnsdynamis
 
BotとWikiを使った試験的な並列プログラミング
BotとWikiを使った試験的な並列プログラミングBotとWikiを使った試験的な並列プログラミング
BotとWikiを使った試験的な並列プログラミングTakashi Yamanoue
 
Build Node.js-WASM/WASI Tiny compiler with Node.js
Build Node.js-WASM/WASI Tiny compiler with Node.jsBuild Node.js-WASM/WASI Tiny compiler with Node.js
Build Node.js-WASM/WASI Tiny compiler with Node.jsmganeko
 
悪性Botnet包囲網のBotによるWannaCryのようなマルウェアの活動検知の試み
悪性Botnet包囲網のBotによるWannaCryのようなマルウェアの活動検知の試み悪性Botnet包囲網のBotによるWannaCryのようなマルウェアの活動検知の試み
悪性Botnet包囲網のBotによるWannaCryのようなマルウェアの活動検知の試みTakashi Yamanoue
 
Ruby向け帳票ソリューション「ThinReports」の開発で知るOSSの威力
Ruby向け帳票ソリューション「ThinReports」の開発で知るOSSの威力Ruby向け帳票ソリューション「ThinReports」の開発で知るOSSの威力
Ruby向け帳票ソリューション「ThinReports」の開発で知るOSSの威力ThinReports
 
Rancher2.3とwindows Containerで作るkubernetesクラスタ
Rancher2.3とwindows Containerで作るkubernetesクラスタRancher2.3とwindows Containerで作るkubernetesクラスタ
Rancher2.3とwindows Containerで作るkubernetesクラスタTakashi Kanai
 
2014 dart flight school in Tokyo
2014 dart flight school in Tokyo2014 dart flight school in Tokyo
2014 dart flight school in Tokyonothingcosmos
 

Similar to バウンスメール解析システム BounceHammer (19)

Perl and eMail at Kansai.pm #13 Meeting in Kyoto
Perl and eMail at Kansai.pm #13 Meeting in KyotoPerl and eMail at Kansai.pm #13 Meeting in Kyoto
Perl and eMail at Kansai.pm #13 Meeting in Kyoto
 
JSONでメール送信 | HTTP API Server ``Haineko''/YAPC::Asia Tokyo 2013 LT Day2
JSONでメール送信 | HTTP API Server ``Haineko''/YAPC::Asia Tokyo 2013 LT Day2JSONでメール送信 | HTTP API Server ``Haineko''/YAPC::Asia Tokyo 2013 LT Day2
JSONでメール送信 | HTTP API Server ``Haineko''/YAPC::Asia Tokyo 2013 LT Day2
 
Pub/Sub model, msm, and asio
Pub/Sub model, msm, and asioPub/Sub model, msm, and asio
Pub/Sub model, msm, and asio
 
実際に流れているデータを見てみよう
実際に流れているデータを見てみよう実際に流れているデータを見てみよう
実際に流れているデータを見てみよう
 
Sflt17 meteorではじめる最速ウェブアプリ開発
Sflt17 meteorではじめる最速ウェブアプリ開発Sflt17 meteorではじめる最速ウェブアプリ開発
Sflt17 meteorではじめる最速ウェブアプリ開発
 
JavaScript.Next
JavaScript.NextJavaScript.Next
JavaScript.Next
 
MediaRecorder と WebM で、オレオレ Live Streaming
MediaRecorder と WebM で、オレオレ Live StreamingMediaRecorder と WebM で、オレオレ Live Streaming
MediaRecorder と WebM で、オレオレ Live Streaming
 
おまえらこのライブラリ使ってないの? m9 (2013-07)
おまえらこのライブラリ使ってないの? m9	(2013-07)おまえらこのライブラリ使ってないの? m9	(2013-07)
おまえらこのライブラリ使ってないの? m9 (2013-07)
 
JavaScript.Next Returns
JavaScript.Next ReturnsJavaScript.Next Returns
JavaScript.Next Returns
 
BotとWikiを使った試験的な並列プログラミング
BotとWikiを使った試験的な並列プログラミングBotとWikiを使った試験的な並列プログラミング
BotとWikiを使った試験的な並列プログラミング
 
Build Node.js-WASM/WASI Tiny compiler with Node.js
Build Node.js-WASM/WASI Tiny compiler with Node.jsBuild Node.js-WASM/WASI Tiny compiler with Node.js
Build Node.js-WASM/WASI Tiny compiler with Node.js
 
Boost sg msgpack
Boost sg msgpackBoost sg msgpack
Boost sg msgpack
 
Monit
MonitMonit
Monit
 
悪性Botnet包囲網のBotによるWannaCryのようなマルウェアの活動検知の試み
悪性Botnet包囲網のBotによるWannaCryのようなマルウェアの活動検知の試み悪性Botnet包囲網のBotによるWannaCryのようなマルウェアの活動検知の試み
悪性Botnet包囲網のBotによるWannaCryのようなマルウェアの活動検知の試み
 
Ruby向け帳票ソリューション「ThinReports」の開発で知るOSSの威力
Ruby向け帳票ソリューション「ThinReports」の開発で知るOSSの威力Ruby向け帳票ソリューション「ThinReports」の開発で知るOSSの威力
Ruby向け帳票ソリューション「ThinReports」の開発で知るOSSの威力
 
Xampp4wp0211
Xampp4wp0211Xampp4wp0211
Xampp4wp0211
 
Rancher2.3とwindows Containerで作るkubernetesクラスタ
Rancher2.3とwindows Containerで作るkubernetesクラスタRancher2.3とwindows Containerで作るkubernetesクラスタ
Rancher2.3とwindows Containerで作るkubernetesクラスタ
 
2014 dart flight school in Tokyo
2014 dart flight school in Tokyo2014 dart flight school in Tokyo
2014 dart flight school in Tokyo
 
P2Pって何?
P2Pって何?P2Pって何?
P2Pって何?
 

More from azumakuniyuki 🐈

YAPC::Nagoya::Tiny 2019 | Makefile生活
YAPC::Nagoya::Tiny 2019 | Makefile生活YAPC::Nagoya::Tiny 2019 | Makefile生活
YAPC::Nagoya::Tiny 2019 | Makefile生活azumakuniyuki 🐈
 
NSEG勉強会(101)LT: 僕と長野県
NSEG勉強会(101)LT: 僕と長野県NSEG勉強会(101)LT: 僕と長野県
NSEG勉強会(101)LT: 僕と長野県azumakuniyuki 🐈
 
[スパム報告]ボタンを押すとどうなるのか | Hosting Casual Talks #4
[スパム報告]ボタンを押すとどうなるのか | Hosting Casual Talks #4[スパム報告]ボタンを押すとどうなるのか | Hosting Casual Talks #4
[スパム報告]ボタンを押すとどうなるのか | Hosting Casual Talks #4azumakuniyuki 🐈
 
SendGridのない世界 | SendGrid Night in Osaka #2
SendGridのない世界 | SendGrid Night in Osaka #2SendGridのない世界 | SendGrid Night in Osaka #2
SendGridのない世界 | SendGrid Night in Osaka #2azumakuniyuki 🐈
 
Hokkaido.pm#13参加報告 | YAPC::Kansai 2017 Osaka
Hokkaido.pm#13参加報告 | YAPC::Kansai 2017 OsakaHokkaido.pm#13参加報告 | YAPC::Kansai 2017 Osaka
Hokkaido.pm#13参加報告 | YAPC::Kansai 2017 Osakaazumakuniyuki 🐈
 
メールフォームからメールを送る近代的な方法 | YAPC::Kansai 2017 OSAKA
メールフォームからメールを送る近代的な方法 | YAPC::Kansai 2017 OSAKAメールフォームからメールを送る近代的な方法 | YAPC::Kansai 2017 OSAKA
メールフォームからメールを送る近代的な方法 | YAPC::Kansai 2017 OSAKAazumakuniyuki 🐈
 
僕と北海道とPerl、それとMakefileも。
僕と北海道とPerl、それとMakefileも。僕と北海道とPerl、それとMakefileも。
僕と北海道とPerl、それとMakefileも。azumakuniyuki 🐈
 
PerlモジュールをRubyに移植する時に落ちた穴々
PerlモジュールをRubyに移植する時に落ちた穴々PerlモジュールをRubyに移植する時に落ちた穴々
PerlモジュールをRubyに移植する時に落ちた穴々azumakuniyuki 🐈
 
自動構築と自動テスト〜インフラのコード化とクラウドの優位性
自動構築と自動テスト〜インフラのコード化とクラウドの優位性自動構築と自動テスト〜インフラのコード化とクラウドの優位性
自動構築と自動テスト〜インフラのコード化とクラウドの優位性azumakuniyuki 🐈
 
Hachioji.pm #40 次のbounceHammer開発中
Hachioji.pm #40 次のbounceHammer開発中Hachioji.pm #40 次のbounceHammer開発中
Hachioji.pm #40 次のbounceHammer開発中azumakuniyuki 🐈
 
2013 11-30-mailqueue-monitoring
2013 11-30-mailqueue-monitoring2013 11-30-mailqueue-monitoring
2013 11-30-mailqueue-monitoringazumakuniyuki 🐈
 
Plackで実装したメールサーバ"Haineko"のその後/Shibuya.pl #1
Plackで実装したメールサーバ"Haineko"のその後/Shibuya.pl #1 Plackで実装したメールサーバ"Haineko"のその後/Shibuya.pl #1
Plackで実装したメールサーバ"Haineko"のその後/Shibuya.pl #1 azumakuniyuki 🐈
 
実践的bounceHammer / KOF2013
実践的bounceHammer / KOF2013実践的bounceHammer / KOF2013
実践的bounceHammer / KOF2013azumakuniyuki 🐈
 
JSONでメール送信(Haineko) / KOF2013
JSONでメール送信(Haineko) / KOF2013JSONでメール送信(Haineko) / KOF2013
JSONでメール送信(Haineko) / KOF2013azumakuniyuki 🐈
 
猫とPerl〜応用編1/YAPC Asia Tokyo 2013 LT-THON::Tiny
猫とPerl〜応用編1/YAPC Asia Tokyo 2013 LT-THON::Tiny猫とPerl〜応用編1/YAPC Asia Tokyo 2013 LT-THON::Tiny
猫とPerl〜応用編1/YAPC Asia Tokyo 2013 LT-THON::Tinyazumakuniyuki 🐈
 
Perl and Email #3 ``Haineko''/Kyoto.pm #5
Perl and Email #3 ``Haineko''/Kyoto.pm #5Perl and Email #3 ``Haineko''/Kyoto.pm #5
Perl and Email #3 ``Haineko''/Kyoto.pm #5azumakuniyuki 🐈
 
Kansai.pm #15 LT資料「猫とPerl」
Kansai.pm #15 LT資料「猫とPerl」Kansai.pm #15 LT資料「猫とPerl」
Kansai.pm #15 LT資料「猫とPerl」azumakuniyuki 🐈
 

More from azumakuniyuki 🐈 (20)

YAPC::Nagoya::Tiny 2019 | Makefile生活
YAPC::Nagoya::Tiny 2019 | Makefile生活YAPC::Nagoya::Tiny 2019 | Makefile生活
YAPC::Nagoya::Tiny 2019 | Makefile生活
 
NSEG勉強会(101)LT: 僕と長野県
NSEG勉強会(101)LT: 僕と長野県NSEG勉強会(101)LT: 僕と長野県
NSEG勉強会(101)LT: 僕と長野県
 
Email is Slack
Email is SlackEmail is Slack
Email is Slack
 
[スパム報告]ボタンを押すとどうなるのか | Hosting Casual Talks #4
[スパム報告]ボタンを押すとどうなるのか | Hosting Casual Talks #4[スパム報告]ボタンを押すとどうなるのか | Hosting Casual Talks #4
[スパム報告]ボタンを押すとどうなるのか | Hosting Casual Talks #4
 
SendGridのない世界 | SendGrid Night in Osaka #2
SendGridのない世界 | SendGrid Night in Osaka #2SendGridのない世界 | SendGrid Night in Osaka #2
SendGridのない世界 | SendGrid Night in Osaka #2
 
Hokkaido.pm#13参加報告 | YAPC::Kansai 2017 Osaka
Hokkaido.pm#13参加報告 | YAPC::Kansai 2017 OsakaHokkaido.pm#13参加報告 | YAPC::Kansai 2017 Osaka
Hokkaido.pm#13参加報告 | YAPC::Kansai 2017 Osaka
 
メールフォームからメールを送る近代的な方法 | YAPC::Kansai 2017 OSAKA
メールフォームからメールを送る近代的な方法 | YAPC::Kansai 2017 OSAKAメールフォームからメールを送る近代的な方法 | YAPC::Kansai 2017 OSAKA
メールフォームからメールを送る近代的な方法 | YAPC::Kansai 2017 OSAKA
 
僕と北海道とPerl、それとMakefileも。
僕と北海道とPerl、それとMakefileも。僕と北海道とPerl、それとMakefileも。
僕と北海道とPerl、それとMakefileも。
 
PerlモジュールをRubyに移植する時に落ちた穴々
PerlモジュールをRubyに移植する時に落ちた穴々PerlモジュールをRubyに移植する時に落ちた穴々
PerlモジュールをRubyに移植する時に落ちた穴々
 
自動構築と自動テスト〜インフラのコード化とクラウドの優位性
自動構築と自動テスト〜インフラのコード化とクラウドの優位性自動構築と自動テスト〜インフラのコード化とクラウドの優位性
自動構築と自動テスト〜インフラのコード化とクラウドの優位性
 
Hachioji.pm #40 次のbounceHammer開発中
Hachioji.pm #40 次のbounceHammer開発中Hachioji.pm #40 次のbounceHammer開発中
Hachioji.pm #40 次のbounceHammer開発中
 
2013 11-30-mailqueue-monitoring
2013 11-30-mailqueue-monitoring2013 11-30-mailqueue-monitoring
2013 11-30-mailqueue-monitoring
 
Plackで実装したメールサーバ"Haineko"のその後/Shibuya.pl #1
Plackで実装したメールサーバ"Haineko"のその後/Shibuya.pl #1 Plackで実装したメールサーバ"Haineko"のその後/Shibuya.pl #1
Plackで実装したメールサーバ"Haineko"のその後/Shibuya.pl #1
 
Perlの書籍紹介/KOF2013
Perlの書籍紹介/KOF2013Perlの書籍紹介/KOF2013
Perlの書籍紹介/KOF2013
 
実践的bounceHammer / KOF2013
実践的bounceHammer / KOF2013実践的bounceHammer / KOF2013
実践的bounceHammer / KOF2013
 
JSONでメール送信(Haineko) / KOF2013
JSONでメール送信(Haineko) / KOF2013JSONでメール送信(Haineko) / KOF2013
JSONでメール送信(Haineko) / KOF2013
 
猫とPerl〜応用編1/YAPC Asia Tokyo 2013 LT-THON::Tiny
猫とPerl〜応用編1/YAPC Asia Tokyo 2013 LT-THON::Tiny猫とPerl〜応用編1/YAPC Asia Tokyo 2013 LT-THON::Tiny
猫とPerl〜応用編1/YAPC Asia Tokyo 2013 LT-THON::Tiny
 
Perl and Email #3 ``Haineko''/Kyoto.pm #5
Perl and Email #3 ``Haineko''/Kyoto.pm #5Perl and Email #3 ``Haineko''/Kyoto.pm #5
Perl and Email #3 ``Haineko''/Kyoto.pm #5
 
Kansai.pm #15 LT資料「猫とPerl」
Kansai.pm #15 LT資料「猫とPerl」Kansai.pm #15 LT資料「猫とPerl」
Kansai.pm #15 LT資料「猫とPerl」
 
Namba.pm #0 LT資料
Namba.pm #0 LT資料Namba.pm #0 LT資料
Namba.pm #0 LT資料
 

Recently uploaded

Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Yuma Ohgami
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...Toru Tamaki
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Danieldanielhu54
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNetToru Tamaki
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略Ryo Sasaki
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものですiPride Co., Ltd.
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdftaisei2219
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムsugiuralab
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A surveyToru Tamaki
 

Recently uploaded (9)

Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
 

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

  • 1. BounceHammer オープンソースのバウンスメール解析システム BounceHammer 株式会社キュービックルート azumakuniyuki YAPC::Asia Tokyo 2010 / バウンスメール解析システム BounceHammer / Developed by Cubicroot Co. Ltd.
  • 2. BounceHammer 自己紹介 東 邦 之 * なまえ = azumakuniyuki * しごと = サーバ管理者 > 10年 * しごと = プログラマー < 2年 * おうち = 京都市 YAPC::Asia Tokyo 2010 / バウンスメール解析システム BounceHammer / Developed by Cubicroot Co. Ltd.
  • 3. BounceHammer BounceHammer? * ばうんすはんまーと読む * バウンスメール解析専用 * 配信システムではない * 基本的にコマンドラインツール * もちろんPerl製 YAPC::Asia Tokyo 2010 / バウンスメール解析システム BounceHammer / Developed by Cubicroot Co. Ltd.
  • 4. BounceHammer バウンスメール? * エラーで返ってきたメール * 中身はだいたい英語 * リターンメール・不達メール YAPC::Asia Tokyo 2010 / バウンスメール解析システム BounceHammer / Developed by Cubicroot Co. Ltd.
  • 5. BounceHammer From: * Mailer-Daemon * Mail Delivery Subsystem * Postmaster@... YAPC::Asia Tokyo 2010 / バウンスメール解析システム BounceHammer / Developed by Cubicroot Co. Ltd.
  • 6. BounceHammer Subject: * Returned mail: see transcript ... * failure notice * Undelivered Mail Returned to ... YAPC::Asia Tokyo 2010 / バウンスメール解析システム BounceHammer / Developed by Cubicroot Co. Ltd.
  • 7. BounceHammer Bounc eHam できること merが * エラーメールを解析する * エラー理由特定(宛先不明/拒否/...) * 宛先分類(携帯/Webメール/PC/...) * 解析したらデータベースに蓄積 * 解析済みデータはYAMLで出力 YAPC::Asia Tokyo 2010 / バウンスメール解析システム BounceHammer / Developed by Cubicroot Co. Ltd.
  • 8. BounceHammer エラー理由 * 宛先不明 * ドメイン指定拒否 * メールボックスいっぱい * メールが大きすぎる * セキュリティ的なエラー YAPC::Asia Tokyo 2010 / バウンスメール解析システム BounceHammer / Developed by Cubicroot Co. Ltd.
  • 9. BounceHammer 役立つ場面 * 一般的なMTAで配信している * でもバウンス処理はしていない * そこそこ沢山配信している * でもバウンス処理はしていない YAPC::Asia Tokyo 2010 / バウンスメール解析システム BounceHammer / Developed by Cubicroot Co. Ltd.
  • 10. BounceHammer 役立つ人々 * コンテンツプロバイダ * メールマガジンスタンド * メール配信しているところ全部 * まだバウンス処理をしていない人 YAPC::Asia Tokyo 2010 / バウンスメール解析システム BounceHammer / Developed by Cubicroot Co. Ltd.
  • 11. BounceHammer 放置すると... * 携帯宛はブロックされる → 困る * 有効配信数がわからない → 困る * 遅延がひどくて送れない → 困る * 遅延で配信時間がかかる → 困る YAPC::Asia Tokyo 2010 / バウンスメール解析システム BounceHammer / Developed by Cubicroot Co. Ltd.
  • 12. BounceHammer 放置すると... とにかく困る YAPC::Asia Tokyo 2010 / バウンスメール解析システム BounceHammer / Developed by Cubicroot Co. Ltd.
  • 13. BounceHammer バウンス処理は * 確実にやるべき * 配信数が少なくてもやるべき * メール1通でも送るならやるべき YAPC::Asia Tokyo 2010 / バウンスメール解析システム BounceHammer / Developed by Cubicroot Co. Ltd.
  • 14. BounceHammer B ounc eHam 処理すると... merで * バウンスの理由が正確にわかる * バウンス記録を構造化して保存 * ウェブ管理画面でアドレス管理 * メール配信の合理化と健全化に * 自前でバウンス処理実装不必要 YAPC::Asia Tokyo 2010 / バウンスメール解析システム BounceHammer / Developed by Cubicroot Co. Ltd.
  • 15. BounceHammer Bounc eHam 処理すると... merで とにかく良い YAPC::Asia Tokyo 2010 / バウンスメール解析システム BounceHammer / Developed by Cubicroot Co. Ltd.
  • 16. BounceHammer B ounc eHam インストール merの * Perlモジュールを入れる * ./configure && make * make install * データベースの準備 * 設定ファイルの編集 YAPC::Asia Tokyo 2010 / バウンスメール解析システム BounceHammer / Developed by Cubicroot Co. Ltd.
  • 17. BounceHammer 解析済みデータの利用 * 解析済みデータはYAML ¦¦ JSON * CSVでも出力(表計算ソフトで利用) * MTAでバウンス照合→削除 * 配信プログラムでバウンス照合 * ウェブサイトでバウンス照合 YAPC::Asia Tokyo 2010 / バウンスメール解析システム BounceHammer / Developed by Cubicroot Co. Ltd.
  • 18. BounceHammer B ounc eHam 動かしてみる merを * 解析はmbox ¦¦ Maildir/を引数に * STDINからも読む(/etc/aliases) * /etc/crontabで定時処理させる * 必要に応じて解析済みデータ取得 YAPC::Asia Tokyo 2010 / バウンスメール解析システム BounceHammer / Developed by Cubicroot Co. Ltd.
  • 19. 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.
  • 20. BounceHammer 解析速度 * Linode(Xeon L5520x4 2.27GHz) * mbox = 約500通/秒 * Maildir/ = 約200通/秒 YAPC::Asia Tokyo 2010 / バウンスメール解析システム BounceHammer / Developed by Cubicroot Co. Ltd.
  • 21. 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.
  • 22. BounceHammer MTAと協調させる * 配信プログラムはいじりたくない * でもバウンスした宛先に送るの嫌 * バウンスした宛先はMTAが削除 ! YAPC::Asia Tokyo 2010 / バウンスメール解析システム BounceHammer / Developed by Cubicroot Co. Ltd.
  • 23. 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.
  • 24. BounceHammer 配信プログラムで照合 * 配信プログラムで宛先照合をする * YAMLで出力した宛先一覧を読む * 一致した宛先は送信対象から外す * YAMLが読めるなら言語を問わず YAPC::Asia Tokyo 2010 / バウンスメール解析システム BounceHammer / Developed by Cubicroot Co. Ltd.
  • 25. 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.
  • 26. BounceHammer ウェブサイトに組み込む * HTTPベースのAPIを使う * ユーザ毎のページに状態を表示 * 「登録されているアドレスは...」 * メールを受け取れるアドレスに * JSONが読めるなら言語を問わず YAPC::Asia Tokyo 2010 / バウンスメール解析システム BounceHammer / Developed by Cubicroot Co. Ltd.
  • 27. 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.
  • 28. BounceHammer Bounc eHam 今後 merの * 次の2.6.0でエラーの理由 += 4; * なるべく国産モジュール使いたい * ORMは国産化完了(DBIC→Skinny) * CGI::Application::.+ → ? * APIで書き込み可能にする YAPC::Asia Tokyo 2010 / バウンスメール解析システム BounceHammer / Developed by Cubicroot Co. Ltd.
  • 29. BounceHammer 続きはWebで http://bouncehammer.jp/ YAPC::Asia Tokyo 2010 / バウンスメール解析システム BounceHammer / Developed by Cubicroot Co. Ltd.
  • 30. BounceHammer 続きは雑誌で http://gihyo.jp/magazine/SD Software Design 2010年11月号 創刊20周年記念号に載ります! 10月18日発売! 次の月曜日です! YAPC::Asia Tokyo 2010 / バウンスメール解析システム BounceHammer / Developed by Cubicroot Co. Ltd.