sisimai 4.19.0-java → 4.20.0-java
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.travis.yml +1 -0
- data/ANALYTICAL-PRECISION +8 -6
- data/Changes +15 -0
- data/Developers.mk +13 -1
- data/Makefile +3 -3
- data/README-JA.md +35 -6
- data/README.md +44 -25
- data/Repository.mk +1 -1
- data/lib/sisimai.rb +92 -32
- data/lib/sisimai/address.rb +1 -1
- data/lib/sisimai/arf.rb +1 -1
- data/lib/sisimai/ced.rb +24 -0
- data/lib/sisimai/ced/us/amazonses.rb +270 -0
- data/lib/sisimai/ced/us/sendgrid.rb +86 -0
- data/lib/sisimai/data.rb +19 -4
- data/lib/sisimai/data/json.rb +4 -4
- data/lib/sisimai/data/yaml.rb +3 -2
- data/lib/sisimai/mail/maildir.rb +1 -1
- data/lib/sisimai/mail/mbox.rb +1 -1
- data/lib/sisimai/message.rb +43 -510
- data/lib/sisimai/message/email.rb +556 -0
- data/lib/sisimai/message/json.rb +201 -0
- data/lib/sisimai/msp.rb +4 -31
- data/lib/sisimai/msp/de/einsundeins.rb +1 -1
- data/lib/sisimai/msp/de/gmx.rb +1 -1
- data/lib/sisimai/msp/jp/biglobe.rb +1 -1
- data/lib/sisimai/msp/jp/ezweb.rb +1 -1
- data/lib/sisimai/msp/jp/kddi.rb +1 -1
- data/lib/sisimai/msp/ru/mailru.rb +1 -1
- data/lib/sisimai/msp/ru/yandex.rb +1 -1
- data/lib/sisimai/msp/uk/messagelabs.rb +1 -1
- data/lib/sisimai/msp/us/amazonses.rb +1 -1
- data/lib/sisimai/msp/us/amazonworkmail.rb +1 -1
- data/lib/sisimai/msp/us/aol.rb +1 -1
- data/lib/sisimai/msp/us/bigfoot.rb +1 -1
- data/lib/sisimai/msp/us/facebook.rb +1 -1
- data/lib/sisimai/msp/us/google.rb +1 -1
- data/lib/sisimai/msp/us/office365.rb +1 -1
- data/lib/sisimai/msp/us/outlook.rb +1 -1
- data/lib/sisimai/msp/us/receivingses.rb +1 -1
- data/lib/sisimai/msp/us/sendgrid.rb +1 -1
- data/lib/sisimai/msp/us/verizon.rb +1 -1
- data/lib/sisimai/msp/us/yahoo.rb +1 -1
- data/lib/sisimai/msp/us/zoho.rb +1 -1
- data/lib/sisimai/mta.rb +4 -32
- data/lib/sisimai/mta/activehunter.rb +1 -1
- data/lib/sisimai/mta/apachejames.rb +1 -1
- data/lib/sisimai/mta/courier.rb +1 -1
- data/lib/sisimai/mta/domino.rb +1 -1
- data/lib/sisimai/mta/exchange2003.rb +1 -1
- data/lib/sisimai/mta/exchange2007.rb +1 -1
- data/lib/sisimai/mta/exim.rb +1 -1
- data/lib/sisimai/mta/imailserver.rb +1 -1
- data/lib/sisimai/mta/interscanmss.rb +1 -1
- data/lib/sisimai/mta/mailfoundry.rb +1 -1
- data/lib/sisimai/mta/mailmarshalsmtp.rb +1 -1
- data/lib/sisimai/mta/mcafee.rb +1 -1
- data/lib/sisimai/mta/messagingserver.rb +1 -1
- data/lib/sisimai/mta/mfilter.rb +1 -1
- data/lib/sisimai/mta/mxlogic.rb +1 -1
- data/lib/sisimai/mta/notes.rb +1 -1
- data/lib/sisimai/mta/opensmtpd.rb +2 -2
- data/lib/sisimai/mta/postfix.rb +1 -1
- data/lib/sisimai/mta/qmail.rb +1 -1
- data/lib/sisimai/mta/sendmail.rb +2 -1
- data/lib/sisimai/mta/surfcontrol.rb +1 -1
- data/lib/sisimai/mta/userdefined.rb +1 -1
- data/lib/sisimai/mta/v5sendmail.rb +1 -1
- data/lib/sisimai/mta/x1.rb +1 -1
- data/lib/sisimai/mta/x2.rb +1 -1
- data/lib/sisimai/mta/x3.rb +1 -1
- data/lib/sisimai/mta/x4.rb +1 -1
- data/lib/sisimai/mta/x5.rb +1 -1
- data/lib/sisimai/order.rb +7 -216
- data/lib/sisimai/order/email.rb +231 -0
- data/lib/sisimai/order/json.rb +56 -0
- data/lib/sisimai/reason/hostunknown.rb +1 -0
- data/lib/sisimai/reason/norelaying.rb +2 -0
- data/lib/sisimai/reason/notaccept.rb +5 -1
- data/lib/sisimai/rfc3464.rb +1 -1
- data/lib/sisimai/skeleton.rb +43 -0
- data/lib/sisimai/smtp.rb +11 -48
- data/lib/sisimai/smtp/error.rb +3 -1
- data/lib/sisimai/string.rb +1 -0
- data/lib/sisimai/version.rb +1 -1
- data/set-of-emails/jsonapi/ced-us-amazonses-01.json +1 -0
- data/set-of-emails/jsonapi/ced-us-amazonses-02.json +11 -0
- data/set-of-emails/jsonapi/ced-us-amazonses-03.json +1 -0
- data/set-of-emails/jsonapi/ced-us-amazonses-04.json +1 -0
- data/set-of-emails/jsonapi/ced-us-amazonses-05.json +1 -0
- data/set-of-emails/jsonapi/ced-us-sendgrid-01.json +1 -0
- data/set-of-emails/jsonapi/ced-us-sendgrid-02.json +1 -0
- data/set-of-emails/jsonapi/ced-us-sendgrid-03.json +1 -0
- data/set-of-emails/jsonapi/ced-us-sendgrid-04.json +1 -0
- data/set-of-emails/jsonapi/ced-us-sendgrid-05.json +1 -0
- data/set-of-emails/jsonapi/ced-us-sendgrid-06.json +1 -0
- data/set-of-emails/jsonapi/ced-us-sendgrid-07.json +1 -0
- data/set-of-emails/jsonapi/ced-us-sendgrid-08.json +1 -0
- data/set-of-emails/jsonapi/ced-us-sendgrid-09.json +1 -0
- data/set-of-emails/jsonapi/ced-us-sendgrid-10.json +1 -0
- data/set-of-emails/jsonapi/ced-us-sendgrid-11.json +1 -0
- data/set-of-emails/maildir/bsd/README.md +50 -50
- data/set-of-emails/maildir/bsd/ced-us-amazonses-01.eml +47 -0
- data/set-of-emails/maildir/bsd/ced-us-amazonses-02.eml +51 -0
- data/set-of-emails/maildir/bsd/ced-us-amazonses-03.eml +47 -0
- data/set-of-emails/maildir/bsd/ced-us-amazonses-04.eml +46 -0
- data/set-of-emails/maildir/bsd/ced-us-amazonses-05.eml +46 -0
- data/set-of-emails/maildir/bsd/{de-einsundeins-01.eml → msp-de-einsundeins-01.eml} +0 -0
- data/set-of-emails/maildir/bsd/{de-gmx-01.eml → msp-de-gmx-01.eml} +0 -0
- data/set-of-emails/maildir/bsd/{de-gmx-02.eml → msp-de-gmx-02.eml} +0 -0
- data/set-of-emails/maildir/bsd/{de-gmx-03.eml → msp-de-gmx-03.eml} +0 -0
- data/set-of-emails/maildir/bsd/{de-gmx-04.eml → msp-de-gmx-04.eml} +0 -0
- data/set-of-emails/maildir/bsd/{jp-biglobe-01.eml → msp-jp-biglobe-01.eml} +0 -0
- data/set-of-emails/maildir/bsd/{jp-ezweb-01.eml → msp-jp-ezweb-01.eml} +0 -0
- data/set-of-emails/maildir/bsd/{jp-ezweb-02.eml → msp-jp-ezweb-02.eml} +0 -0
- data/set-of-emails/maildir/bsd/{jp-ezweb-03.eml → msp-jp-ezweb-03.eml} +0 -0
- data/set-of-emails/maildir/bsd/{jp-ezweb-04.eml → msp-jp-ezweb-04.eml} +0 -0
- data/set-of-emails/maildir/bsd/{jp-ezweb-05.eml → msp-jp-ezweb-05.eml} +0 -0
- data/set-of-emails/maildir/bsd/{jp-ezweb-06.eml → msp-jp-ezweb-06.eml} +0 -0
- data/set-of-emails/maildir/bsd/{jp-kddi-01.eml → msp-jp-kddi-01.eml} +0 -0
- data/set-of-emails/maildir/bsd/{jp-kddi-02.eml → msp-jp-kddi-02.eml} +0 -0
- data/set-of-emails/maildir/bsd/{jp-kddi-03.eml → msp-jp-kddi-03.eml} +0 -0
- data/set-of-emails/maildir/bsd/{ru-mailru-01.eml → msp-ru-mailru-01.eml} +0 -0
- data/set-of-emails/maildir/bsd/{ru-mailru-02.eml → msp-ru-mailru-02.eml} +0 -0
- data/set-of-emails/maildir/bsd/{ru-mailru-03.eml → msp-ru-mailru-03.eml} +0 -0
- data/set-of-emails/maildir/bsd/{ru-mailru-04.eml → msp-ru-mailru-04.eml} +0 -0
- data/set-of-emails/maildir/bsd/{ru-yandex-01.eml → msp-ru-yandex-01.eml} +0 -0
- data/set-of-emails/maildir/bsd/{ru-yandex-02.eml → msp-ru-yandex-02.eml} +0 -0
- data/set-of-emails/maildir/bsd/{ru-yandex-03.eml → msp-ru-yandex-03.eml} +0 -0
- data/set-of-emails/maildir/bsd/{uk-messagelabs-01.eml → msp-uk-messagelabs-01.eml} +0 -0
- data/set-of-emails/maildir/bsd/{us-amazonses-01.eml → msp-us-amazonses-01.eml} +0 -0
- data/set-of-emails/maildir/bsd/{us-amazonses-02.eml → msp-us-amazonses-02.eml} +0 -0
- data/set-of-emails/maildir/bsd/{us-amazonses-03.eml → msp-us-amazonses-03.eml} +0 -0
- data/set-of-emails/maildir/bsd/{us-amazonses-04.eml → msp-us-amazonses-04.eml} +0 -0
- data/set-of-emails/maildir/bsd/{us-amazonses-05.eml → msp-us-amazonses-05.eml} +0 -0
- data/set-of-emails/maildir/bsd/{us-amazonses-06.eml → msp-us-amazonses-06.eml} +0 -0
- data/set-of-emails/maildir/bsd/{us-amazonses-07.eml → msp-us-amazonses-07.eml} +0 -0
- data/set-of-emails/maildir/bsd/{us-amazonses-08.eml → msp-us-amazonses-08.eml} +0 -0
- data/set-of-emails/maildir/bsd/{us-amazonworkmail-01.eml → msp-us-amazonworkmail-01.eml} +0 -0
- data/set-of-emails/maildir/bsd/{us-amazonworkmail-02.eml → msp-us-amazonworkmail-02.eml} +0 -0
- data/set-of-emails/maildir/bsd/{us-amazonworkmail-03.eml → msp-us-amazonworkmail-03.eml} +0 -0
- data/set-of-emails/maildir/bsd/{us-amazonworkmail-04.eml → msp-us-amazonworkmail-04.eml} +0 -0
- data/set-of-emails/maildir/bsd/{us-amazonworkmail-05.eml → msp-us-amazonworkmail-05.eml} +0 -0
- data/set-of-emails/maildir/bsd/{us-amazonworkmail-06.eml → msp-us-amazonworkmail-06.eml} +0 -0
- data/set-of-emails/maildir/bsd/{us-amazonworkmail-07.eml → msp-us-amazonworkmail-07.eml} +0 -0
- data/set-of-emails/maildir/bsd/{us-aol-01.eml → msp-us-aol-01.eml} +0 -0
- data/set-of-emails/maildir/bsd/{us-aol-02.eml → msp-us-aol-02.eml} +0 -0
- data/set-of-emails/maildir/bsd/{us-aol-03.eml → msp-us-aol-03.eml} +0 -0
- data/set-of-emails/maildir/bsd/{us-aol-04.eml → msp-us-aol-04.eml} +0 -0
- data/set-of-emails/maildir/bsd/{us-bigfoot-01.eml → msp-us-bigfoot-01.eml} +0 -0
- data/set-of-emails/maildir/bsd/{us-facebook-01.eml → msp-us-facebook-01.eml} +0 -0
- data/set-of-emails/maildir/bsd/{us-facebook-02.eml → msp-us-facebook-02.eml} +0 -0
- data/set-of-emails/maildir/bsd/{us-google-01.eml → msp-us-google-01.eml} +0 -0
- data/set-of-emails/maildir/bsd/{us-google-02.eml → msp-us-google-02.eml} +0 -0
- data/set-of-emails/maildir/bsd/{us-google-03.eml → msp-us-google-03.eml} +0 -0
- data/set-of-emails/maildir/bsd/{us-google-04.eml → msp-us-google-04.eml} +0 -0
- data/set-of-emails/maildir/bsd/{us-google-05.eml → msp-us-google-05.eml} +0 -0
- data/set-of-emails/maildir/bsd/{us-google-06.eml → msp-us-google-06.eml} +0 -0
- data/set-of-emails/maildir/bsd/{us-google-07.eml → msp-us-google-07.eml} +0 -0
- data/set-of-emails/maildir/bsd/{us-google-08.eml → msp-us-google-08.eml} +0 -0
- data/set-of-emails/maildir/bsd/{us-google-09.eml → msp-us-google-09.eml} +0 -0
- data/set-of-emails/maildir/bsd/{us-google-10.eml → msp-us-google-10.eml} +0 -0
- data/set-of-emails/maildir/bsd/{us-google-11.eml → msp-us-google-11.eml} +0 -0
- data/set-of-emails/maildir/bsd/{us-google-12.eml → msp-us-google-12.eml} +0 -0
- data/set-of-emails/maildir/bsd/{us-google-13.eml → msp-us-google-13.eml} +0 -0
- data/set-of-emails/maildir/bsd/{us-google-14.eml → msp-us-google-14.eml} +0 -0
- data/set-of-emails/maildir/bsd/{us-google-15.eml → msp-us-google-15.eml} +0 -0
- data/set-of-emails/maildir/bsd/{us-google-16.eml → msp-us-google-16.eml} +0 -0
- data/set-of-emails/maildir/bsd/{us-google-17.eml → msp-us-google-17.eml} +0 -0
- data/set-of-emails/maildir/bsd/{us-office365-01.eml → msp-us-office365-01.eml} +0 -0
- data/set-of-emails/maildir/bsd/{us-office365-02.eml → msp-us-office365-02.eml} +0 -0
- data/set-of-emails/maildir/bsd/{us-outlook-01.eml → msp-us-outlook-01.eml} +0 -0
- data/set-of-emails/maildir/bsd/{us-outlook-02.eml → msp-us-outlook-02.eml} +0 -0
- data/set-of-emails/maildir/bsd/{us-outlook-03.eml → msp-us-outlook-03.eml} +0 -0
- data/set-of-emails/maildir/bsd/{us-outlook-04.eml → msp-us-outlook-04.eml} +0 -0
- data/set-of-emails/maildir/bsd/{us-outlook-05.eml → msp-us-outlook-05.eml} +0 -0
- data/set-of-emails/maildir/bsd/{us-outlook-06.eml → msp-us-outlook-06.eml} +0 -0
- data/set-of-emails/maildir/bsd/{us-outlook-07.eml → msp-us-outlook-07.eml} +0 -0
- data/set-of-emails/maildir/bsd/{us-receivingses-01.eml → msp-us-receivingses-01.eml} +0 -0
- data/set-of-emails/maildir/bsd/{us-receivingses-02.eml → msp-us-receivingses-02.eml} +0 -0
- data/set-of-emails/maildir/bsd/{us-receivingses-03.eml → msp-us-receivingses-03.eml} +0 -0
- data/set-of-emails/maildir/bsd/{us-receivingses-04.eml → msp-us-receivingses-04.eml} +0 -0
- data/set-of-emails/maildir/bsd/{us-receivingses-05.eml → msp-us-receivingses-05.eml} +0 -0
- data/set-of-emails/maildir/bsd/{us-receivingses-06.eml → msp-us-receivingses-06.eml} +0 -0
- data/set-of-emails/maildir/bsd/{us-receivingses-07.eml → msp-us-receivingses-07.eml} +0 -0
- data/set-of-emails/maildir/bsd/{us-sendgrid-01.eml → msp-us-sendgrid-01.eml} +0 -0
- data/set-of-emails/maildir/bsd/{us-sendgrid-02.eml → msp-us-sendgrid-02.eml} +0 -0
- data/set-of-emails/maildir/bsd/{us-sendgrid-03.eml → msp-us-sendgrid-03.eml} +0 -0
- data/set-of-emails/maildir/bsd/{us-verizon-01.eml → msp-us-verizon-01.eml} +0 -0
- data/set-of-emails/maildir/bsd/msp-us-verizon-02.eml +46 -0
- data/set-of-emails/maildir/bsd/{us-yahoo-01.eml → msp-us-yahoo-01.eml} +0 -0
- data/set-of-emails/maildir/bsd/{us-yahoo-02.eml → msp-us-yahoo-02.eml} +0 -0
- data/set-of-emails/maildir/bsd/{us-yahoo-03.eml → msp-us-yahoo-03.eml} +0 -0
- data/set-of-emails/maildir/bsd/{us-yahoo-04.eml → msp-us-yahoo-04.eml} +0 -0
- data/set-of-emails/maildir/bsd/{us-yahoo-05.eml → msp-us-yahoo-05.eml} +0 -0
- data/set-of-emails/maildir/bsd/{us-zoho-01.eml → msp-us-zoho-01.eml} +0 -0
- data/set-of-emails/maildir/bsd/{us-zoho-02.eml → msp-us-zoho-02.eml} +0 -0
- data/set-of-emails/maildir/bsd/{us-zoho-03.eml → msp-us-zoho-03.eml} +0 -0
- data/set-of-emails/maildir/bsd/{us-zoho-04.eml → msp-us-zoho-04.eml} +0 -0
- data/set-of-emails/maildir/bsd/{us-zoho-05.eml → msp-us-zoho-05.eml} +0 -0
- data/set-of-emails/maildir/bsd/mta-README.md +319 -0
- data/set-of-emails/maildir/bsd/{activehunter-01.eml → mta-activehunter-01.eml} +0 -0
- data/set-of-emails/maildir/bsd/{activehunter-02.eml → mta-activehunter-02.eml} +0 -0
- data/set-of-emails/maildir/bsd/{apachejames-01.eml → mta-apachejames-01.eml} +0 -0
- data/set-of-emails/maildir/bsd/{courier-01.eml → mta-courier-01.eml} +0 -0
- data/set-of-emails/maildir/bsd/{courier-02.eml → mta-courier-02.eml} +0 -0
- data/set-of-emails/maildir/bsd/{courier-03.eml → mta-courier-03.eml} +0 -0
- data/set-of-emails/maildir/bsd/{courier-04.eml → mta-courier-04.eml} +0 -0
- data/set-of-emails/maildir/bsd/{domino-01.eml → mta-domino-01.eml} +0 -0
- data/set-of-emails/maildir/bsd/{domino-02.eml → mta-domino-02.eml} +0 -0
- data/set-of-emails/maildir/bsd/{exchange2003-01.eml → mta-exchange2003-01.eml} +0 -0
- data/set-of-emails/maildir/bsd/{exchange2003-02.eml → mta-exchange2003-02.eml} +0 -0
- data/set-of-emails/maildir/bsd/{exchange2003-03.eml → mta-exchange2003-03.eml} +0 -0
- data/set-of-emails/maildir/bsd/{exchange2003-04.eml → mta-exchange2003-04.eml} +0 -0
- data/set-of-emails/maildir/bsd/{exchange2003-05.eml → mta-exchange2003-05.eml} +0 -0
- data/set-of-emails/maildir/bsd/{exchange2003-06.eml → mta-exchange2003-06.eml} +0 -0
- data/set-of-emails/maildir/bsd/{exchange2007-01.eml → mta-exchange2007-01.eml} +0 -0
- data/set-of-emails/maildir/bsd/{exchange2007-02.eml → mta-exchange2007-02.eml} +0 -0
- data/set-of-emails/maildir/bsd/{exchange2007-03.eml → mta-exchange2007-03.eml} +0 -0
- data/set-of-emails/maildir/bsd/{exim-01.eml → mta-exim-01.eml} +0 -0
- data/set-of-emails/maildir/bsd/{exim-02.eml → mta-exim-02.eml} +0 -0
- data/set-of-emails/maildir/bsd/{exim-03.eml → mta-exim-03.eml} +0 -0
- data/set-of-emails/maildir/bsd/{exim-04.eml → mta-exim-04.eml} +0 -0
- data/set-of-emails/maildir/bsd/{exim-05.eml → mta-exim-05.eml} +0 -0
- data/set-of-emails/maildir/bsd/{exim-06.eml → mta-exim-06.eml} +0 -0
- data/set-of-emails/maildir/bsd/{exim-07.eml → mta-exim-07.eml} +0 -0
- data/set-of-emails/maildir/bsd/{exim-08.eml → mta-exim-08.eml} +0 -0
- data/set-of-emails/maildir/bsd/{exim-09.eml → mta-exim-09.eml} +0 -0
- data/set-of-emails/maildir/bsd/{exim-10.eml → mta-exim-10.eml} +0 -0
- data/set-of-emails/maildir/bsd/{exim-11.eml → mta-exim-11.eml} +0 -0
- data/set-of-emails/maildir/bsd/{exim-12.eml → mta-exim-12.eml} +0 -0
- data/set-of-emails/maildir/bsd/{exim-13.eml → mta-exim-13.eml} +0 -0
- data/set-of-emails/maildir/bsd/{exim-14.eml → mta-exim-14.eml} +0 -0
- data/set-of-emails/maildir/bsd/{exim-15.eml → mta-exim-15.eml} +0 -0
- data/set-of-emails/maildir/bsd/{exim-16.eml → mta-exim-16.eml} +0 -0
- data/set-of-emails/maildir/bsd/{exim-17.eml → mta-exim-17.eml} +0 -0
- data/set-of-emails/maildir/bsd/{exim-18.eml → mta-exim-18.eml} +0 -0
- data/set-of-emails/maildir/bsd/{exim-19.eml → mta-exim-19.eml} +0 -0
- data/set-of-emails/maildir/bsd/{exim-20.eml → mta-exim-20.eml} +0 -0
- data/set-of-emails/maildir/bsd/{exim-21.eml → mta-exim-21.eml} +0 -0
- data/set-of-emails/maildir/bsd/{exim-22.eml → mta-exim-22.eml} +0 -0
- data/set-of-emails/maildir/bsd/{exim-23.eml → mta-exim-23.eml} +0 -0
- data/set-of-emails/maildir/bsd/{exim-24.eml → mta-exim-24.eml} +0 -0
- data/set-of-emails/maildir/bsd/{exim-25.eml → mta-exim-25.eml} +0 -0
- data/set-of-emails/maildir/bsd/{exim-26.eml → mta-exim-26.eml} +0 -0
- data/set-of-emails/maildir/bsd/{exim-27.eml → mta-exim-27.eml} +0 -0
- data/set-of-emails/maildir/bsd/{exim-28.eml → mta-exim-28.eml} +0 -0
- data/set-of-emails/maildir/bsd/{exim-29.eml → mta-exim-29.eml} +0 -0
- data/set-of-emails/maildir/bsd/{imailserver-01.eml → mta-imailserver-01.eml} +0 -0
- data/set-of-emails/maildir/bsd/{imailserver-02.eml → mta-imailserver-02.eml} +0 -0
- data/set-of-emails/maildir/bsd/{imailserver-03.eml → mta-imailserver-03.eml} +0 -0
- data/set-of-emails/maildir/bsd/{imailserver-04.eml → mta-imailserver-04.eml} +0 -0
- data/set-of-emails/maildir/bsd/{imailserver-05.eml → mta-imailserver-05.eml} +0 -0
- data/set-of-emails/maildir/bsd/{imailserver-06.eml → mta-imailserver-06.eml} +0 -0
- data/set-of-emails/maildir/bsd/{interscanmss-01.eml → mta-interscanmss-01.eml} +0 -0
- data/set-of-emails/maildir/bsd/{interscanmss-02.eml → mta-interscanmss-02.eml} +0 -0
- data/set-of-emails/maildir/bsd/{mailfoundry-01.eml → mta-mailfoundry-01.eml} +0 -0
- data/set-of-emails/maildir/bsd/{mailfoundry-02.eml → mta-mailfoundry-02.eml} +0 -0
- data/set-of-emails/maildir/bsd/{mailmarshalsmtp-01.eml → mta-mailmarshalsmtp-01.eml} +0 -0
- data/set-of-emails/maildir/bsd/{mcafee-01.eml → mta-mcafee-01.eml} +0 -0
- data/set-of-emails/maildir/bsd/{mcafee-02.eml → mta-mcafee-02.eml} +0 -0
- data/set-of-emails/maildir/bsd/{mcafee-03.eml → mta-mcafee-03.eml} +0 -0
- data/set-of-emails/maildir/bsd/{messagingserver-01.eml → mta-messagingserver-01.eml} +0 -0
- data/set-of-emails/maildir/bsd/{messagingserver-02.eml → mta-messagingserver-02.eml} +0 -0
- data/set-of-emails/maildir/bsd/{messagingserver-03.eml → mta-messagingserver-03.eml} +0 -0
- data/set-of-emails/maildir/bsd/{messagingserver-04.eml → mta-messagingserver-04.eml} +0 -0
- data/set-of-emails/maildir/bsd/{messagingserver-05.eml → mta-messagingserver-05.eml} +0 -0
- data/set-of-emails/maildir/bsd/{messagingserver-06.eml → mta-messagingserver-06.eml} +0 -0
- data/set-of-emails/maildir/bsd/{messagingserver-07.eml → mta-messagingserver-07.eml} +0 -0
- data/set-of-emails/maildir/bsd/{mfilter-01.eml → mta-mfilter-01.eml} +0 -0
- data/set-of-emails/maildir/bsd/{mfilter-02.eml → mta-mfilter-02.eml} +0 -0
- data/set-of-emails/maildir/bsd/{mfilter-03.eml → mta-mfilter-03.eml} +0 -0
- data/set-of-emails/maildir/bsd/{mxlogic-01.eml → mta-mxlogic-01.eml} +0 -0
- data/set-of-emails/maildir/bsd/{mxlogic-02.eml → mta-mxlogic-02.eml} +0 -0
- data/set-of-emails/maildir/bsd/{mxlogic-03.eml → mta-mxlogic-03.eml} +0 -0
- data/set-of-emails/maildir/bsd/{notes-01.eml → mta-notes-01.eml} +0 -0
- data/set-of-emails/maildir/bsd/{notes-02.eml → mta-notes-02.eml} +0 -0
- data/set-of-emails/maildir/bsd/{notes-03.eml → mta-notes-03.eml} +0 -0
- data/set-of-emails/maildir/bsd/{notes-04.eml → mta-notes-04.eml} +0 -0
- data/set-of-emails/maildir/bsd/{opensmtpd-01.eml → mta-opensmtpd-01.eml} +0 -0
- data/set-of-emails/maildir/bsd/{opensmtpd-02.eml → mta-opensmtpd-02.eml} +0 -0
- data/set-of-emails/maildir/bsd/{opensmtpd-03.eml → mta-opensmtpd-03.eml} +0 -0
- data/set-of-emails/maildir/bsd/{opensmtpd-04.eml → mta-opensmtpd-04.eml} +0 -0
- data/set-of-emails/maildir/bsd/{opensmtpd-05.eml → mta-opensmtpd-05.eml} +0 -0
- data/set-of-emails/maildir/bsd/mta-opensmtpd-06.eml +67 -0
- data/set-of-emails/maildir/bsd/{postfix-01.eml → mta-postfix-01.eml} +0 -0
- data/set-of-emails/maildir/bsd/{postfix-02.eml → mta-postfix-02.eml} +0 -0
- data/set-of-emails/maildir/bsd/{postfix-03.eml → mta-postfix-03.eml} +0 -0
- data/set-of-emails/maildir/bsd/{postfix-04.eml → mta-postfix-04.eml} +0 -0
- data/set-of-emails/maildir/bsd/{postfix-05.eml → mta-postfix-05.eml} +0 -0
- data/set-of-emails/maildir/bsd/{postfix-06.eml → mta-postfix-06.eml} +0 -0
- data/set-of-emails/maildir/bsd/{postfix-07.eml → mta-postfix-07.eml} +0 -0
- data/set-of-emails/maildir/bsd/{postfix-08.eml → mta-postfix-08.eml} +0 -0
- data/set-of-emails/maildir/bsd/{postfix-09.eml → mta-postfix-09.eml} +0 -0
- data/set-of-emails/maildir/bsd/{postfix-10.eml → mta-postfix-10.eml} +0 -0
- data/set-of-emails/maildir/bsd/{postfix-11.eml → mta-postfix-11.eml} +0 -0
- data/set-of-emails/maildir/bsd/{postfix-12.eml → mta-postfix-12.eml} +0 -0
- data/set-of-emails/maildir/bsd/{postfix-13.eml → mta-postfix-13.eml} +0 -0
- data/set-of-emails/maildir/bsd/{postfix-14.eml → mta-postfix-14.eml} +0 -0
- data/set-of-emails/maildir/bsd/{postfix-15.eml → mta-postfix-15.eml} +0 -0
- data/set-of-emails/maildir/bsd/{postfix-16.eml → mta-postfix-16.eml} +0 -0
- data/set-of-emails/maildir/bsd/{postfix-17.eml → mta-postfix-17.eml} +0 -0
- data/set-of-emails/maildir/bsd/{postfix-18.eml → mta-postfix-18.eml} +0 -0
- data/set-of-emails/maildir/bsd/{postfix-19.eml → mta-postfix-19.eml} +0 -0
- data/set-of-emails/maildir/bsd/{postfix-20.eml → mta-postfix-20.eml} +0 -0
- data/set-of-emails/maildir/bsd/{postfix-21.eml → mta-postfix-21.eml} +0 -0
- data/set-of-emails/maildir/bsd/{postfix-22.eml → mta-postfix-22.eml} +0 -0
- data/set-of-emails/maildir/bsd/{postfix-23.eml → mta-postfix-23.eml} +0 -0
- data/set-of-emails/maildir/bsd/{postfix-24.eml → mta-postfix-24.eml} +0 -0
- data/set-of-emails/maildir/bsd/{postfix-25.eml → mta-postfix-25.eml} +0 -0
- data/set-of-emails/maildir/bsd/{postfix-26.eml → mta-postfix-26.eml} +0 -0
- data/set-of-emails/maildir/bsd/{postfix-27.eml → mta-postfix-27.eml} +0 -0
- data/set-of-emails/maildir/bsd/{qmail-01.eml → mta-qmail-01.eml} +0 -0
- data/set-of-emails/maildir/bsd/{qmail-02.eml → mta-qmail-02.eml} +0 -0
- data/set-of-emails/maildir/bsd/{qmail-03.eml → mta-qmail-03.eml} +0 -0
- data/set-of-emails/maildir/bsd/{qmail-04.eml → mta-qmail-04.eml} +0 -0
- data/set-of-emails/maildir/bsd/{qmail-05.eml → mta-qmail-05.eml} +0 -0
- data/set-of-emails/maildir/bsd/{qmail-06.eml → mta-qmail-06.eml} +0 -0
- data/set-of-emails/maildir/bsd/{qmail-07.eml → mta-qmail-07.eml} +0 -0
- data/set-of-emails/maildir/bsd/{qmail-08.eml → mta-qmail-08.eml} +0 -0
- data/set-of-emails/maildir/bsd/{qmail-09.eml → mta-qmail-09.eml} +0 -0
- data/set-of-emails/maildir/bsd/{qmail-10.eml → mta-qmail-10.eml} +0 -0
- data/set-of-emails/maildir/bsd/{qmail-11.eml → mta-qmail-11.eml} +0 -0
- data/set-of-emails/maildir/bsd/{qmail-12.eml → mta-qmail-12.eml} +0 -0
- data/set-of-emails/maildir/bsd/{sendmail-01.eml → mta-sendmail-01.eml} +0 -0
- data/set-of-emails/maildir/bsd/{sendmail-02.eml → mta-sendmail-02.eml} +0 -0
- data/set-of-emails/maildir/bsd/{sendmail-03.eml → mta-sendmail-03.eml} +0 -0
- data/set-of-emails/maildir/bsd/{sendmail-04.eml → mta-sendmail-04.eml} +0 -0
- data/set-of-emails/maildir/bsd/{sendmail-05.eml → mta-sendmail-05.eml} +0 -0
- data/set-of-emails/maildir/bsd/{sendmail-06.eml → mta-sendmail-06.eml} +0 -0
- data/set-of-emails/maildir/bsd/{sendmail-07.eml → mta-sendmail-07.eml} +0 -0
- data/set-of-emails/maildir/bsd/{sendmail-08.eml → mta-sendmail-08.eml} +0 -0
- data/set-of-emails/maildir/bsd/{sendmail-09.eml → mta-sendmail-09.eml} +0 -0
- data/set-of-emails/maildir/bsd/{sendmail-10.eml → mta-sendmail-10.eml} +0 -0
- data/set-of-emails/maildir/bsd/{sendmail-11.eml → mta-sendmail-11.eml} +0 -0
- data/set-of-emails/maildir/bsd/{sendmail-12.eml → mta-sendmail-12.eml} +0 -0
- data/set-of-emails/maildir/bsd/{sendmail-13.eml → mta-sendmail-13.eml} +0 -0
- data/set-of-emails/maildir/bsd/{sendmail-14.eml → mta-sendmail-14.eml} +0 -0
- data/set-of-emails/maildir/bsd/{sendmail-15.eml → mta-sendmail-15.eml} +0 -0
- data/set-of-emails/maildir/bsd/{sendmail-16.eml → mta-sendmail-16.eml} +0 -0
- data/set-of-emails/maildir/bsd/{sendmail-17.eml → mta-sendmail-17.eml} +0 -0
- data/set-of-emails/maildir/bsd/{sendmail-18.eml → mta-sendmail-18.eml} +0 -0
- data/set-of-emails/maildir/bsd/{sendmail-19.eml → mta-sendmail-19.eml} +0 -0
- data/set-of-emails/maildir/bsd/{sendmail-20.eml → mta-sendmail-20.eml} +0 -0
- data/set-of-emails/maildir/bsd/{sendmail-21.eml → mta-sendmail-21.eml} +0 -0
- data/set-of-emails/maildir/bsd/{sendmail-22.eml → mta-sendmail-22.eml} +0 -0
- data/set-of-emails/maildir/bsd/{sendmail-23.eml → mta-sendmail-23.eml} +0 -0
- data/set-of-emails/maildir/bsd/{sendmail-24.eml → mta-sendmail-24.eml} +0 -0
- data/set-of-emails/maildir/bsd/{sendmail-25.eml → mta-sendmail-25.eml} +0 -0
- data/set-of-emails/maildir/bsd/{sendmail-26.eml → mta-sendmail-26.eml} +0 -0
- data/set-of-emails/maildir/bsd/{sendmail-27.eml → mta-sendmail-27.eml} +0 -0
- data/set-of-emails/maildir/bsd/{sendmail-28.eml → mta-sendmail-28.eml} +0 -0
- data/set-of-emails/maildir/bsd/{sendmail-29.eml → mta-sendmail-29.eml} +0 -0
- data/set-of-emails/maildir/bsd/{sendmail-30.eml → mta-sendmail-30.eml} +0 -0
- data/set-of-emails/maildir/bsd/{sendmail-31.eml → mta-sendmail-31.eml} +0 -0
- data/set-of-emails/maildir/bsd/{sendmail-32.eml → mta-sendmail-32.eml} +0 -0
- data/set-of-emails/maildir/bsd/{sendmail-33.eml → mta-sendmail-33.eml} +0 -0
- data/set-of-emails/maildir/bsd/{sendmail-34.eml → mta-sendmail-34.eml} +0 -0
- data/set-of-emails/maildir/bsd/{sendmail-35.eml → mta-sendmail-35.eml} +0 -0
- data/set-of-emails/maildir/bsd/{sendmail-36.eml → mta-sendmail-36.eml} +0 -0
- data/set-of-emails/maildir/bsd/{sendmail-37.eml → mta-sendmail-37.eml} +0 -0
- data/set-of-emails/maildir/bsd/{sendmail-38.eml → mta-sendmail-38.eml} +0 -0
- data/set-of-emails/maildir/bsd/{sendmail-39.eml → mta-sendmail-39.eml} +0 -0
- data/set-of-emails/maildir/bsd/{sendmail-40.eml → mta-sendmail-40.eml} +0 -0
- data/set-of-emails/maildir/bsd/{sendmail-41.eml → mta-sendmail-41.eml} +0 -0
- data/set-of-emails/maildir/bsd/mta-sendmail-42.eml +64 -0
- data/set-of-emails/maildir/bsd/{surfcontrol-01.eml → mta-surfcontrol-01.eml} +0 -0
- data/set-of-emails/maildir/bsd/{surfcontrol-02.eml → mta-surfcontrol-02.eml} +0 -0
- data/set-of-emails/maildir/bsd/{surfcontrol-03.eml → mta-surfcontrol-03.eml} +0 -0
- data/set-of-emails/maildir/bsd/{v5sendmail-01.eml → mta-v5sendmail-01.eml} +0 -0
- data/set-of-emails/maildir/bsd/{v5sendmail-02.eml → mta-v5sendmail-02.eml} +0 -0
- data/set-of-emails/maildir/bsd/{v5sendmail-03.eml → mta-v5sendmail-03.eml} +0 -0
- data/set-of-emails/maildir/bsd/{v5sendmail-04.eml → mta-v5sendmail-04.eml} +0 -0
- data/set-of-emails/maildir/bsd/{v5sendmail-05.eml → mta-v5sendmail-05.eml} +0 -0
- data/set-of-emails/maildir/bsd/{v5sendmail-06.eml → mta-v5sendmail-06.eml} +0 -0
- data/set-of-emails/maildir/bsd/{v5sendmail-07.eml → mta-v5sendmail-07.eml} +0 -0
- data/set-of-emails/maildir/bsd/{x1-01.eml → mta-x1-01.eml} +0 -0
- data/set-of-emails/maildir/bsd/{x1-02.eml → mta-x1-02.eml} +0 -0
- data/set-of-emails/maildir/bsd/{x2-01.eml → mta-x2-01.eml} +0 -0
- data/set-of-emails/maildir/bsd/{x2-02.eml → mta-x2-02.eml} +0 -0
- data/set-of-emails/maildir/bsd/{x2-03.eml → mta-x2-03.eml} +0 -0
- data/set-of-emails/maildir/bsd/{x2-04.eml → mta-x2-04.eml} +0 -0
- data/set-of-emails/maildir/bsd/{x2-05.eml → mta-x2-05.eml} +0 -0
- data/set-of-emails/maildir/bsd/{x3-01.eml → mta-x3-01.eml} +0 -0
- data/set-of-emails/maildir/bsd/{x3-02.eml → mta-x3-02.eml} +0 -0
- data/set-of-emails/maildir/bsd/{x3-03.eml → mta-x3-03.eml} +0 -0
- data/set-of-emails/maildir/bsd/{x3-04.eml → mta-x3-04.eml} +0 -0
- data/set-of-emails/maildir/bsd/{x4-01.eml → mta-x4-01.eml} +0 -0
- data/set-of-emails/maildir/bsd/{x4-02.eml → mta-x4-02.eml} +0 -0
- data/set-of-emails/maildir/bsd/{x4-03.eml → mta-x4-03.eml} +0 -0
- data/set-of-emails/maildir/bsd/{x4-04.eml → mta-x4-04.eml} +0 -0
- data/set-of-emails/maildir/bsd/{x4-05.eml → mta-x4-05.eml} +0 -0
- data/set-of-emails/maildir/bsd/{x4-06.eml → mta-x4-06.eml} +0 -0
- data/set-of-emails/maildir/bsd/{x4-07.eml → mta-x4-07.eml} +0 -0
- data/set-of-emails/maildir/bsd/{x5-01.eml → mta-x5-01.eml} +0 -0
- data/set-of-emails/maildir/bsd/{exchange-online-01.eml → rhost-exchange-online-01.eml} +0 -0
- data/set-of-emails/maildir/bsd/{google-apps-01.eml → rhost-google-apps-01.eml} +0 -0
- data/set-of-emails/maildir/dos/ced-us-amazonses-01.eml +47 -0
- data/set-of-emails/maildir/dos/{de-einsundeins-01.eml → msp-de-einsundeins-01.eml} +0 -0
- data/set-of-emails/maildir/dos/{de-gmx-01.eml → msp-de-gmx-01.eml} +0 -0
- data/set-of-emails/maildir/dos/{jp-biglobe-01.eml → msp-jp-biglobe-01.eml} +0 -0
- data/set-of-emails/maildir/dos/{jp-ezweb-01.eml → msp-jp-ezweb-01.eml} +0 -0
- data/set-of-emails/maildir/dos/{jp-kddi-01.eml → msp-jp-kddi-01.eml} +0 -0
- data/set-of-emails/maildir/dos/{ru-mailru-01.eml → msp-ru-mailru-01.eml} +0 -0
- data/set-of-emails/maildir/dos/{ru-yandex-01.eml → msp-ru-yandex-01.eml} +0 -0
- data/set-of-emails/maildir/dos/{uk-messagelabs-01.eml → msp-uk-messagelabs-01.eml} +0 -0
- data/set-of-emails/maildir/dos/{us-amazonses-01.eml → msp-us-amazonses-01.eml} +0 -0
- data/set-of-emails/maildir/dos/{us-amazonworkmail-01.eml → msp-us-amazonworkmail-01.eml} +0 -0
- data/set-of-emails/maildir/dos/{us-aol-01.eml → msp-us-aol-01.eml} +0 -0
- data/set-of-emails/maildir/dos/{us-bigfoot-01.eml → msp-us-bigfoot-01.eml} +0 -0
- data/set-of-emails/maildir/dos/{us-facebook-01.eml → msp-us-facebook-01.eml} +0 -0
- data/set-of-emails/maildir/dos/{us-google-01.eml → msp-us-google-01.eml} +0 -0
- data/set-of-emails/maildir/dos/{us-office365-01.eml → msp-us-office365-01.eml} +0 -0
- data/set-of-emails/maildir/dos/{us-outlook-01.eml → msp-us-outlook-01.eml} +0 -0
- data/set-of-emails/maildir/dos/{us-receivingses-01.eml → msp-us-receivingses-01.eml} +0 -0
- data/set-of-emails/maildir/dos/{us-sendgrid-01.eml → msp-us-sendgrid-01.eml} +0 -0
- data/set-of-emails/maildir/dos/{us-verizon-01.eml → msp-us-verizon-01.eml} +0 -0
- data/set-of-emails/maildir/dos/{us-yahoo-01.eml → msp-us-yahoo-01.eml} +0 -0
- data/set-of-emails/maildir/dos/{us-zoho-01.eml → msp-us-zoho-01.eml} +0 -0
- data/set-of-emails/maildir/dos/{activehunter-01.eml → mta-activehunter-01.eml} +0 -0
- data/set-of-emails/maildir/dos/{apachejames-01.eml → mta-apachejames-01.eml} +0 -0
- data/set-of-emails/maildir/dos/{courier-01.eml → mta-courier-01.eml} +0 -0
- data/set-of-emails/maildir/dos/{domino-01.eml → mta-domino-01.eml} +0 -0
- data/set-of-emails/maildir/dos/{exchange-01.eml → mta-exchange-01.eml} +0 -0
- data/set-of-emails/maildir/dos/{exchange2003-01.eml → mta-exchange2003-01.eml} +0 -0
- data/set-of-emails/maildir/dos/{exchange2007-01.eml → mta-exchange2007-01.eml} +0 -0
- data/set-of-emails/maildir/dos/{exim-01.eml → mta-exim-01.eml} +0 -0
- data/set-of-emails/maildir/dos/{imailserver-01.eml → mta-imailserver-01.eml} +0 -0
- data/set-of-emails/maildir/dos/{interscanmss-01.eml → mta-interscanmss-01.eml} +0 -0
- data/set-of-emails/maildir/dos/{mailfoundry-01.eml → mta-mailfoundry-01.eml} +0 -0
- data/set-of-emails/maildir/dos/{mailmarshalsmtp-01.eml → mta-mailmarshalsmtp-01.eml} +0 -0
- data/set-of-emails/maildir/dos/{mcafee-01.eml → mta-mcafee-01.eml} +0 -0
- data/set-of-emails/maildir/dos/{messagingserver-01.eml → mta-messagingserver-01.eml} +0 -0
- data/set-of-emails/maildir/dos/{mfilter-01.eml → mta-mfilter-01.eml} +0 -0
- data/set-of-emails/maildir/dos/{mxlogic-01.eml → mta-mxlogic-01.eml} +0 -0
- data/set-of-emails/maildir/dos/{notes-01.eml → mta-notes-01.eml} +0 -0
- data/set-of-emails/maildir/dos/{opensmtpd-01.eml → mta-opensmtpd-01.eml} +0 -0
- data/set-of-emails/maildir/dos/{postfix-01.eml → mta-postfix-01.eml} +0 -0
- data/set-of-emails/maildir/dos/{qmail-01.eml → mta-qmail-01.eml} +0 -0
- data/set-of-emails/maildir/dos/{sendmail-01.eml → mta-sendmail-01.eml} +0 -0
- data/set-of-emails/maildir/dos/{surfcontrol-01.eml → mta-surfcontrol-01.eml} +0 -0
- data/set-of-emails/maildir/dos/{v5sendmail-01.eml → mta-v5sendmail-01.eml} +0 -0
- data/set-of-emails/maildir/dos/{x1-01.eml → mta-x1-01.eml} +0 -0
- data/set-of-emails/maildir/dos/{x2-01.eml → mta-x2-01.eml} +0 -0
- data/set-of-emails/maildir/dos/{x3-01.eml → mta-x3-01.eml} +0 -0
- data/set-of-emails/maildir/dos/{x4-01.eml → mta-x4-01.eml} +0 -0
- data/set-of-emails/maildir/dos/{x5-01.eml → mta-x5-01.eml} +0 -0
- data/set-of-emails/maildir/dos/{exchange-online-01.eml → rhost-exchange-online-01.eml} +0 -0
- data/set-of-emails/maildir/dos/{google-apps-01.eml → rhost-google-apps-01.eml} +0 -0
- data/set-of-emails/maildir/mac/ced-us-amazonses-01.eml +1 -1
- data/set-of-emails/maildir/mac/{de-einsundeins-01.eml → msp-de-einsundeins-01.eml} +0 -0
- data/set-of-emails/maildir/mac/{de-gmx-01.eml → msp-de-gmx-01.eml} +0 -0
- data/set-of-emails/maildir/mac/{jp-biglobe-01.eml → msp-jp-biglobe-01.eml} +0 -0
- data/set-of-emails/maildir/mac/{jp-ezweb-01.eml → msp-jp-ezweb-01.eml} +0 -0
- data/set-of-emails/maildir/mac/{jp-kddi-01.eml → msp-jp-kddi-01.eml} +0 -0
- data/set-of-emails/maildir/mac/{ru-mailru-01.eml → msp-ru-mailru-01.eml} +0 -0
- data/set-of-emails/maildir/mac/{ru-yandex-01.eml → msp-ru-yandex-01.eml} +0 -0
- data/set-of-emails/maildir/mac/{uk-messagelabs-01.eml → msp-uk-messagelabs-01.eml} +0 -0
- data/set-of-emails/maildir/mac/{us-amazonses-01.eml → msp-us-amazonses-01.eml} +0 -0
- data/set-of-emails/maildir/mac/{us-amazonworkmail-01.eml → msp-us-amazonworkmail-01.eml} +0 -0
- data/set-of-emails/maildir/mac/{us-aol-01.eml → msp-us-aol-01.eml} +0 -0
- data/set-of-emails/maildir/mac/{us-bigfoot-01.eml → msp-us-bigfoot-01.eml} +0 -0
- data/set-of-emails/maildir/mac/{us-facebook-01.eml → msp-us-facebook-01.eml} +0 -0
- data/set-of-emails/maildir/mac/{us-google-01.eml → msp-us-google-01.eml} +0 -0
- data/set-of-emails/maildir/mac/{us-office365-01.eml → msp-us-office365-01.eml} +0 -0
- data/set-of-emails/maildir/mac/{us-outlook-01.eml → msp-us-outlook-01.eml} +0 -0
- data/set-of-emails/maildir/mac/{us-receivingses-01.eml → msp-us-receivingses-01.eml} +0 -0
- data/set-of-emails/maildir/mac/{us-sendgrid-01.eml → msp-us-sendgrid-01.eml} +0 -0
- data/set-of-emails/maildir/mac/{us-verizon-01.eml → msp-us-verizon-01.eml} +0 -0
- data/set-of-emails/maildir/mac/{us-yahoo-01.eml → msp-us-yahoo-01.eml} +0 -0
- data/set-of-emails/maildir/mac/{us-zoho-01.eml → msp-us-zoho-01.eml} +0 -0
- data/set-of-emails/maildir/mac/{activehunter-01.eml → mta-activehunter-01.eml} +0 -0
- data/set-of-emails/maildir/mac/{apachejames-01.eml → mta-apachejames-01.eml} +0 -0
- data/set-of-emails/maildir/mac/{courier-01.eml → mta-courier-01.eml} +0 -0
- data/set-of-emails/maildir/mac/{domino-01.eml → mta-domino-01.eml} +0 -0
- data/set-of-emails/maildir/mac/{exchange-01.eml → mta-exchange-01.eml} +0 -0
- data/set-of-emails/maildir/mac/{exchange2003-01.eml → mta-exchange2003-01.eml} +0 -0
- data/set-of-emails/maildir/mac/{exchange2007-01.eml → mta-exchange2007-01.eml} +0 -0
- data/set-of-emails/maildir/mac/{exim-01.eml → mta-exim-01.eml} +0 -0
- data/set-of-emails/maildir/mac/{imailserver-01.eml → mta-imailserver-01.eml} +0 -0
- data/set-of-emails/maildir/mac/{interscanmss-01.eml → mta-interscanmss-01.eml} +0 -0
- data/set-of-emails/maildir/mac/{mailfoundry-01.eml → mta-mailfoundry-01.eml} +0 -0
- data/set-of-emails/maildir/mac/{mailmarshalsmtp-01.eml → mta-mailmarshalsmtp-01.eml} +0 -0
- data/set-of-emails/maildir/mac/{mcafee-01.eml → mta-mcafee-01.eml} +0 -0
- data/set-of-emails/maildir/mac/{messagingserver-01.eml → mta-messagingserver-01.eml} +0 -0
- data/set-of-emails/maildir/mac/{mfilter-01.eml → mta-mfilter-01.eml} +0 -0
- data/set-of-emails/maildir/mac/{mxlogic-01.eml → mta-mxlogic-01.eml} +0 -0
- data/set-of-emails/maildir/mac/{notes-01.eml → mta-notes-01.eml} +0 -0
- data/set-of-emails/maildir/mac/{opensmtpd-01.eml → mta-opensmtpd-01.eml} +0 -0
- data/set-of-emails/maildir/mac/{postfix-01.eml → mta-postfix-01.eml} +0 -0
- data/set-of-emails/maildir/mac/{qmail-01.eml → mta-qmail-01.eml} +0 -0
- data/set-of-emails/maildir/mac/{sendmail-01.eml → mta-sendmail-01.eml} +0 -0
- data/set-of-emails/maildir/mac/{surfcontrol-01.eml → mta-surfcontrol-01.eml} +0 -0
- data/set-of-emails/maildir/mac/{v5sendmail-01.eml → mta-v5sendmail-01.eml} +0 -0
- data/set-of-emails/maildir/mac/{x1-01.eml → mta-x1-01.eml} +0 -0
- data/set-of-emails/maildir/mac/{x2-01.eml → mta-x2-01.eml} +0 -0
- data/set-of-emails/maildir/mac/{x3-01.eml → mta-x3-01.eml} +0 -0
- data/set-of-emails/maildir/mac/{x4-01.eml → mta-x4-01.eml} +0 -0
- data/set-of-emails/maildir/mac/{x5-01.eml → mta-x5-01.eml} +0 -0
- data/set-of-emails/maildir/mac/{exchange-online-01.eml → rhost-exchange-online-01.eml} +0 -0
- data/set-of-emails/maildir/mac/{google-apps-01.eml → rhost-google-apps-01.eml} +0 -0
- metadata +444 -408
data/lib/sisimai/address.rb
CHANGED
|
@@ -13,7 +13,7 @@ module Sisimai
|
|
|
13
13
|
return nil unless %w|r s|.index(argv1.to_s)
|
|
14
14
|
|
|
15
15
|
local = argv1 == :r ? 'recipient' : 'sender'
|
|
16
|
-
return sprintf('undisclosed-%s-in-headers@
|
|
16
|
+
return sprintf('undisclosed-%s-in-headers@libsisimai.org.invalid', local)
|
|
17
17
|
end
|
|
18
18
|
|
|
19
19
|
# Email address parser
|
data/lib/sisimai/arf.rb
CHANGED
data/lib/sisimai/ced.rb
ADDED
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
module Sisimai
|
|
2
|
+
# Sisimai::CED - Base class for Sisimai::CED::*: Cloud Email Delivery Services
|
|
3
|
+
module CED
|
|
4
|
+
class << self
|
|
5
|
+
# Imported from p5-Sisimail/lib/Sisimai/CED.pm
|
|
6
|
+
require 'sisimai/skeleton'
|
|
7
|
+
|
|
8
|
+
def INDICATORS; return Sisimai::Skeleton.INDICATORS; end
|
|
9
|
+
def DELIVERYSTATUS; return Sisimai::Skeleton.DELIVERYSTATUS; end
|
|
10
|
+
def smtpagent(v = ''); return v.to_s.sub(/\ASisimai::/, ''); end
|
|
11
|
+
def description; return ''; end
|
|
12
|
+
def headerlist; return []; end
|
|
13
|
+
def pattern; return {}; end
|
|
14
|
+
|
|
15
|
+
# CED list
|
|
16
|
+
# @return [Array] CED list with order
|
|
17
|
+
def index
|
|
18
|
+
return ['US::AmazonSES', 'US::SendGrid']
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
|
|
@@ -0,0 +1,270 @@
|
|
|
1
|
+
module Sisimai
|
|
2
|
+
module CED::US
|
|
3
|
+
# Sisimai::CED::US::AmazonSES parses a bounce object(JSON) which created by
|
|
4
|
+
# Amazon Simple Email Service.
|
|
5
|
+
# Methods in the module are called from only Sisimai::Message.
|
|
6
|
+
module AmazonSES
|
|
7
|
+
# Imported from p5-Sisimail/lib/Sisimai/CED/US/AmazonSES.pm
|
|
8
|
+
class << self
|
|
9
|
+
require 'sisimai/ced'
|
|
10
|
+
require 'sisimai/rfc5322'
|
|
11
|
+
|
|
12
|
+
# http://aws.amazon.com/ses/
|
|
13
|
+
Re0 = {
|
|
14
|
+
:from => %r/\A[<]?no-reply[@]sns[.]amazonaws[.]com[>]?/,
|
|
15
|
+
:subject => %r/\AAWS Notification Message\z/,
|
|
16
|
+
}
|
|
17
|
+
MRI = RUBY_PLATFORM =~ /java/ ? false : true
|
|
18
|
+
|
|
19
|
+
# https://docs.aws.amazon.com/en_us/ses/latest/DeveloperGuide/notification-contents.html
|
|
20
|
+
BounceType = {
|
|
21
|
+
:Permanent => {
|
|
22
|
+
:General => '',
|
|
23
|
+
:NoEmail => '',
|
|
24
|
+
:Suppressed => '',
|
|
25
|
+
},
|
|
26
|
+
:Transient => {
|
|
27
|
+
:General => '',
|
|
28
|
+
:MailboxFull => 'mailboxfull',
|
|
29
|
+
:MessageTooLarge => 'mesgtoobig',
|
|
30
|
+
:ContentRejected => '',
|
|
31
|
+
:AttachmentRejected => '',
|
|
32
|
+
},
|
|
33
|
+
}
|
|
34
|
+
Indicators = Sisimai::CED.INDICATORS
|
|
35
|
+
|
|
36
|
+
# x-amz-sns-message-id: 02f86d9b-eecf-573d-b47d-3d1850750c30
|
|
37
|
+
# x-amz-sns-subscription-arn: arn:aws:sns:us-west-2:000000000000:SESEJB:ffffffff-2222-2222-2222-eeeeeeeeeeee
|
|
38
|
+
def headerlist; return ['x-amz-sns-message-id']; end
|
|
39
|
+
def pattern; return Re0; end
|
|
40
|
+
def smtpagent; return Sisimai::CED.smtpagent(self); end
|
|
41
|
+
def description; return 'Amazon SES(JSON): http://aws.amazon.com/ses/'; end
|
|
42
|
+
|
|
43
|
+
# Parse bounce messages from Amazon SES(JSON)
|
|
44
|
+
# @param [Hash] mhead Message header of a bounce email
|
|
45
|
+
# @options mhead [String] from From header
|
|
46
|
+
# @options mhead [String] date Date header
|
|
47
|
+
# @options mhead [String] subject Subject header
|
|
48
|
+
# @options mhead [Array] received Received headers
|
|
49
|
+
# @options mhead [String] others Other required headers
|
|
50
|
+
# @param [String] mbody Message body of a bounce email
|
|
51
|
+
# @return [Hash, Nil] Bounce data list and message/rfc822
|
|
52
|
+
# part or nil if it failed to parse or
|
|
53
|
+
# the arguments are missing
|
|
54
|
+
# @since v4.20.0
|
|
55
|
+
def scan(mhead, mbody)
|
|
56
|
+
return nil unless mhead
|
|
57
|
+
return nil unless mbody
|
|
58
|
+
return nil unless mhead['x-amz-sns-message-id']
|
|
59
|
+
return nil unless mhead['x-amz-sns-message-id'].size > 0
|
|
60
|
+
|
|
61
|
+
hasdivided = mbody.split("\n")
|
|
62
|
+
jsonstring = ''
|
|
63
|
+
jsonthings = nil
|
|
64
|
+
foldedline = false
|
|
65
|
+
|
|
66
|
+
hasdivided.each do |e|
|
|
67
|
+
# Find JSON string from the message body
|
|
68
|
+
next if e.size == 0
|
|
69
|
+
break if e =~ /\A[-]{2}\z/
|
|
70
|
+
break if e == '__END_OF_EMAIL_MESSAGE__'
|
|
71
|
+
|
|
72
|
+
# The line starts with " ", continued from !\n.
|
|
73
|
+
e = e.sub(/\A[ ]/, '') if foldedline
|
|
74
|
+
foldedline = false
|
|
75
|
+
|
|
76
|
+
if e =~ /[!]\z/
|
|
77
|
+
# ... long long line ...![\n]
|
|
78
|
+
e = e.sub(/!\z/, '')
|
|
79
|
+
foldedline = true
|
|
80
|
+
end
|
|
81
|
+
jsonstring += e
|
|
82
|
+
end
|
|
83
|
+
|
|
84
|
+
begin
|
|
85
|
+
if MRI
|
|
86
|
+
# Matz' Ruby Implementation
|
|
87
|
+
require 'oj'
|
|
88
|
+
jsonobject = Oj.load(jsonstring)
|
|
89
|
+
if jsonobject['Message']
|
|
90
|
+
# 'Message' => '{"notificationType":"Bounce",...
|
|
91
|
+
jsonthings = Oj.load(jsonobject['Message'])
|
|
92
|
+
end
|
|
93
|
+
else
|
|
94
|
+
# java-based ruby environment like JRuby.
|
|
95
|
+
require 'jrjackson'
|
|
96
|
+
jsonobject = JrJackson::Json.load(jsonstring)
|
|
97
|
+
if jsonobject['Message']
|
|
98
|
+
# 'Message' => '{"notificationType":"Bounce",...
|
|
99
|
+
jsonthings = JrJackson::Json.load(jsonobject['Message'])
|
|
100
|
+
end
|
|
101
|
+
end
|
|
102
|
+
jsonthings ||= jsonobject
|
|
103
|
+
|
|
104
|
+
rescue StandardError => ce
|
|
105
|
+
# Something wrong in decoding JSON
|
|
106
|
+
warn sprintf(' ***warning: Failed to decode JSON: %s', ce.to_s)
|
|
107
|
+
return nil
|
|
108
|
+
end
|
|
109
|
+
|
|
110
|
+
return adapt(jsonthings)
|
|
111
|
+
end
|
|
112
|
+
|
|
113
|
+
# @abstract Adapt Amazon SES bounce object for Sisimai::Message format
|
|
114
|
+
# @param [Hash] argvs bounce object(JSON) retrieved from Amazon SNS
|
|
115
|
+
# @return [Hash, Nil] Bounce data list and message/rfc822 part
|
|
116
|
+
# or Undef if it failed to parse or the
|
|
117
|
+
# arguments are missing
|
|
118
|
+
# @since v4.20.0
|
|
119
|
+
def adapt(argvs)
|
|
120
|
+
return nil unless argvs.is_a? Hash
|
|
121
|
+
return nil unless argvs.keys.size > 0
|
|
122
|
+
return nil unless argvs.key?('notificationType')
|
|
123
|
+
|
|
124
|
+
require 'sisimai/rfc5322'
|
|
125
|
+
dscontents = [Sisimai::CED.DELIVERYSTATUS];
|
|
126
|
+
rfc822head = {} # (Hash) Check flags for headers in RFC822 part
|
|
127
|
+
recipients = 0 # (Integer) The number of 'Final-Recipient' header
|
|
128
|
+
labeltable = {
|
|
129
|
+
:Bounce => 'bouncedRecipients',
|
|
130
|
+
:Complaint => 'complainedRecipients',
|
|
131
|
+
}
|
|
132
|
+
v = nil
|
|
133
|
+
|
|
134
|
+
if argvs['notificationType'] =~ /\A(?:Bounce|Complaint)\z/
|
|
135
|
+
# { "notificationType":"Bounce", "bounce": { "bounceType":"Permanent",...
|
|
136
|
+
o = argvs[ argvs['notificationType'].downcase ]
|
|
137
|
+
r = o[ labeltable[ argvs['notificationType'].to_sym ] ] || []
|
|
138
|
+
|
|
139
|
+
r.each do |e|
|
|
140
|
+
# 'bouncedRecipients' => [ { 'emailAddress' => 'bounce@si...' }, ... ]
|
|
141
|
+
# 'complainedRecipients' => [ { 'emailAddress' => 'complaint@si...' }, ... ]
|
|
142
|
+
next unless Sisimai::RFC5322.is_emailaddress(e['emailAddress'])
|
|
143
|
+
|
|
144
|
+
v = dscontents[-1]
|
|
145
|
+
if v['recipient']
|
|
146
|
+
# There are multiple recipient addresses in the message body.
|
|
147
|
+
dscontents << Sisimai::CED.DELIVERYSTATUS
|
|
148
|
+
v = dscontents[-1]
|
|
149
|
+
end
|
|
150
|
+
recipients += 1
|
|
151
|
+
v['recipient'] = e['emailAddress']
|
|
152
|
+
|
|
153
|
+
if argvs['notificationType'] == 'Bounce'
|
|
154
|
+
# 'bouncedRecipients => [ {
|
|
155
|
+
# 'emailAddress' => 'bounce@simulator.amazonses.com',
|
|
156
|
+
# 'action' => 'failed',
|
|
157
|
+
# 'status' => '5.1.1',
|
|
158
|
+
# 'diagnosticCode' => 'smtp; 550 5.1.1 user unknown'
|
|
159
|
+
# }, ... ]
|
|
160
|
+
v['action'] = e['action']
|
|
161
|
+
v['status'] = e['status']
|
|
162
|
+
|
|
163
|
+
if cv = e['diagnosticCode'].match(/\A(.+?);[ ]*(.+)\z/)
|
|
164
|
+
# Diagnostic-Code: SMTP; 550 5.1.1 <userunknown@example.jp>... User Unknown
|
|
165
|
+
v['spec'] = cv[1].upcase
|
|
166
|
+
v['diagnosis'] = cv[2]
|
|
167
|
+
else
|
|
168
|
+
v['diagnosis'] = e['diagnosticCode']
|
|
169
|
+
end
|
|
170
|
+
|
|
171
|
+
if cv = o['reportingMTA'].match(/\Adsn;[ ](.+)\z/)
|
|
172
|
+
# 'reportingMTA' => 'dsn; a27-23.smtp-out.us-west-2.amazonses.com',
|
|
173
|
+
v['lhost'] = cv[1]
|
|
174
|
+
end
|
|
175
|
+
|
|
176
|
+
if BounceType.key?(o['bounceType'].to_sym) &&
|
|
177
|
+
BounceType[o['bounceType'].to_sym].key?(o['bounceSubType'].to_sym)
|
|
178
|
+
# 'bounce' => {
|
|
179
|
+
# 'bounceType' => 'Permanent',
|
|
180
|
+
# 'bounceSubType' => 'General'
|
|
181
|
+
# },
|
|
182
|
+
v['reason'] = BounceType[o['bounceType'].to_sym][o['bounceSubType'].to_sym]
|
|
183
|
+
end
|
|
184
|
+
|
|
185
|
+
else
|
|
186
|
+
# 'complainedRecipients' => [ {
|
|
187
|
+
# 'emailAddress' => 'complaint@simulator.amazonses.com' }, ... ],
|
|
188
|
+
v['reason'] = 'feedback'
|
|
189
|
+
v['feedbacktype'] = o['complaintFeedbackType'] || ''
|
|
190
|
+
end
|
|
191
|
+
|
|
192
|
+
v['date'] = o['timestamp'] || argvs['mail']['timestamp']
|
|
193
|
+
v['date'] = v['date'].sub(/[.]\d+Z\z/, '')
|
|
194
|
+
end
|
|
195
|
+
|
|
196
|
+
elsif argvs['notificationType'] == 'Delivery'
|
|
197
|
+
# { "notificationType":"Delivery", "delivery": { ...
|
|
198
|
+
require 'sisimai/smtp/status'
|
|
199
|
+
require 'sisimai/smtp/reply'
|
|
200
|
+
|
|
201
|
+
o = argvs['delivery']
|
|
202
|
+
r = o['recipients'] || []
|
|
203
|
+
|
|
204
|
+
r.each do |e|
|
|
205
|
+
# 'delivery' => {
|
|
206
|
+
# 'timestamp' => '2016-11-23T12:01:03.512Z',
|
|
207
|
+
# 'processingTimeMillis' => 3982,
|
|
208
|
+
# 'reportingMTA' => 'a27-29.smtp-out.us-west-2.amazonses.com',
|
|
209
|
+
# 'recipients' => [
|
|
210
|
+
# 'success@simulator.amazonses.com'
|
|
211
|
+
# ],
|
|
212
|
+
# 'smtpResponse' => '250 2.6.0 Message received'
|
|
213
|
+
# },
|
|
214
|
+
next unless Sisimai::RFC5322.is_emailaddress(e)
|
|
215
|
+
|
|
216
|
+
v = dscontents[-1]
|
|
217
|
+
if v['recipient']
|
|
218
|
+
# There are multiple recipient addresses in the message body.
|
|
219
|
+
dscontents << Sisimai::CED.DELIVERYSTATUS
|
|
220
|
+
v = dscontents[-1]
|
|
221
|
+
end
|
|
222
|
+
recipients += 1
|
|
223
|
+
v['recipient'] = e
|
|
224
|
+
v['lhost'] = o['reportingMTA'] || ''
|
|
225
|
+
v['diagnosis'] = o['smtpResponse'] || ''
|
|
226
|
+
v['status'] = Sisimai::SMTP::Status.find(v['diagnosis'])
|
|
227
|
+
v['replycode'] = Sisimai::SMTP::Reply.find(v['diagnosis'])
|
|
228
|
+
v['reason'] = 'delivered'
|
|
229
|
+
v['action'] = 'deliverable'
|
|
230
|
+
|
|
231
|
+
v['date'] = o['timestamp'] || argvs['mail']['timestamp']
|
|
232
|
+
v['date'] = v['date'].sub(/[.]\d+Z\z/, '')
|
|
233
|
+
end
|
|
234
|
+
|
|
235
|
+
else
|
|
236
|
+
# The value of "notificationType" is not any of "Bounce", "Complaint",
|
|
237
|
+
# or "Delivery".
|
|
238
|
+
return nil
|
|
239
|
+
end
|
|
240
|
+
return nil if recipients == 0
|
|
241
|
+
|
|
242
|
+
dscontents.each do |e|
|
|
243
|
+
e['agent'] = Sisimai::CED::US::AmazonSES.smtpagent
|
|
244
|
+
end
|
|
245
|
+
|
|
246
|
+
if argvs['mail']['headers']
|
|
247
|
+
# "headersTruncated":false,
|
|
248
|
+
# "headers":[ { ...
|
|
249
|
+
argvs['mail']['headers'].each do |e|
|
|
250
|
+
# 'headers' => [ { 'name' => 'From', 'value' => 'neko@nyaan.jp' }, ... ],
|
|
251
|
+
next unless e['name'] =~ /\A(?:From|To|Subject|Message-ID|Date)\z/
|
|
252
|
+
rfc822head[ e['name'].downcase ] = e['value']
|
|
253
|
+
end
|
|
254
|
+
end
|
|
255
|
+
|
|
256
|
+
unless rfc822head['message-id']
|
|
257
|
+
# Try to get the value of "Message-Id".
|
|
258
|
+
if argvs['mail']['messageId']
|
|
259
|
+
# 'messageId' => '01010157e48f9b9b-891e9a0e-9c9d-4773-9bfe-608f2ef4756d-000000'
|
|
260
|
+
rfc822head['message-id'] = argvs['mail']['messageId']
|
|
261
|
+
end
|
|
262
|
+
end
|
|
263
|
+
return { 'ds' => dscontents, 'rfc822' => rfc822head }
|
|
264
|
+
end
|
|
265
|
+
|
|
266
|
+
end
|
|
267
|
+
end
|
|
268
|
+
end
|
|
269
|
+
end
|
|
270
|
+
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
module Sisimai
|
|
2
|
+
module CED::US
|
|
3
|
+
# Sisimai::CED::US::SendGrid parses a bounce object(JSON) which created by
|
|
4
|
+
# SendGrid. # Methods in the module are called from only Sisimai::Message.
|
|
5
|
+
module SendGrid
|
|
6
|
+
# Imported from p5-Sisimail/lib/Sisimai/CED/US/SendGrid.pm
|
|
7
|
+
class << self
|
|
8
|
+
require 'sisimai/ced'
|
|
9
|
+
require 'sisimai/rfc5322'
|
|
10
|
+
|
|
11
|
+
def headerlist; return []; end
|
|
12
|
+
def pattern; return {}; end
|
|
13
|
+
def smtpagent; return Sisimai::CED.smtpagent(self); end
|
|
14
|
+
def description; return 'SendGrid(JSON): http://sendgrid.com/'; end
|
|
15
|
+
|
|
16
|
+
# @abstract Adapt SendGrid bounce object for Sisimai::Message format
|
|
17
|
+
# @param [Hash] argvs bounce object(JSON) retrieved from SendGrid API
|
|
18
|
+
# @return [Hash, Nil] Bounce data list and message/rfc822 part
|
|
19
|
+
# or Undef if it failed to parse or the
|
|
20
|
+
# arguments are missing
|
|
21
|
+
# @since v4.20.0
|
|
22
|
+
def adapt(argvs)
|
|
23
|
+
return nil unless argvs.is_a? Hash
|
|
24
|
+
return nil unless argvs.keys.size > 0
|
|
25
|
+
return nil unless argvs.key?('email')
|
|
26
|
+
|
|
27
|
+
dscontents = [Sisimai::CED.DELIVERYSTATUS]
|
|
28
|
+
rfc822head = {} # (Hash) Check flags for headers in RFC822 part
|
|
29
|
+
recipients = 0 # (Integer) The number of 'Final-Recipient' header
|
|
30
|
+
v = dscontents[-1]
|
|
31
|
+
|
|
32
|
+
require 'sisimai/string'
|
|
33
|
+
require 'sisimai/address'
|
|
34
|
+
require 'sisimai/rfc5322'
|
|
35
|
+
|
|
36
|
+
if Sisimai::RFC5322.is_emailaddress(argvs['email'])
|
|
37
|
+
# {
|
|
38
|
+
# "status": "4.0.0",
|
|
39
|
+
# "created": "2011-09-16 22:02:19",
|
|
40
|
+
# "reason": "Unable to resolve MX host sendgrid.ne",
|
|
41
|
+
# "email": "esting@sendgrid.ne"
|
|
42
|
+
# },
|
|
43
|
+
recipients += 1
|
|
44
|
+
v['recipient'] = argvs['email']
|
|
45
|
+
v['date'] = argvs['created'] || ''
|
|
46
|
+
|
|
47
|
+
statuscode = argvs['status'] || ''
|
|
48
|
+
diagnostic = Sisimai::String.sweep(argvs['reason']) || ''
|
|
49
|
+
|
|
50
|
+
if statuscode =~ /\A[245]\d\d\z/
|
|
51
|
+
# "status": "550"
|
|
52
|
+
v['replycode'] = statuscode
|
|
53
|
+
|
|
54
|
+
elsif statuscode =~ /\A[245][.]\d[.]\d+\z/
|
|
55
|
+
# "status": "5.1.1"
|
|
56
|
+
v['status'] = statuscode
|
|
57
|
+
end
|
|
58
|
+
|
|
59
|
+
require 'sisimai/smtp/reply'
|
|
60
|
+
require 'sisimai/smtp/status'
|
|
61
|
+
v['status'] ||= Sisimai::SMTP::Status.find(diagnostic)
|
|
62
|
+
v['replycode'] ||= Sisimai::SMTP::Reply.find(diagnostic)
|
|
63
|
+
v['diagnosis'] = argvs['reason'] || ''
|
|
64
|
+
v['agent'] = Sisimai::CED::US::SendGrid.smtpagent
|
|
65
|
+
|
|
66
|
+
# Generate pseudo message/rfc822 part
|
|
67
|
+
rfc822head = {
|
|
68
|
+
'to' => argvs['email'],
|
|
69
|
+
'from' => Sisimai::Address.undisclosed('s'),
|
|
70
|
+
'date' => v['date'],
|
|
71
|
+
}
|
|
72
|
+
else
|
|
73
|
+
# The value of $argvs->{'email'} does not seems to an email address
|
|
74
|
+
return nil
|
|
75
|
+
end
|
|
76
|
+
|
|
77
|
+
return nil if recipients == 0
|
|
78
|
+
return { 'ds' => dscontents, 'rfc822' => rfc822head }
|
|
79
|
+
end
|
|
80
|
+
|
|
81
|
+
end
|
|
82
|
+
end
|
|
83
|
+
end
|
|
84
|
+
end
|
|
85
|
+
|
|
86
|
+
|
data/lib/sisimai/data.rb
CHANGED
|
@@ -48,6 +48,11 @@ module Sisimai
|
|
|
48
48
|
addresser: RFC822Head[:addresser],
|
|
49
49
|
recipient: RFC822Head[:recipient],
|
|
50
50
|
}
|
|
51
|
+
ActionList = %r/\A(?:failed|delayed|delivered|relayed|expanded)\z/
|
|
52
|
+
ActionHead = {
|
|
53
|
+
%r/\Afailure\z/ => 'failed',
|
|
54
|
+
%r/\Aexpired\z/ => 'delayed',
|
|
55
|
+
}
|
|
51
56
|
|
|
52
57
|
# Constructor of Sisimai::Data
|
|
53
58
|
# @param [Hash] argvs Data
|
|
@@ -239,12 +244,12 @@ module Sisimai
|
|
|
239
244
|
next unless p['timestamp']
|
|
240
245
|
|
|
241
246
|
# OTHER_TEXT_HEADERS:
|
|
242
|
-
|
|
247
|
+
recvheader = mailheader['received'] || []
|
|
248
|
+
if recvheader.size > 0
|
|
243
249
|
# Get localhost and remote host name from Received header.
|
|
244
|
-
r0 = mailheader['received']
|
|
245
250
|
%w|lhost rhost|.each { |a| e[a] ||= '' }
|
|
246
|
-
e['lhost'] = Sisimai::RFC5322.received(
|
|
247
|
-
e['rhost'] = Sisimai::RFC5322.received(
|
|
251
|
+
e['lhost'] = Sisimai::RFC5322.received(recvheader[0]).shift if e['lhost'].empty?
|
|
252
|
+
e['rhost'] = Sisimai::RFC5322.received(recvheader[-1]).pop if e['rhost'].empty?
|
|
248
253
|
end
|
|
249
254
|
|
|
250
255
|
# Remove square brackets and curly brackets from the host variable
|
|
@@ -314,6 +319,16 @@ module Sisimai
|
|
|
314
319
|
# Action: expanded (to multi-recipient alias)
|
|
315
320
|
p['action'] = cv[1]
|
|
316
321
|
end
|
|
322
|
+
|
|
323
|
+
unless p['action'] =~ ActionList
|
|
324
|
+
# The value of "action" is not in the following values:
|
|
325
|
+
# "failed" / "delayed" / "delivered" / "relayed" / "expanded"
|
|
326
|
+
ActionHead.each_key do |q|
|
|
327
|
+
next unless p['action'] =~ q
|
|
328
|
+
p['action'] = ActionHead[q]
|
|
329
|
+
break
|
|
330
|
+
end
|
|
331
|
+
end
|
|
317
332
|
else
|
|
318
333
|
if p['reason'] == 'expired'
|
|
319
334
|
# Action: delayed
|