sisimai 4.14.2
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 +7 -0
- data/.gitignore +12 -0
- data/.rspec +2 -0
- data/.rubocop.yml +165 -0
- data/.travis.yml +21 -0
- data/ANALYTICAL-PRECISION +54 -0
- data/Changes +5 -0
- data/Developers.mk +129 -0
- data/Gemfile +9 -0
- data/LICENSE +26 -0
- data/Makefile +56 -0
- data/README.md +300 -0
- data/Rakefile +7 -0
- data/Repository.mk +69 -0
- data/bin/console +14 -0
- data/bin/setup +7 -0
- data/lib/sisimai.rb +60 -0
- data/lib/sisimai/address.rb +218 -0
- data/lib/sisimai/arf.rb +343 -0
- data/lib/sisimai/data.rb +413 -0
- data/lib/sisimai/data/json.rb +36 -0
- data/lib/sisimai/data/yaml.rb +32 -0
- data/lib/sisimai/datetime.rb +518 -0
- data/lib/sisimai/mail.rb +82 -0
- data/lib/sisimai/mail/maildir.rb +85 -0
- data/lib/sisimai/mail/mbox.rb +69 -0
- data/lib/sisimai/mail/stdin.rb +52 -0
- data/lib/sisimai/mda.rb +152 -0
- data/lib/sisimai/message.rb +510 -0
- data/lib/sisimai/mime.rb +127 -0
- data/lib/sisimai/msp.rb +54 -0
- data/lib/sisimai/msp/de/einsundeins.rb +174 -0
- data/lib/sisimai/msp/de/gmx.rb +197 -0
- data/lib/sisimai/msp/jp/biglobe.rb +179 -0
- data/lib/sisimai/msp/jp/ezweb.rb +292 -0
- data/lib/sisimai/msp/jp/kddi.rb +195 -0
- data/lib/sisimai/msp/ru/mailru.rb +306 -0
- data/lib/sisimai/msp/ru/yandex.rb +241 -0
- data/lib/sisimai/msp/uk/messagelabs.rb +250 -0
- data/lib/sisimai/msp/us/amazonses.rb +248 -0
- data/lib/sisimai/msp/us/aol.rb +234 -0
- data/lib/sisimai/msp/us/bigfoot.rb +243 -0
- data/lib/sisimai/msp/us/facebook.rb +306 -0
- data/lib/sisimai/msp/us/google.rb +357 -0
- data/lib/sisimai/msp/us/outlook.rb +243 -0
- data/lib/sisimai/msp/us/receivingses.rb +247 -0
- data/lib/sisimai/msp/us/sendgrid.rb +257 -0
- data/lib/sisimai/msp/us/verizon.rb +311 -0
- data/lib/sisimai/msp/us/yahoo.rb +178 -0
- data/lib/sisimai/msp/us/zoho.rb +198 -0
- data/lib/sisimai/mta.rb +55 -0
- data/lib/sisimai/mta/activehunter.rb +155 -0
- data/lib/sisimai/mta/apachejames.rb +194 -0
- data/lib/sisimai/mta/courier.rb +307 -0
- data/lib/sisimai/mta/domino.rb +209 -0
- data/lib/sisimai/mta/exchange.rb +314 -0
- data/lib/sisimai/mta/exim.rb +549 -0
- data/lib/sisimai/mta/imailserver.rb +227 -0
- data/lib/sisimai/mta/interscanmss.rb +167 -0
- data/lib/sisimai/mta/mailfoundry.rb +173 -0
- data/lib/sisimai/mta/mailmarshalsmtp.rb +206 -0
- data/lib/sisimai/mta/mcafee.rb +201 -0
- data/lib/sisimai/mta/messagingserver.rb +241 -0
- data/lib/sisimai/mta/mfilter.rb +190 -0
- data/lib/sisimai/mta/mxlogic.rb +283 -0
- data/lib/sisimai/mta/notes.rb +206 -0
- data/lib/sisimai/mta/opensmtpd.rb +225 -0
- data/lib/sisimai/mta/postfix.rb +306 -0
- data/lib/sisimai/mta/qmail.rb +335 -0
- data/lib/sisimai/mta/sendmail.rb +317 -0
- data/lib/sisimai/mta/surfcontrol.rb +193 -0
- data/lib/sisimai/mta/userdefined.rb +148 -0
- data/lib/sisimai/mta/v5sendmail.rb +232 -0
- data/lib/sisimai/mta/x1.rb +156 -0
- data/lib/sisimai/mta/x2.rb +157 -0
- data/lib/sisimai/mta/x3.rb +171 -0
- data/lib/sisimai/mta/x4.rb +365 -0
- data/lib/sisimai/mta/x5.rb +208 -0
- data/lib/sisimai/order.rb +217 -0
- data/lib/sisimai/reason.rb +235 -0
- data/lib/sisimai/reason/blocked.rb +105 -0
- data/lib/sisimai/reason/contenterror.rb +53 -0
- data/lib/sisimai/reason/exceedlimit.rb +60 -0
- data/lib/sisimai/reason/expired.rb +53 -0
- data/lib/sisimai/reason/filtered.rb +98 -0
- data/lib/sisimai/reason/hasmoved.rb +45 -0
- data/lib/sisimai/reason/hostunknown.rb +74 -0
- data/lib/sisimai/reason/mailboxfull.rb +118 -0
- data/lib/sisimai/reason/mailererror.rb +55 -0
- data/lib/sisimai/reason/mesgtoobig.rb +77 -0
- data/lib/sisimai/reason/networkerror.rb +57 -0
- data/lib/sisimai/reason/norelaying.rb +71 -0
- data/lib/sisimai/reason/notaccept.rb +63 -0
- data/lib/sisimai/reason/onhold.rb +45 -0
- data/lib/sisimai/reason/rejected.rb +101 -0
- data/lib/sisimai/reason/securityerror.rb +72 -0
- data/lib/sisimai/reason/spamdetected.rb +172 -0
- data/lib/sisimai/reason/suspend.rb +58 -0
- data/lib/sisimai/reason/systemerror.rb +69 -0
- data/lib/sisimai/reason/systemfull.rb +45 -0
- data/lib/sisimai/reason/toomanyconn.rb +73 -0
- data/lib/sisimai/reason/userunknown.rb +194 -0
- data/lib/sisimai/rfc2606.rb +24 -0
- data/lib/sisimai/rfc3464.rb +497 -0
- data/lib/sisimai/rfc3834.rb +150 -0
- data/lib/sisimai/rfc5322.rb +204 -0
- data/lib/sisimai/rhost.rb +47 -0
- data/lib/sisimai/rhost/googleapps.rb +237 -0
- data/lib/sisimai/smtp.rb +58 -0
- data/lib/sisimai/smtp/reply.rb +81 -0
- data/lib/sisimai/smtp/status.rb +755 -0
- data/lib/sisimai/string.rb +65 -0
- data/lib/sisimai/time.rb +11 -0
- data/lib/sisimai/version.rb +4 -0
- data/set-of-emails/README.md +35 -0
- data/set-of-emails/mailbox/mbox-0 +2467 -0
- data/set-of-emails/mailbox/mbox-1 +71 -0
- data/set-of-emails/maildir/bsd/README.md +261 -0
- data/set-of-emails/maildir/bsd/activehunter-01.eml +54 -0
- data/set-of-emails/maildir/bsd/activehunter-02.eml +53 -0
- data/set-of-emails/maildir/bsd/apachejames-01.eml +46 -0
- data/set-of-emails/maildir/bsd/arf-01.eml +66 -0
- data/set-of-emails/maildir/bsd/arf-02.eml +68 -0
- data/set-of-emails/maildir/bsd/arf-03.eml +56 -0
- data/set-of-emails/maildir/bsd/arf-04.eml +89 -0
- data/set-of-emails/maildir/bsd/arf-05.eml +82 -0
- data/set-of-emails/maildir/bsd/arf-06.eml +166 -0
- data/set-of-emails/maildir/bsd/arf-07.eml +59 -0
- data/set-of-emails/maildir/bsd/arf-08.eml +103 -0
- data/set-of-emails/maildir/bsd/arf-09.eml +104 -0
- data/set-of-emails/maildir/bsd/arf-10.eml +56 -0
- data/set-of-emails/maildir/bsd/arf-11.eml +37 -0
- data/set-of-emails/maildir/bsd/arf-12.eml +40 -0
- data/set-of-emails/maildir/bsd/arf-13.eml +76 -0
- data/set-of-emails/maildir/bsd/arf-14.eml +333 -0
- data/set-of-emails/maildir/bsd/arf-15.eml +66 -0
- data/set-of-emails/maildir/bsd/courier-01.eml +79 -0
- data/set-of-emails/maildir/bsd/courier-02.eml +83 -0
- data/set-of-emails/maildir/bsd/courier-03.eml +85 -0
- data/set-of-emails/maildir/bsd/courier-04.eml +87 -0
- data/set-of-emails/maildir/bsd/de-einsundeins-01.eml +38 -0
- data/set-of-emails/maildir/bsd/de-gmx-01.eml +52 -0
- data/set-of-emails/maildir/bsd/de-gmx-02.eml +51 -0
- data/set-of-emails/maildir/bsd/de-gmx-03.eml +56 -0
- data/set-of-emails/maildir/bsd/de-gmx-04.eml +51 -0
- data/set-of-emails/maildir/bsd/domino-01.eml +33 -0
- data/set-of-emails/maildir/bsd/domino-02.eml +83 -0
- data/set-of-emails/maildir/bsd/exchange-01.eml +31 -0
- data/set-of-emails/maildir/bsd/exchange-02.eml +67 -0
- data/set-of-emails/maildir/bsd/exchange-03.eml +52 -0
- data/set-of-emails/maildir/bsd/exchange-04.eml +28 -0
- data/set-of-emails/maildir/bsd/exchange-05.eml +56 -0
- data/set-of-emails/maildir/bsd/exchange-06.eml +151 -0
- data/set-of-emails/maildir/bsd/exim-01.eml +46 -0
- data/set-of-emails/maildir/bsd/exim-02.eml +41 -0
- data/set-of-emails/maildir/bsd/exim-03.eml +42 -0
- data/set-of-emails/maildir/bsd/exim-04.eml +46 -0
- data/set-of-emails/maildir/bsd/exim-05.eml +49 -0
- data/set-of-emails/maildir/bsd/exim-06.eml +44 -0
- data/set-of-emails/maildir/bsd/exim-07.eml +28 -0
- data/set-of-emails/maildir/bsd/exim-08.eml +42 -0
- data/set-of-emails/maildir/bsd/exim-09.eml +169 -0
- data/set-of-emails/maildir/bsd/exim-10.eml +718 -0
- data/set-of-emails/maildir/bsd/exim-11.eml +718 -0
- data/set-of-emails/maildir/bsd/exim-12.eml +75 -0
- data/set-of-emails/maildir/bsd/exim-13.eml +145 -0
- data/set-of-emails/maildir/bsd/exim-14.eml +32 -0
- data/set-of-emails/maildir/bsd/exim-15.eml +49 -0
- data/set-of-emails/maildir/bsd/exim-16.eml +98 -0
- data/set-of-emails/maildir/bsd/exim-17.eml +50 -0
- data/set-of-emails/maildir/bsd/exim-18.eml +96 -0
- data/set-of-emails/maildir/bsd/exim-19.eml +52 -0
- data/set-of-emails/maildir/bsd/exim-20.eml +159 -0
- data/set-of-emails/maildir/bsd/exim-21.eml +150 -0
- data/set-of-emails/maildir/bsd/exim-22.eml +50 -0
- data/set-of-emails/maildir/bsd/exim-23.eml +57 -0
- data/set-of-emails/maildir/bsd/exim-24.eml +107 -0
- data/set-of-emails/maildir/bsd/exim-25.eml +18 -0
- data/set-of-emails/maildir/bsd/exim-26.eml +111 -0
- data/set-of-emails/maildir/bsd/exim-27.eml +120 -0
- data/set-of-emails/maildir/bsd/exim-28.eml +148 -0
- data/set-of-emails/maildir/bsd/google-apps-01.eml +66 -0
- data/set-of-emails/maildir/bsd/imailserver-01.eml +27 -0
- data/set-of-emails/maildir/bsd/imailserver-02.eml +36 -0
- data/set-of-emails/maildir/bsd/imailserver-03.eml +28 -0
- data/set-of-emails/maildir/bsd/imailserver-04.eml +15 -0
- data/set-of-emails/maildir/bsd/imailserver-05.eml +92 -0
- data/set-of-emails/maildir/bsd/imailserver-06.eml +29 -0
- data/set-of-emails/maildir/bsd/interscanmss-01.eml +49 -0
- data/set-of-emails/maildir/bsd/interscanmss-02.eml +259 -0
- data/set-of-emails/maildir/bsd/jp-biglobe-01.eml +43 -0
- data/set-of-emails/maildir/bsd/jp-ezweb-01.eml +36 -0
- data/set-of-emails/maildir/bsd/jp-ezweb-02.eml +65 -0
- data/set-of-emails/maildir/bsd/jp-ezweb-03.eml +35 -0
- data/set-of-emails/maildir/bsd/jp-ezweb-04.eml +38 -0
- data/set-of-emails/maildir/bsd/jp-ezweb-05.eml +38 -0
- data/set-of-emails/maildir/bsd/jp-ezweb-06.eml +33 -0
- data/set-of-emails/maildir/bsd/jp-kddi-01.eml +49 -0
- data/set-of-emails/maildir/bsd/jp-kddi-02.eml +54 -0
- data/set-of-emails/maildir/bsd/jp-kddi-03.eml +54 -0
- data/set-of-emails/maildir/bsd/mailfoundry-01.eml +50 -0
- data/set-of-emails/maildir/bsd/mailfoundry-02.eml +49 -0
- data/set-of-emails/maildir/bsd/mailmarshalsmtp-01.eml +43 -0
- data/set-of-emails/maildir/bsd/mcafee-01.eml +63 -0
- data/set-of-emails/maildir/bsd/mcafee-02.eml +65 -0
- data/set-of-emails/maildir/bsd/mcafee-03.eml +59 -0
- data/set-of-emails/maildir/bsd/messagingserver-01.eml +102 -0
- data/set-of-emails/maildir/bsd/messagingserver-02.eml +72 -0
- data/set-of-emails/maildir/bsd/messagingserver-03.eml +70 -0
- data/set-of-emails/maildir/bsd/messagingserver-04.eml +102 -0
- data/set-of-emails/maildir/bsd/messagingserver-05.eml +98 -0
- data/set-of-emails/maildir/bsd/messagingserver-06.eml +101 -0
- data/set-of-emails/maildir/bsd/messagingserver-07.eml +129 -0
- data/set-of-emails/maildir/bsd/mfilter-01.eml +49 -0
- data/set-of-emails/maildir/bsd/mfilter-02.eml +48 -0
- data/set-of-emails/maildir/bsd/mfilter-03.eml +43 -0
- data/set-of-emails/maildir/bsd/mxlogic-01.eml +47 -0
- data/set-of-emails/maildir/bsd/mxlogic-02.eml +44 -0
- data/set-of-emails/maildir/bsd/mxlogic-03.eml +46 -0
- data/set-of-emails/maildir/bsd/notes-01.eml +42 -0
- data/set-of-emails/maildir/bsd/notes-02.eml +42 -0
- data/set-of-emails/maildir/bsd/notes-03.eml +38 -0
- data/set-of-emails/maildir/bsd/notes-04.eml +181 -0
- data/set-of-emails/maildir/bsd/opensmtpd-01.eml +33 -0
- data/set-of-emails/maildir/bsd/opensmtpd-02.eml +33 -0
- data/set-of-emails/maildir/bsd/opensmtpd-03.eml +36 -0
- data/set-of-emails/maildir/bsd/opensmtpd-04.eml +40 -0
- data/set-of-emails/maildir/bsd/opensmtpd-05.eml +36 -0
- data/set-of-emails/maildir/bsd/postfix-01.eml +60 -0
- data/set-of-emails/maildir/bsd/postfix-02.eml +78 -0
- data/set-of-emails/maildir/bsd/postfix-03.eml +71 -0
- data/set-of-emails/maildir/bsd/postfix-04.eml +89 -0
- data/set-of-emails/maildir/bsd/postfix-05.eml +78 -0
- data/set-of-emails/maildir/bsd/postfix-06.eml +72 -0
- data/set-of-emails/maildir/bsd/postfix-07.eml +74 -0
- data/set-of-emails/maildir/bsd/postfix-08.eml +78 -0
- data/set-of-emails/maildir/bsd/postfix-09.eml +76 -0
- data/set-of-emails/maildir/bsd/postfix-10.eml +73 -0
- data/set-of-emails/maildir/bsd/postfix-11.eml +86 -0
- data/set-of-emails/maildir/bsd/postfix-12.eml +71 -0
- data/set-of-emails/maildir/bsd/postfix-13.eml +81 -0
- data/set-of-emails/maildir/bsd/postfix-14.eml +68 -0
- data/set-of-emails/maildir/bsd/postfix-15.eml +69 -0
- data/set-of-emails/maildir/bsd/postfix-16.eml +73 -0
- data/set-of-emails/maildir/bsd/postfix-17.eml +68 -0
- data/set-of-emails/maildir/bsd/postfix-18.eml +121 -0
- data/set-of-emails/maildir/bsd/postfix-19.eml +105 -0
- data/set-of-emails/maildir/bsd/postfix-20.eml +231 -0
- data/set-of-emails/maildir/bsd/postfix-21.eml +60 -0
- data/set-of-emails/maildir/bsd/qmail-01.eml +40 -0
- data/set-of-emails/maildir/bsd/qmail-02.eml +35 -0
- data/set-of-emails/maildir/bsd/qmail-03.eml +22 -0
- data/set-of-emails/maildir/bsd/qmail-04.eml +31 -0
- data/set-of-emails/maildir/bsd/qmail-05.eml +31 -0
- data/set-of-emails/maildir/bsd/qmail-06.eml +39 -0
- data/set-of-emails/maildir/bsd/qmail-07.eml +22 -0
- data/set-of-emails/maildir/bsd/qmail-08.eml +23 -0
- data/set-of-emails/maildir/bsd/qmail-09.eml +103 -0
- data/set-of-emails/maildir/bsd/rfc3464-01.eml +60 -0
- data/set-of-emails/maildir/bsd/rfc3464-02.eml +43 -0
- data/set-of-emails/maildir/bsd/rfc3464-03.eml +40 -0
- data/set-of-emails/maildir/bsd/rfc3464-04.eml +50 -0
- data/set-of-emails/maildir/bsd/rfc3464-05.eml +63 -0
- data/set-of-emails/maildir/bsd/rfc3464-06.eml +48 -0
- data/set-of-emails/maildir/bsd/rfc3464-07.eml +88 -0
- data/set-of-emails/maildir/bsd/rfc3464-08.eml +70 -0
- data/set-of-emails/maildir/bsd/rfc3464-09.eml +93 -0
- data/set-of-emails/maildir/bsd/rfc3464-10.eml +467 -0
- data/set-of-emails/maildir/bsd/rfc3464-11.eml +1171 -0
- data/set-of-emails/maildir/bsd/rfc3464-12.eml +101 -0
- data/set-of-emails/maildir/bsd/rfc3464-13.eml +131 -0
- data/set-of-emails/maildir/bsd/rfc3464-14.eml +121 -0
- data/set-of-emails/maildir/bsd/rfc3464-15.eml +144 -0
- data/set-of-emails/maildir/bsd/rfc3464-16.eml +36 -0
- data/set-of-emails/maildir/bsd/rfc3464-17.eml +109 -0
- data/set-of-emails/maildir/bsd/rfc3464-18.eml +149 -0
- data/set-of-emails/maildir/bsd/rfc3464-19.eml +65 -0
- data/set-of-emails/maildir/bsd/rfc3464-20.eml +145 -0
- data/set-of-emails/maildir/bsd/rfc3464-21.eml +146 -0
- data/set-of-emails/maildir/bsd/rfc3464-22.eml +105 -0
- data/set-of-emails/maildir/bsd/rfc3464-23.eml +21 -0
- data/set-of-emails/maildir/bsd/rfc3464-24.eml +27 -0
- data/set-of-emails/maildir/bsd/rfc3464-25.eml +33 -0
- data/set-of-emails/maildir/bsd/rfc3464-26.eml +98 -0
- data/set-of-emails/maildir/bsd/rfc3464-27.eml +180 -0
- data/set-of-emails/maildir/bsd/rfc3834-01.eml +37 -0
- data/set-of-emails/maildir/bsd/rfc3834-02.eml +51 -0
- data/set-of-emails/maildir/bsd/rfc3834-03.eml +33 -0
- data/set-of-emails/maildir/bsd/ru-mailru-01.eml +54 -0
- data/set-of-emails/maildir/bsd/ru-mailru-02.eml +54 -0
- data/set-of-emails/maildir/bsd/ru-mailru-03.eml +62 -0
- data/set-of-emails/maildir/bsd/ru-mailru-04.eml +54 -0
- data/set-of-emails/maildir/bsd/ru-yandex-01.eml +102 -0
- data/set-of-emails/maildir/bsd/ru-yandex-02.eml +113 -0
- data/set-of-emails/maildir/bsd/ru-yandex-03.eml +101 -0
- data/set-of-emails/maildir/bsd/sendmail-01.eml +70 -0
- data/set-of-emails/maildir/bsd/sendmail-02.eml +82 -0
- data/set-of-emails/maildir/bsd/sendmail-03.eml +76 -0
- data/set-of-emails/maildir/bsd/sendmail-04.eml +63 -0
- data/set-of-emails/maildir/bsd/sendmail-05.eml +64 -0
- data/set-of-emails/maildir/bsd/sendmail-06.eml +67 -0
- data/set-of-emails/maildir/bsd/sendmail-07.eml +65 -0
- data/set-of-emails/maildir/bsd/sendmail-08.eml +62 -0
- data/set-of-emails/maildir/bsd/sendmail-09.eml +60 -0
- data/set-of-emails/maildir/bsd/sendmail-10.eml +82 -0
- data/set-of-emails/maildir/bsd/sendmail-11.eml +60 -0
- data/set-of-emails/maildir/bsd/sendmail-12.eml +62 -0
- data/set-of-emails/maildir/bsd/sendmail-13.eml +66 -0
- data/set-of-emails/maildir/bsd/sendmail-14.eml +64 -0
- data/set-of-emails/maildir/bsd/sendmail-15.eml +60 -0
- data/set-of-emails/maildir/bsd/sendmail-16.eml +69 -0
- data/set-of-emails/maildir/bsd/sendmail-17.eml +68 -0
- data/set-of-emails/maildir/bsd/sendmail-18.eml +64 -0
- data/set-of-emails/maildir/bsd/sendmail-19.eml +71 -0
- data/set-of-emails/maildir/bsd/sendmail-20.eml +120 -0
- data/set-of-emails/maildir/bsd/sendmail-21.eml +69 -0
- data/set-of-emails/maildir/bsd/sendmail-22.eml +73 -0
- data/set-of-emails/maildir/bsd/sendmail-23.eml +137 -0
- data/set-of-emails/maildir/bsd/sendmail-24.eml +66 -0
- data/set-of-emails/maildir/bsd/sendmail-25.eml +70 -0
- data/set-of-emails/maildir/bsd/sendmail-26.eml +71 -0
- data/set-of-emails/maildir/bsd/sendmail-27.eml +69 -0
- data/set-of-emails/maildir/bsd/sendmail-28.eml +69 -0
- data/set-of-emails/maildir/bsd/sendmail-29.eml +70 -0
- data/set-of-emails/maildir/bsd/sendmail-30.eml +68 -0
- data/set-of-emails/maildir/bsd/sendmail-31.eml +80 -0
- data/set-of-emails/maildir/bsd/sendmail-32.eml +71 -0
- data/set-of-emails/maildir/bsd/sendmail-33.eml +71 -0
- data/set-of-emails/maildir/bsd/sendmail-34.eml +75 -0
- data/set-of-emails/maildir/bsd/sendmail-35.eml +70 -0
- data/set-of-emails/maildir/bsd/sendmail-36.eml +71 -0
- data/set-of-emails/maildir/bsd/sendmail-37.eml +71 -0
- data/set-of-emails/maildir/bsd/surfcontrol-01.eml +79 -0
- data/set-of-emails/maildir/bsd/surfcontrol-02.eml +70 -0
- data/set-of-emails/maildir/bsd/surfcontrol-03.eml +70 -0
- data/set-of-emails/maildir/bsd/uk-messagelabs-01.eml +76 -0
- data/set-of-emails/maildir/bsd/us-amazonses-01.eml +59 -0
- data/set-of-emails/maildir/bsd/us-amazonses-02.eml +177 -0
- data/set-of-emails/maildir/bsd/us-amazonses-03.eml +55 -0
- data/set-of-emails/maildir/bsd/us-amazonses-04.eml +55 -0
- data/set-of-emails/maildir/bsd/us-aol-01.eml +1258 -0
- data/set-of-emails/maildir/bsd/us-aol-02.eml +1257 -0
- data/set-of-emails/maildir/bsd/us-aol-03.eml +1264 -0
- data/set-of-emails/maildir/bsd/us-aol-04.eml +1260 -0
- data/set-of-emails/maildir/bsd/us-bigfoot-01.eml +64 -0
- data/set-of-emails/maildir/bsd/us-facebook-01.eml +40 -0
- data/set-of-emails/maildir/bsd/us-facebook-02.eml +42 -0
- data/set-of-emails/maildir/bsd/us-google-01.eml +70 -0
- data/set-of-emails/maildir/bsd/us-google-02.eml +50 -0
- data/set-of-emails/maildir/bsd/us-google-03.eml +51 -0
- data/set-of-emails/maildir/bsd/us-google-04.eml +82 -0
- data/set-of-emails/maildir/bsd/us-google-05.eml +50 -0
- data/set-of-emails/maildir/bsd/us-google-06.eml +56 -0
- data/set-of-emails/maildir/bsd/us-google-07.eml +42 -0
- data/set-of-emails/maildir/bsd/us-google-08.eml +59 -0
- data/set-of-emails/maildir/bsd/us-google-09.eml +76 -0
- data/set-of-emails/maildir/bsd/us-google-10.eml +69 -0
- data/set-of-emails/maildir/bsd/us-google-11.eml +68 -0
- data/set-of-emails/maildir/bsd/us-google-12.eml +76 -0
- data/set-of-emails/maildir/bsd/us-google-13.eml +79 -0
- data/set-of-emails/maildir/bsd/us-google-14.eml +304 -0
- data/set-of-emails/maildir/bsd/us-outlook-01.eml +72 -0
- data/set-of-emails/maildir/bsd/us-outlook-02.eml +72 -0
- data/set-of-emails/maildir/bsd/us-outlook-03.eml +72 -0
- data/set-of-emails/maildir/bsd/us-outlook-04.eml +79 -0
- data/set-of-emails/maildir/bsd/us-outlook-05.eml +85 -0
- data/set-of-emails/maildir/bsd/us-outlook-06.eml +75 -0
- data/set-of-emails/maildir/bsd/us-outlook-07.eml +70 -0
- data/set-of-emails/maildir/bsd/us-receivingses-01.eml +74 -0
- data/set-of-emails/maildir/bsd/us-receivingses-02.eml +74 -0
- data/set-of-emails/maildir/bsd/us-receivingses-03.eml +74 -0
- data/set-of-emails/maildir/bsd/us-receivingses-04.eml +74 -0
- data/set-of-emails/maildir/bsd/us-receivingses-05.eml +74 -0
- data/set-of-emails/maildir/bsd/us-receivingses-06.eml +74 -0
- data/set-of-emails/maildir/bsd/us-receivingses-07.eml +74 -0
- data/set-of-emails/maildir/bsd/us-sendgrid-01.eml +95 -0
- data/set-of-emails/maildir/bsd/us-sendgrid-02.eml +98 -0
- data/set-of-emails/maildir/bsd/us-sendgrid-03.eml +100 -0
- data/set-of-emails/maildir/bsd/us-verizon-01.eml +31 -0
- data/set-of-emails/maildir/bsd/us-yahoo-01.eml +78 -0
- data/set-of-emails/maildir/bsd/us-yahoo-02.eml +79 -0
- data/set-of-emails/maildir/bsd/us-yahoo-03.eml +93 -0
- data/set-of-emails/maildir/bsd/us-yahoo-04.eml +94 -0
- data/set-of-emails/maildir/bsd/us-yahoo-05.eml +94 -0
- data/set-of-emails/maildir/bsd/us-zoho-01.eml +40 -0
- data/set-of-emails/maildir/bsd/us-zoho-02.eml +38 -0
- data/set-of-emails/maildir/bsd/us-zoho-03.eml +37 -0
- data/set-of-emails/maildir/bsd/us-zoho-04.eml +47 -0
- data/set-of-emails/maildir/bsd/us-zoho-05.eml +37 -0
- data/set-of-emails/maildir/bsd/v5sendmail-01.eml +24 -0
- data/set-of-emails/maildir/bsd/v5sendmail-02.eml +26 -0
- data/set-of-emails/maildir/bsd/v5sendmail-03.eml +29 -0
- data/set-of-emails/maildir/bsd/v5sendmail-04.eml +29 -0
- data/set-of-emails/maildir/bsd/v5sendmail-05.eml +42 -0
- data/set-of-emails/maildir/bsd/v5sendmail-06.eml +28 -0
- data/set-of-emails/maildir/bsd/v5sendmail-07.eml +35 -0
- data/set-of-emails/maildir/bsd/x1-01.eml +61 -0
- data/set-of-emails/maildir/bsd/x1-02.eml +62 -0
- data/set-of-emails/maildir/bsd/x2-01.eml +41 -0
- data/set-of-emails/maildir/bsd/x2-02.eml +46 -0
- data/set-of-emails/maildir/bsd/x2-03.eml +34 -0
- data/set-of-emails/maildir/bsd/x2-04.eml +0 -0
- data/set-of-emails/maildir/bsd/x2-05.eml +98 -0
- data/set-of-emails/maildir/bsd/x3-01.eml +61 -0
- data/set-of-emails/maildir/bsd/x3-02.eml +64 -0
- data/set-of-emails/maildir/bsd/x3-03.eml +59 -0
- data/set-of-emails/maildir/bsd/x3-04.eml +106 -0
- data/set-of-emails/maildir/bsd/x4-01.eml +92 -0
- data/set-of-emails/maildir/bsd/x4-02.eml +112 -0
- data/set-of-emails/maildir/bsd/x4-03.eml +245 -0
- data/set-of-emails/maildir/bsd/x4-04.eml +81 -0
- data/set-of-emails/maildir/bsd/x4-05.eml +121 -0
- data/set-of-emails/maildir/bsd/x4-06.eml +32 -0
- data/set-of-emails/maildir/bsd/x4-07.eml +153 -0
- data/set-of-emails/maildir/bsd/x5-01.eml +155 -0
- data/set-of-emails/maildir/dos/activehunter-01.eml +54 -0
- data/set-of-emails/maildir/dos/apachejames-01.eml +46 -0
- data/set-of-emails/maildir/dos/arf-01.eml +66 -0
- data/set-of-emails/maildir/dos/courier-01.eml +79 -0
- data/set-of-emails/maildir/dos/de-einsundeins-01.eml +38 -0
- data/set-of-emails/maildir/dos/de-gmx-01.eml +52 -0
- data/set-of-emails/maildir/dos/domino-01.eml +33 -0
- data/set-of-emails/maildir/dos/exchange-01.eml +31 -0
- data/set-of-emails/maildir/dos/exim-01.eml +46 -0
- data/set-of-emails/maildir/dos/google-apps-01.eml +66 -0
- data/set-of-emails/maildir/dos/imailserver-01.eml +27 -0
- data/set-of-emails/maildir/dos/interscanmss-01.eml +49 -0
- data/set-of-emails/maildir/dos/jp-biglobe-01.eml +43 -0
- data/set-of-emails/maildir/dos/jp-ezweb-01.eml +36 -0
- data/set-of-emails/maildir/dos/jp-kddi-01.eml +49 -0
- data/set-of-emails/maildir/dos/mailfoundry-01.eml +50 -0
- data/set-of-emails/maildir/dos/mailmarshalsmtp-01.eml +43 -0
- data/set-of-emails/maildir/dos/mcafee-01.eml +63 -0
- data/set-of-emails/maildir/dos/messagingserver-01.eml +102 -0
- data/set-of-emails/maildir/dos/mfilter-01.eml +49 -0
- data/set-of-emails/maildir/dos/mxlogic-01.eml +47 -0
- data/set-of-emails/maildir/dos/notes-01.eml +42 -0
- data/set-of-emails/maildir/dos/opensmtpd-01.eml +33 -0
- data/set-of-emails/maildir/dos/postfix-01.eml +60 -0
- data/set-of-emails/maildir/dos/qmail-01.eml +40 -0
- data/set-of-emails/maildir/dos/rfc3464-01.eml +59 -0
- data/set-of-emails/maildir/dos/rfc3834-01.eml +37 -0
- data/set-of-emails/maildir/dos/ru-mailru-01.eml +54 -0
- data/set-of-emails/maildir/dos/ru-yandex-01.eml +102 -0
- data/set-of-emails/maildir/dos/sendmail-01.eml +69 -0
- data/set-of-emails/maildir/dos/surfcontrol-01.eml +79 -0
- data/set-of-emails/maildir/dos/uk-messagelabs-01.eml +76 -0
- data/set-of-emails/maildir/dos/us-amazonses-01.eml +59 -0
- data/set-of-emails/maildir/dos/us-aol-01.eml +1258 -0
- data/set-of-emails/maildir/dos/us-bigfoot-01.eml +64 -0
- data/set-of-emails/maildir/dos/us-facebook-01.eml +40 -0
- data/set-of-emails/maildir/dos/us-google-01.eml +70 -0
- data/set-of-emails/maildir/dos/us-outlook-01.eml +72 -0
- data/set-of-emails/maildir/dos/us-receivingses-01.eml +74 -0
- data/set-of-emails/maildir/dos/us-sendgrid-01.eml +95 -0
- data/set-of-emails/maildir/dos/us-verizon-01.eml +31 -0
- data/set-of-emails/maildir/dos/us-yahoo-01.eml +78 -0
- data/set-of-emails/maildir/dos/us-zoho-01.eml +40 -0
- data/set-of-emails/maildir/dos/v5sendmail-01.eml +24 -0
- data/set-of-emails/maildir/dos/x1-01.eml +61 -0
- data/set-of-emails/maildir/dos/x2-01.eml +41 -0
- data/set-of-emails/maildir/dos/x3-01.eml +61 -0
- data/set-of-emails/maildir/dos/x4-01.eml +90 -0
- data/set-of-emails/maildir/dos/x5-01.eml +155 -0
- data/set-of-emails/maildir/err/make-test-01.eml +70 -0
- data/set-of-emails/maildir/err/make-test-02.eml +70 -0
- data/set-of-emails/maildir/err/make-test-03.eml +64 -0
- data/set-of-emails/maildir/err/make-test-04.eml +64 -0
- data/set-of-emails/maildir/err/make-test-05.eml +66 -0
- data/set-of-emails/maildir/err/make-test-06.eml +118 -0
- data/set-of-emails/maildir/err/make-test-07.eml +26 -0
- data/set-of-emails/maildir/err/make-test-08.eml +67 -0
- data/set-of-emails/maildir/err/make-test-09.eml +55 -0
- data/set-of-emails/maildir/err/make-test-10.eml +69 -0
- data/set-of-emails/maildir/err/make-test-11.eml +64 -0
- data/set-of-emails/maildir/err/make-test-12.eml +66 -0
- data/set-of-emails/maildir/err/make-test-13.eml +67 -0
- data/set-of-emails/maildir/err/make-test-14.eml +66 -0
- data/set-of-emails/maildir/err/make-test-15.eml +70 -0
- data/set-of-emails/maildir/err/make-test-16.eml +68 -0
- data/set-of-emails/maildir/err/make-test-17.eml +68 -0
- data/set-of-emails/maildir/err/make-test-18.eml +68 -0
- data/set-of-emails/maildir/err/make-test-19.eml +69 -0
- data/set-of-emails/maildir/err/make-test-20.eml +67 -0
- data/set-of-emails/maildir/err/make-test-21.eml +69 -0
- data/set-of-emails/maildir/err/make-test-22.eml +66 -0
- data/set-of-emails/maildir/err/make-test-23.eml +70 -0
- data/set-of-emails/maildir/err/make-test-24.eml +69 -0
- data/set-of-emails/maildir/err/make-test-25.eml +67 -0
- data/set-of-emails/maildir/err/make-test-26.eml +69 -0
- data/set-of-emails/maildir/err/make-test-27.eml +69 -0
- data/set-of-emails/maildir/err/make-test-28.eml +66 -0
- data/set-of-emails/maildir/err/make-test-29.eml +68 -0
- data/set-of-emails/maildir/err/make-test-30.eml +68 -0
- data/set-of-emails/maildir/err/make-test-31.eml +80 -0
- data/set-of-emails/maildir/err/make-test-32.eml +66 -0
- data/set-of-emails/maildir/err/make-test-33.eml +68 -0
- data/set-of-emails/maildir/err/make-test-34.eml +56 -0
- data/set-of-emails/maildir/err/make-test-35.eml +59 -0
- data/set-of-emails/maildir/err/make-test-36.eml +53 -0
- data/set-of-emails/maildir/err/make-test-37.eml +62 -0
- data/set-of-emails/maildir/mac/activehunter-01.eml +1 -2
- data/set-of-emails/maildir/mac/apachejames-01.eml +1 -4
- data/set-of-emails/maildir/mac/arf-01.eml +1 -3
- data/set-of-emails/maildir/mac/courier-01.eml +1 -6
- data/set-of-emails/maildir/mac/de-einsundeins-01.eml +1 -1
- data/set-of-emails/maildir/mac/de-gmx-01.eml +1 -1
- data/set-of-emails/maildir/mac/domino-01.eml +1 -0
- data/set-of-emails/maildir/mac/exchange-01.eml +1 -0
- data/set-of-emails/maildir/mac/exim-01.eml +1 -1
- data/set-of-emails/maildir/mac/google-apps-01.eml +1 -4
- data/set-of-emails/maildir/mac/imailserver-01.eml +1 -0
- data/set-of-emails/maildir/mac/interscanmss-01.eml +1 -2
- data/set-of-emails/maildir/mac/jp-biglobe-01.eml +1 -2
- data/set-of-emails/maildir/mac/jp-ezweb-01.eml +1 -1
- data/set-of-emails/maildir/mac/jp-kddi-01.eml +1 -2
- data/set-of-emails/maildir/mac/mailfoundry-01.eml +1 -2
- data/set-of-emails/maildir/mac/mailmarshalsmtp-01.eml +1 -2
- data/set-of-emails/maildir/mac/mcafee-01.eml +1 -4
- data/set-of-emails/maildir/mac/messagingserver-01.eml +1 -4
- data/set-of-emails/maildir/mac/mfilter-01.eml +1 -3
- data/set-of-emails/maildir/mac/mxlogic-01.eml +1 -1
- data/set-of-emails/maildir/mac/notes-01.eml +1 -2
- data/set-of-emails/maildir/mac/opensmtpd-01.eml +1 -0
- data/set-of-emails/maildir/mac/postfix-01.eml +1 -3
- data/set-of-emails/maildir/mac/qmail-01.eml +1 -1
- data/set-of-emails/maildir/mac/rfc3464-01.eml +1 -4
- data/set-of-emails/maildir/mac/rfc3834-01.eml +1 -0
- data/set-of-emails/maildir/mac/ru-mailru-01.eml +1 -1
- data/set-of-emails/maildir/mac/ru-yandex-01.eml +1 -4
- data/set-of-emails/maildir/mac/sendmail-01.eml +1 -4
- data/set-of-emails/maildir/mac/surfcontrol-01.eml +1 -5
- data/set-of-emails/maildir/mac/uk-messagelabs-01.eml +1 -4
- data/set-of-emails/maildir/mac/us-amazonses-01.eml +1 -4
- data/set-of-emails/maildir/mac/us-aol-01.eml +1 -15
- data/set-of-emails/maildir/mac/us-bigfoot-01.eml +1 -4
- data/set-of-emails/maildir/mac/us-facebook-01.eml +1 -4
- data/set-of-emails/maildir/mac/us-google-01.eml +1 -1
- data/set-of-emails/maildir/mac/us-outlook-01.eml +1 -4
- data/set-of-emails/maildir/mac/us-receivingses-01.eml +1 -4
- data/set-of-emails/maildir/mac/us-sendgrid-01.eml +1 -3
- data/set-of-emails/maildir/mac/us-verizon-01.eml +1 -2
- data/set-of-emails/maildir/mac/us-yahoo-01.eml +1 -1
- data/set-of-emails/maildir/mac/us-zoho-01.eml +1 -2
- data/set-of-emails/maildir/mac/v5sendmail-01.eml +1 -0
- data/set-of-emails/maildir/mac/x1-01.eml +1 -4
- data/set-of-emails/maildir/mac/x2-01.eml +1 -1
- data/set-of-emails/maildir/mac/x3-01.eml +1 -3
- data/set-of-emails/maildir/mac/x4-01.eml +1 -2
- data/set-of-emails/maildir/mac/x5-01.eml +1 -8
- data/set-of-emails/maildir/not/is-not-bounce-01.eml +25 -0
- data/set-of-emails/to-be-debugged-because/reason-is-onhold/onhold-0001.eml +85 -0
- data/set-of-emails/to-be-debugged-because/reason-is-undefined/undefined-0002.eml +27 -0
- data/set-of-emails/to-be-debugged-because/reason-is-undefined/undefined-0003.eml +78 -0
- data/set-of-emails/to-be-debugged-because/sisimai-cannot-parse-yet/cannot-parse-this-email-0002.eml +25 -0
- data/set-of-emails/to-be-debugged-because/something-is-wrong/issue-106-01.eml +79 -0
- data/set-of-emails/to-be-debugged-because/something-is-wrong/issue-106-02.eml +72 -0
- data/set-of-emails/to-be-debugged-because/something-is-wrong/issue-106-03.eml +68 -0
- data/set-of-emails/to-be-debugged-because/something-is-wrong/no-message-id-from-pr-150.eml +75 -0
- data/set-of-emails/to-be-parsed-for-test/README.md +20 -0
- data/sisimai.gemspec +25 -0
- metadata +647 -0
@@ -0,0 +1,118 @@
|
|
1
|
+
module Sisimai
|
2
|
+
module Reason
|
3
|
+
# Sisimai::Reason::MailboxFull checks the bounce reason is "mailboxfull" or
|
4
|
+
# not. This class is called only Sisimai::Reason class.
|
5
|
+
#
|
6
|
+
# This is the error that a recipient's mailbox is full. Sisimai will set
|
7
|
+
# "mailboxfull" to the reason of email bounce if the value of Status: field
|
8
|
+
# in a bounce email is "4.2.2" or "5.2.2".
|
9
|
+
module MailboxFull
|
10
|
+
# Imported from p5-Sisimail/lib/Sisimai/Reason/MailboxFull.pm
|
11
|
+
class << self
|
12
|
+
def text; return 'mailboxfull'; end
|
13
|
+
|
14
|
+
# Try to match that the given text and regular expressions
|
15
|
+
# @param [String] argv1 String to be matched with regular expressions
|
16
|
+
# @return [True,False] false: Did not match
|
17
|
+
# true: Matched
|
18
|
+
def match(argv1)
|
19
|
+
return nil unless argv1
|
20
|
+
regex = %r{(?>
|
21
|
+
account[ ]is[ ](?:
|
22
|
+
exceeding[ ]their[ ]quota
|
23
|
+
|over[ ]quota
|
24
|
+
|temporarily[ ]over[ ]quota
|
25
|
+
)
|
26
|
+
|delivery[ ]failed:[ ]over[ ]quota
|
27
|
+
|disc[ ]quota[ ]exceeded
|
28
|
+
|does[ ]not[ ]have[ ]enough[ ]space
|
29
|
+
|exceeded[ ]storage[ ]allocation
|
30
|
+
|exceeding[ ]its[ ]mailbox[ ]quota
|
31
|
+
|full[ ]mailbox
|
32
|
+
|is[ ]over[ ]quota[ ]temporarily
|
33
|
+
|is[ ]over[ ]disk[ ]quota
|
34
|
+
|mail[ ](?:
|
35
|
+
file[ ]size[ ]exceeds[ ]the[ ]maximum[ ]size[ ]allowed[ ]for[ ]mail[ ]delivery
|
36
|
+
|quota[ ]exceeded
|
37
|
+
)
|
38
|
+
|mailbox[ ](?:
|
39
|
+
exceeded[ ]the[ ]local[ ]limit
|
40
|
+
|full
|
41
|
+
|has[ ]exceeded[ ]its[ ]disk[ ]space[ ]limit
|
42
|
+
|is[ ]full
|
43
|
+
|over[ ]quota
|
44
|
+
|quota[ ]usage[ ]exceeded
|
45
|
+
|size[ ]limit[ ]exceeded
|
46
|
+
)
|
47
|
+
|maildir[ ](?:
|
48
|
+
delivery[ ]failed:[ ](?:User|Domain)disk[ ]quota[ ]?.*[ ]exceeded
|
49
|
+
|over[ ]quota
|
50
|
+
)
|
51
|
+
|mailfolder[ ]is[ ]full
|
52
|
+
|not[ ]enough[ ]storage[ ]space[ ]in
|
53
|
+
|over[ ]the[ ]allowed[ ]quota
|
54
|
+
|quota[ ]exceeded
|
55
|
+
|quota[ ]violation[ ]for
|
56
|
+
|recipient[ ](?:
|
57
|
+
reached[ ]disk[ ]quota
|
58
|
+
|rejected:[ ]mailbox[ ]would[ ]exceed[ ]maximum[ ]allowed[ ]storage
|
59
|
+
)
|
60
|
+
|The[ ]recipient[ ]mailbox[ ]has[ ]exceeded[ ]its[ ]disk[ ]space[ ]limit
|
61
|
+
|The[ ]user[']s[ ]space[ ]has[ ]been[ ]used[ ]up
|
62
|
+
|too[ ]much[ ]mail[ ]data # @docomo.ne.jp
|
63
|
+
|user[ ](?:
|
64
|
+
has[ ](?:
|
65
|
+
exceeded[ ]quota,[ ]bouncing[ ]mail
|
66
|
+
|too[ ]many[ ]messages[ ]on[ ]the[ ]server
|
67
|
+
)
|
68
|
+
|is[ ]over[ ]quota
|
69
|
+
|is[ ]over[ ]the[ ]quota
|
70
|
+
|over[ ]quota
|
71
|
+
|over[ ]quota[.][ ][(][#]5[.]1[.]1[)] # qmail-toaster
|
72
|
+
)
|
73
|
+
|was[ ]automatically[ ]rejected:[ ]quota[ ]exceeded
|
74
|
+
|would[ ]be[ ]over[ ]the[ ]allowed[ ]quota
|
75
|
+
)
|
76
|
+
}ix
|
77
|
+
|
78
|
+
return true if argv1 =~ regex
|
79
|
+
return false
|
80
|
+
end
|
81
|
+
|
82
|
+
# The envelope recipient's mailbox is full or not
|
83
|
+
# @param [Sisimai::Data] argvs Object to be detected the reason
|
84
|
+
# @return [True,False] true: is mailbox full
|
85
|
+
# false: is not mailbox full
|
86
|
+
# @see http://www.ietf.org/rfc/rfc2822.txt
|
87
|
+
def true(argvs)
|
88
|
+
return nil unless argvs
|
89
|
+
return nil unless argvs.is_a? Sisimai::Data
|
90
|
+
return nil unless argvs.deliverystatus.size > 0
|
91
|
+
return true if argvs.reason == Sisimai::Reason::MailboxFull.text
|
92
|
+
|
93
|
+
require 'sisimai/smtp/status'
|
94
|
+
statuscode = argvs.deliverystatus
|
95
|
+
diagnostic = argvs.diagnosticcode || ''
|
96
|
+
reasontext = Sisimai::Reason::MailboxFull.text
|
97
|
+
v = false
|
98
|
+
|
99
|
+
if Sisimai::SMTP::Status.name(statuscode) == reasontext
|
100
|
+
# Delivery status code points "mailboxfull".
|
101
|
+
# Status: 4.2.2
|
102
|
+
# Diagnostic-Code: SMTP; 450 4.2.2 <***@example.jp>... Mailbox Full
|
103
|
+
v = true
|
104
|
+
else
|
105
|
+
# Check the value of Diagnosic-Code: header with patterns
|
106
|
+
v = true if Sisimai::Reason::MailboxFull.match(diagnostic)
|
107
|
+
end
|
108
|
+
|
109
|
+
return v
|
110
|
+
end
|
111
|
+
|
112
|
+
end
|
113
|
+
end
|
114
|
+
end
|
115
|
+
end
|
116
|
+
|
117
|
+
|
118
|
+
|
@@ -0,0 +1,55 @@
|
|
1
|
+
module Sisimai
|
2
|
+
module Reason
|
3
|
+
# Sisimai::Reason::MailerError checks the bounce reason is "mailererror" or not.
|
4
|
+
# This class is called only Sisimai::Reason class.
|
5
|
+
#
|
6
|
+
# This is the error that a mailer program has not exited successfully or exited
|
7
|
+
# unexpectedly on a destination mail server.
|
8
|
+
#
|
9
|
+
# X-Actual-Recipient: X-Unix; |/home/kijitora/mail/catch.php
|
10
|
+
# Diagnostic-Code: X-Unix; 255
|
11
|
+
module MailerError
|
12
|
+
# Imported from p5-Sisimail/lib/Sisimai/Reason/MailerError.pm
|
13
|
+
class << self
|
14
|
+
def text; return 'mailererror'; end
|
15
|
+
|
16
|
+
# Try to match that the given text and regular expressions
|
17
|
+
# @param [String] argv1 String to be matched with regular expressions
|
18
|
+
# @return [True,False] false: Did not match
|
19
|
+
# true: Matched
|
20
|
+
def match(argv1)
|
21
|
+
return nil unless argv1
|
22
|
+
regex = %r{(?>
|
23
|
+
command[ ](?:
|
24
|
+
failed:[ ]
|
25
|
+
|died[ ]with[ ]status[ ]\d+
|
26
|
+
|output:
|
27
|
+
)
|
28
|
+
|\Aprocmail:[ ] # procmail
|
29
|
+
|bin/(?:procmail|maildrop)
|
30
|
+
|mailer[ ]error
|
31
|
+
|X[-]UNIX[;][ ]\d+ # X-UNIX; 127
|
32
|
+
|exit[ ]\d+
|
33
|
+
)
|
34
|
+
}ix
|
35
|
+
|
36
|
+
return true if argv1 =~ regex
|
37
|
+
return false
|
38
|
+
end
|
39
|
+
|
40
|
+
# The bounce reason is mailer error or not
|
41
|
+
# @param [Sisimai::Data] argvs Object to be detected the reason
|
42
|
+
# @return [True,False] true: is mailer error
|
43
|
+
# false: is not mailer error
|
44
|
+
# @see http://www.ietf.org/rfc/rfc2822.txt
|
45
|
+
def true(_argvs)
|
46
|
+
return nil
|
47
|
+
end
|
48
|
+
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
52
|
+
end
|
53
|
+
|
54
|
+
|
55
|
+
|
@@ -0,0 +1,77 @@
|
|
1
|
+
module Sisimai
|
2
|
+
module Reason
|
3
|
+
module MesgTooBig
|
4
|
+
# Imported from p5-Sisimail/lib/Sisimai/Reason/MesgTooBig.pm
|
5
|
+
class << self
|
6
|
+
def text; return 'mesgtoobig'; end
|
7
|
+
|
8
|
+
# Try to match that the given text and regular expressions
|
9
|
+
# @param [String] argv1 String to be matched with regular expressions
|
10
|
+
# @return [True,False] false: Did not match
|
11
|
+
# true: Matched
|
12
|
+
def match(argv1)
|
13
|
+
return nil unless argv1
|
14
|
+
regex = %r{(?>
|
15
|
+
exceeded[ ]maximum[ ]inbound[ ]message[ ]size
|
16
|
+
|max[ ]message[ ]size[ ]exceeded
|
17
|
+
|message[ ](?:
|
18
|
+
file[ ]too[ ]big
|
19
|
+
|length[ ]exceeds[ ]administrative[ ]limit
|
20
|
+
|size[ ]exceeds[ ](?:
|
21
|
+
fixed[ ]limit
|
22
|
+
|fixed[ ]maximum[ ]message[ ]size
|
23
|
+
|maximum[ ]value
|
24
|
+
)
|
25
|
+
|too[ ]big
|
26
|
+
|too[ ]large[ ]for[ ]this[ ].+
|
27
|
+
)
|
28
|
+
|size[ ]limit
|
29
|
+
)
|
30
|
+
}ix
|
31
|
+
|
32
|
+
return true if argv1 =~ regex
|
33
|
+
return false
|
34
|
+
end
|
35
|
+
|
36
|
+
# The message size is too big for the remote host
|
37
|
+
# @param [Sisimai::Data] argvs Object to be detected the reason
|
38
|
+
# @return [True,False] true: is too big message size
|
39
|
+
# false: is not big
|
40
|
+
# @see http://www.ietf.org/rfc/rfc2822.txt
|
41
|
+
def true(argvs)
|
42
|
+
return nil unless argvs
|
43
|
+
return nil unless argvs.is_a? Sisimai::Data
|
44
|
+
return true if argvs.reason == Sisimai::Reason::MesgTooBig.text
|
45
|
+
|
46
|
+
require 'sisimai/smtp/status'
|
47
|
+
statuscode = argvs.deliverystatus || ''
|
48
|
+
diagnostic = argvs.diagnosticcode || ''
|
49
|
+
reasontext = Sisimai::Reason::MesgTooBig.text
|
50
|
+
tempreason = Sisimai::SMTP::Status.name(statuscode)
|
51
|
+
v = false
|
52
|
+
|
53
|
+
if tempreason == reasontext
|
54
|
+
# Delivery status code points "mesgtoobig".
|
55
|
+
# Status: 5.3.4
|
56
|
+
# Diagnostic-Code: SMTP; 552 5.3.4 Error: message file too big
|
57
|
+
v = true
|
58
|
+
else
|
59
|
+
if tempreason == 'exceedlimit' || statuscode == '5.2.3'
|
60
|
+
# 5.2.3 Message length exceeds administrative limit
|
61
|
+
v = false
|
62
|
+
else
|
63
|
+
# Check the value of Diagnosic-Code: header with patterns
|
64
|
+
v = true if Sisimai::Reason::MesgTooBig.match(diagnostic)
|
65
|
+
end
|
66
|
+
end
|
67
|
+
|
68
|
+
return v
|
69
|
+
end
|
70
|
+
|
71
|
+
end
|
72
|
+
end
|
73
|
+
end
|
74
|
+
end
|
75
|
+
|
76
|
+
|
77
|
+
|
@@ -0,0 +1,57 @@
|
|
1
|
+
module Sisimai
|
2
|
+
module Reason
|
3
|
+
# Sisimai::Reason::NetworkError checks the bounce reason is "networkerror"
|
4
|
+
# or not. This class is called only Sisimai::Reason class.
|
5
|
+
#
|
6
|
+
# This is the error that SMTP connection failed due to DNS look up failure
|
7
|
+
# or other network problems. This reason has added in Sisimai 4.1.12 and does
|
8
|
+
# not exist in any version of bounceHammer.
|
9
|
+
# A message is delayed for more than 10 minutes for the following
|
10
|
+
# list of recipients:
|
11
|
+
#
|
12
|
+
# kijitora@neko.example.jp: Network error on destination MXs
|
13
|
+
module NetworkError
|
14
|
+
# Imported from p5-Sisimail/lib/Sisimai/Reason/NetworkError.pm
|
15
|
+
class << self
|
16
|
+
def text; return 'networkerror'; end
|
17
|
+
|
18
|
+
# Try to match that the given text and regular expressions
|
19
|
+
# @param [String] argv1 String to be matched with regular expressions
|
20
|
+
# @return [True,False] false: Did not match
|
21
|
+
# true: Matched
|
22
|
+
def match(argv1)
|
23
|
+
return nil unless argv1
|
24
|
+
regex = %r{(?:
|
25
|
+
DNS[ ]records[ ]for[ ]the[ ]destination[ ]computer[ ]could[ ]not[ ]be[ ]found
|
26
|
+
|Hop[ ]count[ ]exceeded[ ]-[ ]possible[ ]mail[ ]loop
|
27
|
+
|host[ ]is[ ]unreachable
|
28
|
+
|mail[ ]forwarding[ ]loop[ ]for[ ]
|
29
|
+
|malformed[ ]name[ ]server[ ]reply
|
30
|
+
|maximum[ ]forwarding[ ]loop[ ]count[ ]exceeded
|
31
|
+
|message[ ]looping
|
32
|
+
|name[ ]service[ ]error
|
33
|
+
|too[ ]many[ ]hops
|
34
|
+
|unrouteable[ ]mail[ ]domain
|
35
|
+
)
|
36
|
+
}ix
|
37
|
+
|
38
|
+
return true if argv1 =~ regex
|
39
|
+
return false
|
40
|
+
end
|
41
|
+
|
42
|
+
# The bounce reason is network error or not
|
43
|
+
# @param [Sisimai::Data] argvs Object to be detected the reason
|
44
|
+
# @return [True,False] true: is network error
|
45
|
+
# false: is not network error
|
46
|
+
# @see http://www.ietf.org/rfc/rfc2822.txt
|
47
|
+
def true(_argvs)
|
48
|
+
return nil
|
49
|
+
end
|
50
|
+
|
51
|
+
end
|
52
|
+
end
|
53
|
+
end
|
54
|
+
end
|
55
|
+
|
56
|
+
|
57
|
+
|
@@ -0,0 +1,71 @@
|
|
1
|
+
module Sisimai
|
2
|
+
module Reason
|
3
|
+
# Sisimai::Reason::NoRelaying checks the bounce reason is "norelaying" or not.
|
4
|
+
# This class is called only Sisimai::Reason class.
|
5
|
+
#
|
6
|
+
# This is the error that SMTP connection rejected with error message "Relaying
|
7
|
+
# Denied". This reason does not exist in any version of bounceHammer.
|
8
|
+
#
|
9
|
+
# ... while talking to mailin-01.mx.example.com.:
|
10
|
+
# >>> RCPT To:<kijitora@example.org>
|
11
|
+
# <<< 554 5.7.1 <kijitora@example.org>: Relay access denied
|
12
|
+
# 554 5.0.0 Service unavailable
|
13
|
+
module NoRelaying
|
14
|
+
# Imported from p5-Sisimail/lib/Sisimai/Reason/NoRelaying.pm
|
15
|
+
class << self
|
16
|
+
def text; return 'norelaying'; end
|
17
|
+
|
18
|
+
# Try to match that the given text and regular expressions
|
19
|
+
# @param [String] argv1 String to be matched with regular expressions
|
20
|
+
# @return [True,False] false: Did not match
|
21
|
+
# true: Matched
|
22
|
+
def match(argv1)
|
23
|
+
return nil unless argv1
|
24
|
+
regex = %r{(?>
|
25
|
+
Insecure[ ]Mail[ ]Relay
|
26
|
+
|mail[ ]server[ ]requires[ ]authentication[ ]when[ ]attempting[ ]to[ ]
|
27
|
+
send[ ]to[ ]a[ ]non-local[ ]e-mail[ ]address # MailEnable
|
28
|
+
|not[ ]allowed[ ]to[ ]relay[ ]through[ ]this[ ]machine
|
29
|
+
|relay[ ](?:
|
30
|
+
access[ ]denied
|
31
|
+
|denied
|
32
|
+
|not[ ]permitted
|
33
|
+
)
|
34
|
+
|relaying[ ]denied # Sendmail
|
35
|
+
|that[ ]domain[ ]isn[']t[ ]in[ ]my[ ]list[ ]of[ ]allowed[ ]rcpthost
|
36
|
+
|Unable[ ]to[ ]relay[ ]for
|
37
|
+
)
|
38
|
+
}ix
|
39
|
+
|
40
|
+
return true if argv1 =~ regex
|
41
|
+
return false
|
42
|
+
end
|
43
|
+
|
44
|
+
# Whether the message is rejected by 'Relaying denied'
|
45
|
+
# @param [Sisimai::Data] argvs Object to be detected the reason
|
46
|
+
# @return [True,False] true: Rejected for "relaying denied"
|
47
|
+
# false: is not
|
48
|
+
# @see http://www.ietf.org/rfc/rfc2822.txt
|
49
|
+
def true(argvs)
|
50
|
+
return nil unless argvs
|
51
|
+
return nil unless argvs.is_a? Sisimai::Data
|
52
|
+
|
53
|
+
currreason = argvs.reason || ''
|
54
|
+
reexcludes = %r/\A(?:securityerror|systemerror|undefined)\z/
|
55
|
+
|
56
|
+
if currreason.size > 0
|
57
|
+
# Do not overwrite the reason
|
58
|
+
return false if currreason =~ reexcludes
|
59
|
+
else
|
60
|
+
# Check the value of Diagnosic-Code: header with patterns
|
61
|
+
return true if Sisimai::Reason::NoRelaying.match(argvs.diagnosticcode)
|
62
|
+
end
|
63
|
+
end
|
64
|
+
|
65
|
+
end
|
66
|
+
end
|
67
|
+
end
|
68
|
+
end
|
69
|
+
|
70
|
+
|
71
|
+
|
@@ -0,0 +1,63 @@
|
|
1
|
+
module Sisimai
|
2
|
+
module Reason
|
3
|
+
# Sisimai::Reason::NotAccept checks the bounce reason is "notaccept" or not.
|
4
|
+
# This class is called only Sisimai::Reason class.
|
5
|
+
#
|
6
|
+
# This is the error that a destination mail server does ( or can ) not accept
|
7
|
+
# any email. In many case, the server is high load or under the maintenance.
|
8
|
+
# Sisimai will set "notaccept" to the reason of email bounce if the value of
|
9
|
+
# Status: field in a bounce email is "5.3.2" or the value of SMTP reply code
|
10
|
+
# is 556.
|
11
|
+
module NotAccept
|
12
|
+
# Imported from p5-Sisimail/lib/Sisimai/Reason/NotAccept.pm
|
13
|
+
class << self
|
14
|
+
def text; return 'notaccept'; end
|
15
|
+
|
16
|
+
# Try to match that the given text and regular expressions
|
17
|
+
# @param [String] argv1 String to be matched with regular expressions
|
18
|
+
# @return [True,False] false: Did not match
|
19
|
+
# true: Matched
|
20
|
+
def match(argv1)
|
21
|
+
return nil unless argv1
|
22
|
+
|
23
|
+
# Destination mail server does not accept any message
|
24
|
+
regex = %r/smtp[ ]protocol[ ]returned[ ]a[ ]permanent[ ]error/xi
|
25
|
+
|
26
|
+
return true if argv1 =~ regex
|
27
|
+
return false
|
28
|
+
end
|
29
|
+
|
30
|
+
# Remote host does not accept any message
|
31
|
+
# @param [Sisimai::Data] argvs Object to be detected the reason
|
32
|
+
# @return [True,False] true: Not accept
|
33
|
+
# false: Accept
|
34
|
+
# @see http://www.ietf.org/rfc/rfc2822.txt
|
35
|
+
def true(argvs)
|
36
|
+
return nil unless argvs
|
37
|
+
return nil unless argvs.is_a? Sisimai::Data
|
38
|
+
return true if argvs.reason == Sisimai::Reason::NotAccept.text
|
39
|
+
|
40
|
+
diagnostic = argvs.diagnosticcode || ''
|
41
|
+
v = false
|
42
|
+
|
43
|
+
if argvs.replycode =~ /\A(?:521|554|556)\z/
|
44
|
+
# SMTP Reply Code is 554 or 556
|
45
|
+
v = false
|
46
|
+
else
|
47
|
+
# Check the value of Diagnosic-Code: header with patterns
|
48
|
+
if argvs.smtpcommand == 'MAIL'
|
49
|
+
# Matched with a pattern in this class
|
50
|
+
v = true if Sisimai::Reason::NotAccept.match(diagnostic)
|
51
|
+
end
|
52
|
+
end
|
53
|
+
|
54
|
+
return v
|
55
|
+
end
|
56
|
+
|
57
|
+
end
|
58
|
+
end
|
59
|
+
end
|
60
|
+
end
|
61
|
+
|
62
|
+
|
63
|
+
|