sisimai 4.25.5-java → 4.25.11-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 +4 -4
- data/.travis.yml +4 -3
- data/ANALYTICAL-PRECISION +60 -56
- data/Benchmarks.mk +5 -3
- data/ChangeLog.md +148 -1
- data/Developers.mk +2 -2
- data/Makefile +1 -1
- data/README-JA.md +22 -22
- data/README.md +23 -22
- data/Repository.mk +1 -1
- data/lib/sisimai.rb +8 -14
- data/lib/sisimai/address.rb +6 -3
- data/lib/sisimai/arf.rb +42 -44
- data/lib/sisimai/data.rb +12 -33
- data/lib/sisimai/datetime.rb +18 -17
- 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 +11 -25
- 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 +34 -21
- data/lib/sisimai/lhost/einsundeins.rb +6 -17
- data/lib/sisimai/lhost/exchange2003.rb +10 -19
- data/lib/sisimai/lhost/exchange2007.rb +17 -20
- data/lib/sisimai/lhost/exim.rb +20 -32
- data/lib/sisimai/lhost/ezweb.rb +6 -18
- data/lib/sisimai/lhost/facebook.rb +5 -16
- data/lib/sisimai/lhost/fml.rb +6 -20
- 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 +10 -17
- data/lib/sisimai/lhost/imailserver.rb +13 -25
- data/lib/sisimai/lhost/interscanmss.rb +11 -22
- data/lib/sisimai/lhost/kddi.rb +5 -16
- data/lib/sisimai/lhost/mailfoundry.rb +9 -25
- data/lib/sisimai/lhost/mailmarshalsmtp.rb +8 -23
- 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 +9 -22
- data/lib/sisimai/lhost/notes.rb +7 -19
- data/lib/sisimai/lhost/office365.rb +25 -35
- data/lib/sisimai/lhost/opensmtpd.rb +5 -19
- data/lib/sisimai/lhost/outlook.rb +7 -21
- data/lib/sisimai/lhost/postfix.rb +9 -27
- data/lib/sisimai/lhost/powermta.rb +120 -0
- data/lib/sisimai/lhost/qmail.rb +13 -24
- data/lib/sisimai/lhost/receivingses.rb +7 -22
- data/lib/sisimai/lhost/sendgrid.rb +9 -22
- data/lib/sisimai/lhost/sendmail.rb +7 -23
- data/lib/sisimai/lhost/surfcontrol.rb +9 -25
- data/lib/sisimai/lhost/v5sendmail.rb +5 -18
- data/lib/sisimai/lhost/verizon.rb +9 -21
- data/lib/sisimai/lhost/x1.rb +7 -19
- data/lib/sisimai/lhost/x2.rb +8 -23
- data/lib/sisimai/lhost/x3.rb +11 -19
- data/lib/sisimai/lhost/x4.rb +15 -27
- data/lib/sisimai/lhost/x5.rb +15 -26
- 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 +23 -27
- 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 +6 -12
- data/lib/sisimai/message.rb +131 -301
- 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/blocked.rb +40 -26
- data/lib/sisimai/reason/exceedlimit.rb +4 -1
- data/lib/sisimai/reason/expired.rb +2 -0
- data/lib/sisimai/reason/filtered.rb +1 -0
- data/lib/sisimai/reason/hostunknown.rb +3 -0
- data/lib/sisimai/reason/mailererror.rb +1 -1
- data/lib/sisimai/reason/norelaying.rb +5 -0
- data/lib/sisimai/reason/notaccept.rb +2 -0
- data/lib/sisimai/reason/policyviolation.rb +4 -0
- data/lib/sisimai/reason/rejected.rb +6 -1
- data/lib/sisimai/reason/securityerror.rb +5 -6
- data/lib/sisimai/reason/spamdetected.rb +17 -15
- data/lib/sisimai/reason/suspend.rb +1 -0
- data/lib/sisimai/reason/systemerror.rb +2 -0
- data/lib/sisimai/reason/userunknown.rb +37 -26
- data/lib/sisimai/rfc1894.rb +24 -22
- data/lib/sisimai/rfc3464.rb +10 -28
- data/lib/sisimai/rfc3834.rb +6 -19
- data/lib/sisimai/rfc5322.rb +8 -4
- data/lib/sisimai/rhost.rb +6 -8
- data/lib/sisimai/rhost/cox.rb +112 -0
- data/lib/sisimai/rhost/exchangeonline.rb +33 -23
- data/lib/sisimai/rhost/googleapps.rb +4 -1
- data/lib/sisimai/rhost/spectrum.rb +73 -0
- data/lib/sisimai/smtp.rb +0 -13
- data/lib/sisimai/smtp/error.rb +8 -6
- data/lib/sisimai/smtp/reply.rb +1 -1
- data/lib/sisimai/smtp/status.rb +1 -1
- data/lib/sisimai/string.rb +3 -11
- data/lib/sisimai/time.rb +1 -2
- 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} +23 -23
- 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} +1 -2
- 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/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/{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/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} +1 -1
- 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} +1 -1
- 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/{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-exchange-online-01.eml → rhost-exchangeonline-01.eml} +0 -0
- data/set-of-emails/maildir/bsd/{rhost-exchange-online-02.eml → rhost-exchangeonline-02.eml} +0 -0
- data/set-of-emails/maildir/bsd/{rhost-exchange-online-03.eml → rhost-exchangeonline-03.eml} +0 -0
- data/set-of-emails/maildir/bsd/{rhost-google-apps-01.eml → rhost-googleapps-01.eml} +0 -0
- data/set-of-emails/maildir/bsd/{rhost-google-apps-02.eml → rhost-googleapps-02.eml} +0 -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-exchange-online-01.eml → rhost-exchangeonline-01.eml} +0 -0
- data/set-of-emails/maildir/dos/{rhost-google-apps-01.eml → rhost-googleapps-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-exchange-online-01.eml → rhost-exchangeonline-01.eml} +0 -0
- data/set-of-emails/maildir/mac/{rhost-google-apps-01.eml → rhost-googleapps-01.eml} +0 -0
- data/set-of-emails/maildir/mac/rhost-iua-01.eml +1 -4
- data/sisimai-java.gemspec +4 -4
- data/sisimai.gemspec +4 -4
- metadata +584 -524
- data/lib/sisimai/lhost/userdefined.rb +0 -95
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
@@ -7,7 +7,7 @@ module Sisimai
|
|
7
7
|
# dovecot/src/deliver/deliver.c
|
8
8
|
# 11: #define DEFAULT_MAIL_REJECTION_HUMAN_REASON \
|
9
9
|
# 12: "Your message to <%t> was automatically rejected:%n%r"
|
10
|
-
'dovecot' => %r/\AYour message to
|
10
|
+
'dovecot' => %r/\AYour message to [^ ]+ was automatically rejected:\z/,
|
11
11
|
'mail.local' => %r/\Amail[.]local: /,
|
12
12
|
'procmail' => %r/\Aprocmail: /,
|
13
13
|
'maildrop' => %r/\Amaildrop: /,
|
@@ -16,7 +16,7 @@ module Sisimai
|
|
16
16
|
}.freeze
|
17
17
|
MarkingsOf = {
|
18
18
|
message: %r{\A(?>
|
19
|
-
Your[ ]message[ ]to[ ]
|
19
|
+
Your[ ]message[ ]to[ ][^ ]+[ ]was[ ]automatically[ ]rejected:\z
|
20
20
|
|(?:mail[.]local|procmail|maildrop|vdelivermail|vdeliver):[ ]
|
21
21
|
)
|
22
22
|
}x
|
@@ -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,137 +12,91 @@ 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
|
-
|
35
|
+
param = {}
|
48
36
|
email = data.scrub('?').gsub("\r\n", "\n")
|
49
|
-
|
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
|
37
|
+
thing = { 'from' => '','header' => {}, 'rfc822' => '', ds => [], 'catch' => nil }
|
56
38
|
|
57
|
-
methodargv = { 'data' => email, 'hook' => argvs[:hook] || nil
|
39
|
+
#methodargv = { 'data' => email, 'hook' => argvs[:hook] || nil }
|
40
|
+
# 1. Load specified MTA modules
|
58
41
|
[:load, :order].each do |e|
|
59
42
|
# Order of MTA modules
|
60
43
|
next unless argvs[e]
|
61
44
|
next unless argvs[e].is_a? Array
|
62
45
|
next if argvs[e].empty?
|
63
|
-
|
46
|
+
param[e.to_s] = argvs[e]
|
64
47
|
end
|
48
|
+
tobeloaded = Sisimai::Message.load(param)
|
65
49
|
|
66
|
-
|
67
|
-
return nil unless datasource
|
68
|
-
return nil unless datasource['ds']
|
69
|
-
|
70
|
-
@from = datasource['from']
|
71
|
-
@header = datasource['header']
|
72
|
-
@ds = datasource['ds']
|
73
|
-
@rfc822 = datasource['rfc822']
|
74
|
-
@catch = datasource['catch'] || nil
|
75
|
-
end
|
76
|
-
|
77
|
-
# Check whether the object has valid content or not
|
78
|
-
# @return [True,False] returns true if the object is void
|
79
|
-
def void
|
80
|
-
return true unless @ds
|
81
|
-
return false
|
82
|
-
end
|
83
|
-
|
84
|
-
# Make data structure from the email message(a body part and headers)
|
85
|
-
# @param [Hash] argvs Email data
|
86
|
-
# @options argvs [String] data Entire email message
|
87
|
-
# @options argvs [Array] load User defined MTA module list
|
88
|
-
# @options argvs [Array] field Email header names to be captured
|
89
|
-
# @options argvs [Array] order The order of MTA modules
|
90
|
-
# @options argvs [Code] hook Reference to callback method
|
91
|
-
# @return [Hash] Resolved data structure
|
92
|
-
def self.make(argvs)
|
93
|
-
email = argvs['data']
|
94
|
-
|
95
|
-
hookmethod = argvs['hook'] || nil
|
96
|
-
processing = {
|
97
|
-
'from' => '', # From_ line
|
98
|
-
'header' => {}, # Email header
|
99
|
-
'rfc822' => '', # Original message part
|
100
|
-
'ds' => [], # Parsed data, Delivery Status
|
101
|
-
'catch' => nil, # Data parsed by callback method
|
102
|
-
}
|
103
|
-
methodargv = {
|
104
|
-
'load' => argvs['load'] || [],
|
105
|
-
'order' => argvs['order'] || []
|
106
|
-
}
|
107
|
-
tobeloaded = Sisimai::Message.load(methodargv)
|
108
|
-
|
109
|
-
# 1. Split email data to headers and a body part.
|
50
|
+
# 2. Split email data to headers and a body part.
|
110
51
|
return nil unless aftersplit = Sisimai::Message.divideup(email)
|
111
52
|
|
112
|
-
#
|
113
|
-
|
114
|
-
|
115
|
-
'tryonfirst' => [],
|
116
|
-
'extrafield' => argvs['field'] || [],
|
117
|
-
}
|
118
|
-
processing['from'] = aftersplit['from']
|
119
|
-
processing['header'] = Sisimai::Message.headers(aftersplit['header'], headerargv)
|
53
|
+
# 3. Convert email headers from text to hash reference
|
54
|
+
thing['from'] = aftersplit[0]
|
55
|
+
thing['header'] = Sisimai::Message.makemap(aftersplit[1])
|
120
56
|
|
121
|
-
#
|
122
|
-
|
123
|
-
|
57
|
+
# 4. Decode and rewrite the "Subject:" header
|
58
|
+
unless thing['header']['subject'].empty?
|
59
|
+
# Decode MIME-Encoded "Subject:" header
|
60
|
+
s = thing['header']['subject']
|
61
|
+
q = Sisimai::MIME.is_mimeencoded(s) ? Sisimai::MIME.mimedecode(s.split(/[ ]/)) : s
|
62
|
+
|
63
|
+
# Remove "Fwd:" string from the Subject: header
|
64
|
+
if cv = q.downcase.match(/\A[ \t]*fwd?:[ ]*(.*)\z/)
|
65
|
+
# Delete quoted strings, quote symbols(>)
|
66
|
+
q = cv[1]
|
67
|
+
aftersplit[2] = aftersplit[2].gsub(/^[>]+[ ]/, '').gsub(/^[>]$/, '')
|
68
|
+
end
|
69
|
+
thing['header']['subject'] = q
|
124
70
|
end
|
125
71
|
|
126
|
-
#
|
127
|
-
|
128
|
-
'hook' =>
|
129
|
-
'mail' =>
|
130
|
-
'body' => aftersplit[
|
131
|
-
'tryonfirst' => headerargv['tryonfirst'],
|
72
|
+
# 5. Rewrite message body for detecting the bounce reason
|
73
|
+
param = {
|
74
|
+
'hook' => argvs[:hook] || nil,
|
75
|
+
'mail' => thing,
|
76
|
+
'body' => aftersplit[2],
|
132
77
|
'tobeloaded' => tobeloaded,
|
78
|
+
'tryonfirst' => Sisimai::Order.make(thing['header']['subject'])
|
133
79
|
}
|
134
|
-
return nil unless bouncedata = Sisimai::Message.parse(
|
80
|
+
return nil unless bouncedata = Sisimai::Message.parse(param)
|
135
81
|
return nil if bouncedata.empty?
|
136
|
-
%w|ds catch rfc822|.each { |e| processing[e] = bouncedata[e] }
|
137
82
|
|
138
|
-
#
|
83
|
+
# 6. Rewrite headers of the original message in the body part
|
84
|
+
%w|ds catch rfc822|.each { |e| thing[e] = bouncedata[e] }
|
139
85
|
p = bouncedata['rfc822']
|
140
|
-
p = aftersplit[
|
141
|
-
|
142
|
-
|
143
|
-
|
86
|
+
p = aftersplit[2] if p.empty?
|
87
|
+
thing['rfc822'] = p.is_a?(::String) ? Sisimai::Message.makemap(p, true) : p
|
88
|
+
|
89
|
+
@from = thing['from']
|
90
|
+
@header = thing['header']
|
91
|
+
@ds = thing['ds']
|
92
|
+
@rfc822 = thing['rfc822']
|
93
|
+
@catch = thing['catch'] || nil
|
144
94
|
end
|
145
95
|
|
96
|
+
# Check whether the object has valid content or not
|
97
|
+
# @return [True,False] returns true if the object is void
|
98
|
+
def void; return @ds ? false : true; end
|
99
|
+
|
146
100
|
# Load MTA modules which specified at 'order' and 'load' in the argument
|
147
101
|
# @param [Hash] argvs Module information to be loaded
|
148
102
|
# @options argvs [Array] load User defined MTA module list
|
@@ -171,12 +125,6 @@ module Sisimai
|
|
171
125
|
warn ' ***warning: Failed to load ' << v
|
172
126
|
next
|
173
127
|
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
128
|
tobeloaded << v
|
181
129
|
end
|
182
130
|
end
|
@@ -190,191 +138,81 @@ module Sisimai
|
|
190
138
|
return tobeloaded
|
191
139
|
end
|
192
140
|
|
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
141
|
# Divide email data up headers and a body part.
|
280
142
|
# @param [String] email Email data
|
281
|
-
# @return [
|
143
|
+
# @return [Array] Email data after split
|
282
144
|
def self.divideup(email)
|
283
145
|
return nil if email.empty?
|
284
146
|
|
285
|
-
block =
|
286
|
-
email.scrub!('?')
|
147
|
+
block = ['', '', ''] # 0:From, 1:Header, 2:Body
|
287
148
|
email.gsub!(/\r\n/, "\n") if email.include?("\r\n")
|
288
149
|
email.gsub!(/[ \t]+$/, '') if email =~ /[ \t]+$/
|
289
150
|
|
290
|
-
(block[
|
291
|
-
return nil unless block[
|
292
|
-
return nil unless block[
|
151
|
+
(block[1], block[2]) = email.split(/\n\n/, 2)
|
152
|
+
return nil unless block[1]
|
153
|
+
return nil unless block[2]
|
293
154
|
|
294
|
-
if block[
|
155
|
+
if block[1].start_with?('From ')
|
295
156
|
# From MAILER-DAEMON Tue Feb 11 00:00:00 2014
|
296
|
-
block[
|
157
|
+
block[0] = block[1].split(/\n/, 2)[0].delete("\r")
|
297
158
|
else
|
298
159
|
# Set pseudo UNIX From line
|
299
|
-
block[
|
160
|
+
block[0] = 'MAILER-DAEMON Tue Feb 11 00:00:00 2014'
|
300
161
|
end
|
301
162
|
|
302
|
-
block[
|
163
|
+
block[1] << "\n" unless block[1].end_with?("\n")
|
164
|
+
block[2] << "\n"
|
303
165
|
return block
|
304
166
|
end
|
305
167
|
|
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
|
168
|
+
# Convert a text including email headers to a hash reference
|
169
|
+
# @param [String] argv0 Email header data
|
170
|
+
# @param [Bool] argv1 Decode "Subject:" header
|
171
|
+
# @return [Hash] Structured email header data
|
172
|
+
# @since v4.25.6
|
173
|
+
def self.makemap(argv0 = '', argv1 = nil)
|
174
|
+
return {} if argv0.empty?
|
175
|
+
argv0.gsub!(/^[>]+[ ]/m, '') # Remove '>' indent symbol of forwarded message
|
176
|
+
|
177
|
+
# Select and convert all the headers in $argv0. The following regular expression
|
178
|
+
# is based on https://gist.github.com/xtetsuji/b080e1f5551d17242f6415aba8a00239
|
179
|
+
headermaps = { 'subject' => '' }
|
180
|
+
recvheader = []
|
181
|
+
argv0.scan(/^([\w-]+):[ ]*(.*?)\n(?![\s\t])/m) { |e| headermaps[e[0].downcase] = e[1] }
|
182
|
+
headermaps.delete('received')
|
183
|
+
headermaps.each_key { |e| headermaps[e].gsub!(/\n[\s\t]+/, ' ') }
|
184
|
+
|
185
|
+
if argv0.include?('Received:')
|
186
|
+
# Capture values of each Received: header
|
187
|
+
recvheader = argv0.scan(/^Received:[ ]*(.*?)\n(?![\s\t])/m).flatten
|
188
|
+
recvheader.each { |e| e.gsub!(/\n[\s\t]+/, ' ') }
|
354
189
|
end
|
355
|
-
|
190
|
+
headermaps['received'] = recvheader
|
191
|
+
|
192
|
+
return headermaps unless argv1
|
193
|
+
return headermaps if headermaps['subject'].empty?
|
356
194
|
|
357
195
|
# Convert MIME-Encoded subject
|
358
|
-
if Sisimai::String.is_8bit(
|
196
|
+
if Sisimai::String.is_8bit(headermaps['subject'])
|
359
197
|
# The value of ``Subject'' header is including multibyte character,
|
360
198
|
# is not MIME-Encoded text.
|
361
|
-
|
199
|
+
headermaps['subject'].scrub!('?')
|
362
200
|
else
|
363
201
|
# MIME-Encoded subject field or ASCII characters only
|
364
202
|
r = []
|
365
|
-
if
|
203
|
+
if Sisimai::MIME.is_mimeencoded(headermaps['subject'])
|
366
204
|
# split the value of Subject by borderline
|
367
|
-
|
205
|
+
headermaps['subject'].split(/ /).each do |v|
|
368
206
|
# Insert value to the array if the string is MIME encoded text
|
369
207
|
r << v if Sisimai::MIME.is_mimeencoded(v)
|
370
208
|
end
|
371
209
|
else
|
372
210
|
# Subject line is not MIME encoded
|
373
|
-
r <<
|
211
|
+
r << headermaps['subject']
|
374
212
|
end
|
375
|
-
|
213
|
+
headermaps['subject'] = Sisimai::MIME.mimedecode(r)
|
376
214
|
end
|
377
|
-
return
|
215
|
+
return headermaps
|
378
216
|
end
|
379
217
|
|
380
218
|
# @abstract Parse bounce mail with each MTA module
|
@@ -396,7 +234,6 @@ module Sisimai
|
|
396
234
|
bodystring = argvs['body']
|
397
235
|
hookmethod = argvs['hook'] || nil
|
398
236
|
havecaught = nil
|
399
|
-
|
400
237
|
return nil unless mailheader
|
401
238
|
|
402
239
|
# PRECHECK_EACH_HEADER:
|
@@ -408,7 +245,6 @@ module Sisimai
|
|
408
245
|
# Decode BASE64 Encoded message body, rewrite.
|
409
246
|
mesgformat = (mailheader['content-type'] || '').downcase
|
410
247
|
ctencoding = (mailheader['content-transfer-encoding'] || '').downcase
|
411
|
-
|
412
248
|
if mesgformat.start_with?('text/plain', 'text/html')
|
413
249
|
# Content-Type: text/plain; charset=UTF-8
|
414
250
|
if ctencoding == 'base64'
|
@@ -432,89 +268,83 @@ module Sisimai
|
|
432
268
|
bodystring = p unless p.empty?
|
433
269
|
end
|
434
270
|
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
271
|
bodystring = bodystring.scrub('?').delete("\r")
|
449
272
|
|
273
|
+
haveloaded = {}
|
274
|
+
parseddata = nil
|
275
|
+
modulename = ''
|
450
276
|
if hookmethod.is_a? Proc
|
451
277
|
# Call the hook method
|
452
278
|
begin
|
453
|
-
p = {
|
454
|
-
'datasrc' => 'email',
|
455
|
-
'headers' => mailheader,
|
456
|
-
'message' => bodystring,
|
457
|
-
'bounces' => nil
|
458
|
-
}
|
279
|
+
p = { 'headers' => mailheader, 'message' => bodystring }
|
459
280
|
havecaught = hookmethod.call(p)
|
460
281
|
rescue StandardError => ce
|
461
282
|
warn ' ***warning: Something is wrong in hook method :' << ce.to_s
|
462
283
|
end
|
463
284
|
end
|
464
285
|
|
465
|
-
bodystring << EndOfEmail
|
466
|
-
haveloaded = {}
|
467
|
-
parseddata = nil
|
468
|
-
|
469
286
|
catch :PARSER do
|
470
287
|
while true
|
471
|
-
# 1.
|
472
|
-
# 2.
|
473
|
-
# 3.
|
474
|
-
# 4. Sisimai::
|
475
|
-
# 5. Sisimai::
|
288
|
+
# 1. User-Defined Module
|
289
|
+
# 2. MTA Module Candidates to be tried on first
|
290
|
+
# 3. Sisimai::Lhost::*
|
291
|
+
# 4. Sisimai::RFC3464
|
292
|
+
# 5. Sisimai::ARF
|
476
293
|
# 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
294
|
while r = argvs['tobeloaded'].shift do
|
484
295
|
# Call user defined MTA modules
|
485
296
|
next if haveloaded[r]
|
486
297
|
parseddata = Module.const_get(r).make(mailheader, bodystring)
|
487
298
|
haveloaded[r] = true
|
299
|
+
modulename = r
|
488
300
|
throw :PARSER if parseddata
|
489
301
|
end
|
490
302
|
|
491
|
-
argvs['tryonfirst'].
|
492
|
-
while r = argvs['tryonfirst'].shift do
|
303
|
+
[argvs['tryonfirst'], DefaultSet].flatten.each do |r|
|
493
304
|
# Try MTA module candidates
|
494
305
|
next if haveloaded[r]
|
495
|
-
require r
|
306
|
+
require LhostTable[r]
|
496
307
|
parseddata = Module.const_get(r).make(mailheader, bodystring)
|
497
308
|
haveloaded[r] = true
|
309
|
+
modulename = r
|
310
|
+
throw :PARSER if parseddata
|
311
|
+
end
|
312
|
+
|
313
|
+
unless haveloaded['Sisimai::RFC3464']
|
314
|
+
# When the all of Sisimai::Lhost::* modules did not return bounce
|
315
|
+
# data, call Sisimai::RFC3464;
|
316
|
+
require 'sisimai/rfc3464'
|
317
|
+
parseddata = Sisimai::RFC3464.make(mailheader, bodystring)
|
318
|
+
modulename = 'RFC3464'
|
498
319
|
throw :PARSER if parseddata
|
499
320
|
end
|
500
321
|
|
501
|
-
|
502
|
-
|
503
|
-
|
504
|
-
|
505
|
-
|
322
|
+
unless haveloaded['Sisimai::ARF']
|
323
|
+
# Feedback Loop message
|
324
|
+
require 'sisimai/arf'
|
325
|
+
parseddata = Sisimai::ARF.make(mailheader, bodystring) if Sisimai::ARF.is_arf(mailheader)
|
326
|
+
throw :PARSER if parseddata
|
327
|
+
end
|
506
328
|
|
507
|
-
|
508
|
-
|
509
|
-
|
510
|
-
|
329
|
+
unless haveloaded['Sisimai::RFC3834']
|
330
|
+
# Try to parse the message as auto reply message defined in RFC3834
|
331
|
+
require 'sisimai/rfc3834'
|
332
|
+
parseddata = Sisimai::RFC3834.make(mailheader, bodystring)
|
333
|
+
modulename = 'RFC3834'
|
334
|
+
throw :PARSER if parseddata
|
335
|
+
end
|
511
336
|
|
512
|
-
# as of now, we have no sample email for coding this block
|
513
|
-
break
|
337
|
+
break # as of now, we have no sample email for coding this block
|
514
338
|
end
|
515
339
|
end
|
340
|
+
return nil unless parseddata
|
516
341
|
|
517
|
-
parseddata['catch'] = havecaught
|
342
|
+
parseddata['catch'] = havecaught
|
343
|
+
modulename = modulename.sub(/\A.+::/, '')
|
344
|
+
parseddata['ds'].each do |e|
|
345
|
+
e['agent'] = modulename unless e['agent']
|
346
|
+
e.each_key { |a| e[a] ||= '' } # Replace nil with ""
|
347
|
+
end
|
518
348
|
return parseddata
|
519
349
|
end
|
520
350
|
|