25
Perl and Email #2 Perlの電子メール関係モジュールについてざっくりとした話 @azumakuniyuki Cubicroot Co. Ltd. Kansai.pm 第14回ミーティング in 京都 2011/11/26(土)

Perl and Email #2/Kansai.pm第14回ミーティング@京都

Embed Size (px)

DESCRIPTION

Kansai.pm第14回ミーティングで発表したスライド

Citation preview

Page 1: Perl and Email #2/Kansai.pm第14回ミーティング@京都

Perl and Email #2Perlの電子メール関係モジュールについてざっくりとした話

@azumakuniyukiCubicroot Co. Ltd.

Kansai.pm 第14回ミーティング in 京都 2011/11/26(土)

Page 2: Perl and Email #2/Kansai.pm第14回ミーティング@京都

自己紹介

Kansai.pm 第14回ミーティング in 京都 2011/11/26(土)

Perl and Email #2 @azumakuniyuki / Cubicroot Co. Ltd.

Page 3: Perl and Email #2/Kansai.pm第14回ミーティング@京都

自己紹介- Azuma, Kuniyuki- (@|id:)azumakuniyuki- サーバ管理者(*BSD, Linux, 昔はSolarisも)- プログラマ(Perl, /bin/sh, たまにC, R)- 京都市中京区(六角室町)

Kansai.pm 第14回ミーティング in 京都 2011/11/26(土)

Perl and Email #2 @azumakuniyuki / Cubicroot Co. Ltd.

Page 4: Perl and Email #2/Kansai.pm第14回ミーティング@京都

Perl- /bin/shで書きにくい場合はPerl- 2008年秋からモダンPerlを勉強 - モダンPerl入門+CPANモジュールガイド- YAPC::Asia(2回参加・登壇)- Kansai.pm(2回目の参加)

Kansai.pm 第14回ミーティング in 京都 2011/11/26(土)

Perl and Email #2 @azumakuniyuki / Cubicroot Co. Ltd.

Page 5: Perl and Email #2/Kansai.pm第14回ミーティング@京都

Perlで作ったもの- bounceHammer(ばうんすはんまー)- バウンスメール解析専用- コマンドラインツール+WebUI- OpenSource! 2010/03〜- http://bouncehammer.jp/

Kansai.pm 第14回ミーティング in 京都 2011/11/26(土)

Perl and Email #2 @azumakuniyuki / Cubicroot Co. Ltd.

Page 6: Perl and Email #2/Kansai.pm第14回ミーティング@京都

本題

Kansai.pm 第14回ミーティング in 京都 2011/11/26(土)

Perl and Email #2 @azumakuniyuki / Cubicroot Co. Ltd.

Page 7: Perl and Email #2/Kansai.pm第14回ミーティング@京都

Mail::*, MIME::*- 伝統的なメール関係のモジュール- 大量にある- どれを使ったらいいのやら

Kansai.pm 第14回ミーティング in 京都 2011/11/26(土)

Perl and Email #2 @azumakuniyuki / Cubicroot Co. Ltd.

Page 8: Perl and Email #2/Kansai.pm第14回ミーティング@京都

Perl Email ProjectKansai.pm 第14回ミーティング in 京都 2011/11/26(土)

Perl and Email #2 @azumakuniyuki / Cubicroot Co. Ltd.

Page 9: Perl and Email #2/Kansai.pm第14回ミーティング@京都

Perl Email Project(PEP)- Mail::*, MIME::*を刷新- 軽量なEmail::*- http://emailproject.perl.org/- 人手が足りない→Wiki閉じた(2009)- メーリングリストは流れている

http://emailproject.perl.org/

Kansai.pm 第14回ミーティング in 京都 2011/11/26(土)

Perl and Email #2 @azumakuniyuki / Cubicroot Co. Ltd.

Page 10: Perl and Email #2/Kansai.pm第14回ミーティング@京都

Install PEP- cpan install Task::Email::PEP::All⏎- ↑全部インストール(約40個ぐらい)- cpan install Task::Email::PEP::NoStore⏎- ↑Class::DBI依存のEmail::Store以外- cpan Email::Address⏎- ↑個別にインストール

Kansai.pm 第14回ミーティング in 京都 2011/11/26(土)

Perl and Email #2 @azumakuniyuki / Cubicroot Co. Ltd.

Page 11: Perl and Email #2/Kansai.pm第14回ミーティング@京都

作成・解析

Kansai.pm 第14回ミーティング in 京都 2011/11/26(土)

Perl and Email #2 @azumakuniyuki / Cubicroot Co. Ltd.

Page 12: Perl and Email #2/Kansai.pm第14回ミーティング@京都

Email::Simple- メール解析・作成モジュール- 単純なテキストメール用- 添付ファイルとかmultipartなのは無理

Kansai.pm 第14回ミーティング in 京都 2011/11/26(土)

Perl and Email #2 @azumakuniyuki / Cubicroot Co. Ltd.

Page 13: Perl and Email #2/Kansai.pm第14回ミーティング@京都

