[](https://travis-ci.org/azumakuniyuki/p5-Sisimai) [](https://coveralls.io/r/azumakuniyuki/p5-Sisimai)  What is Sisimai ? | シシマイ? ============================= Sisimai is a Perl module for analyzing RFC5322 bounce emails and generating structured data from parsed results. Sisimai is the system formerly known as bounceHammer 4. "Sisimai" is a coined word: Sisi (the number 4 is pronounced "Si" in Japanese) and MAI (acronym of "Mail Analyzing Interface"). Sisimai(シシマイ)ã¯RFC5322æº–æ‹ ã®ã‚¨ãƒ©ãƒ¼ãƒ¡ãƒ¼ãƒ«ã‚’解æžã—ã€è§£æžçµæžœã‚’ãƒ‡ãƒ¼ã‚¿æ§‹é€ ã« å¤‰æ›ã™ã‚‹ã‚¤ãƒ³ã‚¿ãƒ¼ãƒ•ã‚§ã‚¤ã‚¹ã‚’æä¾›ã™ã‚‹Perlモジュールã§ã™ã€‚ "シシマイ"ã¯bounceHammer version 4ã¨ã—ã¦é–‹ç™ºã—ã¦ã„ãŸã‚‚ã®ã§ã‚ã‚Šã€Version 4ãªã®ã§ "ã‚·"ã‹ã‚‰å§‹ã¾ã‚Šãƒžã‚¤(MAI: Mail Analyzing Interface)ã‚’å«ã‚€åå‰ã«ãªã‚Šã¾ã—ãŸã€‚ Key Features | 主ãªç‰¹å¾´çš„機能 ----------------------------- * __Convert Bounce Mails to Structured Data__ | __ã‚¨ãƒ©ãƒ¼ãƒ¡ãƒ¼ãƒ«ã‚’ãƒ‡ãƒ¼ã‚¿æ§‹é€ ã«å¤‰æ›__ * Supported formats are Perl and JSON | Perlã®ãƒ‡ãƒ¼ã‚¿å½¢å¼ã¨JSONã«å¯¾å¿œ * __Easy to Install, Use.__ | __インストールも使用も簡å˜__ * cpanm * git clone & make * __High Precision of Analysis__ | __高ã„解æžç²¾åº¦__ * 2 times higher than bounceHammer | 解æžç²¾åº¦ã¯bounceHammerã®äºŒå€ * Support 21 known MTAs and 5 unknown MTAs | 26種類ã®MTAã«å¯¾å¿œ * Support 19 major MSPs(Mail Service Providers) | 19種類ã®è‘—åãªMSPã«å¯¾å¿œ * Support Feedback Loop Message(ARF) | Feedback Loopã«ã‚‚対応 * Can detect 25 error reasons | 25種類ã®ã‚¨ãƒ©ãƒ¼ç†ç”±ã‚’検出 * __Faster than bounceHammer version 2.7.X__ | __bounceHammer 2.7.Xよりも高速ã«è§£æž__ * About 1.5 times faster | 1.5å€ç¨‹é«˜é€Ÿ Setting Up Sisimai | シシマイを使ã†æº–å‚™ ======================================= System requirements | 動作環境 ------------------------------ More details about system requirements are available at available at [Sisimai — How to Install and Start](http://libsisimai.org/start) page. * [Perl 5.10.1 or later](http://www.perl.org/) * [__Class::Accessor::Lite__](https://metacpan.org/pod/Class::Accessor::Lite) * [__JSON__](https://metacpan.org/pod/JSON) Install | インストール ---------------------- ### From CPAN ```shell % sudo cpanm Sisimai --> Working on Sisimai Fetching http://www.cpan.org/authors/id/A/AK/AKXLIX/Sisimai-4.1.20.tar.gz ... OK ... 1 distribution installed % perldoc -l Sisimai /usr/local/lib/perl5/site_perl/5.20.0/Sisimai.pm ``` ### From GitHub ```shell % cd /usr/local/src % git clone https://github.com/azumakuniyuki/p5-Sisimai.git % cd ./p5-Sisimai % sudo make install-from-local --> Working on . Configuring Sisimai-4.1.20 ... OK 1 distribution installed ``` Usage | 使ã„æ–¹ ============== Basic usage | 基本的ãªä½¿ã„æ–¹ ---------------------------- make() method provides feature for getting parsed data from bounced email messages like following. ```perl #! /usr/bin/env perl use Sisimai; my $v = Sisimai->make('/path/to/mbox'); # or path to Maildir/ if( defined $v ) { for my $e ( @$v ) { print ref $e; # Sisimai::Data print ref $e->recipient; # Sisimai::Address print ref $e->timestamp; # Sisimai::Time print $e->addresser->address; # shironeko@example.org # From print $e->recipient->address; # kijitora@example.jp # To print $e->recipient->host; # example.jp print $e->deliverystatus; # 5.1.1 print $e->replycode; # 550 print $e->reason; # userunknown my $h = $e->damn(); # Convert to HASH reference my $j = $e->dump('json'); # Convert to JSON string print $e->dump('json'); # JSON formatted bounce data } } # Get JSON string from parsed mailbox or Maildir/ my $j = Sisimai->dump('/path/to/mbox'); # or path to Maildir/ # dump() is added in v4.1.27 print $j; # parsed data as JSON ``` ```json [{"recipient": "kijitora@example.jp", "addresser": "shironeko@1jo.example.org", "feedbacktype": "", "action": "failed", "subject": "Nyaaaaan", "smtpcommand": "DATA", "diagnosticcode": "550 Unknown user kijitora@example.jp", "listid": "", "destination": "example.jp", "smtpagent": "Courier", "lhost": "1jo.example.org", "deliverystatus": "5.0.0", "timestamp": 1291954879, "messageid": "201012100421.oBA4LJFU042012@1jo.example.org", "diagnostictype": "SMTP", "timezoneoffset": "+0900", "reason": "filtered", "token": "ce999a4c869e3f5e4d8a77b2e310b23960fb32ab", "alias": "", "senderdomain": "1jo.example.org", "rhost": "mfsmax.example.jp"}, {"diagnostictype": "SMTP", "timezoneoffset": "+0900", "reason": "userunknown", "timestamp": 1381900535, "messageid": "E1C50F1B-1C83-4820-BC36-AC6FBFBE8568@example.org", "token": "9fe754876e9133aae5d20f0fd8dd7f05b4e9d9f0", "alias": "", "senderdomain": "example.org", "rhost": "mx.bouncehammer.jp", "action": "failed", "addresser": "kijitora@example.org", "recipient": "userunknown@bouncehammer.jp", "feedbacktype": "", "smtpcommand": "DATA", "subject": "ãƒã‚¦ãƒ³ã‚¹ãƒ¡ãƒ¼ãƒ«ã®ãƒ†ã‚¹ãƒˆ(日本語)", "destination": "bouncehammer.jp", "listid": "", "diagnosticcode": "550 5.1.1 <userunknown@bouncehammer.jp>... User Unknown", "deliverystatus": "5.1.1", "lhost": "p0000-ipbfpfx00kyoto.kyoto.example.co.jp", "smtpagent": "Sendmail"}] ``` 上記ã®ã‚ˆã†ã«Sisimaiã®make()メソッドをmboxã‹Maildirã®PATHを引数ã«ã—ã¦å®Ÿè¡Œã™ã‚‹ã¨ 解æžçµæžœãŒé…列リファレンスã§è¿”ã£ã¦ãã¾ã™ã€‚ One-Liner | ワンライナー㧠-------------------------- Beginning with Sisimai 4.1.27, dump() method is available and you can get parsed data as JSON using the method. ```shell % perl -MSisimai -lE 'print Sisimai->dump(shift)' /path/to/mbox ``` Sisimai 4.1.27ã‹ã‚‰ç™»å ´ã—ãŸdump()メソッドを使ã†ã¨ãƒ¯ãƒ³ãƒ©ã‚¤ãƒŠãƒ¼ã§JSON化ã—ãŸè§£æžçµæžœ ãŒå¾—られã¾ã™ã€‚ Sisimai Specification | シシマイã®ä»•æ§˜ ====================================== Differences between ver.2 and Sisimai | æ–°æ—§ã®é•ã„ -------------------------------------------------- The following table show the differences between version 2 (bounceHammer 2.7.13) and Sisimai. | Features | bounceHammer | Sisimai | |------------------------------------------------|---------------|-------------| | System requirements(Perl) | 5.10 - 5.14 | 5.10 - 5.22 | | Command line tools | Available | N/A | | Modules for Commercial MTAs and MPSs | N/A | Included | | WebUI/API | Included | N/A | | Database schema for storing parsed bounce data | Available | N/A[1] | | Analytical precision ratio(2000 files)[2] | 0.50 | 1.00 | | The speed of parsing email(2000 files) | 7.07s | 4.70s | | Parse 2 or more bounces in a single email | Only 1st rcpt | ALL | | Parse FeedBack Loop Message/ARF format mail | N/A | OK | | Classification based on recipient domain | Available | N/A | | Output format of parsed data | YAML,JSON,CSV | JSON only | | Easy to install | No | Yes | | Install using cpan or cpanm command | N/A | OK | | Dependencies (Except core modules of Perl) | 24 modules | 2 modules | | LOC:Source lines of code | 18200 lines | 8400 lines | | The number of tests in t/, xt/ directory | 27365 tests | 152000 tests| | License | GPLv2 or Perl | 2 clause BSD| | Support Contract provided by Developer | Available | Contact Us | 1. Implement yourself with using DBI or any O/R Mapper you like 2. See ./ANALYTICAL-PRECISION 公開ä¸ã®bouncehammer version 2.7.13ã¨Sisimai(シシマイ)ã¯ä¸‹è¨˜ã®ã‚ˆã†ãªé•ã„ãŒã‚ã‚Šã¾ã™ã€‚ | 機能 | bounceHammer | Sisimai | |------------------------------------------------|---------------|-------------| | 動作環境(Perl) | 5.10 - 5.14 | 5.10 - 5.22 | | コマンドラインツール | ã‚ã‚Š | ç„¡ã— | | 商用MTAã¨MSP対応解æžãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ« | ç„¡ã— | ã‚ã‚Š(åŒæ¢±) | | WebUIã¨API | ã‚ã‚Š | ç„¡ã— | | 解æžæ¸ˆãƒã‚¦ãƒ³ã‚¹ãƒ‡ãƒ¼ã‚¿ã‚’ä¿å˜ã™ã‚‹DBスã‚ーマ | ã‚ã‚Š | ç„¡ã—[1] | | 解æžç²¾åº¦ã®å‰²åˆ(2000通)[2] | 0.50 | 1.00 | | メール解æžé€Ÿåº¦(2000通) | 7.07秒 | 4.70秒 | | 2件以上ã®ãƒã‚¦ãƒ³ã‚¹ãŒã‚るメールã®è§£æž | 1件目ã ã‘ | 全件解æžå¯èƒ½| | FeedBack Loop/ARFå½¢å¼ã®ãƒ¡ãƒ¼ãƒ«è§£æž | éžå¯¾å¿œ | 対応済 | | 宛先ドメインã«ã‚ˆã‚‹åˆ†é¡žé …ç›® | ã‚ã‚Š | ç„¡ã— | | 解æžçµæžœã®å‡ºåŠ›å½¢å¼ | YAML,JSON,CSV | JSON | | インストール作æ¥ãŒç°¡å˜ã‹ã©ã†ã‹ | ã‚„ã‚„é¢å€’ | ç°¡å˜ã§æ¥½ | | cpanã¾ãŸã¯cpanmコマンドã§ã®ã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ« | éžå¯¾å¿œ | 対応済 | | ä¾å˜ãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«æ•°(Perlã®ã‚³ã‚¢ãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ã‚’除ã) | 24モジュール | 2モジュール | | LOC:ソースコードã®è¡Œæ•° | 18200è¡Œ | 8400è¡Œ | | テスト件数(t/,xt/ディレクトリ) | 27365件 | 152000件 | | ライセンス | GPLv2ã‹Perl | 二æ¡é …BSD | | 開発会社ã«ã‚ˆã‚‹ã‚µãƒãƒ¼ãƒˆå¥‘ç´„ | æä¾›ä¸ | å•åˆã› | 1. DBIã¾ãŸã¯å¥½ããªORMを使ã£ã¦è‡ªç”±ã«å®Ÿè£…ã—ã¦ãã ã•ã„ 2. ./ANALYTICAL-PRECISIONã‚’å‚ç…§ MTA/MSP Modules | MTA/MSPモジュール一覧 --------------------------------------- The following table is the list of MTA/MSP:(Mail Service Provider) modules. | Module Name(Sisimai::) | Description | |--------------------------|---------------------------------------------------| | MTA::Activehunter | TransWARE Active!hunter | | MTA::ApacheJames | Java Apache Mail Enterprise Server(> v4.1.26) | | MTA::Courier | Courier MTA | | MTA::Domino | IBM Domino Server | | MTA::Exchange | Microsoft Exchange Server | | MTA::Exim | Exim | | MTA::IMailServer | IPSWITCH IMail Server | | MTA::InterScanMSS | Trend Micro InterScan Messaging Security Suite | | MTA::MXLogic | McAfee SaaS | | MTA::MailFoundry | MailFoundry | | MTA::MailMarshalSMTP | Trustwave Secure Email Gateway | | MTA::McAfee | McAfee Email Appliance | | MTA::MessagingServer | Oracle Communications Messaging Server | | MTA::mFILTER | Digital Arts m-FILTER | | MTA::Notes | Lotus Notes | | MTA::OpenSMTPD | OpenSMTPD | | MTA::Postfix | Postfix | | MTA::qmail | qmail | | MTA::Sendmail | V8Sendmail: /usr/sbin/sendmail | | MTA::SurfControl | WebSense SurfControl | | MTA::V5sendmail | Sendmail version 5 | | MTA::X1 | Unknown MTA #1 | | MTA::X2 | Unknown MTA #2 | | MTA::X3 | Unknown MTA #3 | | MTA::X4 | Unknown MTA #4 qmail clones(> v4.1.23) | | MTA::X5 | Unknown MTA #5 (> v4.Y.Z ) | | MSP::DE::EinsUndEins | 1&1: http://www.1and1.de | | MSP::DE::GMX | GMX: http://www.gmx.net | | MSP::JP::Biglobe | BIGLOBE: http://www.biglobe.ne.jp | | MSP::JP::EZweb | au EZweb: http://www.au.kddi.com/mobile/ | | MSP::JP::KDDI | au by KDDI: http://www.au.kddi.com | | MSP::RU::MailRu | @mail.ru: https://mail.ru | | MSP::RU::Yandex | Yandex.Mail: http://www.yandex.ru | | MSP::UK::MessageLabs | Symantec.cloud http://www.messagelabs.com | | MSP::US::AmazonSES | AmazonSES(Sending): http://aws.amazon.com/ses/ | | MSP::US::Aol | Aol Mail: http://www.aol.com | | MSP::US::Bigfoot | Bigfoot: http://www.bigfoot.com | | MSP::US::Facebook | Facebook: https://www.facebook.com | | MSP::US::Google | Google Gmail: https://mail.google.com | | MSP::US::Outlook | Microsoft Outlook.com: https://www.outlook.com/ | | MSP::US::ReceivingSES | AmazonSES(Receiving): http://aws.amazon.com/ses/ | | MSP::US::SendGrid | SendGrid: http://sendgrid.com/ | | MSP::US::Verizon | Verizon Wireless: http://www.verizonwireless.com | | MSP::US::Yahoo | Yahoo! MAIL: https://www.yahoo.com | | MSP::US::Zoho | Zoho Mail: https://www.zoho.com | | ARF | Abuse Feedback Reporting Format | | RFC3464 | Fallback Module for MTAs | | RFC3834 | Detector for auto replied message (> v4.1.28) | 上記ã¯Sisimaiã«å«ã¾ã‚Œã¦ã‚‹MTA/MSP(メールサービスプãƒãƒã‚¤ãƒ€)モジュールã®ä¸€è¦§ã§ã™ã€‚ Bounce Reason List | ãƒã‚¦ãƒ³ã‚¹ç†ç”±ã®ä¸€è¦§ ---------------------------------------- Sisimai can detect the following 25 bounce reasons. More details about reasons are available at [Sisimai — Bounce Reason List Sisimai detects](http://libsisimai.org/reason) page. | Reason(ç†ç”±) | Description | ç†ç”±ã®èª¬æ˜Ž | |----------------|----------------------------------------|----------------------------------| | Blocked | Blocked due to client IP address | IPアドレスã«ã‚ˆã‚‹æ‹’å¦ | | ContentError | Invalid format email | ä¸æ£ãªå½¢å¼ã®ãƒ¡ãƒ¼ãƒ« | | ExceedLimit | Message size exceeded the limit(5.2.3) | メールサイズã®è¶…éŽ | | Expired | Delivery time expired | é…é€æ™‚間切れ | | Feedback | Bounced for a complaint of the message | 元メールã¸ã®è‹¦æƒ…ã«ã‚ˆã‚‹ãƒã‚¦ãƒ³ã‚¹ | | Filtered | Rejected after DATA command | DATAコマンド以é™ã§æ‹’å¦ã•ã‚ŒãŸ | | HasMoved | Destination mail addrees has moved | 宛先メールアドレスã¯ç§»å‹•ã—㟠| | HostUnknown | Unknown destination host name | 宛先ホストåãŒå˜åœ¨ã—ãªã„ | | MailboxFull | Recipient's mailbox is full | メールボックスãŒä¸€æ¯ | | MailerError | Mailer program error | メールプãƒã‚°ãƒ©ãƒ ã®ã‚¨ãƒ©ãƒ¼ | | MesgTooBig | Message size is too big(5.3.4) | メールãŒå¤§ãéŽãŽã‚‹ | | NetworkError | Network error: DNS or routing | DNSç‰ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯é–¢ä¿‚ã®ã‚¨ãƒ©ãƒ¼ | | SpamDetected | Detected a message as spam | メールã¯ã‚¹ãƒ‘ムã¨ã—ã¦åˆ¤å®šã•ã‚ŒãŸ | | NotAccept | Destinaion does not accept any message | 宛先ホストã¯ãƒ¡ãƒ¼ãƒ«ã‚’å—ã‘ã¨ã‚‰ãªã„ | | OnHold | Deciding the bounce reason is on hold | エラーç†ç”±ã®ç‰¹å®šã¯ä¿ç•™ | | Rejected | Rejected due to envelope from address | エンベãƒãƒ¼ãƒ—Fromã§æ‹’å¦ã•ã‚ŒãŸ | | NoRelaying | Relay access denied | リレーã®æ‹’å¦ | | SecurityError | Virus detected or authentication error | ウィルスã®æ¤œå‡ºã¾ãŸã¯èªè¨¼å¤±æ•— | | Suspend | Recipient's account is suspended | 宛先アカウントã¯ä¸€æ™‚çš„ã«åœæ¢ä¸ | | SystemError | Some error on the destination host | 宛先サーãƒã§ã®OSレベルã®ã‚¨ãƒ©ãƒ¼ | | SystemFull | Disk full on the destination host | 宛先サーãƒã®ãƒ‡ã‚£ã‚¹ã‚¯ãŒä¸€æ¯ | | TooManyConn | Connection rate limit exceeded | 接続制é™æ•°ã‚’超éŽã—㟠| | UserUnknown | Recipient's address does not exist | 宛先メールアドレスã¯å˜åœ¨ã—ãªã„ | | Vacation | Auto replied message (> v4.1.28 ) | 自動応ç”メッセージ(> v4.1.28 ) | | Undefined | Could not decide the error reason | ãƒã‚¦ãƒ³ã‚¹ã—ãŸç†ç”±ã¯ç‰¹å®šå‡ºæ¥ãš | Sisimaiã¯ä¸Šè¨˜ã®ã‚¨ãƒ©ãƒ¼25種を検出ã—ã¾ã™ã€‚ Parsed data structure | 解æžå¾Œã®ãƒ‡ãƒ¼ã‚¿æ§‹é€ ------------------------------------------ The following table shows a data structure(Sisimai::Data) of parsed bounce mail. More details about data structure are available at available at [Sisimai — Data Structure of Sisimai::Data Object](http://libsisimai.org/data) page. | Name | Description | 値ã®èª¬æ˜Ž | |----------------|---------------------------------------|--------------------------------| | action | The value of Action: header | Action:ヘッダã®å€¤ | | addresser | The From address | é€ä¿¡è€…ã®ã‚¢ãƒ‰ãƒ¬ã‚¹ | | alias | Alias of the recipient | å—信者アドレスã®ã‚¨ã‚¤ãƒªã‚¢ã‚¹ | | destination | The domain part of the "recipinet" | "recipient"ã®ãƒ‰ãƒ¡ã‚¤ãƒ³éƒ¨åˆ† | | deliverystatus | Delivery Status(DSN) | é…信状態(DSN)ã®å€¤ | | diagnosticcode | Error message | エラーメッセージ | | diagnostictype | Error message type | エラーメッセージã®ç¨®åˆ¥ | | feedbacktype | Feedback Type | Feedback-Typeã®ãƒ•ã‚£ãƒ¼ãƒ«ãƒ‰ | | lhost | local host name(local MTA) | é€ä¿¡å´MTAã®ãƒ›ã‚¹ãƒˆå | | listid | List-Id: header of each ML | List-Idヘッダã®å€¤ | | messageid | Message-Id: of the original message | 元メールã®Message-Id | | reason | Detected bounce reason | 検出ã—ãŸãƒã‚¦ãƒ³ã‚¹ã—ãŸç†ç”± | | recipient | Recipient address which bounced | ãƒã‚¦ãƒ³ã‚¹ã—ãŸå—信者ã®ã‚¢ãƒ‰ãƒ¬ã‚¹ | | replycode | SMTP Reply Code | SMTPå¿œç”コード | | rhost | Remote host name(remote MTA) | å—ä¿¡å´MTAã®ãƒ›ã‚¹ãƒˆå | | senderdomain | The domain part of the "addresser" | "addresser"ã®ãƒ‰ãƒ¡ã‚¤ãƒ³éƒ¨åˆ† | | softbounce | The bounce is soft bounce or not | ソフトãƒã‚¦ãƒ³ã‚¹ã§ã‚ã‚‹ã‹ã©ã†ã‹ | | smtpagent | MTA name(Sisimai::MTA::, MSP::) | MTAå(Sisimai::MTA::,MSP::) | | smtpcommand | The last SMTP command in the session | セッションä¸æœ€å¾Œã®SMTPコマンド | | subject | Subject of the original message(UTF8) | 元メールã®Subject(UTF-8) | | timestamp | Date: header in the original message | 元メールã®Date | | timezoneoffset | Time zone offset(seconds) | タイムゾーンã®æ™‚å·® | | token | MD5 value of addresser and recipient | é€ä¿¡è€…ã¨å—信者ã®ãƒãƒƒã‚·ãƒ¥å€¤ | 上記ã®è¡¨ã¯è§£æžå¾Œã®ãƒã‚¦ãƒ³ã‚¹ãƒ¡ãƒ¼ãƒ«ã®æ§‹é€ (Sisimai::Data)ã§ã™ã€‚ Emails could not be parsed | 解æžå‡ºæ¥ãªã„メール ----------------------------------------------- Bounce mails which could not be parsed is in eg/cannot-parse-yet directory. If you find any bounce email cannot be parsed using Sisimai, please add the email into the directory and send Pull-Request to this repository. 解æžå‡ºæ¥ãªã„メールã¯eg/cannot-parse-yetディレクトリã«ã¯ã„ã£ã¦ã„ã¾ã™ã€‚ã‚‚ã—ã‚‚ Sisimaiã§è§£æžå‡ºæ¥ãªã„メールを見ã¤ã‘ãŸã‚‰ã€ã“ã®ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã«è¿½åŠ ã—ã¦Pull-Request ã‚’é€ã£ã¦ãã ã•ã„。 Other Information | ãã®ä»–ã®æƒ…å ± ================================ Related Sites | 関連サイト -------------------------- * __http://libsisimai.org/__ | [Sisimai — A successor to bounceHammer, Library to parse error mails](http://libsisimai.org/) * __GitHub__ | [github.com/azumakuniyuki/p5-Sisimai](https://github.com/azumakuniyuki/p5-Sisimai) SEE ALSO | å‚考サイト --------------------- * [RFC3463 - Enhanced Mail System Status Codes](https://tools.ietf.org/html/rfc3463) * [RFC3464 - An Extensible Message Format for Delivery Status Notifications](https://tools.ietf.org/html/rfc3464) * [RFC3834 - Recommendations for Automatic Responses to Electronic Mail](https://tools.ietf.org/html/rfc3834) * [RFC5321 - Simple Mail Transfer Protocol](https://tools.ietf.org/html/rfc5321) * [RFC5322 - Internet Message Format](https://tools.ietf.org/html/rfc5322) AUTHOR | 作者 ------------- [@azumakuniyuki](https://twitter.com/azumakuniyuki) COPYRIGHT | 著作権 ------------------ Copyright (C) 2014-2015 azumakuniyuki, All Rights Reserved. LICENSE | ライセンス -------------------- This software is distributed under The BSD 2-Clause License.