sisimai 4.25.4-java → 4.25.10-java
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 +5 -5
- data/.travis.yml +2 -2
- data/ANALYTICAL-PRECISION +60 -56
- data/Benchmarks.mk +5 -3
- data/ChangeLog.md +184 -1
- data/Developers.mk +2 -2
- data/Makefile +1 -1
- data/README-JA.md +30 -57
- data/README.md +31 -57
- data/Repository.mk +1 -1
- data/lib/sisimai.rb +17 -72
- data/lib/sisimai/address.rb +13 -17
- data/lib/sisimai/arf.rb +45 -47
- data/lib/sisimai/data.rb +15 -38
- data/lib/sisimai/datetime.rb +3 -3
- data/lib/sisimai/lhost.rb +25 -47
- data/lib/sisimai/lhost/activehunter.rb +37 -76
- data/lib/sisimai/lhost/amavis.rb +119 -86
- data/lib/sisimai/lhost/amazonses.rb +196 -256
- data/lib/sisimai/lhost/amazonworkmail.rb +56 -95
- data/lib/sisimai/lhost/aol.rb +64 -104
- data/lib/sisimai/lhost/apachejames.rb +66 -104
- data/lib/sisimai/lhost/barracuda.rb +94 -0
- data/lib/sisimai/lhost/bigfoot.rb +66 -102
- data/lib/sisimai/lhost/biglobe.rb +45 -78
- data/lib/sisimai/lhost/courier.rb +66 -101
- data/lib/sisimai/lhost/domino.rb +54 -92
- data/lib/sisimai/lhost/einsundeins.rb +61 -70
- data/lib/sisimai/lhost/exchange2003.rb +89 -120
- data/lib/sisimai/lhost/exchange2007.rb +79 -90
- data/lib/sisimai/lhost/exim.rb +130 -168
- data/lib/sisimai/lhost/ezweb.rb +58 -90
- data/lib/sisimai/lhost/facebook.rb +54 -91
- data/lib/sisimai/lhost/fml.rb +30 -69
- data/lib/sisimai/lhost/{google.rb → gmail.rb} +48 -87
- data/lib/sisimai/lhost/gmx.rb +64 -102
- data/lib/sisimai/lhost/googlegroups.rb +77 -0
- data/lib/sisimai/lhost/gsuite.rb +79 -111
- data/lib/sisimai/lhost/imailserver.rb +46 -91
- data/lib/sisimai/lhost/interscanmss.rb +40 -85
- data/lib/sisimai/lhost/kddi.rb +35 -68
- data/lib/sisimai/lhost/mailfoundry.rb +41 -78
- data/lib/sisimai/lhost/mailmarshalsmtp.rb +71 -109
- data/lib/sisimai/lhost/mailru.rb +56 -92
- data/lib/sisimai/lhost/mcafee.rb +59 -97
- data/lib/sisimai/lhost/messagelabs.rb +59 -97
- data/lib/sisimai/lhost/messagingserver.rb +96 -131
- data/lib/sisimai/lhost/mfilter.rb +57 -89
- data/lib/sisimai/lhost/mxlogic.rb +47 -85
- data/lib/sisimai/lhost/notes.rb +59 -100
- data/lib/sisimai/lhost/office365.rb +86 -113
- data/lib/sisimai/lhost/opensmtpd.rb +35 -71
- data/lib/sisimai/lhost/outlook.rb +56 -96
- data/lib/sisimai/lhost/postfix.rb +118 -137
- data/lib/sisimai/lhost/powermta.rb +120 -0
- data/lib/sisimai/lhost/qmail.rb +46 -79
- data/lib/sisimai/lhost/receivingses.rb +56 -97
- data/lib/sisimai/lhost/sendgrid.rb +75 -223
- data/lib/sisimai/lhost/sendmail.rb +108 -148
- data/lib/sisimai/lhost/surfcontrol.rb +62 -104
- data/lib/sisimai/lhost/v5sendmail.rb +64 -107
- data/lib/sisimai/lhost/verizon.rb +80 -141
- data/lib/sisimai/lhost/x1.rb +37 -73
- data/lib/sisimai/lhost/x2.rb +36 -75
- data/lib/sisimai/lhost/x3.rb +54 -86
- data/lib/sisimai/lhost/x4.rb +49 -85
- data/lib/sisimai/lhost/x5.rb +54 -93
- data/lib/sisimai/lhost/x6.rb +74 -0
- data/lib/sisimai/lhost/yahoo.rb +55 -92
- data/lib/sisimai/lhost/yandex.rb +72 -110
- data/lib/sisimai/lhost/zoho.rb +62 -106
- data/lib/sisimai/mail.rb +22 -31
- data/lib/sisimai/mail/maildir.rb +31 -36
- data/lib/sisimai/mail/mbox.rb +8 -12
- data/lib/sisimai/mail/memory.rb +18 -20
- data/lib/sisimai/mail/stdin.rb +8 -12
- data/lib/sisimai/mda.rb +8 -14
- data/lib/sisimai/message.rb +142 -415
- data/lib/sisimai/mime.rb +28 -33
- data/lib/sisimai/order.rb +150 -209
- data/lib/sisimai/reason.rb +28 -19
- data/lib/sisimai/reason/blocked.rb +24 -23
- data/lib/sisimai/reason/hostunknown.rb +2 -0
- data/lib/sisimai/reason/mailererror.rb +1 -1
- data/lib/sisimai/reason/notaccept.rb +1 -0
- data/lib/sisimai/reason/policyviolation.rb +1 -0
- data/lib/sisimai/reason/rejected.rb +1 -0
- data/lib/sisimai/reason/securityerror.rb +5 -6
- data/lib/sisimai/reason/spamdetected.rb +9 -12
- data/lib/sisimai/reason/userunknown.rb +31 -25
- data/lib/sisimai/rfc1894.rb +1 -1
- data/lib/sisimai/rfc3464.rb +38 -56
- data/lib/sisimai/rfc3834.rb +11 -23
- data/lib/sisimai/rfc5322.rb +20 -32
- data/lib/sisimai/rhost.rb +5 -8
- data/lib/sisimai/rhost/cox.rb +112 -0
- data/lib/sisimai/rhost/exchangeonline.rb +25 -22
- data/lib/sisimai/rhost/franceptt.rb +120 -24
- data/lib/sisimai/rhost/googleapps.rb +4 -1
- data/lib/sisimai/rhost/iua.rb +1 -1
- data/lib/sisimai/rhost/spectrum.rb +73 -0
- data/lib/sisimai/smtp.rb +0 -13
- data/lib/sisimai/smtp/error.rb +7 -7
- data/lib/sisimai/smtp/status.rb +1 -1
- data/lib/sisimai/string.rb +3 -11
- data/lib/sisimai/version.rb +1 -1
- data/set-of-emails/README.md +5 -4
- data/set-of-emails/maildir/bsd/arf-24.eml +50 -0
- data/set-of-emails/maildir/bsd/arf-25.eml +61 -0
- data/set-of-emails/maildir/bsd/{email-activehunter-01.eml → lhost-activehunter-01.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-activehunter-02.eml → lhost-activehunter-02.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-amavis-01.eml → lhost-amavis-01.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-amavis-02.eml → lhost-amavis-02.eml} +0 -0
- data/set-of-emails/maildir/bsd/lhost-amavis-03.eml +90 -0
- data/set-of-emails/maildir/bsd/{email-amazonses-01.eml → lhost-amazonses-01.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-amazonses-02.eml → lhost-amazonses-02.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-amazonses-03.eml → lhost-amazonses-03.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-amazonses-05.eml → lhost-amazonses-05.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-amazonses-06.eml → lhost-amazonses-06.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-amazonses-07.eml → lhost-amazonses-07.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-amazonses-08.eml → lhost-amazonses-08.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-amazonses-09.eml → lhost-amazonses-09.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-amazonses-10.eml → lhost-amazonses-10.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-amazonses-11.eml → lhost-amazonses-11.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-amazonses-12.eml → lhost-amazonses-12.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-amazonses-13.eml → lhost-amazonses-13.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-amazonses-14.eml → lhost-amazonses-14.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-amazonses-15.eml → lhost-amazonses-15.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-amazonses-16.eml → lhost-amazonses-16.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-amazonses-17.eml → lhost-amazonses-17.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-amazonses-18.eml → lhost-amazonses-18.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-amazonses-19.eml → lhost-amazonses-19.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-amazonses-20.eml → lhost-amazonses-20.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-amazonses-21.eml → lhost-amazonses-21.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-amazonworkmail-01.eml → lhost-amazonworkmail-01.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-amazonworkmail-02.eml → lhost-amazonworkmail-02.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-amazonworkmail-03.eml → lhost-amazonworkmail-03.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-amazonworkmail-04.eml → lhost-amazonworkmail-04.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-amazonworkmail-05.eml → lhost-amazonworkmail-05.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-amazonworkmail-07.eml → lhost-amazonworkmail-07.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-amazonworkmail-08.eml → lhost-amazonworkmail-08.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-aol-01.eml → lhost-aol-01.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-aol-02.eml → lhost-aol-02.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-aol-03.eml → lhost-aol-03.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-aol-04.eml → lhost-aol-04.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-aol-05.eml → lhost-aol-05.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-aol-06.eml → lhost-aol-06.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-apachejames-01.eml → lhost-apachejames-01.eml} +0 -0
- data/set-of-emails/maildir/bsd/lhost-barracuda-01.eml +67 -0
- data/set-of-emails/maildir/bsd/lhost-barracuda-02.eml +71 -0
- data/set-of-emails/maildir/bsd/{email-bigfoot-02.eml → lhost-bigfoot-02.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-biglobe-01.eml → lhost-biglobe-01.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-courier-01.eml → lhost-courier-01.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-courier-02.eml → lhost-courier-02.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-courier-03.eml → lhost-courier-03.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-courier-04.eml → lhost-courier-04.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-domino-01.eml → lhost-domino-01.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-domino-02.eml → lhost-domino-02.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-domino-03.eml → lhost-domino-03.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-einsundeins-02.eml → lhost-einsundeins-02.eml} +0 -0
- data/set-of-emails/maildir/bsd/lhost-einsundeins-03.eml +66 -0
- data/set-of-emails/maildir/bsd/{email-exchange2003-01.eml → lhost-exchange2003-01.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-exchange2003-02.eml → lhost-exchange2003-02.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-exchange2003-03.eml → lhost-exchange2003-03.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-exchange2003-04.eml → lhost-exchange2003-04.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-exchange2003-05.eml → lhost-exchange2003-05.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-exchange2003-07.eml → lhost-exchange2003-07.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-exchange2007-01.eml → lhost-exchange2007-01.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-exchange2007-02.eml → lhost-exchange2007-02.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-exchange2007-03.eml → lhost-exchange2007-03.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-exchange2007-04.eml → lhost-exchange2007-04.eml} +0 -0
- data/set-of-emails/maildir/bsd/lhost-exchange2007-05.eml +1469 -0
- data/set-of-emails/maildir/bsd/lhost-exchange2007-06.eml +764 -0
- data/set-of-emails/maildir/bsd/lhost-exchange2007-07.eml +128 -0
- data/set-of-emails/maildir/bsd/{email-exim-01.eml → lhost-exim-01.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-exim-02.eml → lhost-exim-02.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-exim-03.eml → lhost-exim-03.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-exim-04.eml → lhost-exim-04.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-exim-05.eml → lhost-exim-05.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-exim-06.eml → lhost-exim-06.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-exim-07.eml → lhost-exim-07.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-exim-08.eml → lhost-exim-08.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-exim-29.eml → lhost-exim-29.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-exim-30.eml → lhost-exim-30.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-exim-31.eml → lhost-exim-31.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-exim-32.eml → lhost-exim-32.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-exim-33.eml → lhost-exim-33.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-exim-34.eml → lhost-exim-34.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-exim-35.eml → lhost-exim-35.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-exim-36.eml → lhost-exim-36.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-exim-37.eml → lhost-exim-37.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-exim-38.eml → lhost-exim-38.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-exim-39.eml → lhost-exim-39.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-exim-40.eml → lhost-exim-40.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-exim-41.eml → lhost-exim-41.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-exim-42.eml → lhost-exim-42.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-exim-43.eml → lhost-exim-43.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-exim-44.eml → lhost-exim-44.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-exim-45.eml → lhost-exim-45.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-exim-46.eml → lhost-exim-46.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-exim-47.eml → lhost-exim-47.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-exim-48.eml → lhost-exim-48.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-exim-49.eml → lhost-exim-49.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-exim-50.eml → lhost-exim-50.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-exim-51.eml → lhost-exim-51.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-exim-52.eml → lhost-exim-52.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-exim-53.eml → lhost-exim-53.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-exim-54.eml → lhost-exim-54.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-exim-55.eml → lhost-exim-55.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-exim-56.eml → lhost-exim-56.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-exim-57.eml → lhost-exim-57.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-exim-58.eml → lhost-exim-58.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-exim-59.eml → lhost-exim-59.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-exim-60.eml → lhost-exim-60.eml} +0 -0
- data/set-of-emails/maildir/bsd/lhost-exim-61.eml +40 -0
- data/set-of-emails/maildir/bsd/{email-ezweb-01.eml → lhost-ezweb-01.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-ezweb-02.eml → lhost-ezweb-02.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-ezweb-03.eml → lhost-ezweb-03.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-ezweb-04.eml → lhost-ezweb-04.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-ezweb-05.eml → lhost-ezweb-05.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-ezweb-07.eml → lhost-ezweb-07.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-ezweb-08.eml → lhost-ezweb-08.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-facebook-03.eml → lhost-facebook-03.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-facebook-04.eml → lhost-facebook-04.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-fml-02.eml → lhost-fml-02.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-fml-03.eml → lhost-fml-03.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-google-01.eml → lhost-gmail-01.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-google-03.eml → lhost-gmail-03.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-google-04.eml → lhost-gmail-04.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-google-05.eml → lhost-gmail-05.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-google-06.eml → lhost-gmail-06.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-google-07.eml → lhost-gmail-07.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-google-08.eml → lhost-gmail-08.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-google-09.eml → lhost-gmail-09.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-google-10.eml → lhost-gmail-10.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-google-11.eml → lhost-gmail-11.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-google-15.eml → lhost-gmail-15.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-google-16.eml → lhost-gmail-16.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-google-17.eml → lhost-gmail-17.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-google-18.eml → lhost-gmail-18.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-google-19.eml → lhost-gmail-19.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-gmx-01.eml → lhost-gmx-01.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-gmx-02.eml → lhost-gmx-02.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-gmx-03.eml → lhost-gmx-03.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-gmx-04.eml → lhost-gmx-04.eml} +0 -0
- data/set-of-emails/maildir/bsd/lhost-googlegroups-01.eml +116 -0
- data/set-of-emails/maildir/bsd/lhost-googlegroups-02.eml +114 -0
- data/set-of-emails/maildir/bsd/lhost-googlegroups-03.eml +116 -0
- data/set-of-emails/maildir/bsd/lhost-googlegroups-04.eml +116 -0
- data/set-of-emails/maildir/bsd/lhost-googlegroups-05.eml +116 -0
- data/set-of-emails/maildir/bsd/lhost-googlegroups-06.eml +116 -0
- data/set-of-emails/maildir/bsd/lhost-googlegroups-07.eml +116 -0
- data/set-of-emails/maildir/bsd/lhost-googlegroups-08.eml +115 -0
- data/set-of-emails/maildir/bsd/lhost-googlegroups-09.eml +116 -0
- data/set-of-emails/maildir/bsd/lhost-googlegroups-10.eml +116 -0
- data/set-of-emails/maildir/bsd/lhost-googlegroups-11.eml +116 -0
- data/set-of-emails/maildir/bsd/lhost-googlegroups-12.eml +116 -0
- data/set-of-emails/maildir/bsd/lhost-googlegroups-13.eml +115 -0
- data/set-of-emails/maildir/bsd/lhost-googlegroups-14.eml +127 -0
- data/set-of-emails/maildir/bsd/{email-gsuite-01.eml → lhost-gsuite-01.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-gsuite-02.eml → lhost-gsuite-02.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-gsuite-03.eml → lhost-gsuite-03.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-gsuite-04.eml → lhost-gsuite-04.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-gsuite-05.eml → lhost-gsuite-05.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-gsuite-06.eml → lhost-gsuite-06.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-gsuite-07.eml → lhost-gsuite-07.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-gsuite-08.eml → lhost-gsuite-08.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-gsuite-09.eml → lhost-gsuite-09.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-gsuite-10.eml → lhost-gsuite-10.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-gsuite-11.eml → lhost-gsuite-11.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-gsuite-12.eml → lhost-gsuite-12.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-gsuite-13.eml → lhost-gsuite-13.eml} +0 -0
- data/set-of-emails/maildir/bsd/lhost-gsuite-14.eml +273 -0
- data/set-of-emails/maildir/bsd/{email-imailserver-01.eml → lhost-imailserver-01.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-imailserver-02.eml → lhost-imailserver-02.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-imailserver-03.eml → lhost-imailserver-03.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-imailserver-04.eml → lhost-imailserver-04.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-imailserver-06.eml → lhost-imailserver-06.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-interscanmss-01.eml → lhost-interscanmss-01.eml} +0 -0
- data/set-of-emails/maildir/bsd/lhost-interscanmss-02.eml +70 -0
- data/set-of-emails/maildir/bsd/lhost-interscanmss-03.eml +73 -0
- data/set-of-emails/maildir/bsd/{email-kddi-01.eml → lhost-kddi-01.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-kddi-02.eml → lhost-kddi-02.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-kddi-03.eml → lhost-kddi-03.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-mailfoundry-01.eml → lhost-mailfoundry-01.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-mailfoundry-02.eml → lhost-mailfoundry-02.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-mailmarshalsmtp-02.eml → lhost-mailmarshalsmtp-02.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-mailru-01.eml → lhost-mailru-01.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-mailru-02.eml → lhost-mailru-02.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-mailru-03.eml → lhost-mailru-03.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-mailru-04.eml → lhost-mailru-04.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-mailru-05.eml → lhost-mailru-05.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-mailru-06.eml → lhost-mailru-06.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-mailru-07.eml → lhost-mailru-07.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-mailru-08.eml → lhost-mailru-08.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-mailru-09.eml → lhost-mailru-09.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-mailru-10.eml → lhost-mailru-10.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-mcafee-01.eml → lhost-mcafee-01.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-mcafee-02.eml → lhost-mcafee-02.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-mcafee-03.eml → lhost-mcafee-03.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-mcafee-04.eml → lhost-mcafee-04.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-mcafee-05.eml → lhost-mcafee-05.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-messagelabs-01.eml → lhost-messagelabs-01.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-messagelabs-02.eml → lhost-messagelabs-02.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-messagelabs-03.eml → lhost-messagelabs-03.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-messagingserver-01.eml → lhost-messagingserver-01.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-messagingserver-02.eml → lhost-messagingserver-02.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-messagingserver-03.eml → lhost-messagingserver-03.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-messagingserver-04.eml → lhost-messagingserver-04.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-messagingserver-05.eml → lhost-messagingserver-05.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-messagingserver-06.eml → lhost-messagingserver-06.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-messagingserver-07.eml → lhost-messagingserver-07.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-messagingserver-08.eml → lhost-messagingserver-08.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-messagingserver-09.eml → lhost-messagingserver-09.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-messagingserver-10.eml → lhost-messagingserver-10.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-messagingserver-11.eml → lhost-messagingserver-11.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-messagingserver-12.eml → lhost-messagingserver-12.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-mfilter-01.eml → lhost-mfilter-01.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-mfilter-02.eml → lhost-mfilter-02.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-mfilter-03.eml → lhost-mfilter-03.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-mfilter-04.eml → lhost-mfilter-04.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-mxlogic-01.eml → lhost-mxlogic-01.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-mxlogic-02.eml → lhost-mxlogic-02.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-mxlogic-03.eml → lhost-mxlogic-03.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-notes-01.eml → lhost-notes-01.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-notes-02.eml → lhost-notes-02.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-notes-03.eml → lhost-notes-03.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-office365-01.eml → lhost-office365-01.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-office365-02.eml → lhost-office365-02.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-office365-03.eml → lhost-office365-03.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-office365-04.eml → lhost-office365-04.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-office365-05.eml → lhost-office365-05.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-office365-06.eml → lhost-office365-06.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-office365-07.eml → lhost-office365-07.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-office365-08.eml → lhost-office365-08.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-office365-09.eml → lhost-office365-09.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-office365-10.eml → lhost-office365-10.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-office365-11.eml → lhost-office365-11.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-office365-12.eml → lhost-office365-12.eml} +0 -0
- data/set-of-emails/maildir/bsd/lhost-office365-13.eml +259 -0
- data/set-of-emails/maildir/bsd/{email-opensmtpd-01.eml → lhost-opensmtpd-01.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-opensmtpd-02.eml → lhost-opensmtpd-02.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-opensmtpd-03.eml → lhost-opensmtpd-03.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-opensmtpd-04.eml → lhost-opensmtpd-04.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-opensmtpd-05.eml → lhost-opensmtpd-05.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-opensmtpd-06.eml → lhost-opensmtpd-06.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-outlook-01.eml → lhost-outlook-01.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-outlook-02.eml → lhost-outlook-02.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-outlook-03.eml → lhost-outlook-03.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-outlook-04.eml → lhost-outlook-04.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-outlook-06.eml → lhost-outlook-06.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-outlook-07.eml → lhost-outlook-07.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-outlook-08.eml → lhost-outlook-08.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-outlook-09.eml → lhost-outlook-09.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-postfix-01.eml → lhost-postfix-01.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-postfix-02.eml → lhost-postfix-02.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-postfix-03.eml → lhost-postfix-03.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-postfix-04.eml → lhost-postfix-04.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-postfix-05.eml → lhost-postfix-05.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-postfix-06.eml → lhost-postfix-06.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-postfix-07.eml → lhost-postfix-07.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-postfix-08.eml → lhost-postfix-08.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-postfix-09.eml → lhost-postfix-09.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-postfix-10.eml → lhost-postfix-10.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-postfix-11.eml → lhost-postfix-11.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-postfix-13.eml → lhost-postfix-13.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-postfix-14.eml → lhost-postfix-14.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-postfix-15.eml → lhost-postfix-15.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-postfix-16.eml → lhost-postfix-16.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-postfix-17.eml → lhost-postfix-17.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-postfix-28.eml → lhost-postfix-28.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-postfix-29.eml → lhost-postfix-29.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-postfix-30.eml → lhost-postfix-30.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-postfix-31.eml → lhost-postfix-31.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-postfix-32.eml → lhost-postfix-32.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-postfix-33.eml → lhost-postfix-33.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-postfix-34.eml → lhost-postfix-34.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-postfix-35.eml → lhost-postfix-35.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-postfix-36.eml → lhost-postfix-36.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-postfix-37.eml → lhost-postfix-37.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-postfix-38.eml → lhost-postfix-38.eml} +1 -1
- data/set-of-emails/maildir/bsd/{email-postfix-39.eml → lhost-postfix-39.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-postfix-40.eml → lhost-postfix-40.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-postfix-41.eml → lhost-postfix-41.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-postfix-42.eml → lhost-postfix-42.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-postfix-43.eml → lhost-postfix-43.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-postfix-44.eml → lhost-postfix-44.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-postfix-45.eml → lhost-postfix-45.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-postfix-46.eml → lhost-postfix-46.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-postfix-47.eml → lhost-postfix-47.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-postfix-48.eml → lhost-postfix-48.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-postfix-49.eml → lhost-postfix-49.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-postfix-50.eml → lhost-postfix-50.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-postfix-51.eml → lhost-postfix-51.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-postfix-52.eml → lhost-postfix-52.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-postfix-53.eml → lhost-postfix-53.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-postfix-54.eml → lhost-postfix-54.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-postfix-55.eml → lhost-postfix-55.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-postfix-56.eml → lhost-postfix-56.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-postfix-57.eml → lhost-postfix-57.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-postfix-58.eml → lhost-postfix-58.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-postfix-59.eml → lhost-postfix-59.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-postfix-60.eml → lhost-postfix-60.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-postfix-61.eml → lhost-postfix-61.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-postfix-62.eml → lhost-postfix-62.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-postfix-63.eml → lhost-postfix-63.eml} +0 -0
- data/set-of-emails/maildir/bsd/lhost-postfix-64.eml +96 -0
- data/set-of-emails/maildir/bsd/lhost-postfix-65.eml +69 -0
- data/set-of-emails/maildir/bsd/lhost-postfix-66.eml +80 -0
- data/set-of-emails/maildir/bsd/lhost-postfix-67.eml +80 -0
- data/set-of-emails/maildir/bsd/lhost-postfix-68.eml +82 -0
- data/set-of-emails/maildir/bsd/lhost-postfix-69.eml +80 -0
- data/set-of-emails/maildir/bsd/lhost-postfix-70.eml +87 -0
- data/set-of-emails/maildir/bsd/lhost-postfix-71.eml +81 -0
- data/set-of-emails/maildir/bsd/lhost-postfix-72.eml +81 -0
- data/set-of-emails/maildir/bsd/lhost-postfix-73.eml +79 -0
- data/set-of-emails/maildir/bsd/lhost-postfix-74.eml +83 -0
- data/set-of-emails/maildir/bsd/{rfc3464-05.eml → lhost-powermta-01.eml} +19 -18
- data/set-of-emails/maildir/bsd/lhost-powermta-02.eml +58 -0
- data/set-of-emails/maildir/bsd/lhost-powermta-03.eml +71 -0
- data/set-of-emails/maildir/bsd/{email-qmail-01.eml → lhost-qmail-01.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-qmail-02.eml → lhost-qmail-02.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-qmail-03.eml → lhost-qmail-03.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-qmail-04.eml → lhost-qmail-04.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-qmail-05.eml → lhost-qmail-05.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-qmail-06.eml → lhost-qmail-06.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-qmail-07.eml → lhost-qmail-07.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-qmail-08.eml → lhost-qmail-08.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-qmail-09.eml → lhost-qmail-09.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-qmail-10.eml → lhost-qmail-10.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-receivingses-01.eml → lhost-receivingses-01.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-receivingses-02.eml → lhost-receivingses-02.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-receivingses-03.eml → lhost-receivingses-03.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-receivingses-04.eml → lhost-receivingses-04.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-receivingses-05.eml → lhost-receivingses-05.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-receivingses-06.eml → lhost-receivingses-06.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-receivingses-07.eml → lhost-receivingses-07.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-sendgrid-01.eml → lhost-sendgrid-01.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-sendgrid-02.eml → lhost-sendgrid-02.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-sendgrid-03.eml → lhost-sendgrid-03.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-sendmail-01.eml → lhost-sendmail-01.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-sendmail-02.eml → lhost-sendmail-02.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-sendmail-03.eml → lhost-sendmail-03.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-sendmail-04.eml → lhost-sendmail-04.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-sendmail-05.eml → lhost-sendmail-05.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-sendmail-06.eml → lhost-sendmail-06.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-sendmail-07.eml → lhost-sendmail-07.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-sendmail-08.eml → lhost-sendmail-08.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-sendmail-09.eml → lhost-sendmail-09.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-sendmail-10.eml → lhost-sendmail-10.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-sendmail-11.eml → lhost-sendmail-11.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-sendmail-12.eml → lhost-sendmail-12.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-sendmail-13.eml → lhost-sendmail-13.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-sendmail-14.eml → lhost-sendmail-14.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-sendmail-15.eml → lhost-sendmail-15.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-sendmail-16.eml → lhost-sendmail-16.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-sendmail-17.eml → lhost-sendmail-17.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-sendmail-18.eml → lhost-sendmail-18.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-sendmail-19.eml → lhost-sendmail-19.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-sendmail-20.eml → lhost-sendmail-20.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-sendmail-21.eml → lhost-sendmail-21.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-sendmail-22.eml → lhost-sendmail-22.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-sendmail-24.eml → lhost-sendmail-24.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-sendmail-25.eml → lhost-sendmail-25.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-sendmail-26.eml → lhost-sendmail-26.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-sendmail-27.eml → lhost-sendmail-27.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-sendmail-28.eml → lhost-sendmail-28.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-sendmail-29.eml → lhost-sendmail-29.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-sendmail-30.eml → lhost-sendmail-30.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-sendmail-31.eml → lhost-sendmail-31.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-sendmail-32.eml → lhost-sendmail-32.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-sendmail-33.eml → lhost-sendmail-33.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-sendmail-34.eml → lhost-sendmail-34.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-sendmail-35.eml → lhost-sendmail-35.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-sendmail-36.eml → lhost-sendmail-36.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-sendmail-37.eml → lhost-sendmail-37.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-sendmail-38.eml → lhost-sendmail-38.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-sendmail-39.eml → lhost-sendmail-39.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-sendmail-40.eml → lhost-sendmail-40.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-sendmail-41.eml → lhost-sendmail-41.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-sendmail-42.eml → lhost-sendmail-42.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-sendmail-43.eml → lhost-sendmail-43.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-sendmail-44.eml → lhost-sendmail-44.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-sendmail-45.eml → lhost-sendmail-45.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-sendmail-46.eml → lhost-sendmail-46.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-sendmail-47.eml → lhost-sendmail-47.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-sendmail-48.eml → lhost-sendmail-48.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-sendmail-49.eml → lhost-sendmail-49.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-sendmail-50.eml → lhost-sendmail-50.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-sendmail-51.eml → lhost-sendmail-51.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-sendmail-52.eml → lhost-sendmail-52.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-sendmail-53.eml → lhost-sendmail-53.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-sendmail-54.eml → lhost-sendmail-54.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-sendmail-55.eml → lhost-sendmail-55.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-sendmail-56.eml → lhost-sendmail-56.eml} +0 -0
- data/set-of-emails/maildir/bsd/lhost-sendmail-57.eml +59 -0
- data/set-of-emails/maildir/bsd/lhost-sendmail-58.eml +70 -0
- data/set-of-emails/maildir/bsd/lhost-sendmail-59.eml +68 -0
- data/set-of-emails/maildir/bsd/{email-surfcontrol-01.eml → lhost-surfcontrol-01.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-surfcontrol-02.eml → lhost-surfcontrol-02.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-surfcontrol-03.eml → lhost-surfcontrol-03.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-v5sendmail-01.eml → lhost-v5sendmail-01.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-v5sendmail-02.eml → lhost-v5sendmail-02.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-v5sendmail-03.eml → lhost-v5sendmail-03.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-v5sendmail-04.eml → lhost-v5sendmail-04.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-v5sendmail-05.eml → lhost-v5sendmail-05.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-v5sendmail-06.eml → lhost-v5sendmail-06.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-v5sendmail-07.eml → lhost-v5sendmail-07.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-verizon-01.eml → lhost-verizon-01.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-verizon-02.eml → lhost-verizon-02.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-x1-01.eml → lhost-x1-01.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-x1-02.eml → lhost-x1-02.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-x2-01.eml → lhost-x2-01.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-x2-02.eml → lhost-x2-02.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-x2-03.eml → lhost-x2-03.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-x2-04.eml → lhost-x2-04.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-x2-05.eml → lhost-x2-05.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-x3-01.eml → lhost-x3-01.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-x3-02.eml → lhost-x3-02.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-x3-03.eml → lhost-x3-03.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-x3-05.eml → lhost-x3-05.eml} +0 -0
- data/set-of-emails/maildir/bsd/lhost-x3-06.eml +53 -0
- data/set-of-emails/maildir/bsd/{email-x4-01.eml → lhost-x4-01.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-x4-08.eml → lhost-x4-08.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-x5-01.eml → lhost-x5-01.eml} +0 -0
- data/set-of-emails/maildir/bsd/lhost-x6-01.eml +71 -0
- data/set-of-emails/maildir/bsd/lhost-x6-02.eml +68 -0
- data/set-of-emails/maildir/bsd/{email-yahoo-01.eml → lhost-yahoo-01.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-yahoo-02.eml → lhost-yahoo-02.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-yahoo-03.eml → lhost-yahoo-03.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-yahoo-04.eml → lhost-yahoo-04.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-yahoo-05.eml → lhost-yahoo-05.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-yahoo-06.eml → lhost-yahoo-06.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-yahoo-07.eml → lhost-yahoo-07.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-yahoo-08.eml → lhost-yahoo-08.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-yahoo-09.eml → lhost-yahoo-09.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-yahoo-10.eml → lhost-yahoo-10.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-yahoo-11.eml → lhost-yahoo-11.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-yahoo-12.eml → lhost-yahoo-12.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-yahoo-13.eml → lhost-yahoo-13.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-yahoo-14.eml → lhost-yahoo-14.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-yandex-01.eml → lhost-yandex-01.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-yandex-02.eml → lhost-yandex-02.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-yandex-03.eml → lhost-yandex-03.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-zoho-01.eml → lhost-zoho-01.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-zoho-02.eml → lhost-zoho-02.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-zoho-03.eml → lhost-zoho-03.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-zoho-04.eml → lhost-zoho-04.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-zoho-05.eml → lhost-zoho-05.eml} +0 -0
- data/set-of-emails/maildir/bsd/rfc3834-03.eml +26 -0
- data/set-of-emails/maildir/bsd/{rfc3464-41.eml → rfc3834-04.eml} +0 -0
- data/set-of-emails/maildir/bsd/rhost-cox-01.eml +192 -0
- data/set-of-emails/maildir/bsd/rhost-franceptt-04.eml +66 -0
- data/set-of-emails/maildir/bsd/rhost-franceptt-05.eml +96 -0
- data/set-of-emails/maildir/bsd/rhost-franceptt-06.eml +100 -0
- data/set-of-emails/maildir/bsd/rhost-franceptt-07.eml +97 -0
- data/set-of-emails/maildir/bsd/rhost-franceptt-08.eml +78 -0
- data/set-of-emails/maildir/bsd/rhost-franceptt-10.eml +79 -0
- data/set-of-emails/maildir/bsd/rhost-franceptt-11.eml +96 -0
- data/set-of-emails/maildir/bsd/rhost-spectrum-01.eml +111 -0
- data/set-of-emails/maildir/dos/{email-activehunter-01.eml → lhost-activehunter-01.eml} +0 -0
- data/set-of-emails/maildir/dos/{email-amavis-01.eml → lhost-amavis-01.eml} +0 -0
- data/set-of-emails/maildir/dos/{email-amazonses-01.eml → lhost-amazonses-01.eml} +0 -0
- data/set-of-emails/maildir/dos/{email-amazonworkmail-01.eml → lhost-amazonworkmail-01.eml} +0 -0
- data/set-of-emails/maildir/dos/{email-aol-01.eml → lhost-aol-01.eml} +0 -0
- data/set-of-emails/maildir/dos/{email-apachejames-01.eml → lhost-apachejames-01.eml} +0 -0
- data/set-of-emails/maildir/dos/lhost-barracuda-01.eml +67 -0
- data/set-of-emails/maildir/dos/{email-bigfoot-01.eml → lhost-bigfoot-01.eml} +0 -0
- data/set-of-emails/maildir/dos/{email-biglobe-01.eml → lhost-biglobe-01.eml} +0 -0
- data/set-of-emails/maildir/dos/{email-courier-01.eml → lhost-courier-01.eml} +0 -0
- data/set-of-emails/maildir/dos/{email-domino-01.eml → lhost-domino-01.eml} +0 -0
- data/set-of-emails/maildir/dos/{email-einsundeins-01.eml → lhost-einsundeins-01.eml} +0 -0
- data/set-of-emails/maildir/dos/{email-exchange-01.eml → lhost-exchange-01.eml} +0 -0
- data/set-of-emails/maildir/dos/{email-exchange2003-01.eml → lhost-exchange2003-01.eml} +0 -0
- data/set-of-emails/maildir/dos/{email-exchange2007-01.eml → lhost-exchange2007-01.eml} +0 -0
- data/set-of-emails/maildir/dos/{email-exim-01.eml → lhost-exim-01.eml} +0 -0
- data/set-of-emails/maildir/dos/{email-ezweb-01.eml → lhost-ezweb-01.eml} +0 -0
- data/set-of-emails/maildir/dos/{email-facebook-01.eml → lhost-facebook-01.eml} +0 -0
- data/set-of-emails/maildir/dos/{email-google-01.eml → lhost-gmail-01.eml} +0 -0
- data/set-of-emails/maildir/dos/{email-gmx-01.eml → lhost-gmx-01.eml} +0 -0
- data/set-of-emails/maildir/dos/lhost-googlegroups-01.eml +116 -0
- data/set-of-emails/maildir/dos/{email-gsuite-01.eml → lhost-gsuite-01.eml} +0 -0
- data/set-of-emails/maildir/dos/{email-imailserver-01.eml → lhost-imailserver-01.eml} +0 -0
- data/set-of-emails/maildir/dos/{email-interscanmss-01.eml → lhost-interscanmss-01.eml} +0 -0
- data/set-of-emails/maildir/dos/{email-kddi-01.eml → lhost-kddi-01.eml} +0 -0
- data/set-of-emails/maildir/dos/{email-mailfoundry-01.eml → lhost-mailfoundry-01.eml} +0 -0
- data/set-of-emails/maildir/dos/{email-mailmarshalsmtp-01.eml → lhost-mailmarshalsmtp-01.eml} +0 -0
- data/set-of-emails/maildir/dos/{email-mailru-01.eml → lhost-mailru-01.eml} +0 -0
- data/set-of-emails/maildir/dos/{email-mcafee-01.eml → lhost-mcafee-01.eml} +0 -0
- data/set-of-emails/maildir/dos/{email-messagelabs-01.eml → lhost-messagelabs-01.eml} +0 -0
- data/set-of-emails/maildir/dos/{email-messagingserver-01.eml → lhost-messagingserver-01.eml} +0 -0
- data/set-of-emails/maildir/dos/{email-mfilter-01.eml → lhost-mfilter-01.eml} +0 -0
- data/set-of-emails/maildir/dos/{email-mxlogic-01.eml → lhost-mxlogic-01.eml} +0 -0
- data/set-of-emails/maildir/dos/{email-notes-01.eml → lhost-notes-01.eml} +0 -0
- data/set-of-emails/maildir/dos/{email-office365-01.eml → lhost-office365-01.eml} +0 -0
- data/set-of-emails/maildir/dos/{email-opensmtpd-01.eml → lhost-opensmtpd-01.eml} +0 -0
- data/set-of-emails/maildir/dos/{email-outlook-01.eml → lhost-outlook-01.eml} +0 -0
- data/set-of-emails/maildir/dos/{email-postfix-01.eml → lhost-postfix-01.eml} +0 -0
- data/set-of-emails/maildir/dos/lhost-powermta-01.eml +64 -0
- data/set-of-emails/maildir/dos/{email-qmail-01.eml → lhost-qmail-01.eml} +0 -0
- data/set-of-emails/maildir/dos/{email-receivingses-01.eml → lhost-receivingses-01.eml} +0 -0
- data/set-of-emails/maildir/dos/{email-sendgrid-01.eml → lhost-sendgrid-01.eml} +0 -0
- data/set-of-emails/maildir/dos/{email-sendmail-01.eml → lhost-sendmail-01.eml} +0 -0
- data/set-of-emails/maildir/dos/{email-surfcontrol-01.eml → lhost-surfcontrol-01.eml} +0 -0
- data/set-of-emails/maildir/dos/{email-v5sendmail-01.eml → lhost-v5sendmail-01.eml} +0 -0
- data/set-of-emails/maildir/dos/{email-verizon-01.eml → lhost-verizon-01.eml} +0 -0
- data/set-of-emails/maildir/dos/{email-x1-01.eml → lhost-x1-01.eml} +0 -0
- data/set-of-emails/maildir/dos/{email-x2-01.eml → lhost-x2-01.eml} +0 -0
- data/set-of-emails/maildir/dos/{email-x3-01.eml → lhost-x3-01.eml} +0 -0
- data/set-of-emails/maildir/dos/{email-x4-01.eml → lhost-x4-01.eml} +0 -0
- data/set-of-emails/maildir/dos/{email-x5-01.eml → lhost-x5-01.eml} +0 -0
- data/set-of-emails/maildir/dos/lhost-x6-01.eml +71 -0
- data/set-of-emails/maildir/dos/{email-yahoo-01.eml → lhost-yahoo-01.eml} +0 -0
- data/set-of-emails/maildir/dos/{email-yandex-01.eml → lhost-yandex-01.eml} +0 -0
- data/set-of-emails/maildir/dos/{email-zoho-01.eml → lhost-zoho-01.eml} +0 -0
- data/set-of-emails/maildir/dos/rhost-iua-01.eml +70 -0
- data/set-of-emails/maildir/mac/{email-activehunter-01.eml → lhost-activehunter-01.eml} +0 -0
- data/set-of-emails/maildir/mac/{email-amavis-01.eml → lhost-amavis-01.eml} +0 -0
- data/set-of-emails/maildir/mac/{email-amazonses-01.eml → lhost-amazonses-01.eml} +0 -0
- data/set-of-emails/maildir/mac/{email-amazonworkmail-01.eml → lhost-amazonworkmail-01.eml} +0 -0
- data/set-of-emails/maildir/mac/{email-aol-01.eml → lhost-aol-01.eml} +0 -0
- data/set-of-emails/maildir/mac/{email-apachejames-01.eml → lhost-apachejames-01.eml} +0 -0
- data/set-of-emails/maildir/mac/lhost-barracuda-01.eml +1 -4
- data/set-of-emails/maildir/mac/{email-bigfoot-01.eml → lhost-bigfoot-01.eml} +0 -0
- data/set-of-emails/maildir/mac/{email-biglobe-01.eml → lhost-biglobe-01.eml} +0 -0
- data/set-of-emails/maildir/mac/{email-courier-01.eml → lhost-courier-01.eml} +0 -0
- data/set-of-emails/maildir/mac/{email-domino-01.eml → lhost-domino-01.eml} +0 -0
- data/set-of-emails/maildir/mac/{email-einsundeins-01.eml → lhost-einsundeins-01.eml} +0 -0
- data/set-of-emails/maildir/mac/{email-exchange-01.eml → lhost-exchange-01.eml} +0 -0
- data/set-of-emails/maildir/mac/{email-exchange2003-01.eml → lhost-exchange2003-01.eml} +0 -0
- data/set-of-emails/maildir/mac/{email-exchange2007-01.eml → lhost-exchange2007-01.eml} +0 -0
- data/set-of-emails/maildir/mac/{email-exim-01.eml → lhost-exim-01.eml} +0 -0
- data/set-of-emails/maildir/mac/{email-ezweb-01.eml → lhost-ezweb-01.eml} +0 -0
- data/set-of-emails/maildir/mac/{email-facebook-01.eml → lhost-facebook-01.eml} +0 -0
- data/set-of-emails/maildir/mac/{email-google-01.eml → lhost-gmail-01.eml} +0 -0
- data/set-of-emails/maildir/mac/{email-gmx-01.eml → lhost-gmx-01.eml} +0 -0
- data/set-of-emails/maildir/mac/lhost-googlegroups-01.eml +1 -1
- data/set-of-emails/maildir/mac/{email-gsuite-01.eml → lhost-gsuite-01.eml} +0 -0
- data/set-of-emails/maildir/mac/{email-imailserver-01.eml → lhost-imailserver-01.eml} +0 -0
- data/set-of-emails/maildir/mac/{email-interscanmss-01.eml → lhost-interscanmss-01.eml} +0 -0
- data/set-of-emails/maildir/mac/{email-kddi-01.eml → lhost-kddi-01.eml} +0 -0
- data/set-of-emails/maildir/mac/{email-mailfoundry-01.eml → lhost-mailfoundry-01.eml} +0 -0
- data/set-of-emails/maildir/mac/{email-mailmarshalsmtp-01.eml → lhost-mailmarshalsmtp-01.eml} +0 -0
- data/set-of-emails/maildir/mac/{email-mailru-01.eml → lhost-mailru-01.eml} +0 -0
- data/set-of-emails/maildir/mac/{email-mcafee-01.eml → lhost-mcafee-01.eml} +0 -0
- data/set-of-emails/maildir/mac/{email-messagelabs-01.eml → lhost-messagelabs-01.eml} +0 -0
- data/set-of-emails/maildir/mac/{email-messagingserver-01.eml → lhost-messagingserver-01.eml} +0 -0
- data/set-of-emails/maildir/mac/{email-mfilter-01.eml → lhost-mfilter-01.eml} +0 -0
- data/set-of-emails/maildir/mac/{email-mxlogic-01.eml → lhost-mxlogic-01.eml} +0 -0
- data/set-of-emails/maildir/mac/{email-notes-01.eml → lhost-notes-01.eml} +0 -0
- data/set-of-emails/maildir/mac/{email-office365-01.eml → lhost-office365-01.eml} +0 -0
- data/set-of-emails/maildir/mac/{email-opensmtpd-01.eml → lhost-opensmtpd-01.eml} +0 -0
- data/set-of-emails/maildir/mac/{email-outlook-01.eml → lhost-outlook-01.eml} +0 -0
- data/set-of-emails/maildir/mac/{email-postfix-01.eml → lhost-postfix-01.eml} +0 -0
- data/set-of-emails/maildir/mac/lhost-powermta-01.eml +1 -4
- data/set-of-emails/maildir/mac/{email-qmail-01.eml → lhost-qmail-01.eml} +0 -0
- data/set-of-emails/maildir/mac/{email-receivingses-01.eml → lhost-receivingses-01.eml} +0 -0
- data/set-of-emails/maildir/mac/{email-sendgrid-01.eml → lhost-sendgrid-01.eml} +0 -0
- data/set-of-emails/maildir/mac/{email-sendmail-01.eml → lhost-sendmail-01.eml} +0 -0
- data/set-of-emails/maildir/mac/{email-surfcontrol-01.eml → lhost-surfcontrol-01.eml} +0 -0
- data/set-of-emails/maildir/mac/{email-v5sendmail-01.eml → lhost-v5sendmail-01.eml} +0 -0
- data/set-of-emails/maildir/mac/{email-verizon-01.eml → lhost-verizon-01.eml} +0 -0
- data/set-of-emails/maildir/mac/{email-x1-01.eml → lhost-x1-01.eml} +0 -0
- data/set-of-emails/maildir/mac/{email-x2-01.eml → lhost-x2-01.eml} +0 -0
- data/set-of-emails/maildir/mac/{email-x3-01.eml → lhost-x3-01.eml} +0 -0
- data/set-of-emails/maildir/mac/{email-x4-01.eml → lhost-x4-01.eml} +0 -0
- data/set-of-emails/maildir/mac/{email-x5-01.eml → lhost-x5-01.eml} +0 -0
- data/set-of-emails/maildir/mac/lhost-x6-01.eml +1 -3
- data/set-of-emails/maildir/mac/{email-yahoo-01.eml → lhost-yahoo-01.eml} +0 -0
- data/set-of-emails/maildir/mac/{email-yandex-01.eml → lhost-yandex-01.eml} +0 -0
- data/set-of-emails/maildir/mac/{email-zoho-01.eml → lhost-zoho-01.eml} +0 -0
- data/set-of-emails/maildir/mac/rhost-iua-01.eml +1 -4
- metadata +587 -521
- data/lib/sisimai/bite.rb +0 -42
- data/lib/sisimai/bite/email.rb +0 -18
- data/lib/sisimai/bite/json.rb +0 -16
- data/lib/sisimai/lhost/userdefined.rb +0 -115
- data/lib/sisimai/message/email.rb +0 -26
- data/lib/sisimai/message/json.rb +0 -24
- data/lib/sisimai/order/email.rb +0 -20
- data/lib/sisimai/order/json.rb +0 -16
data/README.md
CHANGED
@@ -1,9 +1,9 @@
|
|
1
1
|
![](https://libsisimai.org/static/images/logo/sisimai-x01.png)
|
2
2
|
|
3
|
-
[![License](https://img.shields.io/badge/license-BSD%202--Clause-orange.svg)](https://github.com/sisimai/rb-
|
4
|
-
[![Coverage Status](https://img.shields.io/coveralls/sisimai/rb-
|
5
|
-
[![Build Status](https://travis-ci.org/sisimai/rb-
|
6
|
-
[![Codacy Badge](https://api.codacy.com/project/badge/grade/38340177e6284a65be69c0c7c3dc2b58)](https://www.codacy.com/app/azumakuniyuki/rb-
|
3
|
+
[![License](https://img.shields.io/badge/license-BSD%202--Clause-orange.svg)](https://github.com/sisimai/rb-sisimai/blob/master/LICENSE)
|
4
|
+
[![Coverage Status](https://img.shields.io/coveralls/sisimai/rb-sisimai.svg)](https://coveralls.io/r/sisimai/rb-sisimai)
|
5
|
+
[![Build Status](https://travis-ci.org/sisimai/rb-sisimai.svg?branch=master)](https://travis-ci.org/sisimai/rb-sisimai)
|
6
|
+
[![Codacy Badge](https://api.codacy.com/project/badge/grade/38340177e6284a65be69c0c7c3dc2b58)](https://www.codacy.com/app/azumakuniyuki/rb-sisimai)
|
7
7
|
[![Ruby](https://img.shields.io/badge/ruby-v2.1.0--v2.6.0-red.svg)](https://www.ruby-lang.org/)
|
8
8
|
[![Gem Version](https://badge.fury.io/rb/sisimai.svg)](https://badge.fury.io/rb/sisimai)
|
9
9
|
|
@@ -19,7 +19,6 @@
|
|
19
19
|
- [Usage](#usage)
|
20
20
|
- [Basic usage](#basic-usage)
|
21
21
|
- [Convert to JSON](#convert-to-json)
|
22
|
-
- [Read bounce object](#read-bounce-object)
|
23
22
|
- [Callback feature](#callback-feature)
|
24
23
|
- [One-Liner](#one-liner)
|
25
24
|
- [Output example](#output-example)
|
@@ -40,7 +39,7 @@ What is Sisimai
|
|
40
39
|
===============================================================================
|
41
40
|
Sisimai is a Ruby library for analyzing RFC5322 bounce emails and generating
|
42
41
|
structured data from parsed results. The Ruby version of Sisimai is ported from
|
43
|
-
the Perl version of Sisimai at [github.com/sisimai/p5-
|
42
|
+
the Perl version of Sisimai at [github.com/sisimai/p5-sisimai](https://github.com/sisimai/p5-sisimai/).
|
44
43
|
|
45
44
|
![](https://libsisimai.org/static/images/figure/sisimai-overview-1.png)
|
46
45
|
|
@@ -53,17 +52,14 @@ Key Features
|
|
53
52
|
* git clone & make
|
54
53
|
* __High Precision of Analysis__
|
55
54
|
* 2 times higher than bounceHammer
|
56
|
-
* Support
|
57
|
-
* Support 22 major MSPs(Mail Service Providers)
|
58
|
-
* Support 2 major Cloud Email Delivery Services(JSON format)
|
59
|
-
* **WILL BE REMOVED AT Sisimai 4.25.5**
|
55
|
+
* Support 68 MTAs/MDAs/ESPs
|
60
56
|
* Support Feedback Loop Message(ARF)
|
61
57
|
* Can detect 29 error reasons
|
62
58
|
|
63
59
|
Command line demo
|
64
60
|
-------------------------------------------------------------------------------
|
65
61
|
The following screen shows a demonstration of Sisimai at the command line using
|
66
|
-
Ruby(rb-
|
62
|
+
Ruby(rb-sisimai) and Perl(p5-sisimai) version of Sisimai.
|
67
63
|
![](https://libsisimai.org/static/images/demo/sisimai-dump-01.gif)
|
68
64
|
|
69
65
|
Setting Up Sisimai
|
@@ -86,10 +82,10 @@ Install
|
|
86
82
|
|
87
83
|
```shell
|
88
84
|
$ sudo gem install sisimai
|
89
|
-
Fetching: sisimai-4.25.
|
90
|
-
Successfully installed sisimai-4.25.
|
91
|
-
Parsing documentation for sisimai-4.25.
|
92
|
-
Installing ri documentation for sisimai-4.25.
|
85
|
+
Fetching: sisimai-4.25.5.gem (100%)
|
86
|
+
Successfully installed sisimai-4.25.5
|
87
|
+
Parsing documentation for sisimai-4.25.5
|
88
|
+
Installing ri documentation for sisimai-4.25.5
|
93
89
|
Done installing documentation for sisimai after 6 seconds
|
94
90
|
1 gem installed
|
95
91
|
```
|
@@ -98,15 +94,15 @@ Done installing documentation for sisimai after 6 seconds
|
|
98
94
|
|
99
95
|
```shell
|
100
96
|
$ cd /usr/local/src
|
101
|
-
$ git clone https://github.com/sisimai/rb-
|
102
|
-
$ cd ./rb-
|
97
|
+
$ git clone https://github.com/sisimai/rb-sisimai.git
|
98
|
+
$ cd ./rb-sisimai
|
103
99
|
$ sudo make depend install-from-local
|
104
100
|
gem install bundle rake rspec coveralls
|
105
101
|
...
|
106
102
|
4 gems installed
|
107
103
|
bundle exec rake install
|
108
|
-
sisimai 4.25.
|
109
|
-
sisimai (4.25.
|
104
|
+
sisimai 4.25.5 built to pkg/sisimai-4.25.5.gem.
|
105
|
+
sisimai (4.25.5) installed.
|
110
106
|
```
|
111
107
|
|
112
108
|
Usage
|
@@ -115,7 +111,9 @@ Usage
|
|
115
111
|
Basic usage
|
116
112
|
-------------------------------------------------------------------------------
|
117
113
|
`make()` method provides feature for getting parsed data from bounced email
|
118
|
-
messages like following.
|
114
|
+
messages like following. Beginning with v4.25.6, new accessor `origin` which
|
115
|
+
keeps the path to email file as a data source is available.
|
116
|
+
|
119
117
|
|
120
118
|
```ruby
|
121
119
|
#! /usr/bin/env ruby
|
@@ -143,6 +141,7 @@ if v.is_a? Array
|
|
143
141
|
puts e.deliverystatus # 5.1.1
|
144
142
|
puts e.replycode # 550
|
145
143
|
puts e.reason # userunknown
|
144
|
+
puts e.origin # /var/spool/bounce/Maildir/new/1740074341.eml
|
146
145
|
|
147
146
|
h = e.damn # Convert to HASH
|
148
147
|
j = e.dump('json') # Convert to JSON string
|
@@ -164,30 +163,6 @@ puts Sisimai.dump('/path/to/mbox') # or path to Maildir/
|
|
164
163
|
puts Sisimai.dump('/path/to/mbox', delivered: true)
|
165
164
|
```
|
166
165
|
|
167
|
-
Read bounce object
|
168
|
-
-------------------------------------------------------------------------------
|
169
|
-
**THIS FEATURE WILL BE REMOVED AT SISIMAI 4.25.5**
|
170
|
-
|
171
|
-
The way to read a bounce object retrived from Cloud Email Services as JSON using
|
172
|
-
their API is the following code. This feature is available at between v4.20.0
|
173
|
-
and **v4.25.5**.
|
174
|
-
|
175
|
-
```ruby
|
176
|
-
#! /usr/bin/env ruby
|
177
|
-
require 'json'
|
178
|
-
require 'sisimai'
|
179
|
-
|
180
|
-
j = JSON.load('{"notificationType"=>"Bounce", "bounce"=>{"...') # JSON String
|
181
|
-
v = Sisimai.make(j, input: 'json')
|
182
|
-
|
183
|
-
if v.is_a? Array
|
184
|
-
v.each do |e|
|
185
|
-
...
|
186
|
-
end
|
187
|
-
end
|
188
|
-
```
|
189
|
-
As of present, Only Amazon SES and SendGrid are supported.
|
190
|
-
|
191
166
|
Callback feature
|
192
167
|
-------------------------------------------------------------------------------
|
193
168
|
Beginning with Sisimai 4.19.0, `make()` and `dump()` methods of Sisimai accept
|
@@ -207,9 +182,8 @@ callbackto = lambda do |v|
|
|
207
182
|
return r
|
208
183
|
end
|
209
184
|
|
210
|
-
|
211
|
-
|
212
|
-
json = Sisimai.dump('/path/to/mbox', hook: callbackto, field: list)
|
185
|
+
data = Sisimai.make('/path/to/mbox', hook: callbackto)
|
186
|
+
json = Sisimai.dump('/path/to/mbox', hook: callbackto)
|
213
187
|
|
214
188
|
puts data[0].catch['x-mailer'] # Apple Mail (2.1283)
|
215
189
|
```
|
@@ -230,7 +204,7 @@ Output example
|
|
230
204
|
![](https://libsisimai.org/static/images/demo/sisimai-dump-02.gif)
|
231
205
|
|
232
206
|
```json
|
233
|
-
[{"
|
207
|
+
[{"catch":{"x-mailer":"","return-path":"<shironeko@mx.example.co.jp>"},"token":"cf17945938502bd876603a375f0e9517c921bbab","lhost":"localhost","rhost":"mx-s.neko.example.jp","alias":"","listid":"","reason":"hasmoved","action":"failed","origin":"set-of-emails/maildir/bsd/lhost-sendmail-22.eml","subject":"Nyaaaan","messageid":"0000000011111.fff0000000003@mx.example.co.jp","replycode":"","smtpagent":"Sendmail","softbounce":0,"smtpcommand":"DATA","destination":"example.net","senderdomain":"example.co.jp","feedbacktype":"","diagnosticcode":"450 busy - please try later 551 not our customer 503 need RCPT command [data]","diagnostictype":"SMTP","deliverystatus":"5.1.6","timezoneoffset":"+0900","addresser":"shironeko@example.co.jp","recipient":"kijitora@example.net","timestamp":1397054085}]
|
234
208
|
```
|
235
209
|
|
236
210
|
Sisimai Specification
|
@@ -248,15 +222,15 @@ and bounceHammer are available at
|
|
248
222
|
| System requirements | Ruby 2.1 - 2.6 | Perl 5.10 - |
|
249
223
|
| | JRuby 9.0.4.0- | |
|
250
224
|
| Analytical precision ratio(2000 emails)[1] | 1.00 | 1.00 |
|
251
|
-
| The speed of parsing email(1000 emails) | 2.22s[2] | 1.
|
225
|
+
| The speed of parsing email(1000 emails) | 2.22s[2] | 1.35s |
|
252
226
|
| How to install | gem install | cpanm, cpm |
|
253
227
|
| Dependencies (Except core modules) | 1 module | 2 modules |
|
254
|
-
| LOC:Source lines of code |
|
255
|
-
| The number of tests(spec/,t/,xt/) directory |
|
228
|
+
| LOC:Source lines of code | 10300 lines | 10500 lines |
|
229
|
+
| The number of tests(spec/,t/,xt/) directory | 236000 tests | 265000 tests |
|
256
230
|
| License | BSD 2-Clause | BSD 2-Clause |
|
257
231
|
| Support Contract provided by Developer | Available | Available |
|
258
232
|
|
259
|
-
1. See [./ANALYTICAL-PRECISION](https://github.com/sisimai/rb-
|
233
|
+
1. See [./ANALYTICAL-PRECISION](https://github.com/sisimai/rb-sisimai/blob/master/ANALYTICAL-PRECISION)
|
260
234
|
2. Xeon E5-2640 2.5GHz x 2 cores | 5000 bogomips | 1GB RAM | Ruby 2.3.4p301
|
261
235
|
|
262
236
|
Other specification of Sisimai
|
@@ -270,7 +244,7 @@ Contributing
|
|
270
244
|
|
271
245
|
Bug report
|
272
246
|
-------------------------------------------------------------------------------
|
273
|
-
Please use the [issue tracker](https://github.com/sisimai/rb-
|
247
|
+
Please use the [issue tracker](https://github.com/sisimai/rb-sisimai/issues)
|
274
248
|
to report any bugs.
|
275
249
|
|
276
250
|
Emails could not be parsed
|
@@ -289,14 +263,14 @@ Related Sites
|
|
289
263
|
* __libSISIMAI.ORG__ | [Sisimai | The successor to bounceHammer, Library to parse bounce mails](https://libsisimai.org/)
|
290
264
|
* __Sisimai Blog__ | [blog.libsisimai.org](http://blog.libsisimai.org/)
|
291
265
|
* __Facebook Page__ | [facebook.com/libsisimai](https://www.facebook.com/libsisimai/)
|
292
|
-
* __GitHub__ | [github.com/sisimai/rb-
|
266
|
+
* __GitHub__ | [github.com/sisimai/rb-sisimai](https://github.com/sisimai/rb-sisimai)
|
293
267
|
* __RubyGems.org__ | [rubygems.org/gems/sisimai](https://rubygems.org/gems/sisimai)
|
294
|
-
* __Perl verson__ | [Perl version of Sisimai](https://github.com/sisimai/p5-
|
268
|
+
* __Perl verson__ | [Perl version of Sisimai](https://github.com/sisimai/p5-sisimai)
|
295
269
|
* __Fixtures__ | [set-of-emails - Sample emails for "make test"](https://github.com/sisimai/set-of-emails)
|
296
270
|
|
297
271
|
See also
|
298
272
|
-------------------------------------------------------------------------------
|
299
|
-
* [README-JA.md - README.md in Japanese(日本語)](https://github.com/sisimai/rb-
|
273
|
+
* [README-JA.md - README.md in Japanese(日本語)](https://github.com/sisimai/rb-sisimai/blob/master/README-JA.md)
|
300
274
|
* [RFC3463 - Enhanced Mail System Status Codes](https://tools.ietf.org/html/rfc3463)
|
301
275
|
* [RFC3464 - An Extensible Message Format for Delivery Status Notifications](https://tools.ietf.org/html/rfc3464)
|
302
276
|
* [RFC3834 - Recommendations for Automatic Responses to Electronic Mail](https://tools.ietf.org/html/rfc3834)
|
@@ -309,7 +283,7 @@ Author
|
|
309
283
|
|
310
284
|
Copyright
|
311
285
|
===============================================================================
|
312
|
-
Copyright (C) 2015-
|
286
|
+
Copyright (C) 2015-2020 azumakuniyuki, All Rights Reserved.
|
313
287
|
|
314
288
|
License
|
315
289
|
===============================================================================
|
data/Repository.mk
CHANGED
data/lib/sisimai.rb
CHANGED
@@ -1,10 +1,9 @@
|
|
1
|
-
require 'sisimai/version'
|
2
|
-
|
3
1
|
# Sisimai is the system formerly known as bounceHammer 4, is a Ruby module for
|
4
2
|
# analyzing bounce mails and generate structured data in a JSON format (YAML is
|
5
3
|
# also available if "YAML" module is installed on your system) from parsed bounce
|
6
4
|
# messages. Sisimai is a coined word: Sisi (the number 4 is pronounced "Si" in
|
7
5
|
# Japanese) and MAI (acronym of "Mail Analyzing Interface").
|
6
|
+
require 'sisimai/version'
|
8
7
|
module Sisimai
|
9
8
|
# Imported from p5-Sisimail/lib/Sisimai.pm
|
10
9
|
class << self
|
@@ -19,82 +18,29 @@ module Sisimai
|
|
19
18
|
# @param [Hash] argv1 Parser options(delivered=false)
|
20
19
|
# @options argv1 [Boolean] delivered true: Include "delivered" reason
|
21
20
|
# @options argv1 [Lambda] hook Lambda object to be called back
|
22
|
-
# @options argv1 [String] input Input data format: 'email', 'json'
|
23
|
-
# @options argv1 [Array] field Email header name to be captured
|
24
21
|
# @return [Array] Parsed objects
|
25
22
|
# @return [nil] nil if the argument was wrong or an empty array
|
26
23
|
def make(argv0, **argv1)
|
27
24
|
return nil unless argv0
|
28
|
-
|
29
|
-
input = argv1[:input] || nil
|
30
|
-
field = argv1[:field] || []
|
31
|
-
raise ' ***error: "field" accepts an array only' unless field.is_a? Array
|
32
|
-
|
33
|
-
unless input
|
34
|
-
klass = argv0.class
|
35
|
-
# "input" did not specified, try to detect automatically.
|
36
|
-
if klass == ::String || klass == IO
|
37
|
-
# The argument may be a path to email OR an email text
|
38
|
-
input = 'email'
|
39
|
-
elsif klass == Array || klass == Hash
|
40
|
-
# The argument may be a decoded JSON object
|
41
|
-
input = 'json'
|
42
|
-
end
|
43
|
-
end
|
44
|
-
|
45
|
-
delivered1 = argv1[:delivered] || false
|
46
|
-
hookmethod = argv1[:hook] || nil
|
47
|
-
bouncedata = []
|
48
|
-
|
49
25
|
require 'sisimai/data'
|
50
26
|
require 'sisimai/message'
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
bouncedata += data unless data.empty?
|
65
|
-
end
|
66
|
-
|
67
|
-
elsif input == 'json'
|
68
|
-
# Decoded JSON object: 'input' => 'json'
|
69
|
-
warn ' ***warning: input: "json" is marked as obsoleted'
|
70
|
-
type = argv0.class.to_s
|
71
|
-
list = []
|
72
|
-
|
73
|
-
if type == 'Array'
|
74
|
-
# [ {...}, {...}, ... ]
|
75
|
-
while e = argv0.shift do
|
76
|
-
list << e
|
77
|
-
end
|
78
|
-
else
|
79
|
-
list << argv0
|
80
|
-
end
|
81
|
-
|
82
|
-
while e = list.shift do
|
83
|
-
methodargv = { data: e, hook: hookmethod, input: 'json' }
|
84
|
-
mesg = Sisimai::Message.new(methodargv)
|
85
|
-
next if mesg.void
|
86
|
-
|
87
|
-
methodargv = { data: mesg, hook: hookmethod, input: 'json', delivered: delivered1 }
|
88
|
-
next unless data = Sisimai::Data.make(methodargv)
|
89
|
-
bouncedata += data unless data.empty?
|
90
|
-
end
|
91
|
-
else
|
92
|
-
# The value of "input" neither "email" nor "json"
|
93
|
-
raise ' ***error: invalid value of "input"'
|
27
|
+
require 'sisimai/mail'
|
28
|
+
|
29
|
+
list = []
|
30
|
+
return nil unless mail = Sisimai::Mail.new(argv0)
|
31
|
+
while r = mail.data.read do
|
32
|
+
# Read and parse each email file
|
33
|
+
methodargv = { data: r, hook: argv1[:hook] }
|
34
|
+
mesg = Sisimai::Message.new(**methodargv)
|
35
|
+
next if mesg.void
|
36
|
+
|
37
|
+
methodargv = { data: mesg, delivered: argv1[:delivered], origin: mail.data.path }
|
38
|
+
next unless data = Sisimai::Data.make(**methodargv)
|
39
|
+
list += data unless data.empty?
|
94
40
|
end
|
95
41
|
|
96
|
-
return nil if
|
97
|
-
return
|
42
|
+
return nil if list.empty?
|
43
|
+
return list
|
98
44
|
end
|
99
45
|
|
100
46
|
# Wrapper method to parse mailbox/Maildir and dump as JSON
|
@@ -104,12 +50,11 @@ module Sisimai
|
|
104
50
|
# @param [Hash] argv1 Parser options
|
105
51
|
# @options argv1 [Integer] delivered true: Include "delivered" reason
|
106
52
|
# @options argv1 [Lambda] hook Lambda object to be called back
|
107
|
-
# @options argv1 [String] input Input data format: 'email', 'json'
|
108
53
|
# @return [String] Parsed data as JSON text
|
109
54
|
def dump(argv0, **argv1)
|
110
55
|
return nil unless argv0
|
111
56
|
|
112
|
-
nyaan = Sisimai.make(argv0, argv1) || []
|
57
|
+
nyaan = Sisimai.make(argv0, **argv1) || []
|
113
58
|
if RUBY_PLATFORM.start_with?('java')
|
114
59
|
# java-based ruby environment like JRuby.
|
115
60
|
require 'jrjackson'
|
data/lib/sisimai/address.rb
CHANGED
@@ -30,7 +30,7 @@ module Sisimai
|
|
30
30
|
# # => Sisimai::Address object
|
31
31
|
def self.make(argvs)
|
32
32
|
return nil unless argvs.is_a? Hash
|
33
|
-
return nil unless argvs
|
33
|
+
return nil unless argvs[:address]
|
34
34
|
return nil if argvs[:address].empty?
|
35
35
|
|
36
36
|
thing = Sisimai::Address.new(argvs[:address])
|
@@ -69,7 +69,7 @@ module Sisimai
|
|
69
69
|
|
70
70
|
while e = characters.shift do
|
71
71
|
# Check each characters
|
72
|
-
if Delimiters
|
72
|
+
if Delimiters[e]
|
73
73
|
# The character is a delimiter character
|
74
74
|
if e == ','
|
75
75
|
# Separator of email addresses or not
|
@@ -283,7 +283,7 @@ module Sisimai
|
|
283
283
|
# expand_verp('bounce+neko=example.org@example.org') #=> 'neko@example.org'
|
284
284
|
def self.expand_verp(email)
|
285
285
|
return nil unless email.is_a? Object::String
|
286
|
-
return nil unless cv = email.split('@', 2).first.match(/\A[
|
286
|
+
return nil unless cv = email.split('@', 2).first.match(/\A[-\w]+?[+](\w[-.\w]+\w)[=](\w[-.\w]+\w)\z/)
|
287
287
|
verp0 = cv[1] + '@' + cv[2]
|
288
288
|
return verp0 if Sisimai::RFC5322.is_emailaddress(verp0)
|
289
289
|
end
|
@@ -297,23 +297,19 @@ module Sisimai
|
|
297
297
|
return nil unless Sisimai::RFC5322.is_emailaddress(email)
|
298
298
|
|
299
299
|
local = email.split('@')
|
300
|
-
return nil unless cv = local[0].match(/\A([
|
300
|
+
return nil unless cv = local[0].match(/\A([-\w]+?)[+].+\z/)
|
301
301
|
return cv[1] + '@' + local[1]
|
302
302
|
end
|
303
303
|
|
304
|
-
|
305
|
-
|
306
|
-
|
307
|
-
|
308
|
-
|
309
|
-
|
310
|
-
]
|
311
|
-
|
312
|
-
|
313
|
-
:comment, # [String] Comment
|
314
|
-
]
|
315
|
-
@@roaccessors.each { |e| attr_reader e }
|
316
|
-
@@rwaccessors.each { |e| attr_accessor e }
|
304
|
+
# :address, # [String] Email address
|
305
|
+
# :user, # [String] local part of the email address
|
306
|
+
# :host, # [String] domain part of the email address
|
307
|
+
# :verp, # [String] VERP
|
308
|
+
# :alias, # [String] alias of the email address
|
309
|
+
# :name, # [String] Display name
|
310
|
+
# :comment, # [String] Comment
|
311
|
+
attr_reader :address, :user, :host, :verp, :alias
|
312
|
+
attr_accessor :name, :comment
|
317
313
|
|
318
314
|
# Constructor of Sisimai::Address
|
319
315
|
# @param <str> [String] argv1 Email address
|
data/lib/sisimai/arf.rb
CHANGED
@@ -14,28 +14,31 @@ module Sisimai
|
|
14
14
|
# OpenDMARC 1.3.0 uses: This is an authentication failure report for an email message received from IP
|
15
15
|
# Abusix ARF uses this is an autogenerated email abuse complaint regarding your network.
|
16
16
|
Indicators = Sisimai::Lhost.INDICATORS
|
17
|
-
StartingOf = {
|
17
|
+
StartingOf = {
|
18
|
+
rfc822: ['Content-Type: message/rfc822', 'Content-Type: text/rfc822-headers'],
|
19
|
+
report: ['Content-Type: message/feedback-report'],
|
20
|
+
}.freeze
|
18
21
|
MarkingsOf = {
|
19
22
|
message: %r{\A(?>
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
23
|
+
[Tt]his[ ]is[ ]a[ ][^ ]+[ ](?:email[ ])?[Aa]buse[ ][Rr]eport
|
24
|
+
|[Tt]his[ ]is[ ]an[ ]email[ ]abuse[ ]report
|
25
|
+
|[Tt]his[ ]is[ ](?:
|
26
|
+
a[ ][^ ]+[ ]authentication[ -]failure[ ]report
|
27
|
+
|an[ ]authentication[ -]failure[ ]report
|
28
|
+
|an[ ]autogenerated[ ]email[ ]abuse[ ]complaint
|
29
|
+
|an?[ ][^ ]+[ ]report[ ]for
|
30
|
+
)
|
26
31
|
)
|
27
32
|
}x,
|
28
33
|
}.freeze
|
34
|
+
ReportFrom = /(?:staff[@]hotmail[.]com|complaints[@]email-abuse[.]amazonses[.]com)\z/.freeze
|
29
35
|
LongFields = Sisimai::RFC5322.LONGFIELDS
|
30
36
|
RFC822Head = Sisimai::RFC5322.HEADERFIELDS
|
31
37
|
|
32
38
|
def description; return 'Abuse Feedback Reporting Format'; end
|
33
|
-
def smtpagent; return 'FeedBack-Loop'; end
|
34
|
-
def headerlist; return []; end
|
35
39
|
|
36
40
|
# Email is a Feedback-Loop message or not
|
37
|
-
# @param [Hash] heads Email header including "Content-Type", "From",
|
38
|
-
# and "Subject" field
|
41
|
+
# @param [Hash] heads Email header including "Content-Type", "From", and "Subject" field
|
39
42
|
# @return [True,False] true: Feedback Loop
|
40
43
|
# false: is not Feedback loop
|
41
44
|
def is_arf(heads)
|
@@ -49,13 +52,8 @@ module Sisimai
|
|
49
52
|
elsif heads['content-type'].start_with?('multipart/mixed')
|
50
53
|
# Microsoft (Hotmail, MSN, Live, Outlook) uses its own report format.
|
51
54
|
# Amazon SES Complaints bounces
|
52
|
-
|
53
|
-
|
54
|
-
staff[@]hotmail[.]com
|
55
|
-
|complaints[@]email-abuse[.]amazonses[.]com
|
56
|
-
)\z
|
57
|
-
}x
|
58
|
-
if hfrom =~ mfrom && heads['subject'].include?('complaint about message from ')
|
55
|
+
p = Sisimai::Address.s3s4(heads['from'])
|
56
|
+
if p =~ ReportFrom && heads['subject'].include?('complaint about message from ')
|
59
57
|
# From: staff@hotmail.com
|
60
58
|
# From: complaints@email-abuse.amazonses.com
|
61
59
|
# Subject: complaint about message from 192.0.2.1
|
@@ -66,21 +64,15 @@ module Sisimai
|
|
66
64
|
end
|
67
65
|
|
68
66
|
# Detect an error for Feedback Loop
|
69
|
-
# @param
|
70
|
-
# @
|
71
|
-
# @
|
72
|
-
# @
|
73
|
-
# @options mhead [Array] received Received headers
|
74
|
-
# @options mhead [String] others Other required headers
|
75
|
-
# @param [String] mbody Message body of a bounce email
|
76
|
-
# @return [Hash, Nil] Bounce data list and message/rfc822 part
|
77
|
-
# or nil if it failed to parse or the
|
78
|
-
# arguments are missing
|
67
|
+
# @param [Hash] mhead Message headers of a bounce email
|
68
|
+
# @param [String] mbody Message body of a bounce email
|
69
|
+
# @return [Hash] Bounce data list and message/rfc822 part
|
70
|
+
# @return [Nil] it failed to parse or the arguments are missing
|
79
71
|
def make(mhead, mbody)
|
80
72
|
return nil unless self.is_arf(mhead)
|
81
73
|
|
82
74
|
dscontents = [Sisimai::Lhost.DELIVERYSTATUS]
|
83
|
-
|
75
|
+
bodyslices = mbody.split("\n")
|
84
76
|
rfc822part = '' # (String) message/rfc822-headers part
|
85
77
|
previousfn = '' # (String) Previous field name
|
86
78
|
readcursor = 0 # (Integer) Points the current cursor position
|
@@ -120,13 +112,18 @@ module Sisimai
|
|
120
112
|
# generator is using to generate the report. The version number in
|
121
113
|
# this specification is set to "1".
|
122
114
|
#
|
123
|
-
while e =
|
115
|
+
while e = bodyslices.shift do
|
116
|
+
# This is an email abuse report for an email message with the
|
117
|
+
# message-id of 0000-000000000000000000000000000000000@mx
|
118
|
+
# received from IP address 192.0.2.1 on
|
119
|
+
# Thu, 29 Apr 2010 00:00:00 +0900 (JST)
|
120
|
+
if e =~ MarkingsOf[:message]
|
121
|
+
commondata['diagnosis'] = e if commondata['diagnosis'].empty?
|
122
|
+
end
|
123
|
+
|
124
124
|
if readcursor == 0
|
125
125
|
# Beginning of the bounce message or message/delivery-status part
|
126
|
-
if e
|
127
|
-
readcursor |= Indicators[:deliverystatus]
|
128
|
-
next
|
129
|
-
end
|
126
|
+
readcursor |= Indicators[:deliverystatus] if e.start_with?(StartingOf[:report][0])
|
130
127
|
end
|
131
128
|
|
132
129
|
if (readcursor & Indicators[:'message-rfc822']) == 0
|
@@ -153,11 +150,18 @@ module Sisimai
|
|
153
150
|
elsif cv = e.match(/\AFrom:[ ]*(.+)\z/)
|
154
151
|
# Microsoft ARF: original sender.
|
155
152
|
commondata['from'] = Sisimai::Address.s3s4(cv[1]) if commondata['from'].empty?
|
153
|
+
previousfn = 'from'
|
156
154
|
|
157
155
|
elsif e.start_with?(' ', "\t")
|
158
156
|
# Continued line from the previous line
|
159
|
-
|
160
|
-
|
157
|
+
if previousfn == 'from'
|
158
|
+
# Multiple lines at "From:" field
|
159
|
+
commondata['from'] << e
|
160
|
+
next
|
161
|
+
else
|
162
|
+
rfc822part << e + "\n" if LongFields[previousfn]
|
163
|
+
next unless e.empty?
|
164
|
+
end
|
161
165
|
rcptintext << e if previousfn == 'to'
|
162
166
|
|
163
167
|
else
|
@@ -167,14 +171,14 @@ module Sisimai
|
|
167
171
|
lhs.downcase!
|
168
172
|
|
169
173
|
previousfn = ''
|
170
|
-
next unless RFC822Head
|
174
|
+
next unless RFC822Head[lhs]
|
171
175
|
|
172
176
|
previousfn = lhs
|
173
177
|
rfc822part << e + "\n"
|
174
178
|
rcptintext = rhs if lhs == 'to'
|
175
179
|
end
|
176
180
|
else
|
177
|
-
# message/
|
181
|
+
# message/feedback-report part
|
178
182
|
next unless readcursor & Indicators[:deliverystatus] > 0
|
179
183
|
next if e.empty?
|
180
184
|
|
@@ -231,7 +235,7 @@ module Sisimai
|
|
231
235
|
# Reporting-MTA: dns; mx.example.jp
|
232
236
|
commondata['rhost'] = cv[1]
|
233
237
|
|
234
|
-
elsif cv = e.match(/\ASource-
|
238
|
+
elsif cv = e.match(/\ASource-I[Pp]:[ ]*(.+)\z/)
|
235
239
|
# The header is optional and MUST NOT appear more than once.
|
236
240
|
# Source-IP: 192.0.2.45
|
237
241
|
arfheaders['rhost'] = cv[1]
|
@@ -241,12 +245,6 @@ module Sisimai
|
|
241
245
|
# Original-Mail-From: <somespammer@example.net>
|
242
246
|
commondata['from'] = Sisimai::Address.s3s4(cv[1]) if commondata['from'].empty?
|
243
247
|
|
244
|
-
elsif e =~ MarkingsOf[:message]
|
245
|
-
# This is an email abuse report for an email message with the
|
246
|
-
# message-id of 0000-000000000000000000000000000000000@mx
|
247
|
-
# received from IP address 192.0.2.1 on
|
248
|
-
# Thu, 29 Apr 2010 00:00:00 +0900 (JST)
|
249
|
-
commondata['diagnosis'] = e
|
250
248
|
end
|
251
249
|
end
|
252
250
|
end
|
@@ -292,9 +290,10 @@ module Sisimai
|
|
292
290
|
|
293
291
|
e['softbounce'] = -1
|
294
292
|
e['diagnosis'] = commondata['diagnosis'] unless e['diagnosis']
|
293
|
+
e['diagnosis'] = Sisimai::String.sweep(e['diagnosis'])
|
295
294
|
e['date'] = mhead['date'] if e['date'].empty?
|
296
295
|
e['reason'] = 'feedback'
|
297
|
-
e['agent'] =
|
296
|
+
e['agent'] = 'Feedback-Loop'
|
298
297
|
%w[command action status alias].each { |a| e[a] = '' }
|
299
298
|
|
300
299
|
# Get the remote IP address from the message body
|
@@ -308,7 +307,6 @@ module Sisimai
|
|
308
307
|
# from IP address 24.64.1.1 on Thu, 29 Apr 2010 00:00:00 +0000
|
309
308
|
e['rhost'] = cv[1]
|
310
309
|
end
|
311
|
-
|
312
310
|
end
|
313
311
|
return { 'ds' => dscontents, 'rfc822' => rfc822part }
|
314
312
|
end
|