Email::MIME- メール解析・作成モジュール- Email::MIME->create(...- ヘッダの日本語部分はEncode使う- 'To' => encode( 'MIME-Header-ISO-2022-JP',- 添付ファイルもOK

Kansai.pm 第14回ミーティング in 京都 2011/11/26(土)

Perl and Email #2 @azumakuniyuki / Cubicroot Co. Ltd.

Page 14: Perl and Email #2/Kansai.pm第14回ミーティング@京都

送信

Kansai.pm 第14回ミーティング in 京都 2011/11/26(土)

Perl and Email #2 @azumakuniyuki / Cubicroot Co. Ltd.

Page 15: Perl and Email #2/Kansai.pm第14回ミーティング@京都

Email::Send- 軽量なメール送信モジュール- 昔はMail::Sendmail- Envelope Fromの指定ができない- Return::Valueモジュール

Kansai.pm 第14回ミーティング in 京都 2011/11/26(土)

Perl and Email #2 @azumakuniyuki / Cubicroot Co. Ltd.

Page 16: Perl and Email #2/Kansai.pm第14回ミーティング@京都

Email::Sender- メール送信モジュール(Email::Sendの後継)- Envelope Fromの指定できる- Email::Sendより速い (65% faster)- Moose ←依存モジュールは多め- 速度が必要ならNet::SMTP (33% faster)

http://search.cpan.org/~rjbs/Email-Sender/lib/Email/Sender/Manual/QuickStart.pm

Kansai.pm 第14回ミーティング in 京都 2011/11/26(土)

Perl and Email #2 @azumakuniyuki / Cubicroot Co. Ltd.

Page 17: Perl and Email #2/Kansai.pm第14回ミーティング@京都

Net::SMTP- 伝統的なメール送信モジュール- Perl 5.7.3からコアモジュール- SMTPの手順に従って送信- SMTPの知識が少し必要- ->datasend( ${Email::MIMEで作ったメール} );

Kansai.pm 第14回ミーティング in 京都 2011/11/26(土)

Perl and Email #2 @azumakuniyuki / Cubicroot Co. Ltd.

Page 18: Perl and Email #2/Kansai.pm第14回ミーティング@京都

メールアドレス

Kansai.pm 第14回ミーティング in 京都 2011/11/26(土)

Perl and Email #2 @azumakuniyuki / Cubicroot Co. Ltd.

Page 19: Perl and Email #2/Kansai.pm第14回ミーティング@京都

Email::Address- メールアドレス解析モジュール- @x = テキストからアドレスを抽出- "ほげ" <[email protected]>- Email::Address

Kansai.pm 第14回ミーティング in 京都 2011/11/26(土)

Perl and Email #2 @azumakuniyuki / Cubicroot Co. Ltd.

Page 20: Perl and Email #2/Kansai.pm第14回ミーティング@京都

Email::Address::Loose- 国内携帯電話のRFC違反アドレス対応- RFC-ignored-localpart.@- RFC..ignored..localpart@- 今は取得できないけどまだ存在する

Kansai.pm 第14回ミーティング in 京都 2011/11/26(土)

Perl and Email #2 @azumakuniyuki / Cubicroot Co. Ltd.

Page 21: Perl and Email #2/Kansai.pm第14回ミーティング@京都

Email::Valid- メールアドレスが正しいかどうか検査- ->address() 正しい形式かどうか- ->mx() MXレコードがあるかどうか- ->address(… '-tldcheck' => 1); #TLD

Kansai.pm 第14回ミーティング in 京都 2011/11/26(土)

Perl and Email #2 @azumakuniyuki / Cubicroot Co. Ltd.

Page 22: Perl and Email #2/Kansai.pm第14回ミーティング@京都

サーバ

Kansai.pm 第14回ミーティング in 京都 2011/11/26(土)

Perl and Email #2 @azumakuniyuki / Cubicroot Co. Ltd.

Page 23: Perl and Email #2/Kansai.pm第14回ミーティング@京都

Net::Server::Mail- use Net::Server::Mail::SMTP;- ローカルに立ち上げるSMTPサーバ- 各SMTPコマンドに対応するsub {}を呼ぶ- HELO, MAIL, RCPT, DATA,…- 受信後のキュー処理とかは自前で実装

Kansai.pm 第14回ミーティング in 京都 2011/11/26(土)

Perl and Email #2 @azumakuniyuki / Cubicroot Co. Ltd.

Page 24: Perl and Email #2/Kansai.pm第14回ミーティング@京都

qpsmtpd- Perl製SMTPサーバ- qmail-smtpdの拡張版的な位置付け- perl.org, apache,org, cpan.org- MTAを完全に置き換えるものではない- ↑Sendmail, Postfix, qmailとか

http://smtpd.develooper.com/

Kansai.pm 第14回ミーティング in 京都 2011/11/26(土)

Perl and Email #2 @azumakuniyuki / Cubicroot Co. Ltd.

Page 25: Perl and Email #2/Kansai.pm第14回ミーティング@京都

ご静聴ありがとう

ございました

Kansai.pm 第14回ミーティング in 京都 2011/11/26(土)

Perl and Email #2 @azumakuniyuki / Cubicroot Co. Ltd.