sisimai 4.21.1 → 4.22.0
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of sisimai might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/ANALYTICAL-PRECISION +56 -56
- data/ChangeLog.md +16 -0
- data/Developers.mk +15 -33
- data/LICENSE +1 -1
- data/README-JA.md +11 -11
- data/README.md +11 -11
- data/fig/sisimai-architecture.png +0 -0
- data/lib/sisimai.rb +4 -4
- data/lib/sisimai/address.rb +254 -5
- data/lib/sisimai/arf.rb +6 -6
- data/lib/sisimai/bite.rb +37 -0
- data/lib/sisimai/bite/email.rb +53 -0
- data/lib/sisimai/bite/email/activehunter.rb +124 -0
- data/lib/sisimai/bite/email/amazonses.rb +247 -0
- data/lib/sisimai/bite/email/amazonworkmail.rb +192 -0
- data/lib/sisimai/bite/email/aol.rb +208 -0
- data/lib/sisimai/bite/email/apachejames.rb +169 -0
- data/lib/sisimai/bite/email/bigfoot.rb +207 -0
- data/lib/sisimai/bite/email/biglobe.rb +148 -0
- data/lib/sisimai/bite/email/courier.rb +265 -0
- data/lib/sisimai/bite/email/domino.rb +174 -0
- data/lib/sisimai/bite/email/einsundeins.rb +143 -0
- data/lib/sisimai/bite/email/exchange2003.rb +284 -0
- data/lib/sisimai/bite/email/exchange2007.rb +178 -0
- data/lib/sisimai/bite/email/exim.rb +522 -0
- data/lib/sisimai/bite/email/ezweb.rb +260 -0
- data/lib/sisimai/bite/email/facebook.rb +274 -0
- data/lib/sisimai/bite/email/gmx.rb +167 -0
- data/lib/sisimai/bite/email/google.rb +320 -0
- data/lib/sisimai/bite/email/gsuite.rb +273 -0
- data/lib/sisimai/bite/email/imailserver.rb +181 -0
- data/lib/sisimai/bite/email/interscanmss.rb +146 -0
- data/lib/sisimai/bite/email/kddi.rb +166 -0
- data/lib/sisimai/bite/email/mailfoundry.rb +133 -0
- data/lib/sisimai/bite/email/mailmarshalsmtp.rb +173 -0
- data/lib/sisimai/bite/email/mailru.rb +271 -0
- data/lib/sisimai/bite/email/mcafee.rb +169 -0
- data/lib/sisimai/bite/email/messagelabs.rb +213 -0
- data/lib/sisimai/bite/email/messagingserver.rb +206 -0
- data/lib/sisimai/bite/email/mfilter.rb +165 -0
- data/lib/sisimai/bite/email/mxlogic.rb +253 -0
- data/lib/sisimai/bite/email/notes.rb +181 -0
- data/lib/sisimai/bite/email/office365.rb +262 -0
- data/lib/sisimai/bite/email/opensmtpd.rb +192 -0
- data/lib/sisimai/bite/email/outlook.rb +207 -0
- data/lib/sisimai/bite/email/postfix.rb +310 -0
- data/lib/sisimai/bite/email/qmail.rb +304 -0
- data/lib/sisimai/bite/email/receivingses.rb +221 -0
- data/lib/sisimai/bite/email/sendgrid.rb +223 -0
- data/lib/sisimai/bite/email/sendmail.rb +290 -0
- data/lib/sisimai/bite/email/surfcontrol.rb +162 -0
- data/lib/sisimai/bite/email/userdefined.rb +129 -0
- data/lib/sisimai/bite/email/v5sendmail.rb +208 -0
- data/lib/sisimai/bite/email/verizon.rb +265 -0
- data/lib/sisimai/bite/email/x1.rb +124 -0
- data/lib/sisimai/bite/email/x2.rb +125 -0
- data/lib/sisimai/bite/email/x3.rb +141 -0
- data/lib/sisimai/bite/email/x4.rb +325 -0
- data/lib/sisimai/bite/email/x5.rb +178 -0
- data/lib/sisimai/bite/email/yahoo.rb +148 -0
- data/lib/sisimai/bite/email/yandex.rb +204 -0
- data/lib/sisimai/bite/email/zoho.rb +167 -0
- data/lib/sisimai/bite/json.rb +38 -0
- data/lib/sisimai/bite/json/amazonses.rb +255 -0
- data/lib/sisimai/bite/json/sendgrid.rb +79 -0
- data/lib/sisimai/ced.rb +30 -6
- data/lib/sisimai/data.rb +5 -5
- data/lib/sisimai/message.rb +6 -6
- data/lib/sisimai/message/email.rb +12 -11
- data/lib/sisimai/message/json.rb +20 -19
- data/lib/sisimai/msp.rb +15 -3
- data/lib/sisimai/mta.rb +15 -3
- data/lib/sisimai/order.rb +1 -1
- data/lib/sisimai/order/email.rb +113 -119
- data/lib/sisimai/order/json.rb +11 -10
- data/lib/sisimai/reason.rb +5 -4
- data/lib/sisimai/reason/policyviolation.rb +64 -0
- data/lib/sisimai/reason/securityerror.rb +13 -23
- data/lib/sisimai/reason/spamdetected.rb +1 -0
- data/lib/sisimai/reason/syntaxerror.rb +1 -0
- data/lib/sisimai/reason/virusdetected.rb +56 -0
- data/lib/sisimai/rfc3464.rb +8 -8
- data/lib/sisimai/rfc3834.rb +2 -2
- data/lib/sisimai/rfc5322.rb +1 -1
- data/lib/sisimai/skeleton.rb +1 -1
- data/lib/sisimai/smtp/error.rb +3 -3
- data/lib/sisimai/smtp/status.rb +26 -24
- data/lib/sisimai/version.rb +1 -1
- data/set-of-emails/README.md +1 -0
- data/set-of-emails/{jsonapi/ced-us-amazonses-01.json → jsonobj/json-amazonses-01.json} +0 -0
- data/set-of-emails/{jsonapi/ced-us-amazonses-02.json → jsonobj/json-amazonses-02.json} +0 -0
- data/set-of-emails/{jsonapi/ced-us-amazonses-03.json → jsonobj/json-amazonses-03.json} +0 -0
- data/set-of-emails/{jsonapi/ced-us-amazonses-04.json → jsonobj/json-amazonses-04.json} +0 -0
- data/set-of-emails/{jsonapi/ced-us-amazonses-05.json → jsonobj/json-amazonses-05.json} +0 -0
- data/set-of-emails/{jsonapi/ced-us-sendgrid-01.json → jsonobj/json-sendgrid-01.json} +0 -0
- data/set-of-emails/{jsonapi/ced-us-sendgrid-02.json → jsonobj/json-sendgrid-02.json} +0 -0
- data/set-of-emails/{jsonapi/ced-us-sendgrid-03.json → jsonobj/json-sendgrid-03.json} +0 -0
- data/set-of-emails/{jsonapi/ced-us-sendgrid-04.json → jsonobj/json-sendgrid-04.json} +0 -0
- data/set-of-emails/{jsonapi/ced-us-sendgrid-05.json → jsonobj/json-sendgrid-05.json} +0 -0
- data/set-of-emails/{jsonapi/ced-us-sendgrid-06.json → jsonobj/json-sendgrid-06.json} +0 -0
- data/set-of-emails/{jsonapi/ced-us-sendgrid-07.json → jsonobj/json-sendgrid-07.json} +0 -0
- data/set-of-emails/{jsonapi/ced-us-sendgrid-08.json → jsonobj/json-sendgrid-08.json} +0 -0
- data/set-of-emails/{jsonapi/ced-us-sendgrid-09.json → jsonobj/json-sendgrid-09.json} +0 -0
- data/set-of-emails/{jsonapi/ced-us-sendgrid-10.json → jsonobj/json-sendgrid-10.json} +0 -0
- data/set-of-emails/{jsonapi/ced-us-sendgrid-11.json → jsonobj/json-sendgrid-11.json} +0 -0
- data/set-of-emails/maildir/bsd/README.md +25 -17
- data/set-of-emails/maildir/bsd/{mta-activehunter-01.eml → email-activehunter-01.eml} +0 -0
- data/set-of-emails/maildir/bsd/{mta-activehunter-02.eml → email-activehunter-02.eml} +0 -0
- data/set-of-emails/maildir/bsd/{msp-us-amazonses-01.eml → email-amazonses-01.eml} +0 -0
- data/set-of-emails/maildir/bsd/{msp-us-amazonses-02.eml → email-amazonses-02.eml} +0 -0
- data/set-of-emails/maildir/bsd/{msp-us-amazonses-03.eml → email-amazonses-03.eml} +0 -0
- data/set-of-emails/maildir/bsd/{msp-us-amazonses-04.eml → email-amazonses-04.eml} +0 -0
- data/set-of-emails/maildir/bsd/{msp-us-amazonses-05.eml → email-amazonses-05.eml} +0 -0
- data/set-of-emails/maildir/bsd/{msp-us-amazonses-06.eml → email-amazonses-06.eml} +0 -0
- data/set-of-emails/maildir/bsd/{msp-us-amazonses-07.eml → email-amazonses-07.eml} +0 -0
- data/set-of-emails/maildir/bsd/{msp-us-amazonses-08.eml → email-amazonses-08.eml} +0 -0
- data/set-of-emails/maildir/bsd/{ced-us-amazonses-01.eml → email-amazonses-09.eml} +0 -0
- data/set-of-emails/maildir/bsd/{ced-us-amazonses-02.eml → email-amazonses-10.eml} +0 -0
- data/set-of-emails/maildir/bsd/{ced-us-amazonses-03.eml → email-amazonses-11.eml} +0 -0
- data/set-of-emails/maildir/bsd/{ced-us-amazonses-04.eml → email-amazonses-12.eml} +0 -0
- data/set-of-emails/maildir/bsd/{ced-us-amazonses-05.eml → email-amazonses-13.eml} +0 -0
- data/set-of-emails/maildir/bsd/{msp-us-amazonworkmail-01.eml → email-amazonworkmail-01.eml} +0 -0
- data/set-of-emails/maildir/bsd/{msp-us-amazonworkmail-02.eml → email-amazonworkmail-02.eml} +0 -0
- data/set-of-emails/maildir/bsd/{msp-us-amazonworkmail-03.eml → email-amazonworkmail-03.eml} +0 -0
- data/set-of-emails/maildir/bsd/{msp-us-amazonworkmail-04.eml → email-amazonworkmail-04.eml} +0 -0
- data/set-of-emails/maildir/bsd/{msp-us-amazonworkmail-05.eml → email-amazonworkmail-05.eml} +0 -0
- data/set-of-emails/maildir/bsd/{msp-us-amazonworkmail-06.eml → email-amazonworkmail-06.eml} +0 -0
- data/set-of-emails/maildir/bsd/{msp-us-amazonworkmail-07.eml → email-amazonworkmail-07.eml} +0 -0
- data/set-of-emails/maildir/bsd/{msp-us-aol-01.eml → email-aol-01.eml} +0 -0
- data/set-of-emails/maildir/bsd/{msp-us-aol-02.eml → email-aol-02.eml} +0 -0
- data/set-of-emails/maildir/bsd/{msp-us-aol-03.eml → email-aol-03.eml} +0 -0
- data/set-of-emails/maildir/bsd/{msp-us-aol-04.eml → email-aol-04.eml} +0 -0
- data/set-of-emails/maildir/bsd/{msp-us-aol-05.eml → email-aol-05.eml} +0 -0
- data/set-of-emails/maildir/bsd/{msp-us-aol-06.eml → email-aol-06.eml} +0 -0
- data/set-of-emails/maildir/bsd/{mta-apachejames-01.eml → email-apachejames-01.eml} +0 -0
- data/set-of-emails/maildir/bsd/{msp-us-bigfoot-01.eml → email-bigfoot-01.eml} +0 -0
- data/set-of-emails/maildir/bsd/{msp-jp-biglobe-01.eml → email-biglobe-01.eml} +0 -0
- data/set-of-emails/maildir/bsd/{mta-courier-01.eml → email-courier-01.eml} +0 -0
- data/set-of-emails/maildir/bsd/{mta-courier-02.eml → email-courier-02.eml} +0 -0
- data/set-of-emails/maildir/bsd/{mta-courier-03.eml → email-courier-03.eml} +0 -0
- data/set-of-emails/maildir/bsd/{mta-courier-04.eml → email-courier-04.eml} +0 -0
- data/set-of-emails/maildir/bsd/{mta-domino-01.eml → email-domino-01.eml} +0 -0
- data/set-of-emails/maildir/bsd/{mta-domino-02.eml → email-domino-02.eml} +0 -0
- data/set-of-emails/maildir/bsd/{msp-de-einsundeins-01.eml → email-einsundeins-01.eml} +0 -0
- data/set-of-emails/maildir/bsd/{mta-exchange2003-01.eml → email-exchange2003-01.eml} +0 -0
- data/set-of-emails/maildir/bsd/{mta-exchange2003-02.eml → email-exchange2003-02.eml} +0 -0
- data/set-of-emails/maildir/bsd/{mta-exchange2003-03.eml → email-exchange2003-03.eml} +0 -0
- data/set-of-emails/maildir/bsd/{mta-exchange2003-04.eml → email-exchange2003-04.eml} +0 -0
- data/set-of-emails/maildir/bsd/{mta-exchange2003-05.eml → email-exchange2003-05.eml} +0 -0
- data/set-of-emails/maildir/bsd/{mta-exchange2003-06.eml → email-exchange2003-06.eml} +0 -0
- data/set-of-emails/maildir/bsd/{mta-exchange2007-01.eml → email-exchange2007-01.eml} +0 -0
- data/set-of-emails/maildir/bsd/{mta-exchange2007-02.eml → email-exchange2007-02.eml} +0 -0
- data/set-of-emails/maildir/bsd/{mta-exchange2007-03.eml → email-exchange2007-03.eml} +0 -0
- data/set-of-emails/maildir/bsd/{mta-exim-01.eml → email-exim-01.eml} +0 -0
- data/set-of-emails/maildir/bsd/{mta-exim-02.eml → email-exim-02.eml} +0 -0
- data/set-of-emails/maildir/bsd/{mta-exim-03.eml → email-exim-03.eml} +0 -0
- data/set-of-emails/maildir/bsd/{mta-exim-04.eml → email-exim-04.eml} +0 -0
- data/set-of-emails/maildir/bsd/{mta-exim-05.eml → email-exim-05.eml} +0 -0
- data/set-of-emails/maildir/bsd/{mta-exim-06.eml → email-exim-06.eml} +0 -0
- data/set-of-emails/maildir/bsd/{mta-exim-07.eml → email-exim-07.eml} +0 -0
- data/set-of-emails/maildir/bsd/{mta-exim-08.eml → email-exim-08.eml} +0 -0
- data/set-of-emails/maildir/bsd/{mta-exim-09.eml → email-exim-09.eml} +0 -0
- data/set-of-emails/maildir/bsd/{mta-exim-10.eml → email-exim-10.eml} +0 -0
- data/set-of-emails/maildir/bsd/{mta-exim-11.eml → email-exim-11.eml} +0 -0
- data/set-of-emails/maildir/bsd/{mta-exim-12.eml → email-exim-12.eml} +0 -0
- data/set-of-emails/maildir/bsd/{mta-exim-13.eml → email-exim-13.eml} +0 -0
- data/set-of-emails/maildir/bsd/{mta-exim-14.eml → email-exim-14.eml} +0 -0
- data/set-of-emails/maildir/bsd/{mta-exim-15.eml → email-exim-15.eml} +0 -0
- data/set-of-emails/maildir/bsd/{mta-exim-16.eml → email-exim-16.eml} +0 -0
- data/set-of-emails/maildir/bsd/{mta-exim-17.eml → email-exim-17.eml} +0 -0
- data/set-of-emails/maildir/bsd/{mta-exim-18.eml → email-exim-18.eml} +0 -0
- data/set-of-emails/maildir/bsd/{mta-exim-19.eml → email-exim-19.eml} +0 -0
- data/set-of-emails/maildir/bsd/{mta-exim-20.eml → email-exim-20.eml} +0 -0
- data/set-of-emails/maildir/bsd/{mta-exim-21.eml → email-exim-21.eml} +0 -0
- data/set-of-emails/maildir/bsd/{mta-exim-22.eml → email-exim-22.eml} +0 -0
- data/set-of-emails/maildir/bsd/{mta-exim-23.eml → email-exim-23.eml} +0 -0
- data/set-of-emails/maildir/bsd/{mta-exim-24.eml → email-exim-24.eml} +0 -0
- data/set-of-emails/maildir/bsd/{mta-exim-25.eml → email-exim-25.eml} +0 -0
- data/set-of-emails/maildir/bsd/{mta-exim-26.eml → email-exim-26.eml} +0 -0
- data/set-of-emails/maildir/bsd/{mta-exim-27.eml → email-exim-27.eml} +0 -0
- data/set-of-emails/maildir/bsd/{mta-exim-28.eml → email-exim-28.eml} +0 -0
- data/set-of-emails/maildir/bsd/{mta-exim-29.eml → email-exim-29.eml} +0 -0
- data/set-of-emails/maildir/bsd/{mta-exim-30.eml → email-exim-30.eml} +0 -0
- data/set-of-emails/maildir/bsd/{msp-jp-ezweb-01.eml → email-ezweb-01.eml} +0 -0
- data/set-of-emails/maildir/bsd/{msp-jp-ezweb-02.eml → email-ezweb-02.eml} +0 -0
- data/set-of-emails/maildir/bsd/{msp-jp-ezweb-03.eml → email-ezweb-03.eml} +0 -0
- data/set-of-emails/maildir/bsd/{msp-jp-ezweb-04.eml → email-ezweb-04.eml} +0 -0
- data/set-of-emails/maildir/bsd/{msp-jp-ezweb-05.eml → email-ezweb-05.eml} +0 -0
- data/set-of-emails/maildir/bsd/{msp-jp-ezweb-06.eml → email-ezweb-06.eml} +0 -0
- data/set-of-emails/maildir/bsd/{msp-us-facebook-01.eml → email-facebook-01.eml} +0 -0
- data/set-of-emails/maildir/bsd/{msp-us-facebook-02.eml → email-facebook-02.eml} +0 -0
- data/set-of-emails/maildir/bsd/{msp-de-gmx-01.eml → email-gmx-01.eml} +0 -0
- data/set-of-emails/maildir/bsd/{msp-de-gmx-02.eml → email-gmx-02.eml} +0 -0
- data/set-of-emails/maildir/bsd/{msp-de-gmx-03.eml → email-gmx-03.eml} +0 -0
- data/set-of-emails/maildir/bsd/{msp-de-gmx-04.eml → email-gmx-04.eml} +0 -0
- data/set-of-emails/maildir/bsd/{msp-us-google-01.eml → email-google-01.eml} +0 -0
- data/set-of-emails/maildir/bsd/{msp-us-google-02.eml → email-google-02.eml} +0 -0
- data/set-of-emails/maildir/bsd/{msp-us-google-03.eml → email-google-03.eml} +0 -0
- data/set-of-emails/maildir/bsd/{msp-us-google-04.eml → email-google-04.eml} +0 -0
- data/set-of-emails/maildir/bsd/{msp-us-google-05.eml → email-google-05.eml} +0 -0
- data/set-of-emails/maildir/bsd/{msp-us-google-06.eml → email-google-06.eml} +0 -0
- data/set-of-emails/maildir/bsd/{msp-us-google-07.eml → email-google-07.eml} +0 -0
- data/set-of-emails/maildir/bsd/{msp-us-google-08.eml → email-google-08.eml} +0 -0
- data/set-of-emails/maildir/bsd/{msp-us-google-09.eml → email-google-09.eml} +0 -0
- data/set-of-emails/maildir/bsd/{msp-us-google-10.eml → email-google-10.eml} +0 -0
- data/set-of-emails/maildir/bsd/{msp-us-google-11.eml → email-google-11.eml} +0 -0
- data/set-of-emails/maildir/bsd/{msp-us-google-12.eml → email-google-12.eml} +0 -0
- data/set-of-emails/maildir/bsd/{msp-us-google-13.eml → email-google-13.eml} +0 -0
- data/set-of-emails/maildir/bsd/{msp-us-google-14.eml → email-google-14.eml} +0 -0
- data/set-of-emails/maildir/bsd/{msp-us-google-15.eml → email-google-15.eml} +0 -0
- data/set-of-emails/maildir/bsd/{msp-us-google-16.eml → email-google-16.eml} +0 -0
- data/set-of-emails/maildir/bsd/{msp-us-google-17.eml → email-google-17.eml} +0 -0
- data/set-of-emails/maildir/bsd/{msp-us-gsuite-01.eml → email-gsuite-01.eml} +0 -0
- data/set-of-emails/maildir/bsd/{msp-us-gsuite-02.eml → email-gsuite-02.eml} +0 -0
- data/set-of-emails/maildir/bsd/{msp-us-gsuite-03.eml → email-gsuite-03.eml} +0 -0
- data/set-of-emails/maildir/bsd/{msp-us-gsuite-04.eml → email-gsuite-04.eml} +0 -0
- data/set-of-emails/maildir/bsd/{msp-us-gsuite-05.eml → email-gsuite-05.eml} +0 -0
- data/set-of-emails/maildir/bsd/{msp-us-gsuite-06.eml → email-gsuite-06.eml} +0 -0
- data/set-of-emails/maildir/bsd/{msp-us-gsuite-07.eml → email-gsuite-07.eml} +0 -0
- data/set-of-emails/maildir/bsd/{mta-imailserver-01.eml → email-imailserver-01.eml} +0 -0
- data/set-of-emails/maildir/bsd/{mta-imailserver-02.eml → email-imailserver-02.eml} +0 -0
- data/set-of-emails/maildir/bsd/{mta-imailserver-03.eml → email-imailserver-03.eml} +0 -0
- data/set-of-emails/maildir/bsd/{mta-imailserver-04.eml → email-imailserver-04.eml} +0 -0
- data/set-of-emails/maildir/bsd/{mta-imailserver-05.eml → email-imailserver-05.eml} +0 -0
- data/set-of-emails/maildir/bsd/{mta-imailserver-06.eml → email-imailserver-06.eml} +0 -0
- data/set-of-emails/maildir/bsd/{mta-interscanmss-01.eml → email-interscanmss-01.eml} +0 -0
- data/set-of-emails/maildir/bsd/{mta-interscanmss-02.eml → email-interscanmss-02.eml} +0 -0
- data/set-of-emails/maildir/bsd/{msp-jp-kddi-01.eml → email-kddi-01.eml} +0 -0
- data/set-of-emails/maildir/bsd/{msp-jp-kddi-02.eml → email-kddi-02.eml} +0 -0
- data/set-of-emails/maildir/bsd/{msp-jp-kddi-03.eml → email-kddi-03.eml} +0 -0
- data/set-of-emails/maildir/bsd/{mta-mailfoundry-01.eml → email-mailfoundry-01.eml} +0 -0
- data/set-of-emails/maildir/bsd/{mta-mailfoundry-02.eml → email-mailfoundry-02.eml} +0 -0
- data/set-of-emails/maildir/bsd/{mta-mailmarshalsmtp-01.eml → email-mailmarshalsmtp-01.eml} +0 -0
- data/set-of-emails/maildir/bsd/{msp-ru-mailru-01.eml → email-mailru-01.eml} +0 -0
- data/set-of-emails/maildir/bsd/{msp-ru-mailru-02.eml → email-mailru-02.eml} +0 -0
- data/set-of-emails/maildir/bsd/{msp-ru-mailru-03.eml → email-mailru-03.eml} +0 -0
- data/set-of-emails/maildir/bsd/{msp-ru-mailru-04.eml → email-mailru-04.eml} +0 -0
- data/set-of-emails/maildir/bsd/{msp-ru-mailru-05.eml → email-mailru-05.eml} +0 -0
- data/set-of-emails/maildir/bsd/{msp-ru-mailru-06.eml → email-mailru-06.eml} +0 -0
- data/set-of-emails/maildir/bsd/{mta-mcafee-01.eml → email-mcafee-01.eml} +0 -0
- data/set-of-emails/maildir/bsd/{mta-mcafee-02.eml → email-mcafee-02.eml} +0 -0
- data/set-of-emails/maildir/bsd/{mta-mcafee-03.eml → email-mcafee-03.eml} +0 -0
- data/set-of-emails/maildir/bsd/{msp-uk-messagelabs-01.eml → email-messagelabs-01.eml} +0 -0
- data/set-of-emails/maildir/bsd/{mta-messagingserver-01.eml → email-messagingserver-01.eml} +0 -0
- data/set-of-emails/maildir/bsd/{mta-messagingserver-02.eml → email-messagingserver-02.eml} +0 -0
- data/set-of-emails/maildir/bsd/{mta-messagingserver-03.eml → email-messagingserver-03.eml} +0 -0
- data/set-of-emails/maildir/bsd/{mta-messagingserver-04.eml → email-messagingserver-04.eml} +0 -0
- data/set-of-emails/maildir/bsd/{mta-messagingserver-05.eml → email-messagingserver-05.eml} +0 -0
- data/set-of-emails/maildir/bsd/{mta-messagingserver-06.eml → email-messagingserver-06.eml} +0 -0
- data/set-of-emails/maildir/bsd/{mta-messagingserver-07.eml → email-messagingserver-07.eml} +0 -0
- data/set-of-emails/maildir/bsd/{mta-mfilter-01.eml → email-mfilter-01.eml} +0 -0
- data/set-of-emails/maildir/bsd/{mta-mfilter-02.eml → email-mfilter-02.eml} +0 -0
- data/set-of-emails/maildir/bsd/{mta-mfilter-03.eml → email-mfilter-03.eml} +0 -0
- data/set-of-emails/maildir/bsd/{mta-mxlogic-01.eml → email-mxlogic-01.eml} +0 -0
- data/set-of-emails/maildir/bsd/{mta-mxlogic-02.eml → email-mxlogic-02.eml} +0 -0
- data/set-of-emails/maildir/bsd/{mta-mxlogic-03.eml → email-mxlogic-03.eml} +0 -0
- data/set-of-emails/maildir/bsd/{mta-notes-01.eml → email-notes-01.eml} +0 -0
- data/set-of-emails/maildir/bsd/{mta-notes-02.eml → email-notes-02.eml} +0 -0
- data/set-of-emails/maildir/bsd/{mta-notes-03.eml → email-notes-03.eml} +0 -0
- data/set-of-emails/maildir/bsd/{mta-notes-04.eml → email-notes-04.eml} +0 -0
- data/set-of-emails/maildir/bsd/{msp-us-office365-01.eml → email-office365-01.eml} +0 -0
- data/set-of-emails/maildir/bsd/{msp-us-office365-02.eml → email-office365-02.eml} +0 -0
- data/set-of-emails/maildir/bsd/{mta-opensmtpd-01.eml → email-opensmtpd-01.eml} +0 -0
- data/set-of-emails/maildir/bsd/{mta-opensmtpd-02.eml → email-opensmtpd-02.eml} +0 -0
- data/set-of-emails/maildir/bsd/{mta-opensmtpd-03.eml → email-opensmtpd-03.eml} +0 -0
- data/set-of-emails/maildir/bsd/{mta-opensmtpd-04.eml → email-opensmtpd-04.eml} +0 -0
- data/set-of-emails/maildir/bsd/{mta-opensmtpd-05.eml → email-opensmtpd-05.eml} +0 -0
- data/set-of-emails/maildir/bsd/{mta-opensmtpd-06.eml → email-opensmtpd-06.eml} +0 -0
- data/set-of-emails/maildir/bsd/{msp-us-outlook-01.eml → email-outlook-01.eml} +0 -0
- data/set-of-emails/maildir/bsd/{msp-us-outlook-02.eml → email-outlook-02.eml} +0 -0
- data/set-of-emails/maildir/bsd/{msp-us-outlook-03.eml → email-outlook-03.eml} +0 -0
- data/set-of-emails/maildir/bsd/{msp-us-outlook-04.eml → email-outlook-04.eml} +0 -0
- data/set-of-emails/maildir/bsd/{msp-us-outlook-05.eml → email-outlook-05.eml} +0 -0
- data/set-of-emails/maildir/bsd/{msp-us-outlook-06.eml → email-outlook-06.eml} +0 -0
- data/set-of-emails/maildir/bsd/{msp-us-outlook-07.eml → email-outlook-07.eml} +0 -0
- data/set-of-emails/maildir/bsd/{mta-postfix-01.eml → email-postfix-01.eml} +0 -0
- data/set-of-emails/maildir/bsd/{mta-postfix-02.eml → email-postfix-02.eml} +0 -0
- data/set-of-emails/maildir/bsd/{mta-postfix-03.eml → email-postfix-03.eml} +0 -0
- data/set-of-emails/maildir/bsd/{mta-postfix-04.eml → email-postfix-04.eml} +0 -0
- data/set-of-emails/maildir/bsd/{mta-postfix-05.eml → email-postfix-05.eml} +0 -0
- data/set-of-emails/maildir/bsd/{mta-postfix-06.eml → email-postfix-06.eml} +0 -0
- data/set-of-emails/maildir/bsd/{mta-postfix-07.eml → email-postfix-07.eml} +0 -0
- data/set-of-emails/maildir/bsd/{mta-postfix-08.eml → email-postfix-08.eml} +0 -0
- data/set-of-emails/maildir/bsd/{mta-postfix-09.eml → email-postfix-09.eml} +0 -0
- data/set-of-emails/maildir/bsd/{mta-postfix-10.eml → email-postfix-10.eml} +0 -0
- data/set-of-emails/maildir/bsd/{mta-postfix-11.eml → email-postfix-11.eml} +0 -0
- data/set-of-emails/maildir/bsd/{mta-postfix-12.eml → email-postfix-12.eml} +0 -0
- data/set-of-emails/maildir/bsd/{mta-postfix-13.eml → email-postfix-13.eml} +0 -0
- data/set-of-emails/maildir/bsd/{mta-postfix-14.eml → email-postfix-14.eml} +0 -0
- data/set-of-emails/maildir/bsd/{mta-postfix-15.eml → email-postfix-15.eml} +0 -0
- data/set-of-emails/maildir/bsd/{mta-postfix-16.eml → email-postfix-16.eml} +0 -0
- data/set-of-emails/maildir/bsd/{mta-postfix-17.eml → email-postfix-17.eml} +0 -0
- data/set-of-emails/maildir/bsd/{mta-postfix-18.eml → email-postfix-18.eml} +0 -0
- data/set-of-emails/maildir/bsd/{mta-postfix-19.eml → email-postfix-19.eml} +0 -0
- data/set-of-emails/maildir/bsd/{mta-postfix-20.eml → email-postfix-20.eml} +0 -0
- data/set-of-emails/maildir/bsd/{mta-postfix-21.eml → email-postfix-21.eml} +0 -0
- data/set-of-emails/maildir/bsd/{mta-postfix-22.eml → email-postfix-22.eml} +0 -0
- data/set-of-emails/maildir/bsd/{mta-postfix-23.eml → email-postfix-23.eml} +0 -0
- data/set-of-emails/maildir/bsd/{mta-postfix-24.eml → email-postfix-24.eml} +0 -0
- data/set-of-emails/maildir/bsd/{mta-postfix-25.eml → email-postfix-25.eml} +0 -0
- data/set-of-emails/maildir/bsd/{mta-postfix-26.eml → email-postfix-26.eml} +0 -0
- data/set-of-emails/maildir/bsd/{mta-postfix-27.eml → email-postfix-27.eml} +0 -0
- data/set-of-emails/maildir/bsd/{mta-postfix-28.eml → email-postfix-28.eml} +0 -0
- data/set-of-emails/maildir/bsd/{mta-postfix-29.eml → email-postfix-29.eml} +0 -0
- data/set-of-emails/maildir/bsd/{mta-qmail-01.eml → email-qmail-01.eml} +0 -0
- data/set-of-emails/maildir/bsd/{mta-qmail-02.eml → email-qmail-02.eml} +0 -0
- data/set-of-emails/maildir/bsd/{mta-qmail-03.eml → email-qmail-03.eml} +0 -0
- data/set-of-emails/maildir/bsd/{mta-qmail-04.eml → email-qmail-04.eml} +0 -0
- data/set-of-emails/maildir/bsd/{mta-qmail-05.eml → email-qmail-05.eml} +0 -0
- data/set-of-emails/maildir/bsd/{mta-qmail-06.eml → email-qmail-06.eml} +0 -0
- data/set-of-emails/maildir/bsd/{mta-qmail-07.eml → email-qmail-07.eml} +0 -0
- data/set-of-emails/maildir/bsd/{mta-qmail-08.eml → email-qmail-08.eml} +0 -0
- data/set-of-emails/maildir/bsd/{mta-qmail-09.eml → email-qmail-09.eml} +0 -0
- data/set-of-emails/maildir/bsd/{mta-qmail-10.eml → email-qmail-10.eml} +0 -0
- data/set-of-emails/maildir/bsd/{mta-qmail-11.eml → email-qmail-11.eml} +0 -0
- data/set-of-emails/maildir/bsd/{mta-qmail-12.eml → email-qmail-12.eml} +0 -0
- data/set-of-emails/maildir/bsd/{msp-us-receivingses-01.eml → email-receivingses-01.eml} +0 -0
- data/set-of-emails/maildir/bsd/{msp-us-receivingses-02.eml → email-receivingses-02.eml} +0 -0
- data/set-of-emails/maildir/bsd/{msp-us-receivingses-03.eml → email-receivingses-03.eml} +0 -0
- data/set-of-emails/maildir/bsd/{msp-us-receivingses-04.eml → email-receivingses-04.eml} +0 -0
- data/set-of-emails/maildir/bsd/{msp-us-receivingses-05.eml → email-receivingses-05.eml} +0 -0
- data/set-of-emails/maildir/bsd/{msp-us-receivingses-06.eml → email-receivingses-06.eml} +0 -0
- data/set-of-emails/maildir/bsd/{msp-us-receivingses-07.eml → email-receivingses-07.eml} +0 -0
- data/set-of-emails/maildir/bsd/{msp-us-sendgrid-01.eml → email-sendgrid-01.eml} +0 -0
- data/set-of-emails/maildir/bsd/{msp-us-sendgrid-02.eml → email-sendgrid-02.eml} +0 -0
- data/set-of-emails/maildir/bsd/{msp-us-sendgrid-03.eml → email-sendgrid-03.eml} +0 -0
- data/set-of-emails/maildir/bsd/{mta-sendmail-01.eml → email-sendmail-01.eml} +0 -0
- data/set-of-emails/maildir/bsd/{mta-sendmail-02.eml → email-sendmail-02.eml} +0 -0
- data/set-of-emails/maildir/bsd/{mta-sendmail-03.eml → email-sendmail-03.eml} +0 -0
- data/set-of-emails/maildir/bsd/{mta-sendmail-04.eml → email-sendmail-04.eml} +0 -0
- data/set-of-emails/maildir/bsd/{mta-sendmail-05.eml → email-sendmail-05.eml} +0 -0
- data/set-of-emails/maildir/bsd/{mta-sendmail-06.eml → email-sendmail-06.eml} +0 -0
- data/set-of-emails/maildir/bsd/{mta-sendmail-07.eml → email-sendmail-07.eml} +0 -0
- data/set-of-emails/maildir/bsd/{mta-sendmail-08.eml → email-sendmail-08.eml} +0 -0
- data/set-of-emails/maildir/bsd/{mta-sendmail-09.eml → email-sendmail-09.eml} +0 -0
- data/set-of-emails/maildir/bsd/{mta-sendmail-10.eml → email-sendmail-10.eml} +0 -0
- data/set-of-emails/maildir/bsd/{mta-sendmail-11.eml → email-sendmail-11.eml} +0 -0
- data/set-of-emails/maildir/bsd/{mta-sendmail-12.eml → email-sendmail-12.eml} +0 -0
- data/set-of-emails/maildir/bsd/{mta-sendmail-13.eml → email-sendmail-13.eml} +0 -0
- data/set-of-emails/maildir/bsd/{mta-sendmail-14.eml → email-sendmail-14.eml} +0 -0
- data/set-of-emails/maildir/bsd/{mta-sendmail-15.eml → email-sendmail-15.eml} +0 -0
- data/set-of-emails/maildir/bsd/{mta-sendmail-16.eml → email-sendmail-16.eml} +0 -0
- data/set-of-emails/maildir/bsd/{mta-sendmail-17.eml → email-sendmail-17.eml} +0 -0
- data/set-of-emails/maildir/bsd/{mta-sendmail-18.eml → email-sendmail-18.eml} +0 -0
- data/set-of-emails/maildir/bsd/{mta-sendmail-19.eml → email-sendmail-19.eml} +0 -0
- data/set-of-emails/maildir/bsd/{mta-sendmail-20.eml → email-sendmail-20.eml} +0 -0
- data/set-of-emails/maildir/bsd/{mta-sendmail-21.eml → email-sendmail-21.eml} +0 -0
- data/set-of-emails/maildir/bsd/{mta-sendmail-22.eml → email-sendmail-22.eml} +0 -0
- data/set-of-emails/maildir/bsd/{mta-sendmail-23.eml → email-sendmail-23.eml} +0 -0
- data/set-of-emails/maildir/bsd/{mta-sendmail-24.eml → email-sendmail-24.eml} +0 -0
- data/set-of-emails/maildir/bsd/{mta-sendmail-25.eml → email-sendmail-25.eml} +0 -0
- data/set-of-emails/maildir/bsd/{mta-sendmail-26.eml → email-sendmail-26.eml} +0 -0
- data/set-of-emails/maildir/bsd/{mta-sendmail-27.eml → email-sendmail-27.eml} +0 -0
- data/set-of-emails/maildir/bsd/{mta-sendmail-28.eml → email-sendmail-28.eml} +0 -0
- data/set-of-emails/maildir/bsd/{mta-sendmail-29.eml → email-sendmail-29.eml} +0 -0
- data/set-of-emails/maildir/bsd/{mta-sendmail-30.eml → email-sendmail-30.eml} +0 -0
- data/set-of-emails/maildir/bsd/{mta-sendmail-31.eml → email-sendmail-31.eml} +0 -0
- data/set-of-emails/maildir/bsd/{mta-sendmail-32.eml → email-sendmail-32.eml} +0 -0
- data/set-of-emails/maildir/bsd/{mta-sendmail-33.eml → email-sendmail-33.eml} +0 -0
- data/set-of-emails/maildir/bsd/{mta-sendmail-34.eml → email-sendmail-34.eml} +0 -0
- data/set-of-emails/maildir/bsd/{mta-sendmail-35.eml → email-sendmail-35.eml} +0 -0
- data/set-of-emails/maildir/bsd/{mta-sendmail-36.eml → email-sendmail-36.eml} +0 -0
- data/set-of-emails/maildir/bsd/{mta-sendmail-37.eml → email-sendmail-37.eml} +0 -0
- data/set-of-emails/maildir/bsd/{mta-sendmail-38.eml → email-sendmail-38.eml} +0 -0
- data/set-of-emails/maildir/bsd/{mta-sendmail-39.eml → email-sendmail-39.eml} +0 -0
- data/set-of-emails/maildir/bsd/{mta-sendmail-40.eml → email-sendmail-40.eml} +0 -0
- data/set-of-emails/maildir/bsd/{mta-sendmail-41.eml → email-sendmail-41.eml} +0 -0
- data/set-of-emails/maildir/bsd/{mta-sendmail-42.eml → email-sendmail-42.eml} +0 -0
- data/set-of-emails/maildir/bsd/{mta-sendmail-43.eml → email-sendmail-43.eml} +0 -0
- data/set-of-emails/maildir/bsd/email-sendmail-44.eml +67 -0
- data/set-of-emails/maildir/bsd/{mta-surfcontrol-01.eml → email-surfcontrol-01.eml} +0 -0
- data/set-of-emails/maildir/bsd/{mta-surfcontrol-02.eml → email-surfcontrol-02.eml} +0 -0
- data/set-of-emails/maildir/bsd/{mta-surfcontrol-03.eml → email-surfcontrol-03.eml} +0 -0
- data/set-of-emails/maildir/bsd/{mta-v5sendmail-01.eml → email-v5sendmail-01.eml} +0 -0
- data/set-of-emails/maildir/bsd/{mta-v5sendmail-02.eml → email-v5sendmail-02.eml} +0 -0
- data/set-of-emails/maildir/bsd/{mta-v5sendmail-03.eml → email-v5sendmail-03.eml} +0 -0
- data/set-of-emails/maildir/bsd/{mta-v5sendmail-04.eml → email-v5sendmail-04.eml} +0 -0
- data/set-of-emails/maildir/bsd/{mta-v5sendmail-05.eml → email-v5sendmail-05.eml} +0 -0
- data/set-of-emails/maildir/bsd/{mta-v5sendmail-06.eml → email-v5sendmail-06.eml} +0 -0
- data/set-of-emails/maildir/bsd/{mta-v5sendmail-07.eml → email-v5sendmail-07.eml} +0 -0
- data/set-of-emails/maildir/bsd/{msp-us-verizon-01.eml → email-verizon-01.eml} +0 -0
- data/set-of-emails/maildir/bsd/{msp-us-verizon-02.eml → email-verizon-02.eml} +0 -0
- data/set-of-emails/maildir/bsd/{mta-x1-01.eml → email-x1-01.eml} +0 -0
- data/set-of-emails/maildir/bsd/{mta-x1-02.eml → email-x1-02.eml} +0 -0
- data/set-of-emails/maildir/bsd/{mta-x2-01.eml → email-x2-01.eml} +0 -0
- data/set-of-emails/maildir/bsd/{mta-x2-02.eml → email-x2-02.eml} +0 -0
- data/set-of-emails/maildir/bsd/{mta-x2-03.eml → email-x2-03.eml} +0 -0
- data/set-of-emails/maildir/bsd/{mta-x2-04.eml → email-x2-04.eml} +0 -0
- data/set-of-emails/maildir/bsd/{mta-x2-05.eml → email-x2-05.eml} +0 -0
- data/set-of-emails/maildir/bsd/{mta-x3-01.eml → email-x3-01.eml} +0 -0
- data/set-of-emails/maildir/bsd/{mta-x3-02.eml → email-x3-02.eml} +0 -0
- data/set-of-emails/maildir/bsd/{mta-x3-03.eml → email-x3-03.eml} +0 -0
- data/set-of-emails/maildir/bsd/{mta-x3-04.eml → email-x3-04.eml} +0 -0
- data/set-of-emails/maildir/bsd/{mta-x4-01.eml → email-x4-01.eml} +0 -0
- data/set-of-emails/maildir/bsd/{mta-x4-02.eml → email-x4-02.eml} +0 -0
- data/set-of-emails/maildir/bsd/{mta-x4-03.eml → email-x4-03.eml} +0 -0
- data/set-of-emails/maildir/bsd/{mta-x4-04.eml → email-x4-04.eml} +0 -0
- data/set-of-emails/maildir/bsd/{mta-x4-05.eml → email-x4-05.eml} +0 -0
- data/set-of-emails/maildir/bsd/{mta-x4-06.eml → email-x4-06.eml} +0 -0
- data/set-of-emails/maildir/bsd/{mta-x4-07.eml → email-x4-07.eml} +0 -0
- data/set-of-emails/maildir/bsd/{mta-x5-01.eml → email-x5-01.eml} +0 -0
- data/set-of-emails/maildir/bsd/{msp-us-yahoo-01.eml → email-yahoo-01.eml} +0 -0
- data/set-of-emails/maildir/bsd/{msp-us-yahoo-02.eml → email-yahoo-02.eml} +0 -0
- data/set-of-emails/maildir/bsd/{msp-us-yahoo-03.eml → email-yahoo-03.eml} +0 -0
- data/set-of-emails/maildir/bsd/{msp-us-yahoo-04.eml → email-yahoo-04.eml} +0 -0
- data/set-of-emails/maildir/bsd/{msp-us-yahoo-05.eml → email-yahoo-05.eml} +0 -0
- data/set-of-emails/maildir/bsd/{msp-ru-yandex-01.eml → email-yandex-01.eml} +0 -0
- data/set-of-emails/maildir/bsd/{msp-ru-yandex-02.eml → email-yandex-02.eml} +0 -0
- data/set-of-emails/maildir/bsd/{msp-ru-yandex-03.eml → email-yandex-03.eml} +0 -0
- data/set-of-emails/maildir/bsd/{msp-us-zoho-01.eml → email-zoho-01.eml} +0 -0
- data/set-of-emails/maildir/bsd/{msp-us-zoho-02.eml → email-zoho-02.eml} +0 -0
- data/set-of-emails/maildir/bsd/{msp-us-zoho-03.eml → email-zoho-03.eml} +0 -0
- data/set-of-emails/maildir/bsd/{msp-us-zoho-04.eml → email-zoho-04.eml} +0 -0
- data/set-of-emails/maildir/bsd/{msp-us-zoho-05.eml → email-zoho-05.eml} +0 -0
- data/set-of-emails/maildir/bsd/rfc3464-31.eml +141 -0
- data/set-of-emails/maildir/bsd/rfc3464-32.eml +158 -0
- data/set-of-emails/maildir/dos/{mta-activehunter-01.eml → email-activehunter-01.eml} +0 -0
- data/set-of-emails/maildir/dos/{msp-us-amazonses-01.eml → email-amazonses-01.eml} +0 -0
- data/set-of-emails/maildir/dos/{msp-us-amazonworkmail-01.eml → email-amazonworkmail-01.eml} +0 -0
- data/set-of-emails/maildir/dos/{msp-us-aol-01.eml → email-aol-01.eml} +0 -0
- data/set-of-emails/maildir/dos/{mta-apachejames-01.eml → email-apachejames-01.eml} +0 -0
- data/set-of-emails/maildir/dos/{msp-us-bigfoot-01.eml → email-bigfoot-01.eml} +0 -0
- data/set-of-emails/maildir/dos/{msp-jp-biglobe-01.eml → email-biglobe-01.eml} +0 -0
- data/set-of-emails/maildir/dos/{mta-courier-01.eml → email-courier-01.eml} +0 -0
- data/set-of-emails/maildir/dos/{mta-domino-01.eml → email-domino-01.eml} +0 -0
- data/set-of-emails/maildir/dos/{msp-de-einsundeins-01.eml → email-einsundeins-01.eml} +0 -0
- data/set-of-emails/maildir/dos/{mta-exchange-01.eml → email-exchange-01.eml} +0 -0
- data/set-of-emails/maildir/dos/{mta-exchange2003-01.eml → email-exchange2003-01.eml} +0 -0
- data/set-of-emails/maildir/dos/{mta-exchange2007-01.eml → email-exchange2007-01.eml} +0 -0
- data/set-of-emails/maildir/dos/{mta-exim-01.eml → email-exim-01.eml} +0 -0
- data/set-of-emails/maildir/dos/{msp-jp-ezweb-01.eml → email-ezweb-01.eml} +0 -0
- data/set-of-emails/maildir/dos/{msp-us-facebook-01.eml → email-facebook-01.eml} +0 -0
- data/set-of-emails/maildir/dos/{msp-de-gmx-01.eml → email-gmx-01.eml} +0 -0
- data/set-of-emails/maildir/dos/{msp-us-google-01.eml → email-google-01.eml} +0 -0
- data/set-of-emails/maildir/dos/{mta-imailserver-01.eml → email-imailserver-01.eml} +0 -0
- data/set-of-emails/maildir/dos/{mta-interscanmss-01.eml → email-interscanmss-01.eml} +0 -0
- data/set-of-emails/maildir/dos/{msp-jp-kddi-01.eml → email-kddi-01.eml} +0 -0
- data/set-of-emails/maildir/dos/{mta-mailfoundry-01.eml → email-mailfoundry-01.eml} +0 -0
- data/set-of-emails/maildir/dos/{mta-mailmarshalsmtp-01.eml → email-mailmarshalsmtp-01.eml} +0 -0
- data/set-of-emails/maildir/dos/{msp-ru-mailru-01.eml → email-mailru-01.eml} +0 -0
- data/set-of-emails/maildir/dos/{mta-mcafee-01.eml → email-mcafee-01.eml} +0 -0
- data/set-of-emails/maildir/dos/{msp-uk-messagelabs-01.eml → email-messagelabs-01.eml} +0 -0
- data/set-of-emails/maildir/dos/{mta-messagingserver-01.eml → email-messagingserver-01.eml} +0 -0
- data/set-of-emails/maildir/dos/{mta-mfilter-01.eml → email-mfilter-01.eml} +0 -0
- data/set-of-emails/maildir/dos/{mta-mxlogic-01.eml → email-mxlogic-01.eml} +0 -0
- data/set-of-emails/maildir/dos/{mta-notes-01.eml → email-notes-01.eml} +0 -0
- data/set-of-emails/maildir/dos/{msp-us-office365-01.eml → email-office365-01.eml} +0 -0
- data/set-of-emails/maildir/dos/{mta-opensmtpd-01.eml → email-opensmtpd-01.eml} +0 -0
- data/set-of-emails/maildir/dos/{msp-us-outlook-01.eml → email-outlook-01.eml} +0 -0
- data/set-of-emails/maildir/dos/{mta-postfix-01.eml → email-postfix-01.eml} +0 -0
- data/set-of-emails/maildir/dos/{mta-qmail-01.eml → email-qmail-01.eml} +0 -0
- data/set-of-emails/maildir/dos/{msp-us-receivingses-01.eml → email-receivingses-01.eml} +0 -0
- data/set-of-emails/maildir/dos/{msp-us-sendgrid-01.eml → email-sendgrid-01.eml} +0 -0
- data/set-of-emails/maildir/dos/{mta-sendmail-01.eml → email-sendmail-01.eml} +0 -0
- data/set-of-emails/maildir/dos/{mta-surfcontrol-01.eml → email-surfcontrol-01.eml} +0 -0
- data/set-of-emails/maildir/dos/{mta-v5sendmail-01.eml → email-v5sendmail-01.eml} +0 -0
- data/set-of-emails/maildir/dos/{msp-us-verizon-01.eml → email-verizon-01.eml} +0 -0
- data/set-of-emails/maildir/dos/{mta-x1-01.eml → email-x1-01.eml} +0 -0
- data/set-of-emails/maildir/dos/{mta-x2-01.eml → email-x2-01.eml} +0 -0
- data/set-of-emails/maildir/dos/{mta-x3-01.eml → email-x3-01.eml} +0 -0
- data/set-of-emails/maildir/dos/{mta-x4-01.eml → email-x4-01.eml} +0 -0
- data/set-of-emails/maildir/dos/{mta-x5-01.eml → email-x5-01.eml} +0 -0
- data/set-of-emails/maildir/dos/{msp-us-yahoo-01.eml → email-yahoo-01.eml} +0 -0
- data/set-of-emails/maildir/dos/{msp-ru-yandex-01.eml → email-yandex-01.eml} +0 -0
- data/set-of-emails/maildir/dos/{msp-us-zoho-01.eml → email-zoho-01.eml} +0 -0
- data/set-of-emails/maildir/mac/{mta-activehunter-01.eml → email-activehunter-01.eml} +0 -0
- data/set-of-emails/maildir/mac/{msp-us-amazonses-01.eml → email-amazonses-01.eml} +0 -0
- data/set-of-emails/maildir/mac/{msp-us-amazonworkmail-01.eml → email-amazonworkmail-01.eml} +0 -0
- data/set-of-emails/maildir/mac/{msp-us-aol-01.eml → email-aol-01.eml} +0 -0
- data/set-of-emails/maildir/mac/{mta-apachejames-01.eml → email-apachejames-01.eml} +0 -0
- data/set-of-emails/maildir/mac/{msp-us-bigfoot-01.eml → email-bigfoot-01.eml} +0 -0
- data/set-of-emails/maildir/mac/{msp-jp-biglobe-01.eml → email-biglobe-01.eml} +0 -0
- data/set-of-emails/maildir/mac/{mta-courier-01.eml → email-courier-01.eml} +0 -0
- data/set-of-emails/maildir/mac/{mta-domino-01.eml → email-domino-01.eml} +0 -0
- data/set-of-emails/maildir/mac/{msp-de-einsundeins-01.eml → email-einsundeins-01.eml} +0 -0
- data/set-of-emails/maildir/mac/{mta-exchange-01.eml → email-exchange-01.eml} +0 -0
- data/set-of-emails/maildir/mac/{mta-exchange2003-01.eml → email-exchange2003-01.eml} +0 -0
- data/set-of-emails/maildir/mac/{mta-exchange2007-01.eml → email-exchange2007-01.eml} +0 -0
- data/set-of-emails/maildir/mac/{mta-exim-01.eml → email-exim-01.eml} +0 -0
- data/set-of-emails/maildir/mac/{msp-jp-ezweb-01.eml → email-ezweb-01.eml} +0 -0
- data/set-of-emails/maildir/mac/{msp-us-facebook-01.eml → email-facebook-01.eml} +0 -0
- data/set-of-emails/maildir/mac/{msp-de-gmx-01.eml → email-gmx-01.eml} +0 -0
- data/set-of-emails/maildir/mac/{msp-us-google-01.eml → email-google-01.eml} +0 -0
- data/set-of-emails/maildir/mac/{mta-imailserver-01.eml → email-imailserver-01.eml} +0 -0
- data/set-of-emails/maildir/mac/{mta-interscanmss-01.eml → email-interscanmss-01.eml} +0 -0
- data/set-of-emails/maildir/mac/{msp-jp-kddi-01.eml → email-kddi-01.eml} +0 -0
- data/set-of-emails/maildir/mac/{mta-mailfoundry-01.eml → email-mailfoundry-01.eml} +0 -0
- data/set-of-emails/maildir/mac/{mta-mailmarshalsmtp-01.eml → email-mailmarshalsmtp-01.eml} +0 -0
- data/set-of-emails/maildir/mac/{msp-ru-mailru-01.eml → email-mailru-01.eml} +0 -0
- data/set-of-emails/maildir/mac/{mta-mcafee-01.eml → email-mcafee-01.eml} +0 -0
- data/set-of-emails/maildir/mac/{msp-uk-messagelabs-01.eml → email-messagelabs-01.eml} +0 -0
- data/set-of-emails/maildir/mac/{mta-messagingserver-01.eml → email-messagingserver-01.eml} +0 -0
- data/set-of-emails/maildir/mac/{mta-mfilter-01.eml → email-mfilter-01.eml} +0 -0
- data/set-of-emails/maildir/mac/{mta-mxlogic-01.eml → email-mxlogic-01.eml} +0 -0
- data/set-of-emails/maildir/mac/{mta-notes-01.eml → email-notes-01.eml} +0 -0
- data/set-of-emails/maildir/mac/{msp-us-office365-01.eml → email-office365-01.eml} +0 -0
- data/set-of-emails/maildir/mac/{mta-opensmtpd-01.eml → email-opensmtpd-01.eml} +0 -0
- data/set-of-emails/maildir/mac/{msp-us-outlook-01.eml → email-outlook-01.eml} +0 -0
- data/set-of-emails/maildir/mac/{mta-postfix-01.eml → email-postfix-01.eml} +0 -0
- data/set-of-emails/maildir/mac/{mta-qmail-01.eml → email-qmail-01.eml} +0 -0
- data/set-of-emails/maildir/mac/{msp-us-receivingses-01.eml → email-receivingses-01.eml} +0 -0
- data/set-of-emails/maildir/mac/{msp-us-sendgrid-01.eml → email-sendgrid-01.eml} +0 -0
- data/set-of-emails/maildir/mac/{mta-sendmail-01.eml → email-sendmail-01.eml} +0 -0
- data/set-of-emails/maildir/mac/{mta-surfcontrol-01.eml → email-surfcontrol-01.eml} +0 -0
- data/set-of-emails/maildir/mac/{mta-v5sendmail-01.eml → email-v5sendmail-01.eml} +0 -0
- data/set-of-emails/maildir/mac/{msp-us-verizon-01.eml → email-verizon-01.eml} +0 -0
- data/set-of-emails/maildir/mac/{mta-x1-01.eml → email-x1-01.eml} +0 -0
- data/set-of-emails/maildir/mac/{mta-x2-01.eml → email-x2-01.eml} +0 -0
- data/set-of-emails/maildir/mac/{mta-x3-01.eml → email-x3-01.eml} +0 -0
- data/set-of-emails/maildir/mac/{mta-x4-01.eml → email-x4-01.eml} +0 -0
- data/set-of-emails/maildir/mac/{mta-x5-01.eml → email-x5-01.eml} +0 -0
- data/set-of-emails/maildir/mac/{msp-us-yahoo-01.eml → email-yahoo-01.eml} +0 -0
- data/set-of-emails/maildir/mac/{msp-ru-yandex-01.eml → email-yandex-01.eml} +0 -0
- data/set-of-emails/maildir/mac/{msp-us-zoho-01.eml → email-zoho-01.eml} +0 -0
- metadata +483 -478
- data/lib/sisimai/ced/us/amazonses.rb +0 -269
- data/lib/sisimai/ced/us/sendgrid.rb +0 -86
- data/lib/sisimai/msp/de/einsundeins.rb +0 -146
- data/lib/sisimai/msp/de/gmx.rb +0 -170
- data/lib/sisimai/msp/jp/biglobe.rb +0 -150
- data/lib/sisimai/msp/jp/ezweb.rb +0 -262
- data/lib/sisimai/msp/jp/kddi.rb +0 -168
- data/lib/sisimai/msp/ru/mailru.rb +0 -274
- data/lib/sisimai/msp/ru/yandex.rb +0 -207
- data/lib/sisimai/msp/uk/messagelabs.rb +0 -216
- data/lib/sisimai/msp/us/amazonses.rb +0 -237
- data/lib/sisimai/msp/us/amazonworkmail.rb +0 -195
- data/lib/sisimai/msp/us/aol.rb +0 -211
- data/lib/sisimai/msp/us/bigfoot.rb +0 -210
- data/lib/sisimai/msp/us/facebook.rb +0 -277
- data/lib/sisimai/msp/us/google.rb +0 -323
- data/lib/sisimai/msp/us/gsuite.rb +0 -277
- data/lib/sisimai/msp/us/office365.rb +0 -264
- data/lib/sisimai/msp/us/outlook.rb +0 -209
- data/lib/sisimai/msp/us/receivingses.rb +0 -224
- data/lib/sisimai/msp/us/sendgrid.rb +0 -226
- data/lib/sisimai/msp/us/verizon.rb +0 -267
- data/lib/sisimai/msp/us/yahoo.rb +0 -150
- data/lib/sisimai/msp/us/zoho.rb +0 -170
- data/lib/sisimai/mta/activehunter.rb +0 -126
- data/lib/sisimai/mta/apachejames.rb +0 -172
- data/lib/sisimai/mta/courier.rb +0 -268
- data/lib/sisimai/mta/domino.rb +0 -177
- data/lib/sisimai/mta/exchange2003.rb +0 -287
- data/lib/sisimai/mta/exchange2007.rb +0 -182
- data/lib/sisimai/mta/exim.rb +0 -525
- data/lib/sisimai/mta/imailserver.rb +0 -182
- data/lib/sisimai/mta/interscanmss.rb +0 -149
- data/lib/sisimai/mta/mailfoundry.rb +0 -137
- data/lib/sisimai/mta/mailmarshalsmtp.rb +0 -176
- data/lib/sisimai/mta/mcafee.rb +0 -172
- data/lib/sisimai/mta/messagingserver.rb +0 -208
- data/lib/sisimai/mta/mfilter.rb +0 -167
- data/lib/sisimai/mta/mxlogic.rb +0 -255
- data/lib/sisimai/mta/notes.rb +0 -183
- data/lib/sisimai/mta/opensmtpd.rb +0 -195
- data/lib/sisimai/mta/postfix.rb +0 -312
- data/lib/sisimai/mta/qmail.rb +0 -307
- data/lib/sisimai/mta/sendmail.rb +0 -293
- data/lib/sisimai/mta/surfcontrol.rb +0 -164
- data/lib/sisimai/mta/userdefined.rb +0 -132
- data/lib/sisimai/mta/v5sendmail.rb +0 -210
- data/lib/sisimai/mta/x1.rb +0 -127
- data/lib/sisimai/mta/x2.rb +0 -128
- data/lib/sisimai/mta/x3.rb +0 -144
- data/lib/sisimai/mta/x4.rb +0 -328
- data/lib/sisimai/mta/x5.rb +0 -181
- data/set-of-emails/maildir/bsd/mta-README.md +0 -319
- data/set-of-emails/maildir/dos/ced-us-amazonses-01.eml +0 -47
- data/set-of-emails/maildir/mac/ced-us-amazonses-01.eml +0 -2
@@ -0,0 +1,167 @@
|
|
1
|
+
module Sisimai::Bite::Email
|
2
|
+
module GMX
|
3
|
+
# Sisimai::Bite::Email::GMX parses a bounce email which created by GMX.
|
4
|
+
# Methods in the module are called from only Sisimai::Message.
|
5
|
+
class << self
|
6
|
+
# Imported from p5-Sisimail/lib/Sisimai/Bite/Email/GMX.pm
|
7
|
+
require 'sisimai/bite/email'
|
8
|
+
|
9
|
+
Re0 = {
|
10
|
+
:from => %r/\AMAILER-DAEMON[@]/,
|
11
|
+
:subject => %r/\AMail delivery failed: returning message to sender\z/,
|
12
|
+
}
|
13
|
+
Re1 = {
|
14
|
+
:begin => %r/\AThis message was created automatically by mail delivery software/,
|
15
|
+
:rfc822 => %r/\A--- The header of the original message is following/,
|
16
|
+
:endof => %r/\A__END_OF_EMAIL_MESSAGE__\z/,
|
17
|
+
}
|
18
|
+
ReFailure = {
|
19
|
+
expired: %r/delivery[ ]retry[ ]timeout[ ]exceeded/x,
|
20
|
+
}
|
21
|
+
Indicators = Sisimai::Bite::Email.INDICATORS
|
22
|
+
|
23
|
+
def description; return 'GMX: http://www.gmx.net'; end
|
24
|
+
def smtpagent; return Sisimai::Bite.smtpagent(self); end
|
25
|
+
|
26
|
+
# Envelope-To: <kijitora@mail.example.com>
|
27
|
+
# X-GMX-Antispam: 0 (Mail was not recognized as spam); Detail=V3;
|
28
|
+
# X-GMX-Antivirus: 0 (no virus found)
|
29
|
+
# X-UI-Out-Filterresults: unknown:0;
|
30
|
+
def headerlist; return ['X-GMX-Antispam']; end
|
31
|
+
def pattern; return Re0; end
|
32
|
+
|
33
|
+
# Parse bounce messages from GMX
|
34
|
+
# @param [Hash] mhead Message headers of a bounce email
|
35
|
+
# @options mhead [String] from From header
|
36
|
+
# @options mhead [String] date Date header
|
37
|
+
# @options mhead [String] subject Subject header
|
38
|
+
# @options mhead [Array] received Received headers
|
39
|
+
# @options mhead [String] others Other required headers
|
40
|
+
# @param [String] mbody Message body of a bounce email
|
41
|
+
# @return [Hash, Nil] Bounce data list and message/rfc822
|
42
|
+
# part or nil if it failed to parse or
|
43
|
+
# the arguments are missing
|
44
|
+
def scan(mhead, mbody)
|
45
|
+
return nil unless mhead
|
46
|
+
return nil unless mbody
|
47
|
+
return nil unless mhead['x-gmx-antispam']
|
48
|
+
|
49
|
+
dscontents = [Sisimai::Bite.DELIVERYSTATUS]
|
50
|
+
hasdivided = mbody.split("\n")
|
51
|
+
rfc822list = [] # (Array) Each line in message/rfc822 part string
|
52
|
+
blanklines = 0 # (Integer) The number of blank lines
|
53
|
+
readcursor = 0 # (Integer) Points the current cursor position
|
54
|
+
recipients = 0 # (Integer) The number of 'Final-Recipient' header
|
55
|
+
v = nil
|
56
|
+
|
57
|
+
hasdivided.each do |e|
|
58
|
+
if readcursor.zero?
|
59
|
+
# Beginning of the bounce message or delivery status part
|
60
|
+
if e =~ Re1[:begin]
|
61
|
+
readcursor |= Indicators[:deliverystatus]
|
62
|
+
next
|
63
|
+
end
|
64
|
+
end
|
65
|
+
|
66
|
+
if readcursor & Indicators[:'message-rfc822'] == 0
|
67
|
+
# Beginning of the original message part
|
68
|
+
if e =~ Re1[:rfc822]
|
69
|
+
readcursor |= Indicators[:'message-rfc822']
|
70
|
+
next
|
71
|
+
end
|
72
|
+
end
|
73
|
+
|
74
|
+
if readcursor & Indicators[:'message-rfc822'] > 0
|
75
|
+
# After "message/rfc822"
|
76
|
+
if e.empty?
|
77
|
+
blanklines += 1
|
78
|
+
break if blanklines > 1
|
79
|
+
next
|
80
|
+
end
|
81
|
+
rfc822list << e
|
82
|
+
|
83
|
+
else
|
84
|
+
# Before "message/rfc822"
|
85
|
+
next if readcursor & Indicators[:deliverystatus] == 0
|
86
|
+
next if e.empty?
|
87
|
+
|
88
|
+
# This message was created automatically by mail delivery software.
|
89
|
+
#
|
90
|
+
# A message that you sent could not be delivered to one or more of
|
91
|
+
# its recipients. This is a permanent error. The following address
|
92
|
+
# failed:
|
93
|
+
#
|
94
|
+
# "shironeko@example.jp":
|
95
|
+
# SMTP error from remote server after RCPT command:
|
96
|
+
# host: mx.example.jp
|
97
|
+
# 5.1.1 <shironeko@example.jp>... User Unknown
|
98
|
+
v = dscontents[-1]
|
99
|
+
|
100
|
+
if cv = e.match(/\A["]([^ ]+[@][^ ]+)["]:\z/) || e.match(/\A[<]([^ ]+[@][^ ]+)[>]\z/)
|
101
|
+
# "shironeko@example.jp":
|
102
|
+
# ---- OR ----
|
103
|
+
# <kijitora@6jo.example.co.jp>
|
104
|
+
#
|
105
|
+
# Reason:
|
106
|
+
# delivery retry timeout exceeded
|
107
|
+
if v['recipient']
|
108
|
+
# There are multiple recipient addresses in the message body.
|
109
|
+
dscontents << Sisimai::Bite.DELIVERYSTATUS
|
110
|
+
v = dscontents[-1]
|
111
|
+
end
|
112
|
+
v['recipient'] = cv[1]
|
113
|
+
recipients += 1
|
114
|
+
|
115
|
+
elsif cv = e.match(/\ASMTP error .+ ([A-Z]{4}) command:\z/)
|
116
|
+
# SMTP error from remote server after RCPT command:
|
117
|
+
v['command'] = cv[1]
|
118
|
+
|
119
|
+
elsif cv = e.match(/\Ahost:[ \t]*(.+)\z/)
|
120
|
+
# host: mx.example.jp
|
121
|
+
v['rhost'] = cv[1]
|
122
|
+
|
123
|
+
else
|
124
|
+
# Get error message
|
125
|
+
if e =~ /\b[45][.]\d[.]\d\b/ || e =~ /[<][^ ]+[@][^ ]+[>]/ || e =~ /\b[45]\d{2}\b/
|
126
|
+
v['diagnosis'] ||= e
|
127
|
+
|
128
|
+
else
|
129
|
+
next if e =~ /\A\z/
|
130
|
+
if e =~ /\AReason:\z/
|
131
|
+
# Reason:
|
132
|
+
# delivery retry timeout exceeded
|
133
|
+
v['diagnosis'] = e
|
134
|
+
|
135
|
+
elsif v['diagnosis'] =~ /\AReason:\z/
|
136
|
+
v['diagnosis'] = e
|
137
|
+
end
|
138
|
+
end
|
139
|
+
end
|
140
|
+
end
|
141
|
+
end
|
142
|
+
|
143
|
+
return nil if recipients.zero?
|
144
|
+
require 'sisimai/string'
|
145
|
+
require 'sisimai/smtp/status'
|
146
|
+
|
147
|
+
dscontents.map do |e|
|
148
|
+
e['agent'] = self.smtpagent
|
149
|
+
e['diagnosis'] = e['diagnosis'].gsub(/\\n/, ' ')
|
150
|
+
e['diagnosis'] = Sisimai::String.sweep(e['diagnosis'])
|
151
|
+
|
152
|
+
ReFailure.each_key do |r|
|
153
|
+
# Verify each regular expression of session errors
|
154
|
+
next unless e['diagnosis'] =~ ReFailure[r]
|
155
|
+
e['reason'] = r.to_s
|
156
|
+
break
|
157
|
+
end
|
158
|
+
end
|
159
|
+
|
160
|
+
rfc822part = Sisimai::RFC5322.weedout(rfc822list)
|
161
|
+
return { 'ds' => dscontents, 'rfc822' => rfc822part }
|
162
|
+
end
|
163
|
+
|
164
|
+
end
|
165
|
+
end
|
166
|
+
end
|
167
|
+
|
@@ -0,0 +1,320 @@
|
|
1
|
+
module Sisimai::Bite::Email
|
2
|
+
module Google
|
3
|
+
# Sisimai::Bite::Email::Google parses a bounce email which created by Gmail.
|
4
|
+
# Methods in the module are called from only Sisimai::Message.
|
5
|
+
class << self
|
6
|
+
# Imported from p5-Sisimail/lib/Sisimai/Bite/Email/Google.pm
|
7
|
+
require 'sisimai/bite/email'
|
8
|
+
|
9
|
+
Re0 = {
|
10
|
+
:from => %r/[@]googlemail[.]com[>]?\z/,
|
11
|
+
:subject => %r/Delivery[ ]Status[ ]Notification/,
|
12
|
+
}
|
13
|
+
Re1 = {
|
14
|
+
:begin => %r/Delivery to the following recipient/,
|
15
|
+
:start => %r/Technical details of (?:permanent|temporary) failure:/,
|
16
|
+
:error => %r/The error that the other server returned was:/,
|
17
|
+
:rfc822 => %r{\A(?:
|
18
|
+
-----[ ]Original[ ]message[ ]-----
|
19
|
+
|[ \t]*-----[ ]Message[ ]header[ ]follows[ ]-----
|
20
|
+
)\z
|
21
|
+
}x,
|
22
|
+
:endof => %r/\A__END_OF_EMAIL_MESSAGE__\z/,
|
23
|
+
}
|
24
|
+
ReFailure = {
|
25
|
+
expired: %r{(?:
|
26
|
+
DNS[ ]Error:[ ]Could[ ]not[ ]contact[ ]DNS[ ]servers
|
27
|
+
|Delivery[ ]to[ ]the[ ]following[ ]recipient[ ]has[ ]been[ ]delayed
|
28
|
+
|The[ ]recipient[ ]server[ ]did[ ]not[ ]accept[ ]our[ ]requests[ ]to[ ]connect
|
29
|
+
)
|
30
|
+
}x,
|
31
|
+
hostunknown: %r{DNS[ ]Error:[ ](?:
|
32
|
+
Domain[ ]name[ ]not[ ]found
|
33
|
+
|DNS[ ]server[ ]returned[ ]answer[ ]with[ ]no[ ]data
|
34
|
+
)
|
35
|
+
}x,
|
36
|
+
}
|
37
|
+
StateTable = {
|
38
|
+
# Technical details of permanent failure:
|
39
|
+
# Google tried to deliver your message, but it was rejected by the recipient domain.
|
40
|
+
# We recommend contacting the other email provider for further information about the
|
41
|
+
# cause of this error. The error that the other server returned was:
|
42
|
+
# 500 Remote server does not support TLS (state 6).
|
43
|
+
'6' => { 'command' => 'MAIL', 'reason' => 'systemerror' },
|
44
|
+
|
45
|
+
# http://www.google.td/support/forum/p/gmail/thread?tid=08a60ebf5db24f7b&hl=en
|
46
|
+
# Technical details of permanent failure:
|
47
|
+
# Google tried to deliver your message, but it was rejected by the recipient domain.
|
48
|
+
# We recommend contacting the other email provider for further information about the
|
49
|
+
# cause of this error. The error that the other server returned was:
|
50
|
+
# 535 SMTP AUTH failed with the remote server. (state 8).
|
51
|
+
'8' => { 'command' => 'AUTH', 'reason' => 'systemerror' },
|
52
|
+
|
53
|
+
# http://www.google.co.nz/support/forum/p/gmail/thread?tid=45208164dbca9d24&hl=en
|
54
|
+
# Technical details of temporary failure:
|
55
|
+
# Google tried to deliver your message, but it was rejected by the recipient domain.
|
56
|
+
# We recommend contacting the other email provider for further information about the
|
57
|
+
# cause of this error. The error that the other server returned was:
|
58
|
+
# 454 454 TLS missing certificate: error:0200100D:system library:fopen:Permission denied (#4.3.0) (state 9).
|
59
|
+
'9' => { 'command' => 'AUTH', 'reason' => 'systemerror' },
|
60
|
+
|
61
|
+
# http://www.google.com/support/forum/p/gmail/thread?tid=5cfab8c76ec88638&hl=en
|
62
|
+
# Technical details of permanent failure:
|
63
|
+
# Google tried to deliver your message, but it was rejected by the recipient domain.
|
64
|
+
# We recommend contacting the other email provider for further information about the
|
65
|
+
# cause of this error. The error that the other server returned was:
|
66
|
+
# 500 Remote server does not support SMTP Authenticated Relay (state 12).
|
67
|
+
'12' => { 'command' => 'AUTH', 'reason' => 'relayingdenied' },
|
68
|
+
|
69
|
+
# Technical details of permanent failure:
|
70
|
+
# Google tried to deliver your message, but it was rejected by the recipient domain.
|
71
|
+
# We recommend contacting the other email provider for further information about the
|
72
|
+
# cause of this error. The error that the other server returned was:
|
73
|
+
# 550 550 5.7.1 <****@gmail.com>... Access denied (state 13).
|
74
|
+
'13' => { 'command' => 'EHLO', 'reason' => 'blocked' },
|
75
|
+
|
76
|
+
# Technical details of permanent failure:
|
77
|
+
# Google tried to deliver your message, but it was rejected by the recipient domain.
|
78
|
+
# We recommend contacting the other email provider for further information about the
|
79
|
+
# cause of this error. The error that the other server returned was:
|
80
|
+
# 550 550 5.1.1 <******@*********.**>... User Unknown (state 14).
|
81
|
+
# 550 550 5.2.2 <*****@****.**>... Mailbox Full (state 14).
|
82
|
+
#
|
83
|
+
'14' => { 'command' => 'RCPT', 'reason' => 'userunknown' },
|
84
|
+
|
85
|
+
# http://www.google.cz/support/forum/p/gmail/thread?tid=7090cbfd111a24f9&hl=en
|
86
|
+
# Technical details of permanent failure:
|
87
|
+
# Google tried to deliver your message, but it was rejected by the recipient domain.
|
88
|
+
# We recommend contacting the other email provider for further information about the
|
89
|
+
# cause of this error. The error that the other server returned was:
|
90
|
+
# 550 550 5.7.1 SPF unauthorized mail is prohibited. (state 15).
|
91
|
+
# 554 554 Error: no valid recipients (state 15).
|
92
|
+
'15' => { 'command' => 'DATA', 'reason' => 'filtered' },
|
93
|
+
|
94
|
+
# http://www.google.com/support/forum/p/Google%20Apps/thread?tid=0aac163bc9c65d8e&hl=en
|
95
|
+
# Technical details of permanent failure:
|
96
|
+
# Google tried to deliver your message, but it was rejected by the recipient domain.
|
97
|
+
# We recommend contacting the other email provider for further information about the
|
98
|
+
# cause of this error. The error that the other server returned was:
|
99
|
+
# 550 550 <****@***.**> No such user here (state 17).
|
100
|
+
# 550 550 #5.1.0 Address rejected ***@***.*** (state 17).
|
101
|
+
'17' => { 'command' => 'DATA', 'reason' => 'filtered' },
|
102
|
+
|
103
|
+
# Technical details of permanent failure:
|
104
|
+
# Google tried to deliver your message, but it was rejected by the recipient domain.
|
105
|
+
# We recommend contacting the other email provider for further information about the
|
106
|
+
# cause of this error. The error that the other server returned was:
|
107
|
+
# 550 550 Unknown user *****@***.**.*** (state 18).
|
108
|
+
'18' => { 'command' => 'DATA', 'reason' => 'filtered' },
|
109
|
+
}
|
110
|
+
Indicators = Sisimai::Bite::Email.INDICATORS
|
111
|
+
|
112
|
+
def description; return 'Google Gmail: https://mail.google.com'; end
|
113
|
+
def smtpagent; return Sisimai::Bite.smtpagent(self); end
|
114
|
+
def headerlist; return ['X-Failed-Recipients']; end
|
115
|
+
def pattern; return Re0; end
|
116
|
+
|
117
|
+
# Parse bounce messages from Google Gmail
|
118
|
+
# @param [Hash] mhead Message headers of a bounce email
|
119
|
+
# @options mhead [String] from From header
|
120
|
+
# @options mhead [String] date Date header
|
121
|
+
# @options mhead [String] subject Subject header
|
122
|
+
# @options mhead [Array] received Received headers
|
123
|
+
# @options mhead [String] others Other required headers
|
124
|
+
# @param [String] mbody Message body of a bounce email
|
125
|
+
# @return [Hash, Nil] Bounce data list and message/rfc822
|
126
|
+
# part or nil if it failed to parse or
|
127
|
+
# the arguments are missing
|
128
|
+
def scan(mhead, mbody)
|
129
|
+
return nil unless mhead
|
130
|
+
return nil unless mbody
|
131
|
+
|
132
|
+
# Google Mail
|
133
|
+
# From: Mail Delivery Subsystem <mailer-daemon@googlemail.com>
|
134
|
+
# Received: from vw-in-f109.1e100.net [74.125.113.109] by ...
|
135
|
+
#
|
136
|
+
# * Check the body part
|
137
|
+
# This is an automatically generated Delivery Status Notification
|
138
|
+
# Delivery to the following recipient failed permanently:
|
139
|
+
#
|
140
|
+
# recipient-address-here@example.jp
|
141
|
+
#
|
142
|
+
# Technical details of permanent failure:
|
143
|
+
# Google tried to deliver your message, but it was rejected by the
|
144
|
+
# recipient domain. We recommend contacting the other email provider
|
145
|
+
# for further information about the cause of this error. The error
|
146
|
+
# that the other server returned was:
|
147
|
+
# 550 550 <recipient-address-heare@example.jp>: User unknown (state 14).
|
148
|
+
#
|
149
|
+
# -- OR --
|
150
|
+
# THIS IS A WARNING MESSAGE ONLY.
|
151
|
+
#
|
152
|
+
# YOU DO NOT NEED TO RESEND YOUR MESSAGE.
|
153
|
+
#
|
154
|
+
# Delivery to the following recipient has been delayed:
|
155
|
+
#
|
156
|
+
# mailboxfull@example.jp
|
157
|
+
#
|
158
|
+
# Message will be retried for 2 more day(s)
|
159
|
+
#
|
160
|
+
# Technical details of temporary failure:
|
161
|
+
# Google tried to deliver your message, but it was rejected by the recipient
|
162
|
+
# domain. We recommend contacting the other email provider for further infor-
|
163
|
+
# mation about the cause of this error. The error that the other server re-
|
164
|
+
# turned was: 450 450 4.2.2 <mailboxfull@example.jp>... Mailbox Full (state 14).
|
165
|
+
#
|
166
|
+
# -- OR --
|
167
|
+
#
|
168
|
+
# Delivery to the following recipient failed permanently:
|
169
|
+
#
|
170
|
+
# userunknown@example.jp
|
171
|
+
#
|
172
|
+
# Technical details of permanent failure:=20
|
173
|
+
# Google tried to deliver your message, but it was rejected by the server for=
|
174
|
+
# the recipient domain example.jp by mx.example.jp. [192.0.2.59].
|
175
|
+
#
|
176
|
+
# The error that the other server returned was:
|
177
|
+
# 550 5.1.1 <userunknown@example.jp>... User Unknown
|
178
|
+
#
|
179
|
+
return nil unless mhead['from'] =~ Re0[:from]
|
180
|
+
return nil unless mhead['subject'] =~ Re0[:subject]
|
181
|
+
|
182
|
+
require 'sisimai/address'
|
183
|
+
dscontents = [Sisimai::Bite.DELIVERYSTATUS]
|
184
|
+
hasdivided = mbody.split("\n")
|
185
|
+
rfc822list = [] # (Array) Each line in message/rfc822 part string
|
186
|
+
blanklines = 0 # (Integer) The number of blank lines
|
187
|
+
readcursor = 0 # (Integer) Points the current cursor position
|
188
|
+
recipients = 0 # (Integer) The number of 'Final-Recipient' header
|
189
|
+
statecode0 = 0 # (Integer) The value of (state *) in the error message
|
190
|
+
v = nil
|
191
|
+
|
192
|
+
hasdivided.each do |e|
|
193
|
+
if readcursor.zero?
|
194
|
+
# Beginning of the bounce message or delivery status part
|
195
|
+
if e =~ Re1[:begin]
|
196
|
+
readcursor |= Indicators[:deliverystatus]
|
197
|
+
end
|
198
|
+
end
|
199
|
+
|
200
|
+
if readcursor & Indicators[:'message-rfc822'] == 0
|
201
|
+
# Beginning of the original message part
|
202
|
+
if e =~ Re1[:rfc822]
|
203
|
+
readcursor |= Indicators[:'message-rfc822']
|
204
|
+
next
|
205
|
+
end
|
206
|
+
end
|
207
|
+
|
208
|
+
if readcursor & Indicators[:'message-rfc822'] > 0
|
209
|
+
# After "message/rfc822"
|
210
|
+
if e.empty?
|
211
|
+
blanklines += 1
|
212
|
+
break if blanklines > 1
|
213
|
+
next
|
214
|
+
end
|
215
|
+
rfc822list << e
|
216
|
+
|
217
|
+
else
|
218
|
+
# Before "message/rfc822"
|
219
|
+
next if readcursor & Indicators[:deliverystatus] == 0
|
220
|
+
next if e.empty?
|
221
|
+
|
222
|
+
# Technical details of permanent failure:=20
|
223
|
+
# Google tried to deliver your message, but it was rejected by the recipient =
|
224
|
+
# domain. We recommend contacting the other email provider for further inform=
|
225
|
+
# ation about the cause of this error. The error that the other server return=
|
226
|
+
# ed was: 554 554 5.7.0 Header error (state 18).
|
227
|
+
#
|
228
|
+
# -- OR --
|
229
|
+
#
|
230
|
+
# Technical details of permanent failure:=20
|
231
|
+
# Google tried to deliver your message, but it was rejected by the server for=
|
232
|
+
# the recipient domain example.jp by mx.example.jp. [192.0.2.49].
|
233
|
+
#
|
234
|
+
# The error that the other server returned was:
|
235
|
+
# 550 5.1.1 <userunknown@example.jp>... User Unknown
|
236
|
+
#
|
237
|
+
v = dscontents[-1]
|
238
|
+
|
239
|
+
if cv = e.match(/\A[ \t]+([^ ]+[@][^ ]+)\z/)
|
240
|
+
# kijitora@example.jp: 550 5.2.2 <kijitora@example>... Mailbox Full
|
241
|
+
if v['recipient']
|
242
|
+
# There are multiple recipient addresses in the message body.
|
243
|
+
dscontents << Sisimai::Bite.DELIVERYSTATUS
|
244
|
+
v = dscontents[-1]
|
245
|
+
end
|
246
|
+
|
247
|
+
addr0 = Sisimai::Address.s3s4(cv[1])
|
248
|
+
if Sisimai::RFC5322.is_emailaddress(addr0)
|
249
|
+
v['recipient'] = addr0
|
250
|
+
recipients += 1
|
251
|
+
end
|
252
|
+
|
253
|
+
else
|
254
|
+
v['diagnosis'] ||= ''
|
255
|
+
v['diagnosis'] += e + ' '
|
256
|
+
end
|
257
|
+
end
|
258
|
+
end
|
259
|
+
|
260
|
+
return nil if recipients.zero?
|
261
|
+
require 'sisimai/string'
|
262
|
+
require 'sisimai/smtp/status'
|
263
|
+
|
264
|
+
dscontents.map do |e|
|
265
|
+
e['agent'] = self.smtpagent
|
266
|
+
e['diagnosis'] = Sisimai::String.sweep(e['diagnosis'])
|
267
|
+
|
268
|
+
unless e['rhost']
|
269
|
+
# Get the value of remote host
|
270
|
+
if cv = e['diagnosis'].match(/[ \t]+by[ \t]+([^ ]+)[.][ \t]+\[(\d+[.]\d+[.]\d+[.]\d+)\][.]/)
|
271
|
+
# Google tried to deliver your message, but it was rejected by
|
272
|
+
# the server for the recipient domain example.jp by mx.example.jp. [192.0.2.153].
|
273
|
+
hostname = cv[1]
|
274
|
+
ipv4addr = cv[2]
|
275
|
+
if hostname =~ /[-0-9a-zA-Z]+[.][a-zA-Z]+\z/
|
276
|
+
# Maybe valid hostname
|
277
|
+
e['rhost'] = hostname.downcase
|
278
|
+
else
|
279
|
+
# Use IP address instead
|
280
|
+
e['rhost'] = ipv4addr
|
281
|
+
end
|
282
|
+
end
|
283
|
+
end
|
284
|
+
|
285
|
+
if cv = e['diagnosis'].match(/[(]state[ ](\d+)[)][.]/)
|
286
|
+
statecode0 = cv[1]
|
287
|
+
end
|
288
|
+
if StateTable[statecode0]
|
289
|
+
# (state *)
|
290
|
+
e['reason'] = StateTable[statecode0]['reason']
|
291
|
+
e['command'] = StateTable[statecode0]['command']
|
292
|
+
|
293
|
+
else
|
294
|
+
# No state code
|
295
|
+
ReFailure.each_key do |r|
|
296
|
+
# Verify each regular expression of session errors
|
297
|
+
next unless e['diagnosis'] =~ ReFailure[r]
|
298
|
+
e['reason'] = r.to_s
|
299
|
+
break
|
300
|
+
end
|
301
|
+
end
|
302
|
+
e['status'] = Sisimai::SMTP::Status.find(e['diagnosis'])
|
303
|
+
|
304
|
+
if e['reason']
|
305
|
+
# Set pseudo status code
|
306
|
+
if e['status'] =~ /\A[45][.][1-7][.][1-9]\z/
|
307
|
+
# Override bounce reason
|
308
|
+
e['reason'] = Sisimai::SMTP::Status.name(e['status'])
|
309
|
+
end
|
310
|
+
end
|
311
|
+
end
|
312
|
+
|
313
|
+
rfc822part = Sisimai::RFC5322.weedout(rfc822list)
|
314
|
+
return { 'ds' => dscontents, 'rfc822' => rfc822part }
|
315
|
+
end
|
316
|
+
|
317
|
+
end
|
318
|
+
end
|
319
|
+
end
|
320
|
+
|