sisimai 4.25.5 → 4.25.6
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of sisimai might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/ANALYTICAL-PRECISION +60 -56
- data/Benchmarks.mk +4 -2
- data/ChangeLog.md +78 -0
- data/README-JA.md +9 -9
- data/README.md +10 -9
- data/lib/sisimai.rb +5 -11
- data/lib/sisimai/arf.rb +17 -23
- data/lib/sisimai/data.rb +4 -4
- data/lib/sisimai/lhost.rb +25 -33
- data/lib/sisimai/lhost/activehunter.rb +6 -21
- data/lib/sisimai/lhost/amavis.rb +78 -20
- data/lib/sisimai/lhost/amazonses.rb +10 -24
- data/lib/sisimai/lhost/amazonworkmail.rb +8 -24
- data/lib/sisimai/lhost/aol.rb +15 -29
- data/lib/sisimai/lhost/apachejames.rb +6 -21
- data/lib/sisimai/lhost/barracuda.rb +94 -0
- data/lib/sisimai/lhost/bigfoot.rb +5 -17
- data/lib/sisimai/lhost/biglobe.rb +5 -16
- data/lib/sisimai/lhost/courier.rb +6 -19
- data/lib/sisimai/lhost/domino.rb +5 -17
- data/lib/sisimai/lhost/einsundeins.rb +5 -16
- data/lib/sisimai/lhost/exchange2003.rb +10 -19
- data/lib/sisimai/lhost/exchange2007.rb +16 -19
- data/lib/sisimai/lhost/exim.rb +9 -25
- data/lib/sisimai/lhost/ezweb.rb +5 -17
- data/lib/sisimai/lhost/facebook.rb +5 -16
- data/lib/sisimai/lhost/fml.rb +6 -18
- data/lib/sisimai/lhost/{google.rb → gmail.rb} +9 -21
- data/lib/sisimai/lhost/gmx.rb +9 -23
- data/lib/sisimai/lhost/googlegroups.rb +77 -0
- data/lib/sisimai/lhost/gsuite.rb +5 -17
- data/lib/sisimai/lhost/imailserver.rb +12 -24
- data/lib/sisimai/lhost/interscanmss.rb +11 -22
- data/lib/sisimai/lhost/kddi.rb +5 -16
- data/lib/sisimai/lhost/mailfoundry.rb +6 -21
- data/lib/sisimai/lhost/mailmarshalsmtp.rb +6 -21
- data/lib/sisimai/lhost/mailru.rb +5 -16
- data/lib/sisimai/lhost/mcafee.rb +6 -18
- data/lib/sisimai/lhost/messagelabs.rb +10 -22
- data/lib/sisimai/lhost/messagingserver.rb +5 -18
- data/lib/sisimai/lhost/mfilter.rb +7 -19
- data/lib/sisimai/lhost/mxlogic.rb +8 -21
- data/lib/sisimai/lhost/notes.rb +6 -18
- data/lib/sisimai/lhost/office365.rb +24 -34
- data/lib/sisimai/lhost/opensmtpd.rb +5 -19
- data/lib/sisimai/lhost/outlook.rb +7 -21
- data/lib/sisimai/lhost/postfix.rb +6 -17
- data/lib/sisimai/lhost/powermta.rb +120 -0
- data/lib/sisimai/lhost/qmail.rb +6 -17
- data/lib/sisimai/lhost/receivingses.rb +7 -22
- data/lib/sisimai/lhost/sendgrid.rb +7 -20
- data/lib/sisimai/lhost/sendmail.rb +6 -22
- data/lib/sisimai/lhost/surfcontrol.rb +9 -25
- data/lib/sisimai/lhost/v5sendmail.rb +5 -18
- data/lib/sisimai/lhost/verizon.rb +5 -17
- data/lib/sisimai/lhost/x1.rb +7 -19
- data/lib/sisimai/lhost/x2.rb +8 -23
- data/lib/sisimai/lhost/x3.rb +7 -19
- data/lib/sisimai/lhost/x4.rb +7 -19
- data/lib/sisimai/lhost/x5.rb +8 -23
- data/lib/sisimai/lhost/x6.rb +74 -0
- data/lib/sisimai/lhost/yahoo.rb +11 -24
- data/lib/sisimai/lhost/yandex.rb +14 -26
- data/lib/sisimai/lhost/zoho.rb +8 -28
- data/lib/sisimai/mail.rb +35 -20
- data/lib/sisimai/mail/maildir.rb +27 -28
- data/lib/sisimai/mail/memory.rb +18 -16
- data/lib/sisimai/mail/stdin.rb +5 -5
- data/lib/sisimai/mda.rb +4 -10
- data/lib/sisimai/message.rb +97 -231
- data/lib/sisimai/mime.rb +26 -31
- data/lib/sisimai/order.rb +149 -183
- data/lib/sisimai/reason.rb +25 -14
- data/lib/sisimai/reason/rejected.rb +1 -0
- data/lib/sisimai/reason/userunknown.rb +12 -5
- data/lib/sisimai/rfc3464.rb +6 -23
- data/lib/sisimai/rfc3834.rb +5 -18
- data/lib/sisimai/rhost/exchangeonline.rb +25 -22
- data/lib/sisimai/smtp.rb +0 -13
- data/lib/sisimai/string.rb +3 -11
- data/lib/sisimai/version.rb +1 -1
- data/set-of-emails/maildir/bsd/arf-24.eml +50 -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/{email-einsundeins-03.eml → lhost-einsundeins-03.eml} +0 -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/{email-exchange2007-05.eml → lhost-exchange2007-05.eml} +0 -0
- data/set-of-emails/maildir/bsd/{email-exchange2007-06.eml → lhost-exchange2007-06.eml} +0 -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/{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} +0 -0
- 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/{email-postfix-64.eml → lhost-postfix-64.eml} +0 -0
- data/set-of-emails/maildir/bsd/lhost-postfix-65.eml +69 -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/{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/{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/{rfc3464-41.eml → rfc3834-04.eml} +0 -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 +547 -506
- data/lib/sisimai/lhost/userdefined.rb +0 -95
data/lib/sisimai/mail/maildir.rb
CHANGED
@@ -1,23 +1,22 @@
|
|
1
1
|
module Sisimai
|
2
2
|
class Mail
|
3
|
-
# Sisimai::Mail::Maildir is a reader for getting contents of each email in
|
4
|
-
# Maildir/ directory.
|
3
|
+
# Sisimai::Mail::Maildir is a reader for getting contents of each email in
|
4
|
+
# the Maildir/ directory.
|
5
5
|
class Maildir
|
6
6
|
# Imported from p5-Sisimail/lib/Sisimai/Mail/Maildir.pm
|
7
7
|
# :dir [String] Path to Maildir/
|
8
|
-
# :size [Integer] The number of
|
8
|
+
# :size [Integer] The number of files/directories in the Maildir/
|
9
9
|
# :path [String] Path to each file
|
10
10
|
# :file, [String] Each file name of a mail in the Maildir/
|
11
|
-
# :
|
12
|
-
# :count [Integer] The number of file has read
|
11
|
+
# :offset [Integer] The number of email files in the Maildir/
|
13
12
|
# :handle [IO::Dir] Directory handle
|
14
|
-
attr_reader :dir
|
15
|
-
attr_accessor :
|
13
|
+
attr_reader :dir
|
14
|
+
attr_accessor :size, :path, :file, :offset, :handle
|
16
15
|
|
17
16
|
# Constructor of Sisimai::Mail::Maildir
|
18
|
-
# @param [String] argvs
|
19
|
-
# @return [Sisimai::Mail::Maildir
|
20
|
-
#
|
17
|
+
# @param [String] argvs Path to Maildir/
|
18
|
+
# @return [Sisimai::Mail::Maildir] Object
|
19
|
+
# [Nil] is not a directory or does not exist
|
21
20
|
def initialize(argv1)
|
22
21
|
raise Errno::ENOENT unless File.exist?(argv1)
|
23
22
|
raise Errno::ENOTDIR unless File.ftype(argv1) == 'directory'
|
@@ -26,45 +25,45 @@ module Sisimai
|
|
26
25
|
@size = Dir.entries(argv1).size
|
27
26
|
@dir = argv1
|
28
27
|
@file = nil
|
29
|
-
@
|
30
|
-
@count = 0
|
28
|
+
@offset = 0
|
31
29
|
@handle = Dir.open(argv1)
|
32
30
|
end
|
33
31
|
|
34
32
|
# Maildir reader, works as a iterator.
|
35
33
|
# @return [String] Contents of file in Maildir/
|
36
34
|
def read
|
37
|
-
return nil unless self.
|
38
|
-
|
35
|
+
return nil unless self.offset < self.size
|
39
36
|
seekhandle = self.handle
|
40
37
|
readbuffer = ''
|
41
38
|
|
42
39
|
begin
|
43
40
|
while r = seekhandle.read do
|
44
41
|
# Read each file in the directory
|
45
|
-
|
42
|
+
if r == '.' || r == '..'
|
43
|
+
# Is a directory
|
44
|
+
self.offset += 1
|
45
|
+
next
|
46
|
+
end
|
46
47
|
|
47
48
|
emailindir = (self.dir + '/' + r).squeeze('/')
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
49
|
+
if File.ftype(emailindir) != 'file' ||
|
50
|
+
File.size(emailindir) == 0 ||
|
51
|
+
File.readable?(emailindir) == false
|
52
|
+
# The file is not a file, is empty, is not readable
|
53
|
+
self.offset += 1
|
54
|
+
next
|
55
|
+
end
|
54
56
|
|
55
57
|
File.open(emailindir, 'r:UTF-8') do |f|
|
56
58
|
readbuffer = f.read
|
57
59
|
end
|
58
60
|
|
59
|
-
self.
|
60
|
-
self.path
|
61
|
-
self.file
|
62
|
-
|
61
|
+
self.offset += 1
|
62
|
+
self.path = emailindir
|
63
|
+
self.file = r
|
63
64
|
break
|
64
65
|
end
|
65
|
-
|
66
|
-
self.count += 1
|
67
|
-
seekhandle.close unless self.count < self.size
|
66
|
+
seekhandle.close unless self.offset < self.size
|
68
67
|
end
|
69
68
|
|
70
69
|
return readbuffer
|
data/lib/sisimai/mail/memory.rb
CHANGED
@@ -3,39 +3,41 @@ module Sisimai
|
|
3
3
|
# Sisimai::Mail::Memory is a class for reading an email string
|
4
4
|
class Memory
|
5
5
|
# Imported from p5-Sisimail/lib/Sisimai/Mail/Memory.pm
|
6
|
-
# :
|
7
|
-
# :
|
8
|
-
# :
|
9
|
-
|
10
|
-
|
6
|
+
# :path [String] Fixed string "<MEMORY>"
|
7
|
+
# :size [Integer] data size of the email text
|
8
|
+
# :payload [Array] Entire bounce mail message
|
9
|
+
# :offset [Integer] Index of ":payload"
|
10
|
+
attr_reader :path, :size
|
11
|
+
attr_accessor :payload, :offset
|
11
12
|
|
12
13
|
# Constructor of Sisimai::Mail::Memory
|
13
|
-
# @param [String] argv1
|
14
|
-
# @return [Sisimai::Mail::Memory
|
15
|
-
#
|
14
|
+
# @param [String] argv1 Entire email string
|
15
|
+
# @return [Sisimai::Mail::Memory] Object
|
16
|
+
# [Nil] is not specified or does not exist
|
16
17
|
def initialize(argv1)
|
17
18
|
raise 'is not a String' unless argv1.is_a? ::String
|
18
19
|
raise 'is empty' if argv1.empty?
|
19
20
|
|
20
|
-
@
|
21
|
-
@
|
22
|
-
@
|
21
|
+
@path = '<MEMORY>'
|
22
|
+
@size = argv1.size
|
23
|
+
@payload = []
|
24
|
+
@offset = 0
|
23
25
|
|
24
26
|
if argv1.start_with?('From ')
|
25
27
|
# UNIX mbox
|
26
|
-
@
|
27
|
-
@
|
28
|
+
@payload = argv1.split(/^From /).map! { |e| e = 'From ' + e }
|
29
|
+
@payload.shift
|
28
30
|
else
|
29
|
-
@
|
31
|
+
@payload = [argv1]
|
30
32
|
end
|
31
33
|
end
|
32
34
|
|
33
35
|
# Memory reader, works as an iterator.
|
34
36
|
# @return [String] Contents of a bounce mail
|
35
37
|
def read
|
36
|
-
return nil if self.
|
38
|
+
return nil if self.payload.empty?
|
37
39
|
self.offset += 1
|
38
|
-
return self.
|
40
|
+
return self.payload.shift
|
39
41
|
end
|
40
42
|
end
|
41
43
|
end
|
data/lib/sisimai/mail/stdin.rb
CHANGED
@@ -4,10 +4,9 @@ module Sisimai
|
|
4
4
|
# STDIN
|
5
5
|
class STDIN
|
6
6
|
# Imported from p5-Sisimail/lib/Sisimai/Mail/STDIN.pm
|
7
|
-
# :path [String]
|
8
|
-
# :
|
9
|
-
# :
|
10
|
-
# :offset [Integer] Offset position for seeking
|
7
|
+
# :path [String] Fixed string "<STDIN>"
|
8
|
+
# :size [Integer] Data size which has been read
|
9
|
+
# :offset [Integer] The number of emails which have neen read
|
11
10
|
# :handle [IO::File] File handle
|
12
11
|
attr_reader :path, :name, :size
|
13
12
|
attr_accessor :offset, :handle
|
@@ -19,7 +18,6 @@ module Sisimai
|
|
19
18
|
raise 'is not an IO object' unless stdin.is_a?(IO)
|
20
19
|
|
21
20
|
@path = '<STDIN>'
|
22
|
-
@name = '<STDIN>'
|
23
21
|
@size = nil
|
24
22
|
@offset = 0
|
25
23
|
@handle = stdin
|
@@ -45,6 +43,8 @@ module Sisimai
|
|
45
43
|
readhandle.close
|
46
44
|
end
|
47
45
|
|
46
|
+
self.size += readbuffer.size
|
47
|
+
self.offset += 1
|
48
48
|
return readbuffer
|
49
49
|
end
|
50
50
|
end
|
data/lib/sisimai/mda.rb
CHANGED
@@ -75,16 +75,10 @@ module Sisimai
|
|
75
75
|
}.freeze
|
76
76
|
|
77
77
|
# Parse message body and return reason and text
|
78
|
-
# @param
|
79
|
-
# @
|
80
|
-
# @
|
81
|
-
# @
|
82
|
-
# @options mhead [Array] received Received headers
|
83
|
-
# @options mhead [String] others Other required headers
|
84
|
-
# @param [String] mbody Message body of a bounce email
|
85
|
-
# @return [Hash, Nil] Bounce data list and message/rfc822 part
|
86
|
-
# or nil if it failed to parse or the
|
87
|
-
# arguments are missing
|
78
|
+
# @param [Hash] mhead Message headers of a bounce email
|
79
|
+
# @param [String] mbody Message body of a bounce email
|
80
|
+
# @return [Hash] Bounce data list and message/rfc822 part
|
81
|
+
# @return [Nil] it failed to parse or the arguments are missing
|
88
82
|
def make(mhead, mbody)
|
89
83
|
return nil unless mhead['from'].downcase.start_with?('mail delivery subsystem','mailer-daemon', 'postmaster')
|
90
84
|
|
data/lib/sisimai/message.rb
CHANGED
@@ -12,49 +12,29 @@ module Sisimai
|
|
12
12
|
# :catch [Any] The results returned by hook method
|
13
13
|
attr_accessor :from, :header, :ds, :rfc822, :catch
|
14
14
|
|
15
|
-
require 'sisimai/arf'
|
16
15
|
require 'sisimai/mime'
|
17
16
|
require 'sisimai/order'
|
17
|
+
require 'sisimai/lhost'
|
18
18
|
require 'sisimai/string'
|
19
19
|
require 'sisimai/address'
|
20
20
|
require 'sisimai/rfc5322'
|
21
|
-
require 'sisimai/rfc3834'
|
22
|
-
require 'sisimai/smtp/error'
|
23
|
-
|
24
21
|
DefaultSet = Sisimai::Order.another
|
25
|
-
|
26
|
-
SubjectTab = Sisimai::Order.by('subject')
|
27
|
-
RFC822Head = Sisimai::RFC5322.HEADERFIELDS
|
28
|
-
RFC3834Set = Sisimai::RFC3834.headerlist
|
29
|
-
HeaderList = %w[from to date subject content-type reply-to message-id
|
30
|
-
received content-transfer-encoding return-path x-mailer]
|
31
|
-
IsMultiple = { 'received' => true }
|
32
|
-
EndOfEmail = Sisimai::String.EOM
|
33
|
-
BorderLine = '__MIME_ENCODED_BOUNDARY__'
|
22
|
+
LhostTable = Sisimai::Lhost.path
|
34
23
|
|
35
24
|
# Constructor of Sisimai::Message
|
36
25
|
# @param [String] data Email text data
|
37
26
|
# @param [Hash] argvs Module to be loaded
|
38
27
|
# @options argvs [String] :data Entire email message
|
39
28
|
# @options argvs [Array] :load User defined MTA module list
|
40
|
-
# @options argvs [Array] :field Email header names to be captured
|
41
29
|
# @options argvs [Array] :order The order of MTA modules
|
42
30
|
# @options argvs [Code] :hook Reference to callback method
|
43
31
|
# @return [Sisimai::Message] Structured email data or nil if each
|
44
32
|
# value of the arguments are missing
|
45
33
|
def initialize(data: '', **argvs)
|
46
34
|
return nil if data.empty?
|
47
|
-
|
48
35
|
email = data.scrub('?').gsub("\r\n", "\n")
|
49
|
-
field = argvs[:field] || []
|
50
|
-
|
51
|
-
unless field.is_a? Array
|
52
|
-
# Unsupported value in "field"
|
53
|
-
warn ' ***warning: "field" accepts an array reference only'
|
54
|
-
return nil
|
55
|
-
end
|
56
36
|
|
57
|
-
methodargv = { 'data' => email, 'hook' => argvs[:hook] || nil
|
37
|
+
methodargv = { 'data' => email, 'hook' => argvs[:hook] || nil }
|
58
38
|
[:load, :order].each do |e|
|
59
39
|
# Order of MTA modules
|
60
40
|
next unless argvs[e]
|
@@ -85,7 +65,6 @@ module Sisimai
|
|
85
65
|
# @param [Hash] argvs Email data
|
86
66
|
# @options argvs [String] data Entire email message
|
87
67
|
# @options argvs [Array] load User defined MTA module list
|
88
|
-
# @options argvs [Array] field Email header names to be captured
|
89
68
|
# @options argvs [Array] order The order of MTA modules
|
90
69
|
# @options argvs [Code] hook Reference to callback method
|
91
70
|
# @return [Hash] Resolved data structure
|
@@ -110,35 +89,41 @@ module Sisimai
|
|
110
89
|
return nil unless aftersplit = Sisimai::Message.divideup(email)
|
111
90
|
|
112
91
|
# 2. Convert email headers from text to hash reference
|
113
|
-
headerargv = {
|
114
|
-
'extheaders' => ExtHeaders,
|
115
|
-
'tryonfirst' => [],
|
116
|
-
'extrafield' => argvs['field'] || [],
|
117
|
-
}
|
118
92
|
processing['from'] = aftersplit['from']
|
119
|
-
processing['header'] = Sisimai::Message.
|
93
|
+
processing['header'] = Sisimai::Message.makemap(aftersplit['header'])
|
120
94
|
|
121
|
-
# 3.
|
122
|
-
|
123
|
-
|
95
|
+
# 3. Decode and rewrite the "Subject:" header
|
96
|
+
unless processing['header']['subject'].empty?
|
97
|
+
# Decode MIME-Encoded "Subject:" header
|
98
|
+
s = processing['header']['subject']
|
99
|
+
q = Sisimai::MIME.is_mimeencoded(s) ? Sisimai::MIME.mimedecode(s.split(/[ ]/)) : s
|
100
|
+
|
101
|
+
# Remove "Fwd:" string from the Subject: header
|
102
|
+
if cv = q.downcase.match(/\A[ \t]*fwd?:[ ]*(.*)\z/)
|
103
|
+
# Delete quoted strings, quote symbols(>)
|
104
|
+
q = cv[1]
|
105
|
+
aftersplit['body'] = aftersplit['body'].gsub(/^[>]+[ ]/, '').gsub(/^[>]$/, '')
|
106
|
+
end
|
107
|
+
processing['header']['subject'] = q
|
124
108
|
end
|
125
109
|
|
126
110
|
# 4. Rewrite message body for detecting the bounce reason
|
111
|
+
tryonfirst = Sisimai::Order.make(processing['header']['subject'])
|
127
112
|
methodargv = {
|
128
113
|
'hook' => hookmethod,
|
129
114
|
'mail' => processing,
|
130
115
|
'body' => aftersplit['body'],
|
131
|
-
'tryonfirst' =>
|
116
|
+
'tryonfirst' => tryonfirst,
|
132
117
|
'tobeloaded' => tobeloaded,
|
133
118
|
}
|
134
119
|
return nil unless bouncedata = Sisimai::Message.parse(methodargv)
|
135
120
|
return nil if bouncedata.empty?
|
136
|
-
%w|ds catch rfc822|.each { |e| processing[e] = bouncedata[e] }
|
137
121
|
|
138
122
|
# 5. Rewrite headers of the original message in the body part
|
123
|
+
%w|ds catch rfc822|.each { |e| processing[e] = bouncedata[e] }
|
139
124
|
p = bouncedata['rfc822']
|
140
125
|
p = aftersplit['body'] if p.empty?
|
141
|
-
processing['rfc822'] = p.is_a?(::String) ? Sisimai::Message.
|
126
|
+
processing['rfc822'] = p.is_a?(::String) ? Sisimai::Message.makemap(p, true) : p
|
142
127
|
|
143
128
|
return processing
|
144
129
|
end
|
@@ -171,12 +156,6 @@ module Sisimai
|
|
171
156
|
warn ' ***warning: Failed to load ' << v
|
172
157
|
next
|
173
158
|
end
|
174
|
-
|
175
|
-
Module.const_get(v).headerlist.each do |w|
|
176
|
-
# Get header name which required user defined MTA module
|
177
|
-
ExtHeaders[w] ||= {}
|
178
|
-
ExtHeaders[w][v] = 1
|
179
|
-
end
|
180
159
|
tobeloaded << v
|
181
160
|
end
|
182
161
|
end
|
@@ -190,92 +169,6 @@ module Sisimai
|
|
190
169
|
return tobeloaded
|
191
170
|
end
|
192
171
|
|
193
|
-
# Check headers for detecting MTA module and returns the order of modules
|
194
|
-
# @param [Hash] heads Email header data
|
195
|
-
# @return [Array] Order of MTA modules
|
196
|
-
def self.makeorder(heads)
|
197
|
-
return [] unless heads
|
198
|
-
return [] unless heads['subject']
|
199
|
-
return [] if heads['subject'].empty?
|
200
|
-
order = []
|
201
|
-
|
202
|
-
# Try to match the value of "Subject" with patterns generated by
|
203
|
-
# Sisimai::Order->by('subject') method
|
204
|
-
title = heads['subject'].downcase
|
205
|
-
SubjectTab.each_key do |e|
|
206
|
-
# Get MTA list from the subject header
|
207
|
-
next unless title.include?(e)
|
208
|
-
order += SubjectTab[e] # Matched and push MTA list
|
209
|
-
break
|
210
|
-
end
|
211
|
-
return order
|
212
|
-
end
|
213
|
-
|
214
|
-
# Convert email headers from text to hash reference
|
215
|
-
# @param [String] heads Email header data
|
216
|
-
# @param [Hash] argvs
|
217
|
-
# @param options extheaders [Array] External header table
|
218
|
-
# @return [Hash] Structured email header data
|
219
|
-
def self.headers(heads, argvs = {})
|
220
|
-
return nil unless heads
|
221
|
-
|
222
|
-
currheader = ''
|
223
|
-
allheaders = {}
|
224
|
-
structured = {}
|
225
|
-
extheaders = argvs['extheaders'] || []
|
226
|
-
extrafield = argvs['extrafield'] || []
|
227
|
-
headslices = heads.split("\n")
|
228
|
-
|
229
|
-
HeaderList.each { |e| structured[e] = nil }
|
230
|
-
HeaderList.each { |e| allheaders[e] = true }
|
231
|
-
RFC3834Set.each { |e| allheaders[e] = true }
|
232
|
-
IsMultiple.each_key { |e| structured[e] = [] }
|
233
|
-
extheaders.each_key { |e| allheaders[e] = true }
|
234
|
-
unless extrafield.empty?
|
235
|
-
extrafield.each { |e| allheaders[e] = true }
|
236
|
-
end
|
237
|
-
|
238
|
-
while e = headslices.shift do
|
239
|
-
# Convert email headers to hash
|
240
|
-
if cv = e.match(/\A[ \t]+(.+)\z/)
|
241
|
-
# Continued (foled) header value from the previous line
|
242
|
-
next unless allheaders[currheader]
|
243
|
-
|
244
|
-
# Header line continued from the previous line
|
245
|
-
if structured[currheader].is_a? Array
|
246
|
-
# Concatenate a header which have multi-lines such as 'Received'
|
247
|
-
structured[currheader][-1] << ' ' << cv[1]
|
248
|
-
else
|
249
|
-
structured[currheader] ||= ''
|
250
|
-
structured[currheader] << ' ' << cv[1]
|
251
|
-
end
|
252
|
-
else
|
253
|
-
# split the line into a header name and a header content
|
254
|
-
(lhs, rhs) = e.split(/:[ ]*/, 2)
|
255
|
-
currheader = lhs ? lhs.downcase : ''
|
256
|
-
next unless allheaders[currheader]
|
257
|
-
|
258
|
-
if IsMultiple[currheader]
|
259
|
-
# Such as 'Received' header, there are multiple headers in a single
|
260
|
-
# email message.
|
261
|
-
rhs = rhs.tr("\t", ' ')
|
262
|
-
structured[currheader] << rhs
|
263
|
-
else
|
264
|
-
# Other headers except "Received" and so on
|
265
|
-
if extheaders[currheader]
|
266
|
-
# MTA specific header
|
267
|
-
extheaders[currheader].each do |r|
|
268
|
-
next if argvs['tryonfirst'].index(r)
|
269
|
-
argvs['tryonfirst'] << r
|
270
|
-
end
|
271
|
-
end
|
272
|
-
structured[currheader] = rhs
|
273
|
-
end
|
274
|
-
end
|
275
|
-
end
|
276
|
-
return structured
|
277
|
-
end
|
278
|
-
|
279
172
|
# Divide email data up headers and a body part.
|
280
173
|
# @param [String] email Email data
|
281
174
|
# @return [Hash] Email data after split
|
@@ -283,7 +176,6 @@ module Sisimai
|
|
283
176
|
return nil if email.empty?
|
284
177
|
|
285
178
|
block = { 'from' => '', 'header' => '', 'body' => '' }
|
286
|
-
email.scrub!('?')
|
287
179
|
email.gsub!(/\r\n/, "\n") if email.include?("\r\n")
|
288
180
|
email.gsub!(/[ \t]+$/, '') if email =~ /[ \t]+$/
|
289
181
|
|
@@ -299,82 +191,59 @@ module Sisimai
|
|
299
191
|
block['from'] = 'MAILER-DAEMON Tue Feb 11 00:00:00 2014'
|
300
192
|
end
|
301
193
|
|
302
|
-
block['
|
194
|
+
block['header'] << "\n" unless block['header'].end_with?("\n")
|
195
|
+
block['body'] << "\n"
|
303
196
|
return block
|
304
197
|
end
|
305
198
|
|
306
|
-
#
|
307
|
-
# @param
|
308
|
-
# @
|
309
|
-
|
310
|
-
|
311
|
-
|
312
|
-
|
313
|
-
#
|
314
|
-
|
315
|
-
|
316
|
-
|
317
|
-
|
318
|
-
|
319
|
-
|
320
|
-
|
321
|
-
|
322
|
-
|
323
|
-
|
324
|
-
|
325
|
-
|
326
|
-
|
327
|
-
# Concatenate the line if it is the value of required header
|
328
|
-
if Sisimai::MIME.is_mimeencoded(e)
|
329
|
-
# The line is MIME-Encoded test
|
330
|
-
headerpart[previousfn] << if previousfn == 'subject'
|
331
|
-
# Subject: header
|
332
|
-
BorderLine + e
|
333
|
-
else
|
334
|
-
# Is not Subject header
|
335
|
-
e
|
336
|
-
end
|
337
|
-
asciiarmor[previousfn] = true
|
338
|
-
else
|
339
|
-
# ASCII Characters only: Not MIME-Encoded
|
340
|
-
headerpart[previousfn] << e.lstrip
|
341
|
-
asciiarmor[previousfn] ||= false
|
342
|
-
end
|
343
|
-
else
|
344
|
-
# Header name as a key, The value of header as a value
|
345
|
-
(lhs, rhs) = e.split(/:[ ]*/, 2)
|
346
|
-
next unless lhs
|
347
|
-
lhs.downcase!
|
348
|
-
previousfn = ''
|
349
|
-
|
350
|
-
next unless RFC822Head[lhs]
|
351
|
-
previousfn = lhs
|
352
|
-
headerpart[previousfn] = rhs unless headerpart[previousfn]
|
353
|
-
end
|
199
|
+
# Convert a text including email headers to a hash reference
|
200
|
+
# @param [String] argv0 Email header data
|
201
|
+
# @param [Bool] argv1 Decode "Subject:" header
|
202
|
+
# @return [Hash] Structured email header data
|
203
|
+
# @since v4.25.6
|
204
|
+
def self.makemap(argv0 = '', argv1 = nil)
|
205
|
+
return {} if argv0.empty?
|
206
|
+
argv0.gsub!(/^[>]+[ ]/m, '') # Remove '>' indent symbol of forwarded message
|
207
|
+
|
208
|
+
# Select and convert all the headers in $argv0. The following regular expression
|
209
|
+
# is based on https://gist.github.com/xtetsuji/b080e1f5551d17242f6415aba8a00239
|
210
|
+
headermaps = { 'subject' => '' }
|
211
|
+
recvheader = []
|
212
|
+
argv0.scan(/^([\w-]+):[ ]*(.*?)\n(?![\s\t])/m) { |e| headermaps[e[0].downcase] = e[1] }
|
213
|
+
headermaps.delete('received')
|
214
|
+
headermaps.each_key { |e| headermaps[e].gsub!(/\n[\s\t]+/, ' ') }
|
215
|
+
|
216
|
+
if argv0.include?('Received:')
|
217
|
+
# Capture values of each Received: header
|
218
|
+
recvheader = argv0.scan(/^Received:[ ]*(.*?)\n(?![\s\t])/m).flatten
|
219
|
+
recvheader.each { |e| e.gsub!(/\n[\s\t]+/, ' ') }
|
354
220
|
end
|
355
|
-
|
221
|
+
headermaps['received'] = recvheader
|
222
|
+
|
223
|
+
return headermaps unless argv1
|
224
|
+
return headermaps if headermaps['subject'].empty?
|
356
225
|
|
357
226
|
# Convert MIME-Encoded subject
|
358
|
-
if Sisimai::String.is_8bit(
|
227
|
+
if Sisimai::String.is_8bit(headermaps['subject'])
|
359
228
|
# The value of ``Subject'' header is including multibyte character,
|
360
229
|
# is not MIME-Encoded text.
|
361
|
-
|
230
|
+
headermaps['subject'].scrub!('?')
|
362
231
|
else
|
363
232
|
# MIME-Encoded subject field or ASCII characters only
|
364
233
|
r = []
|
365
|
-
if
|
234
|
+
if Sisimai::MIME.is_mimeencoded(headermaps['subject'])
|
366
235
|
# split the value of Subject by borderline
|
367
|
-
|
236
|
+
headermaps['subject'].split(/ /).each do |v|
|
368
237
|
# Insert value to the array if the string is MIME encoded text
|
369
238
|
r << v if Sisimai::MIME.is_mimeencoded(v)
|
370
239
|
end
|
371
240
|
else
|
372
241
|
# Subject line is not MIME encoded
|
373
|
-
r <<
|
242
|
+
r << headermaps['subject']
|
374
243
|
end
|
375
|
-
|
244
|
+
headermaps['subject'] = Sisimai::MIME.mimedecode(r)
|
376
245
|
end
|
377
|
-
return
|
246
|
+
return headermaps
|
378
247
|
end
|
379
248
|
|
380
249
|
# @abstract Parse bounce mail with each MTA module
|
@@ -396,7 +265,6 @@ module Sisimai
|
|
396
265
|
bodystring = argvs['body']
|
397
266
|
hookmethod = argvs['hook'] || nil
|
398
267
|
havecaught = nil
|
399
|
-
|
400
268
|
return nil unless mailheader
|
401
269
|
|
402
270
|
# PRECHECK_EACH_HEADER:
|
@@ -408,7 +276,6 @@ module Sisimai
|
|
408
276
|
# Decode BASE64 Encoded message body, rewrite.
|
409
277
|
mesgformat = (mailheader['content-type'] || '').downcase
|
410
278
|
ctencoding = (mailheader['content-transfer-encoding'] || '').downcase
|
411
|
-
|
412
279
|
if mesgformat.start_with?('text/plain', 'text/html')
|
413
280
|
# Content-Type: text/plain; charset=UTF-8
|
414
281
|
if ctencoding == 'base64'
|
@@ -432,21 +299,11 @@ module Sisimai
|
|
432
299
|
bodystring = p unless p.empty?
|
433
300
|
end
|
434
301
|
end
|
435
|
-
|
436
|
-
# EXPAND_FORWARDED_MESSAGE:
|
437
|
-
# Check whether or not the message is a bounce mail.
|
438
|
-
# Pre-Process email body if it is a forwarded bounce message.
|
439
|
-
# Get the original text when the subject begins from 'fwd:' or 'fw:'
|
440
|
-
if mailheader['subject'].downcase =~ /\A[ \t]*fwd?:/
|
441
|
-
# Delete quoted strings, quote symbols(>)
|
442
|
-
bodystring = bodystring.gsub(/^[>]+[ ]/m, '').gsub(/^[>]$/m, '')
|
443
|
-
elsif Sisimai::MIME.is_mimeencoded(mailheader['subject'])
|
444
|
-
# Decode MIME-Encoded "Subject:" header
|
445
|
-
mailheader['subject'] = Sisimai::MIME.mimedecode(mailheader['subject'].split(/[ ]/))
|
446
|
-
mailheader['subject'].scrub!('?')
|
447
|
-
end
|
448
302
|
bodystring = bodystring.scrub('?').delete("\r")
|
449
303
|
|
304
|
+
haveloaded = {}
|
305
|
+
parseddata = nil
|
306
|
+
modulename = ''
|
450
307
|
if hookmethod.is_a? Proc
|
451
308
|
# Call the hook method
|
452
309
|
begin
|
@@ -462,59 +319,68 @@ module Sisimai
|
|
462
319
|
end
|
463
320
|
end
|
464
321
|
|
465
|
-
bodystring << EndOfEmail
|
466
|
-
haveloaded = {}
|
467
|
-
parseddata = nil
|
468
|
-
|
469
322
|
catch :PARSER do
|
470
323
|
while true
|
471
|
-
# 1.
|
472
|
-
# 2.
|
473
|
-
# 3.
|
474
|
-
# 4. Sisimai::
|
475
|
-
# 5. Sisimai::
|
324
|
+
# 1. User-Defined Module
|
325
|
+
# 2. MTA Module Candidates to be tried on first
|
326
|
+
# 3. Sisimai::Lhost::*
|
327
|
+
# 4. Sisimai::RFC3464
|
328
|
+
# 5. Sisimai::ARF
|
476
329
|
# 6. Sisimai::RFC3834
|
477
|
-
if Sisimai::ARF.is_arf(mailheader)
|
478
|
-
# Feedback Loop message
|
479
|
-
parseddata = Sisimai::ARF.make(mailheader, bodystring)
|
480
|
-
throw :PARSER if parseddata
|
481
|
-
end
|
482
|
-
|
483
330
|
while r = argvs['tobeloaded'].shift do
|
484
331
|
# Call user defined MTA modules
|
485
332
|
next if haveloaded[r]
|
486
333
|
parseddata = Module.const_get(r).make(mailheader, bodystring)
|
487
334
|
haveloaded[r] = true
|
335
|
+
modulename = r
|
488
336
|
throw :PARSER if parseddata
|
489
337
|
end
|
490
338
|
|
491
|
-
argvs['tryonfirst'].
|
492
|
-
while r = argvs['tryonfirst'].shift do
|
339
|
+
[argvs['tryonfirst'], DefaultSet].flatten.each do |r|
|
493
340
|
# Try MTA module candidates
|
494
341
|
next if haveloaded[r]
|
495
|
-
require r
|
342
|
+
require LhostTable[r]
|
496
343
|
parseddata = Module.const_get(r).make(mailheader, bodystring)
|
497
344
|
haveloaded[r] = true
|
345
|
+
modulename = r
|
346
|
+
throw :PARSER if parseddata
|
347
|
+
end
|
348
|
+
|
349
|
+
unless haveloaded['Sisimai::RFC3464']
|
350
|
+
# When the all of Sisimai::Lhost::* modules did not return bounce
|
351
|
+
# data, call Sisimai::RFC3464;
|
352
|
+
require 'sisimai/rfc3464'
|
353
|
+
parseddata = Sisimai::RFC3464.make(mailheader, bodystring)
|
354
|
+
modulename = 'RFC3464'
|
498
355
|
throw :PARSER if parseddata
|
499
356
|
end
|
500
357
|
|
501
|
-
|
502
|
-
|
503
|
-
|
504
|
-
|
505
|
-
|
358
|
+
unless haveloaded['Sisimai::ARF']
|
359
|
+
# Feedback Loop message
|
360
|
+
require 'sisimai/arf'
|
361
|
+
parseddata = Sisimai::ARF.make(mailheader, bodystring) if Sisimai::ARF.is_arf(mailheader)
|
362
|
+
throw :PARSER if parseddata
|
363
|
+
end
|
506
364
|
|
507
|
-
|
508
|
-
|
509
|
-
|
510
|
-
|
365
|
+
unless haveloaded['Sisimai::RFC3834']
|
366
|
+
# Try to parse the message as auto reply message defined in RFC3834
|
367
|
+
require 'sisimai/rfc3834'
|
368
|
+
parseddata = Sisimai::RFC3834.make(mailheader, bodystring)
|
369
|
+
modulename = 'RFC3834'
|
370
|
+
throw :PARSER if parseddata
|
371
|
+
end
|
511
372
|
|
512
|
-
# as of now, we have no sample email for coding this block
|
513
|
-
break
|
373
|
+
break # as of now, we have no sample email for coding this block
|
514
374
|
end
|
515
375
|
end
|
376
|
+
return nil unless parseddata
|
516
377
|
|
517
|
-
parseddata['catch'] = havecaught
|
378
|
+
parseddata['catch'] = havecaught
|
379
|
+
modulename = modulename.sub(/\A.+::/, '')
|
380
|
+
parseddata['ds'].each do |e|
|
381
|
+
e['agent'] = modulename unless e['agent']
|
382
|
+
e.each_key { |a| e[a] ||= '' } # Replace nil with ""
|
383
|
+
end
|
518
384
|
return parseddata
|
519
385
|
end
|
520
386
|
|