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