SlideShare a Scribd company logo
今に伝えるメールの技術 
OGATA Tetsuji (@xtetsuji) 
2014/09/03 YAPC::Asia Tokyo 2014 Reject con
はじめに 
• この資料は公開します 
• 撮影とかTwitterなどへの実況は自由です 
• 感想お待ちしています、お手柔らかに
自己紹介 
• 尾形 鉄次 (OGATA Tetsuji) 
• Twitter: @xtetsuji 
• Blog: http://post.tetsuji.jp/ 
• mod_perl芸人として一昨年と昨年YAPC::Asia Tokyoで 
登壇しましたが、最近はその芸風は抑え気味です
今を取り巻くメールの現状
忌避されるメール 
• SPAM問題、未読メールだらけ問題、などなど 
• SMTPがシンプルじゃないしセキュアでもない 
• POP3もIMAP4もMIMEも、踏み込むと色々面倒 
• 社内連絡にはメールを使わないという企業も珍しくなく 
なった 
闇のEメール伝説 (Ricardo Signes) より 
https://www.youtube.com/watch?v=JENdgiAPD6c
Sがシンプルじゃない問題 
• Wikipediaより:SOAP(ソープ)は、XML-RPCから発 
展した、XML Webサービスのための、XMLベースの 
RPCプロトコルである。元はSimple Object Access 
Protocolの頭字語とされていたが、さまざまな成り行き 
の結果Simpleとは言いかねる複雑怪奇なシロモノとなり 
はてた[1]といったこともあり、現在は「何かの頭字語で 
はない」とされている[2]。 
https://flic.kr/p/9mn5PK
ロストテクノロジー化へ 
• 「メールはGmailで」という企業が増加して、社内に 
メールサーバを持っていない企業も珍しくなくなった 
• メールの普及を後押ししたガラケーが消えて、スマート 
フォン時代へメールの訴求ができなかったキャリア 
• 全てGoogleが悪いの戦略が当たった 
https://flic.kr/p/7Q9QAs
さらに代替ツールの攻勢 
• メールはGmailで 
• IMやチャットツールやウェブ上のコミュニケーションの 
復権 (LINE, HipChat, Slack, GitHub Issue, …) 
• メールを排除しようとする人や製品などの勢力の登場 
• スマートフォンの登場でメールのあり方が変わった隙に 
躍進する企業が多数
メールを盛り上げたのも 
滅ぼしたのも、たぶんガラケー
そういえば先日こんな集まりを 
やりました
https://atnd.org/events/51602
こっそりやろうと思っていたら 
なんかめっちゃバズって 
正直ビビった 
裏話に興味のある方は会場で私をつかまえてください
ガラケーとメールの関係 
• 外から情報を受け取るのも連絡を取るのもガラケー時代 
は全てメールだった 
• 「カラメ」という文化 
• 通知もメール (今もなお残されている伝統) 
• ガラケーの衰退、スマホでのキャリアのメール普及失敗 
によるLINE化、プッシュ通知などで、メールの重要度は 
以前よりはずいぶん低くなった 
https://flic.kr/p/2k9ym
このままではいけない!
メールの技術が継承されない! 
• 突然「メールを使った案件やって」って言われた時に、 
既に知っている人がいなくなってしまう未来が! 
• というわけでここで、2014年のメールにまつわる技術を 
Perlを絡めながら、まとめてみたいと思います 
• ロストテクノロジーにはさせない 
• この会場には私より詳しい人がたくさんいます
本題
MTA = Mail Transfer Agent 
• いわゆる「SMTPサーバ」 
• 過去色々なサーバがあったけれど、今はPostfixを選んで 
おけばだいたい良い 
• 最近のPostfixは攻めのバージョンアップをしているけれ 
ど、ネット上には2.3や2.4時代の情報があふれているの 
には注意(今の最新安定版は2.11.1)
Postfixの情報源 
• 古いPostfix情報が刷新されない状況を何とかしようと 
2013年に@ytnobodyさんと共に「日本Postfix友の会」 
を立ち上げたはいいけれど、全然活動できていないので、 
興味のある方を募集中です 
• 日本で有名な「Postfixのぺーじ」http://postfix-jp.info/ 
もドキュメントの和訳が2.3系で停止している
SMTPを手でしゃべる 
• 昔はよくトラブルシューティングでやっていた 
• telnet localhost 25 とか 
• PerlでやるならコアモジュールのNet::SMTPが同様の事 
をしている (Perl 5.7.3からコアモジュール) 
• RCPT TOで拒否される場合と、DATAで拒否される場合 
で色々違うことを推測するとか懐かしい
Perlでメールを送信するには 
• 2014年の今、普通にメールを送信するなら、 
Email::Senderが一番良い 
• Ricardo SIGNES氏によるモジュール 
• 以前より依存関係が軽くなった(Moose→Mooとか) 
• 簡単な事はそれなりに、難しいこともそれなりに
Email::Senderよりももっと! 
• Email::Senderも結構色々なオブジェクトを作って大変 
だって思うこともある 
• 手元でEmail::Senderのラッパーモジュールを書いていて 
この場で「できました」って言えればよかったんですが、 
間に合いませんでした 
• 色々と構想中ですので、できたら公開します 
https://flic.kr/p/djYmP
Perlでメールを受信するには 
• Postfixのpipeを使ってやると良い 
• .forward とかに書くものから、master.cf に pipe(8) の 
サービスとして書くものまで、方法がある 
• プログラムは何でも良くて、メール本文を標準入力から 
もらって、その結果で何かするというものを書く 
• ただ、1メール受信するごとに1プロセス起動するのは、 
CGIと同じようなもの 
https://flic.kr/p/g4vbeY
メルマガ消し込みというやつ 
• 存在しないガラケーメアドにメルマガを配信し続けると 
明白なペナルティを受けるし、ISPにも目をつけられる 
• エラーメールをプログラムで受信して解析して、必要で 
あれば以降そのアドレスへ配信しないようにする 
(いわゆる消し込み) 
• Fromの解析なら.forwardよりmaster.cfに書いたpipeの 
方が標準入力でエンベロープFromがもらえるので楽 
https://flic.kr/p/nNbCoe
メルマガ消し込みというやつ 
• メルマガは一気に大量に送るもの 
• なのでたまに配信すると、エラーメールも一気に返って 
くる可能性がある→これでメールサーバが落ちることも 
• CGI的なpipeはコストがかかりすぎる 
• ウェブプログラミングと同じで工夫が必要 
https://flic.kr/p/nNbCoe
Qpsmtpd 
• Perl製のメールサーバ、結構堅い 
• ウェブで言うとPlackみたいなもの、のようにも見える 
• Perlでプラグインも書けるしメール着信の都度プロセス 
forkしたりもしない 
• 前衛において使うのがためらわれる場合はPostfixの後ろ 
側において使うと良かったりする
エラーメールの文面は奔放 
• エラーメール(バウンスメール)の文面には実は仕様がない 
• あれを解析して、どういう事情でメールが不達だったの 
かを知る方法は相当大変 
• そういう時はbounceHammerを使うと良い(Perl製) 
• 日本のメールの専門家、@azumakuniyukiさん作
メルマガ大量配信の工夫 
• これは業者に任せたほうが無難 
• メルマガは誤配信すると相当な大事故だから 
• 送信先メールサーバに気を使ったりとかも大変だし 
• もし自前で大規模配信をするには、サーバとIPアドレス 
を並べるという力技になることが多い(プログラム言語が 
あまり関係ない世界) 
https://flic.kr/p/6gYLHR
メーリングリスト 
• これもGoogleグループとかがロストテクノロジーに追い 
込んだ技術なのか? 
• fml4がPerl5.10で動かなくなってMailmanに移行する人 
が多かったが、Mailmanも好みが分かれるところ 
• fml8プロジェクトが後継だけれど、普及しない 
• fml8は結構野心的なので応援したい
絵文字 
• ガラケーのメール文化で第一次ヒットをした絵文字 
• GoogleやAppleなどの活動で、Unicode6で正式に取り入 
れらたあとはAndroidやiPhoneに乗って世界へ 
• PerlはEncodeモジュールによる手厚いUnicodeサポート 
• 昔はガラケー各社のバラバラ文字コードテーブルのため 
にEncode::JP::MobileやUnicode::Japaneseが重宝した 
https://flic.kr/p/oDGzUo
ガラケーから絵文字を送れない 
• ガラケーから任意のSMTPサーバに絵文字入りメールを 
送るとゲタ(〓)になる 
• キャリアが混在するメーリングリストを作っても絵文字 
が化ける (詳細はガラケー大戦回顧録のブログ記事で) 
• これを解決するには技術力よりも大人の交渉力が必要 
• まぁ、今の私なら「LINE使ったほうが早いよ」っていう 
https://flic.kr/p/7WdiAr
まとめ 
• メールの技術は新興勢力によってことごとくロストテク 
ノロジー化されてしまった 
• でも今でもメールは生き残っていて、メールを扱うプロ 
グラムを書く必要性は今後もしばらくは絶対に出てくる 
• そんな時に、この情報いいよっていうことの2014年版を 
まとめたかったのがコレ
今回省いた話 
• POP3とかIMAP4とかメーラーとか 
• メールと仲良しなDNSの話 
• ExchangeサーバやNotesサーバなどと仲良くする話 
• …他いろいろ
メールは滅びぬ! 
何度でも蘇るさ! 
メールの力こそ人類の夢だからだ!
Enjoy 
&
おしまい

More Related Content

今に伝えるメールの技術 #yapcasia #yapcasiareject