sisimai 4.21.1-java → 4.22.0-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.

Files changed (571) hide show
  1. checksums.yaml +4 -4
  2. data/ANALYTICAL-PRECISION +56 -56
  3. data/ChangeLog.md +16 -0
  4. data/Developers.mk +15 -33
  5. data/LICENSE +1 -1
  6. data/README-JA.md +11 -11
  7. data/README.md +11 -11
  8. data/fig/sisimai-architecture.png +0 -0
  9. data/lib/sisimai.rb +4 -4
  10. data/lib/sisimai/address.rb +254 -5
  11. data/lib/sisimai/arf.rb +6 -6
  12. data/lib/sisimai/bite.rb +37 -0
  13. data/lib/sisimai/bite/email.rb +53 -0
  14. data/lib/sisimai/bite/email/activehunter.rb +124 -0
  15. data/lib/sisimai/bite/email/amazonses.rb +247 -0
  16. data/lib/sisimai/bite/email/amazonworkmail.rb +192 -0
  17. data/lib/sisimai/bite/email/aol.rb +208 -0
  18. data/lib/sisimai/bite/email/apachejames.rb +169 -0
  19. data/lib/sisimai/bite/email/bigfoot.rb +207 -0
  20. data/lib/sisimai/bite/email/biglobe.rb +148 -0
  21. data/lib/sisimai/bite/email/courier.rb +265 -0
  22. data/lib/sisimai/bite/email/domino.rb +174 -0
  23. data/lib/sisimai/bite/email/einsundeins.rb +143 -0
  24. data/lib/sisimai/bite/email/exchange2003.rb +284 -0
  25. data/lib/sisimai/bite/email/exchange2007.rb +178 -0
  26. data/lib/sisimai/bite/email/exim.rb +522 -0
  27. data/lib/sisimai/bite/email/ezweb.rb +260 -0
  28. data/lib/sisimai/bite/email/facebook.rb +274 -0
  29. data/lib/sisimai/bite/email/gmx.rb +167 -0
  30. data/lib/sisimai/bite/email/google.rb +320 -0
  31. data/lib/sisimai/bite/email/gsuite.rb +273 -0
  32. data/lib/sisimai/bite/email/imailserver.rb +181 -0
  33. data/lib/sisimai/bite/email/interscanmss.rb +146 -0
  34. data/lib/sisimai/bite/email/kddi.rb +166 -0
  35. data/lib/sisimai/bite/email/mailfoundry.rb +133 -0
  36. data/lib/sisimai/bite/email/mailmarshalsmtp.rb +173 -0
  37. data/lib/sisimai/bite/email/mailru.rb +271 -0
  38. data/lib/sisimai/bite/email/mcafee.rb +169 -0
  39. data/lib/sisimai/bite/email/messagelabs.rb +213 -0
  40. data/lib/sisimai/bite/email/messagingserver.rb +206 -0
  41. data/lib/sisimai/bite/email/mfilter.rb +165 -0
  42. data/lib/sisimai/bite/email/mxlogic.rb +253 -0
  43. data/lib/sisimai/bite/email/notes.rb +181 -0
  44. data/lib/sisimai/bite/email/office365.rb +262 -0
  45. data/lib/sisimai/bite/email/opensmtpd.rb +192 -0
  46. data/lib/sisimai/bite/email/outlook.rb +207 -0
  47. data/lib/sisimai/bite/email/postfix.rb +310 -0
  48. data/lib/sisimai/bite/email/qmail.rb +304 -0
  49. data/lib/sisimai/bite/email/receivingses.rb +221 -0
  50. data/lib/sisimai/bite/email/sendgrid.rb +223 -0
  51. data/lib/sisimai/bite/email/sendmail.rb +290 -0
  52. data/lib/sisimai/bite/email/surfcontrol.rb +162 -0
  53. data/lib/sisimai/bite/email/userdefined.rb +129 -0
  54. data/lib/sisimai/bite/email/v5sendmail.rb +208 -0
  55. data/lib/sisimai/bite/email/verizon.rb +265 -0
  56. data/lib/sisimai/bite/email/x1.rb +124 -0
  57. data/lib/sisimai/bite/email/x2.rb +125 -0
  58. data/lib/sisimai/bite/email/x3.rb +141 -0
  59. data/lib/sisimai/bite/email/x4.rb +325 -0
  60. data/lib/sisimai/bite/email/x5.rb +178 -0
  61. data/lib/sisimai/bite/email/yahoo.rb +148 -0
  62. data/lib/sisimai/bite/email/yandex.rb +204 -0
  63. data/lib/sisimai/bite/email/zoho.rb +167 -0
  64. data/lib/sisimai/bite/json.rb +38 -0
  65. data/lib/sisimai/bite/json/amazonses.rb +255 -0
  66. data/lib/sisimai/bite/json/sendgrid.rb +79 -0
  67. data/lib/sisimai/ced.rb +30 -6
  68. data/lib/sisimai/data.rb +5 -5
  69. data/lib/sisimai/message.rb +6 -6
  70. data/lib/sisimai/message/email.rb +12 -11
  71. data/lib/sisimai/message/json.rb +20 -19
  72. data/lib/sisimai/msp.rb +15 -3
  73. data/lib/sisimai/mta.rb +15 -3
  74. data/lib/sisimai/order.rb +1 -1
  75. data/lib/sisimai/order/email.rb +113 -119
  76. data/lib/sisimai/order/json.rb +11 -10
  77. data/lib/sisimai/reason.rb +5 -4
  78. data/lib/sisimai/reason/policyviolation.rb +64 -0
  79. data/lib/sisimai/reason/securityerror.rb +13 -23
  80. data/lib/sisimai/reason/spamdetected.rb +1 -0
  81. data/lib/sisimai/reason/syntaxerror.rb +1 -0
  82. data/lib/sisimai/reason/virusdetected.rb +56 -0
  83. data/lib/sisimai/rfc3464.rb +8 -8
  84. data/lib/sisimai/rfc3834.rb +2 -2
  85. data/lib/sisimai/rfc5322.rb +1 -1
  86. data/lib/sisimai/skeleton.rb +1 -1
  87. data/lib/sisimai/smtp/error.rb +3 -3
  88. data/lib/sisimai/smtp/status.rb +26 -24
  89. data/lib/sisimai/version.rb +1 -1
  90. data/set-of-emails/README.md +1 -0
  91. data/set-of-emails/{jsonapi/ced-us-amazonses-01.json → jsonobj/json-amazonses-01.json} +0 -0
  92. data/set-of-emails/{jsonapi/ced-us-amazonses-02.json → jsonobj/json-amazonses-02.json} +0 -0
  93. data/set-of-emails/{jsonapi/ced-us-amazonses-03.json → jsonobj/json-amazonses-03.json} +0 -0
  94. data/set-of-emails/{jsonapi/ced-us-amazonses-04.json → jsonobj/json-amazonses-04.json} +0 -0
  95. data/set-of-emails/{jsonapi/ced-us-amazonses-05.json → jsonobj/json-amazonses-05.json} +0 -0
  96. data/set-of-emails/{jsonapi/ced-us-sendgrid-01.json → jsonobj/json-sendgrid-01.json} +0 -0
  97. data/set-of-emails/{jsonapi/ced-us-sendgrid-02.json → jsonobj/json-sendgrid-02.json} +0 -0
  98. data/set-of-emails/{jsonapi/ced-us-sendgrid-03.json → jsonobj/json-sendgrid-03.json} +0 -0
  99. data/set-of-emails/{jsonapi/ced-us-sendgrid-04.json → jsonobj/json-sendgrid-04.json} +0 -0
  100. data/set-of-emails/{jsonapi/ced-us-sendgrid-05.json → jsonobj/json-sendgrid-05.json} +0 -0
  101. data/set-of-emails/{jsonapi/ced-us-sendgrid-06.json → jsonobj/json-sendgrid-06.json} +0 -0
  102. data/set-of-emails/{jsonapi/ced-us-sendgrid-07.json → jsonobj/json-sendgrid-07.json} +0 -0
  103. data/set-of-emails/{jsonapi/ced-us-sendgrid-08.json → jsonobj/json-sendgrid-08.json} +0 -0
  104. data/set-of-emails/{jsonapi/ced-us-sendgrid-09.json → jsonobj/json-sendgrid-09.json} +0 -0
  105. data/set-of-emails/{jsonapi/ced-us-sendgrid-10.json → jsonobj/json-sendgrid-10.json} +0 -0
  106. data/set-of-emails/{jsonapi/ced-us-sendgrid-11.json → jsonobj/json-sendgrid-11.json} +0 -0
  107. data/set-of-emails/maildir/bsd/README.md +25 -17
  108. data/set-of-emails/maildir/bsd/{mta-activehunter-01.eml → email-activehunter-01.eml} +0 -0
  109. data/set-of-emails/maildir/bsd/{mta-activehunter-02.eml → email-activehunter-02.eml} +0 -0
  110. data/set-of-emails/maildir/bsd/{msp-us-amazonses-01.eml → email-amazonses-01.eml} +0 -0
  111. data/set-of-emails/maildir/bsd/{msp-us-amazonses-02.eml → email-amazonses-02.eml} +0 -0
  112. data/set-of-emails/maildir/bsd/{msp-us-amazonses-03.eml → email-amazonses-03.eml} +0 -0
  113. data/set-of-emails/maildir/bsd/{msp-us-amazonses-04.eml → email-amazonses-04.eml} +0 -0
  114. data/set-of-emails/maildir/bsd/{msp-us-amazonses-05.eml → email-amazonses-05.eml} +0 -0
  115. data/set-of-emails/maildir/bsd/{msp-us-amazonses-06.eml → email-amazonses-06.eml} +0 -0
  116. data/set-of-emails/maildir/bsd/{msp-us-amazonses-07.eml → email-amazonses-07.eml} +0 -0
  117. data/set-of-emails/maildir/bsd/{msp-us-amazonses-08.eml → email-amazonses-08.eml} +0 -0
  118. data/set-of-emails/maildir/bsd/{ced-us-amazonses-01.eml → email-amazonses-09.eml} +0 -0
  119. data/set-of-emails/maildir/bsd/{ced-us-amazonses-02.eml → email-amazonses-10.eml} +0 -0
  120. data/set-of-emails/maildir/bsd/{ced-us-amazonses-03.eml → email-amazonses-11.eml} +0 -0
  121. data/set-of-emails/maildir/bsd/{ced-us-amazonses-04.eml → email-amazonses-12.eml} +0 -0
  122. data/set-of-emails/maildir/bsd/{ced-us-amazonses-05.eml → email-amazonses-13.eml} +0 -0
  123. data/set-of-emails/maildir/bsd/{msp-us-amazonworkmail-01.eml → email-amazonworkmail-01.eml} +0 -0
  124. data/set-of-emails/maildir/bsd/{msp-us-amazonworkmail-02.eml → email-amazonworkmail-02.eml} +0 -0
  125. data/set-of-emails/maildir/bsd/{msp-us-amazonworkmail-03.eml → email-amazonworkmail-03.eml} +0 -0
  126. data/set-of-emails/maildir/bsd/{msp-us-amazonworkmail-04.eml → email-amazonworkmail-04.eml} +0 -0
  127. data/set-of-emails/maildir/bsd/{msp-us-amazonworkmail-05.eml → email-amazonworkmail-05.eml} +0 -0
  128. data/set-of-emails/maildir/bsd/{msp-us-amazonworkmail-06.eml → email-amazonworkmail-06.eml} +0 -0
  129. data/set-of-emails/maildir/bsd/{msp-us-amazonworkmail-07.eml → email-amazonworkmail-07.eml} +0 -0
  130. data/set-of-emails/maildir/bsd/{msp-us-aol-01.eml → email-aol-01.eml} +0 -0
  131. data/set-of-emails/maildir/bsd/{msp-us-aol-02.eml → email-aol-02.eml} +0 -0
  132. data/set-of-emails/maildir/bsd/{msp-us-aol-03.eml → email-aol-03.eml} +0 -0
  133. data/set-of-emails/maildir/bsd/{msp-us-aol-04.eml → email-aol-04.eml} +0 -0
  134. data/set-of-emails/maildir/bsd/{msp-us-aol-05.eml → email-aol-05.eml} +0 -0
  135. data/set-of-emails/maildir/bsd/{msp-us-aol-06.eml → email-aol-06.eml} +0 -0
  136. data/set-of-emails/maildir/bsd/{mta-apachejames-01.eml → email-apachejames-01.eml} +0 -0
  137. data/set-of-emails/maildir/bsd/{msp-us-bigfoot-01.eml → email-bigfoot-01.eml} +0 -0
  138. data/set-of-emails/maildir/bsd/{msp-jp-biglobe-01.eml → email-biglobe-01.eml} +0 -0
  139. data/set-of-emails/maildir/bsd/{mta-courier-01.eml → email-courier-01.eml} +0 -0
  140. data/set-of-emails/maildir/bsd/{mta-courier-02.eml → email-courier-02.eml} +0 -0
  141. data/set-of-emails/maildir/bsd/{mta-courier-03.eml → email-courier-03.eml} +0 -0
  142. data/set-of-emails/maildir/bsd/{mta-courier-04.eml → email-courier-04.eml} +0 -0
  143. data/set-of-emails/maildir/bsd/{mta-domino-01.eml → email-domino-01.eml} +0 -0
  144. data/set-of-emails/maildir/bsd/{mta-domino-02.eml → email-domino-02.eml} +0 -0
  145. data/set-of-emails/maildir/bsd/{msp-de-einsundeins-01.eml → email-einsundeins-01.eml} +0 -0
  146. data/set-of-emails/maildir/bsd/{mta-exchange2003-01.eml → email-exchange2003-01.eml} +0 -0
  147. data/set-of-emails/maildir/bsd/{mta-exchange2003-02.eml → email-exchange2003-02.eml} +0 -0
  148. data/set-of-emails/maildir/bsd/{mta-exchange2003-03.eml → email-exchange2003-03.eml} +0 -0
  149. data/set-of-emails/maildir/bsd/{mta-exchange2003-04.eml → email-exchange2003-04.eml} +0 -0
  150. data/set-of-emails/maildir/bsd/{mta-exchange2003-05.eml → email-exchange2003-05.eml} +0 -0
  151. data/set-of-emails/maildir/bsd/{mta-exchange2003-06.eml → email-exchange2003-06.eml} +0 -0
  152. data/set-of-emails/maildir/bsd/{mta-exchange2007-01.eml → email-exchange2007-01.eml} +0 -0
  153. data/set-of-emails/maildir/bsd/{mta-exchange2007-02.eml → email-exchange2007-02.eml} +0 -0
  154. data/set-of-emails/maildir/bsd/{mta-exchange2007-03.eml → email-exchange2007-03.eml} +0 -0
  155. data/set-of-emails/maildir/bsd/{mta-exim-01.eml → email-exim-01.eml} +0 -0
  156. data/set-of-emails/maildir/bsd/{mta-exim-02.eml → email-exim-02.eml} +0 -0
  157. data/set-of-emails/maildir/bsd/{mta-exim-03.eml → email-exim-03.eml} +0 -0
  158. data/set-of-emails/maildir/bsd/{mta-exim-04.eml → email-exim-04.eml} +0 -0
  159. data/set-of-emails/maildir/bsd/{mta-exim-05.eml → email-exim-05.eml} +0 -0
  160. data/set-of-emails/maildir/bsd/{mta-exim-06.eml → email-exim-06.eml} +0 -0
  161. data/set-of-emails/maildir/bsd/{mta-exim-07.eml → email-exim-07.eml} +0 -0
  162. data/set-of-emails/maildir/bsd/{mta-exim-08.eml → email-exim-08.eml} +0 -0
  163. data/set-of-emails/maildir/bsd/{mta-exim-09.eml → email-exim-09.eml} +0 -0
  164. data/set-of-emails/maildir/bsd/{mta-exim-10.eml → email-exim-10.eml} +0 -0
  165. data/set-of-emails/maildir/bsd/{mta-exim-11.eml → email-exim-11.eml} +0 -0
  166. data/set-of-emails/maildir/bsd/{mta-exim-12.eml → email-exim-12.eml} +0 -0
  167. data/set-of-emails/maildir/bsd/{mta-exim-13.eml → email-exim-13.eml} +0 -0
  168. data/set-of-emails/maildir/bsd/{mta-exim-14.eml → email-exim-14.eml} +0 -0
  169. data/set-of-emails/maildir/bsd/{mta-exim-15.eml → email-exim-15.eml} +0 -0
  170. data/set-of-emails/maildir/bsd/{mta-exim-16.eml → email-exim-16.eml} +0 -0
  171. data/set-of-emails/maildir/bsd/{mta-exim-17.eml → email-exim-17.eml} +0 -0
  172. data/set-of-emails/maildir/bsd/{mta-exim-18.eml → email-exim-18.eml} +0 -0
  173. data/set-of-emails/maildir/bsd/{mta-exim-19.eml → email-exim-19.eml} +0 -0
  174. data/set-of-emails/maildir/bsd/{mta-exim-20.eml → email-exim-20.eml} +0 -0
  175. data/set-of-emails/maildir/bsd/{mta-exim-21.eml → email-exim-21.eml} +0 -0
  176. data/set-of-emails/maildir/bsd/{mta-exim-22.eml → email-exim-22.eml} +0 -0
  177. data/set-of-emails/maildir/bsd/{mta-exim-23.eml → email-exim-23.eml} +0 -0
  178. data/set-of-emails/maildir/bsd/{mta-exim-24.eml → email-exim-24.eml} +0 -0
  179. data/set-of-emails/maildir/bsd/{mta-exim-25.eml → email-exim-25.eml} +0 -0
  180. data/set-of-emails/maildir/bsd/{mta-exim-26.eml → email-exim-26.eml} +0 -0
  181. data/set-of-emails/maildir/bsd/{mta-exim-27.eml → email-exim-27.eml} +0 -0
  182. data/set-of-emails/maildir/bsd/{mta-exim-28.eml → email-exim-28.eml} +0 -0
  183. data/set-of-emails/maildir/bsd/{mta-exim-29.eml → email-exim-29.eml} +0 -0
  184. data/set-of-emails/maildir/bsd/{mta-exim-30.eml → email-exim-30.eml} +0 -0
  185. data/set-of-emails/maildir/bsd/{msp-jp-ezweb-01.eml → email-ezweb-01.eml} +0 -0
  186. data/set-of-emails/maildir/bsd/{msp-jp-ezweb-02.eml → email-ezweb-02.eml} +0 -0
  187. data/set-of-emails/maildir/bsd/{msp-jp-ezweb-03.eml → email-ezweb-03.eml} +0 -0
  188. data/set-of-emails/maildir/bsd/{msp-jp-ezweb-04.eml → email-ezweb-04.eml} +0 -0
  189. data/set-of-emails/maildir/bsd/{msp-jp-ezweb-05.eml → email-ezweb-05.eml} +0 -0
  190. data/set-of-emails/maildir/bsd/{msp-jp-ezweb-06.eml → email-ezweb-06.eml} +0 -0
  191. data/set-of-emails/maildir/bsd/{msp-us-facebook-01.eml → email-facebook-01.eml} +0 -0
  192. data/set-of-emails/maildir/bsd/{msp-us-facebook-02.eml → email-facebook-02.eml} +0 -0
  193. data/set-of-emails/maildir/bsd/{msp-de-gmx-01.eml → email-gmx-01.eml} +0 -0
  194. data/set-of-emails/maildir/bsd/{msp-de-gmx-02.eml → email-gmx-02.eml} +0 -0
  195. data/set-of-emails/maildir/bsd/{msp-de-gmx-03.eml → email-gmx-03.eml} +0 -0
  196. data/set-of-emails/maildir/bsd/{msp-de-gmx-04.eml → email-gmx-04.eml} +0 -0
  197. data/set-of-emails/maildir/bsd/{msp-us-google-01.eml → email-google-01.eml} +0 -0
  198. data/set-of-emails/maildir/bsd/{msp-us-google-02.eml → email-google-02.eml} +0 -0
  199. data/set-of-emails/maildir/bsd/{msp-us-google-03.eml → email-google-03.eml} +0 -0
  200. data/set-of-emails/maildir/bsd/{msp-us-google-04.eml → email-google-04.eml} +0 -0
  201. data/set-of-emails/maildir/bsd/{msp-us-google-05.eml → email-google-05.eml} +0 -0
  202. data/set-of-emails/maildir/bsd/{msp-us-google-06.eml → email-google-06.eml} +0 -0
  203. data/set-of-emails/maildir/bsd/{msp-us-google-07.eml → email-google-07.eml} +0 -0
  204. data/set-of-emails/maildir/bsd/{msp-us-google-08.eml → email-google-08.eml} +0 -0
  205. data/set-of-emails/maildir/bsd/{msp-us-google-09.eml → email-google-09.eml} +0 -0
  206. data/set-of-emails/maildir/bsd/{msp-us-google-10.eml → email-google-10.eml} +0 -0
  207. data/set-of-emails/maildir/bsd/{msp-us-google-11.eml → email-google-11.eml} +0 -0
  208. data/set-of-emails/maildir/bsd/{msp-us-google-12.eml → email-google-12.eml} +0 -0
  209. data/set-of-emails/maildir/bsd/{msp-us-google-13.eml → email-google-13.eml} +0 -0
  210. data/set-of-emails/maildir/bsd/{msp-us-google-14.eml → email-google-14.eml} +0 -0
  211. data/set-of-emails/maildir/bsd/{msp-us-google-15.eml → email-google-15.eml} +0 -0
  212. data/set-of-emails/maildir/bsd/{msp-us-google-16.eml → email-google-16.eml} +0 -0
  213. data/set-of-emails/maildir/bsd/{msp-us-google-17.eml → email-google-17.eml} +0 -0
  214. data/set-of-emails/maildir/bsd/{msp-us-gsuite-01.eml → email-gsuite-01.eml} +0 -0
  215. data/set-of-emails/maildir/bsd/{msp-us-gsuite-02.eml → email-gsuite-02.eml} +0 -0
  216. data/set-of-emails/maildir/bsd/{msp-us-gsuite-03.eml → email-gsuite-03.eml} +0 -0
  217. data/set-of-emails/maildir/bsd/{msp-us-gsuite-04.eml → email-gsuite-04.eml} +0 -0
  218. data/set-of-emails/maildir/bsd/{msp-us-gsuite-05.eml → email-gsuite-05.eml} +0 -0
  219. data/set-of-emails/maildir/bsd/{msp-us-gsuite-06.eml → email-gsuite-06.eml} +0 -0
  220. data/set-of-emails/maildir/bsd/{msp-us-gsuite-07.eml → email-gsuite-07.eml} +0 -0
  221. data/set-of-emails/maildir/bsd/{mta-imailserver-01.eml → email-imailserver-01.eml} +0 -0
  222. data/set-of-emails/maildir/bsd/{mta-imailserver-02.eml → email-imailserver-02.eml} +0 -0
  223. data/set-of-emails/maildir/bsd/{mta-imailserver-03.eml → email-imailserver-03.eml} +0 -0
  224. data/set-of-emails/maildir/bsd/{mta-imailserver-04.eml → email-imailserver-04.eml} +0 -0
  225. data/set-of-emails/maildir/bsd/{mta-imailserver-05.eml → email-imailserver-05.eml} +0 -0
  226. data/set-of-emails/maildir/bsd/{mta-imailserver-06.eml → email-imailserver-06.eml} +0 -0
  227. data/set-of-emails/maildir/bsd/{mta-interscanmss-01.eml → email-interscanmss-01.eml} +0 -0
  228. data/set-of-emails/maildir/bsd/{mta-interscanmss-02.eml → email-interscanmss-02.eml} +0 -0
  229. data/set-of-emails/maildir/bsd/{msp-jp-kddi-01.eml → email-kddi-01.eml} +0 -0
  230. data/set-of-emails/maildir/bsd/{msp-jp-kddi-02.eml → email-kddi-02.eml} +0 -0
  231. data/set-of-emails/maildir/bsd/{msp-jp-kddi-03.eml → email-kddi-03.eml} +0 -0
  232. data/set-of-emails/maildir/bsd/{mta-mailfoundry-01.eml → email-mailfoundry-01.eml} +0 -0
  233. data/set-of-emails/maildir/bsd/{mta-mailfoundry-02.eml → email-mailfoundry-02.eml} +0 -0
  234. data/set-of-emails/maildir/bsd/{mta-mailmarshalsmtp-01.eml → email-mailmarshalsmtp-01.eml} +0 -0
  235. data/set-of-emails/maildir/bsd/{msp-ru-mailru-01.eml → email-mailru-01.eml} +0 -0
  236. data/set-of-emails/maildir/bsd/{msp-ru-mailru-02.eml → email-mailru-02.eml} +0 -0
  237. data/set-of-emails/maildir/bsd/{msp-ru-mailru-03.eml → email-mailru-03.eml} +0 -0
  238. data/set-of-emails/maildir/bsd/{msp-ru-mailru-04.eml → email-mailru-04.eml} +0 -0
  239. data/set-of-emails/maildir/bsd/{msp-ru-mailru-05.eml → email-mailru-05.eml} +0 -0
  240. data/set-of-emails/maildir/bsd/{msp-ru-mailru-06.eml → email-mailru-06.eml} +0 -0
  241. data/set-of-emails/maildir/bsd/{mta-mcafee-01.eml → email-mcafee-01.eml} +0 -0
  242. data/set-of-emails/maildir/bsd/{mta-mcafee-02.eml → email-mcafee-02.eml} +0 -0
  243. data/set-of-emails/maildir/bsd/{mta-mcafee-03.eml → email-mcafee-03.eml} +0 -0
  244. data/set-of-emails/maildir/bsd/{msp-uk-messagelabs-01.eml → email-messagelabs-01.eml} +0 -0
  245. data/set-of-emails/maildir/bsd/{mta-messagingserver-01.eml → email-messagingserver-01.eml} +0 -0
  246. data/set-of-emails/maildir/bsd/{mta-messagingserver-02.eml → email-messagingserver-02.eml} +0 -0
  247. data/set-of-emails/maildir/bsd/{mta-messagingserver-03.eml → email-messagingserver-03.eml} +0 -0
  248. data/set-of-emails/maildir/bsd/{mta-messagingserver-04.eml → email-messagingserver-04.eml} +0 -0
  249. data/set-of-emails/maildir/bsd/{mta-messagingserver-05.eml → email-messagingserver-05.eml} +0 -0
  250. data/set-of-emails/maildir/bsd/{mta-messagingserver-06.eml → email-messagingserver-06.eml} +0 -0
  251. data/set-of-emails/maildir/bsd/{mta-messagingserver-07.eml → email-messagingserver-07.eml} +0 -0
  252. data/set-of-emails/maildir/bsd/{mta-mfilter-01.eml → email-mfilter-01.eml} +0 -0
  253. data/set-of-emails/maildir/bsd/{mta-mfilter-02.eml → email-mfilter-02.eml} +0 -0
  254. data/set-of-emails/maildir/bsd/{mta-mfilter-03.eml → email-mfilter-03.eml} +0 -0
  255. data/set-of-emails/maildir/bsd/{mta-mxlogic-01.eml → email-mxlogic-01.eml} +0 -0
  256. data/set-of-emails/maildir/bsd/{mta-mxlogic-02.eml → email-mxlogic-02.eml} +0 -0
  257. data/set-of-emails/maildir/bsd/{mta-mxlogic-03.eml → email-mxlogic-03.eml} +0 -0
  258. data/set-of-emails/maildir/bsd/{mta-notes-01.eml → email-notes-01.eml} +0 -0
  259. data/set-of-emails/maildir/bsd/{mta-notes-02.eml → email-notes-02.eml} +0 -0
  260. data/set-of-emails/maildir/bsd/{mta-notes-03.eml → email-notes-03.eml} +0 -0
  261. data/set-of-emails/maildir/bsd/{mta-notes-04.eml → email-notes-04.eml} +0 -0
  262. data/set-of-emails/maildir/bsd/{msp-us-office365-01.eml → email-office365-01.eml} +0 -0
  263. data/set-of-emails/maildir/bsd/{msp-us-office365-02.eml → email-office365-02.eml} +0 -0
  264. data/set-of-emails/maildir/bsd/{mta-opensmtpd-01.eml → email-opensmtpd-01.eml} +0 -0
  265. data/set-of-emails/maildir/bsd/{mta-opensmtpd-02.eml → email-opensmtpd-02.eml} +0 -0
  266. data/set-of-emails/maildir/bsd/{mta-opensmtpd-03.eml → email-opensmtpd-03.eml} +0 -0
  267. data/set-of-emails/maildir/bsd/{mta-opensmtpd-04.eml → email-opensmtpd-04.eml} +0 -0
  268. data/set-of-emails/maildir/bsd/{mta-opensmtpd-05.eml → email-opensmtpd-05.eml} +0 -0
  269. data/set-of-emails/maildir/bsd/{mta-opensmtpd-06.eml → email-opensmtpd-06.eml} +0 -0
  270. data/set-of-emails/maildir/bsd/{msp-us-outlook-01.eml → email-outlook-01.eml} +0 -0
  271. data/set-of-emails/maildir/bsd/{msp-us-outlook-02.eml → email-outlook-02.eml} +0 -0
  272. data/set-of-emails/maildir/bsd/{msp-us-outlook-03.eml → email-outlook-03.eml} +0 -0
  273. data/set-of-emails/maildir/bsd/{msp-us-outlook-04.eml → email-outlook-04.eml} +0 -0
  274. data/set-of-emails/maildir/bsd/{msp-us-outlook-05.eml → email-outlook-05.eml} +0 -0
  275. data/set-of-emails/maildir/bsd/{msp-us-outlook-06.eml → email-outlook-06.eml} +0 -0
  276. data/set-of-emails/maildir/bsd/{msp-us-outlook-07.eml → email-outlook-07.eml} +0 -0
  277. data/set-of-emails/maildir/bsd/{mta-postfix-01.eml → email-postfix-01.eml} +0 -0
  278. data/set-of-emails/maildir/bsd/{mta-postfix-02.eml → email-postfix-02.eml} +0 -0
  279. data/set-of-emails/maildir/bsd/{mta-postfix-03.eml → email-postfix-03.eml} +0 -0
  280. data/set-of-emails/maildir/bsd/{mta-postfix-04.eml → email-postfix-04.eml} +0 -0
  281. data/set-of-emails/maildir/bsd/{mta-postfix-05.eml → email-postfix-05.eml} +0 -0
  282. data/set-of-emails/maildir/bsd/{mta-postfix-06.eml → email-postfix-06.eml} +0 -0
  283. data/set-of-emails/maildir/bsd/{mta-postfix-07.eml → email-postfix-07.eml} +0 -0
  284. data/set-of-emails/maildir/bsd/{mta-postfix-08.eml → email-postfix-08.eml} +0 -0
  285. data/set-of-emails/maildir/bsd/{mta-postfix-09.eml → email-postfix-09.eml} +0 -0
  286. data/set-of-emails/maildir/bsd/{mta-postfix-10.eml → email-postfix-10.eml} +0 -0
  287. data/set-of-emails/maildir/bsd/{mta-postfix-11.eml → email-postfix-11.eml} +0 -0
  288. data/set-of-emails/maildir/bsd/{mta-postfix-12.eml → email-postfix-12.eml} +0 -0
  289. data/set-of-emails/maildir/bsd/{mta-postfix-13.eml → email-postfix-13.eml} +0 -0
  290. data/set-of-emails/maildir/bsd/{mta-postfix-14.eml → email-postfix-14.eml} +0 -0
  291. data/set-of-emails/maildir/bsd/{mta-postfix-15.eml → email-postfix-15.eml} +0 -0
  292. data/set-of-emails/maildir/bsd/{mta-postfix-16.eml → email-postfix-16.eml} +0 -0
  293. data/set-of-emails/maildir/bsd/{mta-postfix-17.eml → email-postfix-17.eml} +0 -0
  294. data/set-of-emails/maildir/bsd/{mta-postfix-18.eml → email-postfix-18.eml} +0 -0
  295. data/set-of-emails/maildir/bsd/{mta-postfix-19.eml → email-postfix-19.eml} +0 -0
  296. data/set-of-emails/maildir/bsd/{mta-postfix-20.eml → email-postfix-20.eml} +0 -0
  297. data/set-of-emails/maildir/bsd/{mta-postfix-21.eml → email-postfix-21.eml} +0 -0
  298. data/set-of-emails/maildir/bsd/{mta-postfix-22.eml → email-postfix-22.eml} +0 -0
  299. data/set-of-emails/maildir/bsd/{mta-postfix-23.eml → email-postfix-23.eml} +0 -0
  300. data/set-of-emails/maildir/bsd/{mta-postfix-24.eml → email-postfix-24.eml} +0 -0
  301. data/set-of-emails/maildir/bsd/{mta-postfix-25.eml → email-postfix-25.eml} +0 -0
  302. data/set-of-emails/maildir/bsd/{mta-postfix-26.eml → email-postfix-26.eml} +0 -0
  303. data/set-of-emails/maildir/bsd/{mta-postfix-27.eml → email-postfix-27.eml} +0 -0
  304. data/set-of-emails/maildir/bsd/{mta-postfix-28.eml → email-postfix-28.eml} +0 -0
  305. data/set-of-emails/maildir/bsd/{mta-postfix-29.eml → email-postfix-29.eml} +0 -0
  306. data/set-of-emails/maildir/bsd/{mta-qmail-01.eml → email-qmail-01.eml} +0 -0
  307. data/set-of-emails/maildir/bsd/{mta-qmail-02.eml → email-qmail-02.eml} +0 -0
  308. data/set-of-emails/maildir/bsd/{mta-qmail-03.eml → email-qmail-03.eml} +0 -0
  309. data/set-of-emails/maildir/bsd/{mta-qmail-04.eml → email-qmail-04.eml} +0 -0
  310. data/set-of-emails/maildir/bsd/{mta-qmail-05.eml → email-qmail-05.eml} +0 -0
  311. data/set-of-emails/maildir/bsd/{mta-qmail-06.eml → email-qmail-06.eml} +0 -0
  312. data/set-of-emails/maildir/bsd/{mta-qmail-07.eml → email-qmail-07.eml} +0 -0
  313. data/set-of-emails/maildir/bsd/{mta-qmail-08.eml → email-qmail-08.eml} +0 -0
  314. data/set-of-emails/maildir/bsd/{mta-qmail-09.eml → email-qmail-09.eml} +0 -0
  315. data/set-of-emails/maildir/bsd/{mta-qmail-10.eml → email-qmail-10.eml} +0 -0
  316. data/set-of-emails/maildir/bsd/{mta-qmail-11.eml → email-qmail-11.eml} +0 -0
  317. data/set-of-emails/maildir/bsd/{mta-qmail-12.eml → email-qmail-12.eml} +0 -0
  318. data/set-of-emails/maildir/bsd/{msp-us-receivingses-01.eml → email-receivingses-01.eml} +0 -0
  319. data/set-of-emails/maildir/bsd/{msp-us-receivingses-02.eml → email-receivingses-02.eml} +0 -0
  320. data/set-of-emails/maildir/bsd/{msp-us-receivingses-03.eml → email-receivingses-03.eml} +0 -0
  321. data/set-of-emails/maildir/bsd/{msp-us-receivingses-04.eml → email-receivingses-04.eml} +0 -0
  322. data/set-of-emails/maildir/bsd/{msp-us-receivingses-05.eml → email-receivingses-05.eml} +0 -0
  323. data/set-of-emails/maildir/bsd/{msp-us-receivingses-06.eml → email-receivingses-06.eml} +0 -0
  324. data/set-of-emails/maildir/bsd/{msp-us-receivingses-07.eml → email-receivingses-07.eml} +0 -0
  325. data/set-of-emails/maildir/bsd/{msp-us-sendgrid-01.eml → email-sendgrid-01.eml} +0 -0
  326. data/set-of-emails/maildir/bsd/{msp-us-sendgrid-02.eml → email-sendgrid-02.eml} +0 -0
  327. data/set-of-emails/maildir/bsd/{msp-us-sendgrid-03.eml → email-sendgrid-03.eml} +0 -0
  328. data/set-of-emails/maildir/bsd/{mta-sendmail-01.eml → email-sendmail-01.eml} +0 -0
  329. data/set-of-emails/maildir/bsd/{mta-sendmail-02.eml → email-sendmail-02.eml} +0 -0
  330. data/set-of-emails/maildir/bsd/{mta-sendmail-03.eml → email-sendmail-03.eml} +0 -0
  331. data/set-of-emails/maildir/bsd/{mta-sendmail-04.eml → email-sendmail-04.eml} +0 -0
  332. data/set-of-emails/maildir/bsd/{mta-sendmail-05.eml → email-sendmail-05.eml} +0 -0
  333. data/set-of-emails/maildir/bsd/{mta-sendmail-06.eml → email-sendmail-06.eml} +0 -0
  334. data/set-of-emails/maildir/bsd/{mta-sendmail-07.eml → email-sendmail-07.eml} +0 -0
  335. data/set-of-emails/maildir/bsd/{mta-sendmail-08.eml → email-sendmail-08.eml} +0 -0
  336. data/set-of-emails/maildir/bsd/{mta-sendmail-09.eml → email-sendmail-09.eml} +0 -0
  337. data/set-of-emails/maildir/bsd/{mta-sendmail-10.eml → email-sendmail-10.eml} +0 -0
  338. data/set-of-emails/maildir/bsd/{mta-sendmail-11.eml → email-sendmail-11.eml} +0 -0
  339. data/set-of-emails/maildir/bsd/{mta-sendmail-12.eml → email-sendmail-12.eml} +0 -0
  340. data/set-of-emails/maildir/bsd/{mta-sendmail-13.eml → email-sendmail-13.eml} +0 -0
  341. data/set-of-emails/maildir/bsd/{mta-sendmail-14.eml → email-sendmail-14.eml} +0 -0
  342. data/set-of-emails/maildir/bsd/{mta-sendmail-15.eml → email-sendmail-15.eml} +0 -0
  343. data/set-of-emails/maildir/bsd/{mta-sendmail-16.eml → email-sendmail-16.eml} +0 -0
  344. data/set-of-emails/maildir/bsd/{mta-sendmail-17.eml → email-sendmail-17.eml} +0 -0
  345. data/set-of-emails/maildir/bsd/{mta-sendmail-18.eml → email-sendmail-18.eml} +0 -0
  346. data/set-of-emails/maildir/bsd/{mta-sendmail-19.eml → email-sendmail-19.eml} +0 -0
  347. data/set-of-emails/maildir/bsd/{mta-sendmail-20.eml → email-sendmail-20.eml} +0 -0
  348. data/set-of-emails/maildir/bsd/{mta-sendmail-21.eml → email-sendmail-21.eml} +0 -0
  349. data/set-of-emails/maildir/bsd/{mta-sendmail-22.eml → email-sendmail-22.eml} +0 -0
  350. data/set-of-emails/maildir/bsd/{mta-sendmail-23.eml → email-sendmail-23.eml} +0 -0
  351. data/set-of-emails/maildir/bsd/{mta-sendmail-24.eml → email-sendmail-24.eml} +0 -0
  352. data/set-of-emails/maildir/bsd/{mta-sendmail-25.eml → email-sendmail-25.eml} +0 -0
  353. data/set-of-emails/maildir/bsd/{mta-sendmail-26.eml → email-sendmail-26.eml} +0 -0
  354. data/set-of-emails/maildir/bsd/{mta-sendmail-27.eml → email-sendmail-27.eml} +0 -0
  355. data/set-of-emails/maildir/bsd/{mta-sendmail-28.eml → email-sendmail-28.eml} +0 -0
  356. data/set-of-emails/maildir/bsd/{mta-sendmail-29.eml → email-sendmail-29.eml} +0 -0
  357. data/set-of-emails/maildir/bsd/{mta-sendmail-30.eml → email-sendmail-30.eml} +0 -0
  358. data/set-of-emails/maildir/bsd/{mta-sendmail-31.eml → email-sendmail-31.eml} +0 -0
  359. data/set-of-emails/maildir/bsd/{mta-sendmail-32.eml → email-sendmail-32.eml} +0 -0
  360. data/set-of-emails/maildir/bsd/{mta-sendmail-33.eml → email-sendmail-33.eml} +0 -0
  361. data/set-of-emails/maildir/bsd/{mta-sendmail-34.eml → email-sendmail-34.eml} +0 -0
  362. data/set-of-emails/maildir/bsd/{mta-sendmail-35.eml → email-sendmail-35.eml} +0 -0
  363. data/set-of-emails/maildir/bsd/{mta-sendmail-36.eml → email-sendmail-36.eml} +0 -0
  364. data/set-of-emails/maildir/bsd/{mta-sendmail-37.eml → email-sendmail-37.eml} +0 -0
  365. data/set-of-emails/maildir/bsd/{mta-sendmail-38.eml → email-sendmail-38.eml} +0 -0
  366. data/set-of-emails/maildir/bsd/{mta-sendmail-39.eml → email-sendmail-39.eml} +0 -0
  367. data/set-of-emails/maildir/bsd/{mta-sendmail-40.eml → email-sendmail-40.eml} +0 -0
  368. data/set-of-emails/maildir/bsd/{mta-sendmail-41.eml → email-sendmail-41.eml} +0 -0
  369. data/set-of-emails/maildir/bsd/{mta-sendmail-42.eml → email-sendmail-42.eml} +0 -0
  370. data/set-of-emails/maildir/bsd/{mta-sendmail-43.eml → email-sendmail-43.eml} +0 -0
  371. data/set-of-emails/maildir/bsd/email-sendmail-44.eml +67 -0
  372. data/set-of-emails/maildir/bsd/{mta-surfcontrol-01.eml → email-surfcontrol-01.eml} +0 -0
  373. data/set-of-emails/maildir/bsd/{mta-surfcontrol-02.eml → email-surfcontrol-02.eml} +0 -0
  374. data/set-of-emails/maildir/bsd/{mta-surfcontrol-03.eml → email-surfcontrol-03.eml} +0 -0
  375. data/set-of-emails/maildir/bsd/{mta-v5sendmail-01.eml → email-v5sendmail-01.eml} +0 -0
  376. data/set-of-emails/maildir/bsd/{mta-v5sendmail-02.eml → email-v5sendmail-02.eml} +0 -0
  377. data/set-of-emails/maildir/bsd/{mta-v5sendmail-03.eml → email-v5sendmail-03.eml} +0 -0
  378. data/set-of-emails/maildir/bsd/{mta-v5sendmail-04.eml → email-v5sendmail-04.eml} +0 -0
  379. data/set-of-emails/maildir/bsd/{mta-v5sendmail-05.eml → email-v5sendmail-05.eml} +0 -0
  380. data/set-of-emails/maildir/bsd/{mta-v5sendmail-06.eml → email-v5sendmail-06.eml} +0 -0
  381. data/set-of-emails/maildir/bsd/{mta-v5sendmail-07.eml → email-v5sendmail-07.eml} +0 -0
  382. data/set-of-emails/maildir/bsd/{msp-us-verizon-01.eml → email-verizon-01.eml} +0 -0
  383. data/set-of-emails/maildir/bsd/{msp-us-verizon-02.eml → email-verizon-02.eml} +0 -0
  384. data/set-of-emails/maildir/bsd/{mta-x1-01.eml → email-x1-01.eml} +0 -0
  385. data/set-of-emails/maildir/bsd/{mta-x1-02.eml → email-x1-02.eml} +0 -0
  386. data/set-of-emails/maildir/bsd/{mta-x2-01.eml → email-x2-01.eml} +0 -0
  387. data/set-of-emails/maildir/bsd/{mta-x2-02.eml → email-x2-02.eml} +0 -0
  388. data/set-of-emails/maildir/bsd/{mta-x2-03.eml → email-x2-03.eml} +0 -0
  389. data/set-of-emails/maildir/bsd/{mta-x2-04.eml → email-x2-04.eml} +0 -0
  390. data/set-of-emails/maildir/bsd/{mta-x2-05.eml → email-x2-05.eml} +0 -0
  391. data/set-of-emails/maildir/bsd/{mta-x3-01.eml → email-x3-01.eml} +0 -0
  392. data/set-of-emails/maildir/bsd/{mta-x3-02.eml → email-x3-02.eml} +0 -0
  393. data/set-of-emails/maildir/bsd/{mta-x3-03.eml → email-x3-03.eml} +0 -0
  394. data/set-of-emails/maildir/bsd/{mta-x3-04.eml → email-x3-04.eml} +0 -0
  395. data/set-of-emails/maildir/bsd/{mta-x4-01.eml → email-x4-01.eml} +0 -0
  396. data/set-of-emails/maildir/bsd/{mta-x4-02.eml → email-x4-02.eml} +0 -0
  397. data/set-of-emails/maildir/bsd/{mta-x4-03.eml → email-x4-03.eml} +0 -0
  398. data/set-of-emails/maildir/bsd/{mta-x4-04.eml → email-x4-04.eml} +0 -0
  399. data/set-of-emails/maildir/bsd/{mta-x4-05.eml → email-x4-05.eml} +0 -0
  400. data/set-of-emails/maildir/bsd/{mta-x4-06.eml → email-x4-06.eml} +0 -0
  401. data/set-of-emails/maildir/bsd/{mta-x4-07.eml → email-x4-07.eml} +0 -0
  402. data/set-of-emails/maildir/bsd/{mta-x5-01.eml → email-x5-01.eml} +0 -0
  403. data/set-of-emails/maildir/bsd/{msp-us-yahoo-01.eml → email-yahoo-01.eml} +0 -0
  404. data/set-of-emails/maildir/bsd/{msp-us-yahoo-02.eml → email-yahoo-02.eml} +0 -0
  405. data/set-of-emails/maildir/bsd/{msp-us-yahoo-03.eml → email-yahoo-03.eml} +0 -0
  406. data/set-of-emails/maildir/bsd/{msp-us-yahoo-04.eml → email-yahoo-04.eml} +0 -0
  407. data/set-of-emails/maildir/bsd/{msp-us-yahoo-05.eml → email-yahoo-05.eml} +0 -0
  408. data/set-of-emails/maildir/bsd/{msp-ru-yandex-01.eml → email-yandex-01.eml} +0 -0
  409. data/set-of-emails/maildir/bsd/{msp-ru-yandex-02.eml → email-yandex-02.eml} +0 -0
  410. data/set-of-emails/maildir/bsd/{msp-ru-yandex-03.eml → email-yandex-03.eml} +0 -0
  411. data/set-of-emails/maildir/bsd/{msp-us-zoho-01.eml → email-zoho-01.eml} +0 -0
  412. data/set-of-emails/maildir/bsd/{msp-us-zoho-02.eml → email-zoho-02.eml} +0 -0
  413. data/set-of-emails/maildir/bsd/{msp-us-zoho-03.eml → email-zoho-03.eml} +0 -0
  414. data/set-of-emails/maildir/bsd/{msp-us-zoho-04.eml → email-zoho-04.eml} +0 -0
  415. data/set-of-emails/maildir/bsd/{msp-us-zoho-05.eml → email-zoho-05.eml} +0 -0
  416. data/set-of-emails/maildir/bsd/rfc3464-31.eml +141 -0
  417. data/set-of-emails/maildir/bsd/rfc3464-32.eml +158 -0
  418. data/set-of-emails/maildir/dos/{mta-activehunter-01.eml → email-activehunter-01.eml} +0 -0
  419. data/set-of-emails/maildir/dos/{msp-us-amazonses-01.eml → email-amazonses-01.eml} +0 -0
  420. data/set-of-emails/maildir/dos/{msp-us-amazonworkmail-01.eml → email-amazonworkmail-01.eml} +0 -0
  421. data/set-of-emails/maildir/dos/{msp-us-aol-01.eml → email-aol-01.eml} +0 -0
  422. data/set-of-emails/maildir/dos/{mta-apachejames-01.eml → email-apachejames-01.eml} +0 -0
  423. data/set-of-emails/maildir/dos/{msp-us-bigfoot-01.eml → email-bigfoot-01.eml} +0 -0
  424. data/set-of-emails/maildir/dos/{msp-jp-biglobe-01.eml → email-biglobe-01.eml} +0 -0
  425. data/set-of-emails/maildir/dos/{mta-courier-01.eml → email-courier-01.eml} +0 -0
  426. data/set-of-emails/maildir/dos/{mta-domino-01.eml → email-domino-01.eml} +0 -0
  427. data/set-of-emails/maildir/dos/{msp-de-einsundeins-01.eml → email-einsundeins-01.eml} +0 -0
  428. data/set-of-emails/maildir/dos/{mta-exchange-01.eml → email-exchange-01.eml} +0 -0
  429. data/set-of-emails/maildir/dos/{mta-exchange2003-01.eml → email-exchange2003-01.eml} +0 -0
  430. data/set-of-emails/maildir/dos/{mta-exchange2007-01.eml → email-exchange2007-01.eml} +0 -0
  431. data/set-of-emails/maildir/dos/{mta-exim-01.eml → email-exim-01.eml} +0 -0
  432. data/set-of-emails/maildir/dos/{msp-jp-ezweb-01.eml → email-ezweb-01.eml} +0 -0
  433. data/set-of-emails/maildir/dos/{msp-us-facebook-01.eml → email-facebook-01.eml} +0 -0
  434. data/set-of-emails/maildir/dos/{msp-de-gmx-01.eml → email-gmx-01.eml} +0 -0
  435. data/set-of-emails/maildir/dos/{msp-us-google-01.eml → email-google-01.eml} +0 -0
  436. data/set-of-emails/maildir/dos/{mta-imailserver-01.eml → email-imailserver-01.eml} +0 -0
  437. data/set-of-emails/maildir/dos/{mta-interscanmss-01.eml → email-interscanmss-01.eml} +0 -0
  438. data/set-of-emails/maildir/dos/{msp-jp-kddi-01.eml → email-kddi-01.eml} +0 -0
  439. data/set-of-emails/maildir/dos/{mta-mailfoundry-01.eml → email-mailfoundry-01.eml} +0 -0
  440. data/set-of-emails/maildir/dos/{mta-mailmarshalsmtp-01.eml → email-mailmarshalsmtp-01.eml} +0 -0
  441. data/set-of-emails/maildir/dos/{msp-ru-mailru-01.eml → email-mailru-01.eml} +0 -0
  442. data/set-of-emails/maildir/dos/{mta-mcafee-01.eml → email-mcafee-01.eml} +0 -0
  443. data/set-of-emails/maildir/dos/{msp-uk-messagelabs-01.eml → email-messagelabs-01.eml} +0 -0
  444. data/set-of-emails/maildir/dos/{mta-messagingserver-01.eml → email-messagingserver-01.eml} +0 -0
  445. data/set-of-emails/maildir/dos/{mta-mfilter-01.eml → email-mfilter-01.eml} +0 -0
  446. data/set-of-emails/maildir/dos/{mta-mxlogic-01.eml → email-mxlogic-01.eml} +0 -0
  447. data/set-of-emails/maildir/dos/{mta-notes-01.eml → email-notes-01.eml} +0 -0
  448. data/set-of-emails/maildir/dos/{msp-us-office365-01.eml → email-office365-01.eml} +0 -0
  449. data/set-of-emails/maildir/dos/{mta-opensmtpd-01.eml → email-opensmtpd-01.eml} +0 -0
  450. data/set-of-emails/maildir/dos/{msp-us-outlook-01.eml → email-outlook-01.eml} +0 -0
  451. data/set-of-emails/maildir/dos/{mta-postfix-01.eml → email-postfix-01.eml} +0 -0
  452. data/set-of-emails/maildir/dos/{mta-qmail-01.eml → email-qmail-01.eml} +0 -0
  453. data/set-of-emails/maildir/dos/{msp-us-receivingses-01.eml → email-receivingses-01.eml} +0 -0
  454. data/set-of-emails/maildir/dos/{msp-us-sendgrid-01.eml → email-sendgrid-01.eml} +0 -0
  455. data/set-of-emails/maildir/dos/{mta-sendmail-01.eml → email-sendmail-01.eml} +0 -0
  456. data/set-of-emails/maildir/dos/{mta-surfcontrol-01.eml → email-surfcontrol-01.eml} +0 -0
  457. data/set-of-emails/maildir/dos/{mta-v5sendmail-01.eml → email-v5sendmail-01.eml} +0 -0
  458. data/set-of-emails/maildir/dos/{msp-us-verizon-01.eml → email-verizon-01.eml} +0 -0
  459. data/set-of-emails/maildir/dos/{mta-x1-01.eml → email-x1-01.eml} +0 -0
  460. data/set-of-emails/maildir/dos/{mta-x2-01.eml → email-x2-01.eml} +0 -0
  461. data/set-of-emails/maildir/dos/{mta-x3-01.eml → email-x3-01.eml} +0 -0
  462. data/set-of-emails/maildir/dos/{mta-x4-01.eml → email-x4-01.eml} +0 -0
  463. data/set-of-emails/maildir/dos/{mta-x5-01.eml → email-x5-01.eml} +0 -0
  464. data/set-of-emails/maildir/dos/{msp-us-yahoo-01.eml → email-yahoo-01.eml} +0 -0
  465. data/set-of-emails/maildir/dos/{msp-ru-yandex-01.eml → email-yandex-01.eml} +0 -0
  466. data/set-of-emails/maildir/dos/{msp-us-zoho-01.eml → email-zoho-01.eml} +0 -0
  467. data/set-of-emails/maildir/mac/{mta-activehunter-01.eml → email-activehunter-01.eml} +0 -0
  468. data/set-of-emails/maildir/mac/{msp-us-amazonses-01.eml → email-amazonses-01.eml} +0 -0
  469. data/set-of-emails/maildir/mac/{msp-us-amazonworkmail-01.eml → email-amazonworkmail-01.eml} +0 -0
  470. data/set-of-emails/maildir/mac/{msp-us-aol-01.eml → email-aol-01.eml} +0 -0
  471. data/set-of-emails/maildir/mac/{mta-apachejames-01.eml → email-apachejames-01.eml} +0 -0
  472. data/set-of-emails/maildir/mac/{msp-us-bigfoot-01.eml → email-bigfoot-01.eml} +0 -0
  473. data/set-of-emails/maildir/mac/{msp-jp-biglobe-01.eml → email-biglobe-01.eml} +0 -0
  474. data/set-of-emails/maildir/mac/{mta-courier-01.eml → email-courier-01.eml} +0 -0
  475. data/set-of-emails/maildir/mac/{mta-domino-01.eml → email-domino-01.eml} +0 -0
  476. data/set-of-emails/maildir/mac/{msp-de-einsundeins-01.eml → email-einsundeins-01.eml} +0 -0
  477. data/set-of-emails/maildir/mac/{mta-exchange-01.eml → email-exchange-01.eml} +0 -0
  478. data/set-of-emails/maildir/mac/{mta-exchange2003-01.eml → email-exchange2003-01.eml} +0 -0
  479. data/set-of-emails/maildir/mac/{mta-exchange2007-01.eml → email-exchange2007-01.eml} +0 -0
  480. data/set-of-emails/maildir/mac/{mta-exim-01.eml → email-exim-01.eml} +0 -0
  481. data/set-of-emails/maildir/mac/{msp-jp-ezweb-01.eml → email-ezweb-01.eml} +0 -0
  482. data/set-of-emails/maildir/mac/{msp-us-facebook-01.eml → email-facebook-01.eml} +0 -0
  483. data/set-of-emails/maildir/mac/{msp-de-gmx-01.eml → email-gmx-01.eml} +0 -0
  484. data/set-of-emails/maildir/mac/{msp-us-google-01.eml → email-google-01.eml} +0 -0
  485. data/set-of-emails/maildir/mac/{mta-imailserver-01.eml → email-imailserver-01.eml} +0 -0
  486. data/set-of-emails/maildir/mac/{mta-interscanmss-01.eml → email-interscanmss-01.eml} +0 -0
  487. data/set-of-emails/maildir/mac/{msp-jp-kddi-01.eml → email-kddi-01.eml} +0 -0
  488. data/set-of-emails/maildir/mac/{mta-mailfoundry-01.eml → email-mailfoundry-01.eml} +0 -0
  489. data/set-of-emails/maildir/mac/{mta-mailmarshalsmtp-01.eml → email-mailmarshalsmtp-01.eml} +0 -0
  490. data/set-of-emails/maildir/mac/{msp-ru-mailru-01.eml → email-mailru-01.eml} +0 -0
  491. data/set-of-emails/maildir/mac/{mta-mcafee-01.eml → email-mcafee-01.eml} +0 -0
  492. data/set-of-emails/maildir/mac/{msp-uk-messagelabs-01.eml → email-messagelabs-01.eml} +0 -0
  493. data/set-of-emails/maildir/mac/{mta-messagingserver-01.eml → email-messagingserver-01.eml} +0 -0
  494. data/set-of-emails/maildir/mac/{mta-mfilter-01.eml → email-mfilter-01.eml} +0 -0
  495. data/set-of-emails/maildir/mac/{mta-mxlogic-01.eml → email-mxlogic-01.eml} +0 -0
  496. data/set-of-emails/maildir/mac/{mta-notes-01.eml → email-notes-01.eml} +0 -0
  497. data/set-of-emails/maildir/mac/{msp-us-office365-01.eml → email-office365-01.eml} +0 -0
  498. data/set-of-emails/maildir/mac/{mta-opensmtpd-01.eml → email-opensmtpd-01.eml} +0 -0
  499. data/set-of-emails/maildir/mac/{msp-us-outlook-01.eml → email-outlook-01.eml} +0 -0
  500. data/set-of-emails/maildir/mac/{mta-postfix-01.eml → email-postfix-01.eml} +0 -0
  501. data/set-of-emails/maildir/mac/{mta-qmail-01.eml → email-qmail-01.eml} +0 -0
  502. data/set-of-emails/maildir/mac/{msp-us-receivingses-01.eml → email-receivingses-01.eml} +0 -0
  503. data/set-of-emails/maildir/mac/{msp-us-sendgrid-01.eml → email-sendgrid-01.eml} +0 -0
  504. data/set-of-emails/maildir/mac/{mta-sendmail-01.eml → email-sendmail-01.eml} +0 -0
  505. data/set-of-emails/maildir/mac/{mta-surfcontrol-01.eml → email-surfcontrol-01.eml} +0 -0
  506. data/set-of-emails/maildir/mac/{mta-v5sendmail-01.eml → email-v5sendmail-01.eml} +0 -0
  507. data/set-of-emails/maildir/mac/{msp-us-verizon-01.eml → email-verizon-01.eml} +0 -0
  508. data/set-of-emails/maildir/mac/{mta-x1-01.eml → email-x1-01.eml} +0 -0
  509. data/set-of-emails/maildir/mac/{mta-x2-01.eml → email-x2-01.eml} +0 -0
  510. data/set-of-emails/maildir/mac/{mta-x3-01.eml → email-x3-01.eml} +0 -0
  511. data/set-of-emails/maildir/mac/{mta-x4-01.eml → email-x4-01.eml} +0 -0
  512. data/set-of-emails/maildir/mac/{mta-x5-01.eml → email-x5-01.eml} +0 -0
  513. data/set-of-emails/maildir/mac/{msp-us-yahoo-01.eml → email-yahoo-01.eml} +0 -0
  514. data/set-of-emails/maildir/mac/{msp-ru-yandex-01.eml → email-yandex-01.eml} +0 -0
  515. data/set-of-emails/maildir/mac/{msp-us-zoho-01.eml → email-zoho-01.eml} +0 -0
  516. metadata +483 -478
  517. data/lib/sisimai/ced/us/amazonses.rb +0 -269
  518. data/lib/sisimai/ced/us/sendgrid.rb +0 -86
  519. data/lib/sisimai/msp/de/einsundeins.rb +0 -146
  520. data/lib/sisimai/msp/de/gmx.rb +0 -170
  521. data/lib/sisimai/msp/jp/biglobe.rb +0 -150
  522. data/lib/sisimai/msp/jp/ezweb.rb +0 -262
  523. data/lib/sisimai/msp/jp/kddi.rb +0 -168
  524. data/lib/sisimai/msp/ru/mailru.rb +0 -274
  525. data/lib/sisimai/msp/ru/yandex.rb +0 -207
  526. data/lib/sisimai/msp/uk/messagelabs.rb +0 -216
  527. data/lib/sisimai/msp/us/amazonses.rb +0 -237
  528. data/lib/sisimai/msp/us/amazonworkmail.rb +0 -195
  529. data/lib/sisimai/msp/us/aol.rb +0 -211
  530. data/lib/sisimai/msp/us/bigfoot.rb +0 -210
  531. data/lib/sisimai/msp/us/facebook.rb +0 -277
  532. data/lib/sisimai/msp/us/google.rb +0 -323
  533. data/lib/sisimai/msp/us/gsuite.rb +0 -277
  534. data/lib/sisimai/msp/us/office365.rb +0 -264
  535. data/lib/sisimai/msp/us/outlook.rb +0 -209
  536. data/lib/sisimai/msp/us/receivingses.rb +0 -224
  537. data/lib/sisimai/msp/us/sendgrid.rb +0 -226
  538. data/lib/sisimai/msp/us/verizon.rb +0 -267
  539. data/lib/sisimai/msp/us/yahoo.rb +0 -150
  540. data/lib/sisimai/msp/us/zoho.rb +0 -170
  541. data/lib/sisimai/mta/activehunter.rb +0 -126
  542. data/lib/sisimai/mta/apachejames.rb +0 -172
  543. data/lib/sisimai/mta/courier.rb +0 -268
  544. data/lib/sisimai/mta/domino.rb +0 -177
  545. data/lib/sisimai/mta/exchange2003.rb +0 -287
  546. data/lib/sisimai/mta/exchange2007.rb +0 -182
  547. data/lib/sisimai/mta/exim.rb +0 -525
  548. data/lib/sisimai/mta/imailserver.rb +0 -182
  549. data/lib/sisimai/mta/interscanmss.rb +0 -149
  550. data/lib/sisimai/mta/mailfoundry.rb +0 -137
  551. data/lib/sisimai/mta/mailmarshalsmtp.rb +0 -176
  552. data/lib/sisimai/mta/mcafee.rb +0 -172
  553. data/lib/sisimai/mta/messagingserver.rb +0 -208
  554. data/lib/sisimai/mta/mfilter.rb +0 -167
  555. data/lib/sisimai/mta/mxlogic.rb +0 -255
  556. data/lib/sisimai/mta/notes.rb +0 -183
  557. data/lib/sisimai/mta/opensmtpd.rb +0 -195
  558. data/lib/sisimai/mta/postfix.rb +0 -312
  559. data/lib/sisimai/mta/qmail.rb +0 -307
  560. data/lib/sisimai/mta/sendmail.rb +0 -293
  561. data/lib/sisimai/mta/surfcontrol.rb +0 -164
  562. data/lib/sisimai/mta/userdefined.rb +0 -132
  563. data/lib/sisimai/mta/v5sendmail.rb +0 -210
  564. data/lib/sisimai/mta/x1.rb +0 -127
  565. data/lib/sisimai/mta/x2.rb +0 -128
  566. data/lib/sisimai/mta/x3.rb +0 -144
  567. data/lib/sisimai/mta/x4.rb +0 -328
  568. data/lib/sisimai/mta/x5.rb +0 -181
  569. data/set-of-emails/maildir/bsd/mta-README.md +0 -319
  570. data/set-of-emails/maildir/dos/ced-us-amazonses-01.eml +0 -47
  571. data/set-of-emails/maildir/mac/ced-us-amazonses-01.eml +0 -2
@@ -1,168 +0,0 @@
1
- module Sisimai
2
- module MSP::JP
3
- # Sisimai::MSP::JP::KDDI parses a bounce email which created by au by KDDI.
4
- # Methods in the module are called from only Sisimai::Message.
5
- module KDDI
6
- # Imported from p5-Sisimail/lib/Sisimai/MSP/JP/KDDI.pm
7
- class << self
8
- require 'sisimai/msp'
9
- require 'sisimai/rfc5322'
10
-
11
- Re0 = {
12
- :'from' => %r/no-reply[@].+[.]dion[.]ne[.]jp/,
13
- :'reply-to' => %r/\Afrom[ \t]+\w+[.]auone[-]net[.]jp[ \t]/,
14
- :'received' => %r/\Afrom[ ](?:.+[.])?ezweb[.]ne[.]jp[ ]/,
15
- :'message-id' => %r/[@].+[.]ezweb[.]ne[.]jp[>]\z/,
16
- }
17
- Re1 = {
18
- :begin => %r/\AYour[ ]mail[ ](?:
19
- sent[ ]on:?[ ][A-Z][a-z]{2}[,]
20
- |attempted[ ]to[ ]be[ ]delivered[ ]on:?[ ][A-Z][a-z]{2}[,]
21
- )
22
- /x,
23
- :rfc822 => %r|\AContent-Type: message/rfc822\z|,
24
- :error => %r/Could not be delivered to:? /,
25
- :endof => %r/\A__END_OF_EMAIL_MESSAGE__\z/,
26
- }
27
- ReFailure = {
28
- mailboxfull: %r/As[ ]their[ ]mailbox[ ]is[ ]full/x,
29
- norelaying: %r/Due[ ]to[ ]the[ ]following[ ]SMTP[ ]relay[ ]error/x,
30
- hostunknown: %r/As[ ]the[ ]remote[ ]domain[ ]doesnt[ ]exist/x,
31
- }
32
- Indicators = Sisimai::MSP.INDICATORS
33
-
34
- def description; return 'au by KDDI: http://www.au.kddi.com'; end
35
- def smtpagent; return Sisimai::MSP.smtpagent(self); end
36
- def headerlist; return []; end
37
- def pattern; return Re0; end
38
-
39
- # Parse bounce messages from au by KDDI
40
- # @param [Hash] mhead Message header of a bounce email
41
- # @options mhead [String] from From header
42
- # @options mhead [String] date Date header
43
- # @options mhead [String] subject Subject header
44
- # @options mhead [Array] received Received headers
45
- # @options mhead [String] others Other required headers
46
- # @param [String] mbody Message body of a bounce email
47
- # @return [Hash, Nil] Bounce data list and message/rfc822
48
- # part or nil if it failed to parse or
49
- # the arguments are missing
50
- def scan(mhead, mbody)
51
- return nil unless mhead
52
- return nil unless mbody
53
-
54
- match = 0
55
- match += 1 if mhead['from'] =~ Re0[:from]
56
- match += 1 if mhead['reply-to'] && mhead['reply-to'] =~ Re0[:'reply-to']
57
- match += 1 if mhead['received'].find { |a| a =~ Re0[:received] }
58
- return nil if match.zero?
59
-
60
- require 'sisimai/string'
61
- require 'sisimai/address'
62
-
63
- dscontents = [Sisimai::MSP.DELIVERYSTATUS]
64
- hasdivided = mbody.split("\n")
65
- rfc822list = [] # (Array) Each line in message/rfc822 part string
66
- blanklines = 0 # (Integer) The number of blank lines
67
- readcursor = 0 # (Integer) Points the current cursor position
68
- recipients = 0 # (Integer) The number of 'Final-Recipient' header
69
- v = nil
70
-
71
- hasdivided.each do |e|
72
- if readcursor.zero?
73
- # Beginning of the bounce message or delivery status part
74
- if e =~ Re1[:begin]
75
- readcursor |= Indicators[:deliverystatus]
76
- next
77
- end
78
- end
79
-
80
- if readcursor & Indicators[:'message-rfc822'] == 0
81
- # Beginning of the original message part
82
- if e =~ Re1[:rfc822]
83
- readcursor |= Indicators[:'message-rfc822']
84
- next
85
- end
86
- end
87
-
88
- if readcursor & Indicators[:'message-rfc822'] > 0
89
- # After "message/rfc822"
90
- if e.empty?
91
- blanklines += 1
92
- break if blanklines > 1
93
- next
94
- end
95
- rfc822list << e
96
-
97
- else
98
- # Before "message/rfc822"
99
- next if readcursor & Indicators[:deliverystatus] == 0
100
- next if e.empty?
101
-
102
- v = dscontents[-1]
103
- if cv = e.match(/\A[ \t]+Could not be delivered to: [<]([^ ]+[@][^ ]+)[>]/)
104
- # Your mail sent on: Thu, 29 Apr 2010 11:04:47 +0900
105
- # Could not be delivered to: <******@**.***.**>
106
- # As their mailbox is full.
107
- if v['recipient']
108
- # There are multiple recipient addresses in the message body.
109
- push dscontents << Sisimai::MSP.DELIVERYSTATUS
110
- v = dscontents[-1]
111
- end
112
-
113
- r = Sisimai::Address.s3s4(cv[1])
114
- if Sisimai::RFC5322.is_emailaddress(r)
115
- v['recipient'] = r
116
- recipients += 1
117
- end
118
-
119
- elsif cv = e.match(/Your mail sent on: (.+)\z/)
120
- # Your mail sent on: Thu, 29 Apr 2010 11:04:47 +0900
121
- v['date'] = cv[1]
122
-
123
- else
124
- # As their mailbox is full.
125
- v['diagnosis'] ||= ''
126
- v['diagnosis'] += e + ' ' if e =~ /\A[ \t]+/
127
- end
128
- end
129
- end
130
-
131
- return nil if recipients.zero?
132
- require 'sisimai/smtp/status'
133
-
134
- dscontents.map do |e|
135
- e['agent'] = Sisimai::MSP::JP::KDDI.smtpagent
136
- e['diagnosis'] = Sisimai::String.sweep(e['diagnosis'])
137
-
138
- if mhead['x-spasign'] && mhead['x-spasign'] == 'NG'
139
- # Content-Type: text/plain; ..., X-SPASIGN: NG (spamghetti, au by KDDI)
140
- # Filtered recipient returns message that include 'X-SPASIGN' header
141
- e['reason'] = 'filtered'
142
-
143
- else
144
- if e['command'] == 'RCPT'
145
- # set "userunknown" when the remote server rejected after RCPT
146
- # command.
147
- e['reason'] = 'userunknown'
148
- else
149
- # SMTP command is not RCPT
150
- ReFailure.each_key do |r|
151
- # Verify each regular expression of session errors
152
- next unless e['diagnosis'] =~ ReFailure[r]
153
- e['reason'] = r.to_s
154
- break
155
- end
156
- end
157
- end
158
-
159
- end
160
-
161
- rfc822part = Sisimai::RFC5322.weedout(rfc822list)
162
- return { 'ds' => dscontents, 'rfc822' => rfc822part }
163
- end
164
-
165
- end
166
- end
167
- end
168
- end
@@ -1,274 +0,0 @@
1
- module Sisimai
2
- module MSP::RU
3
- # Sisimai::MSP::RU::MailRu parses a bounce email which created by @mail.ru.
4
- # Methods in the module are called from only Sisimai::Message.
5
- module MailRu
6
- # Imported from p5-Sisimail/lib/Sisimai/MSP/RU/MailRu.pm
7
- class << self
8
- require 'sisimai/msp'
9
- require 'sisimai/rfc5322'
10
-
11
- # Based on Sisimai::MTA::Exim
12
- Re0 = {
13
- # Message-Id: <E1P1YNN-0003AD-Ga@*.mail.ru>
14
- :'message-id' => %r/\A[<]\w+[-]\w+[-]\w+[@].*mail[.]ru[>]\z/,
15
- :'from' => %r/[<]?mailer-daemon[@].*mail[.]ru[>]?/i,
16
- :'subject' => %r{(?:
17
- Mail[ ]delivery[ ]failed(:[ ]returning[ ]message[ ]to[ ]sender)?
18
- |Warning:[ ]message[ ].+[ ]delayed[ ]+
19
- |Delivery[ ]Status[ ]Notification
20
- |Mail[ ]failure
21
- |Message[ ]frozen
22
- |error[(]s[)][ ]in[ ]forwarding[ ]or[ ]filtering
23
- )
24
- }x,
25
- }
26
- Re1 = {
27
- :rfc822 => %r/\A------ This is a copy of the message.+headers[.] ------\z/,
28
- :begin => %r/\AThis message was created automatically by mail delivery software[.]/,
29
- :endof => %r/\A__END_OF_EMAIL_MESSAGE__\z/,
30
- }
31
- ReCommand = [
32
- %r/SMTP error from remote (?:mail server|mailer) after ([A-Za-z]{4})/,
33
- %r/SMTP error from remote (?:mail server|mailer) after end of ([A-Za-z]{4})/,
34
- ]
35
- ReFailure = {
36
- expired: %r{(?:
37
- retry[ ]timeout[ ]exceeded
38
- |No[ ]action[ ]is[ ]required[ ]on[ ]your[ ]part
39
- )
40
- }x,
41
- userunknown: %r/user[ ]not[ ]found/x,
42
- hostunknown: %r{(?>
43
- all[ ](?:
44
- host[ ]address[ ]lookups[ ]failed[ ]permanently
45
- |relevant[ ]MX[ ]records[ ]point[ ]to[ ]non[-]existent[ ]hosts
46
- )
47
- |Unrouteable[ ]address
48
- )
49
- }x,
50
- mailboxfull: %r/(?:mailbox[ ]is[ ]full:?|error:[ ]quota[ ]exceed)/x,
51
- notaccept: %r{(?:
52
- an[ ]MX[ ]or[ ]SRV[ ]record[ ]indicated[ ]no[ ]SMTP[ ]service
53
- |no[ ]host[ ]found[ ]for[ ]existing[ ]SMTP[ ]connection
54
- )
55
- }x,
56
- systemerror: %r{(?:
57
- delivery[ ]to[ ](?:file|pipe)[ ]forbidden
58
- |local[ ]delivery[ ]failed
59
- )
60
- }x,
61
- contenterror: %r/Too[ ]many[ ]["]Received["][ ]headers[ ]/x,
62
- }
63
- Indicators = Sisimai::MSP.INDICATORS
64
-
65
- def description; return '@mail.ru: https://mail.ru'; end
66
- def smtpagent; return Sisimai::MSP.smtpagent(self); end
67
- def headerlist; return ['X-Failed-Recipients']; end
68
- def pattern; return Re0; end
69
-
70
- # Parse bounce messages from @mail.ru
71
- # @param [Hash] mhead Message header of a bounce email
72
- # @options mhead [String] from From header
73
- # @options mhead [String] date Date header
74
- # @options mhead [String] subject Subject header
75
- # @options mhead [Array] received Received headers
76
- # @options mhead [String] others Other required headers
77
- # @param [String] mbody Message body of a bounce email
78
- # @return [Hash, Nil] Bounce data list and message/rfc822
79
- # part or nil if it failed to parse or
80
- # the arguments are missing
81
- def scan(mhead, mbody)
82
- return nil unless mhead
83
- return nil unless mbody
84
- return nil unless mhead['from'] =~ Re0[:from]
85
- return nil unless mhead['subject'] =~ Re0[:subject]
86
- return nil unless mhead['message-id'] =~ Re0[:'message-id']
87
-
88
- dscontents = [Sisimai::MSP.DELIVERYSTATUS]
89
- hasdivided = mbody.split("\n")
90
- rfc822list = [] # (Array) Each line in message/rfc822 part string
91
- blanklines = 0 # (Integer) The number of blank lines
92
- readcursor = 0 # (Integer) Points the current cursor position
93
- recipients = 0 # (Integer) The number of 'Final-Recipient' header
94
- localhost0 = '' # (String) Local MTA
95
- v = nil
96
-
97
- hasdivided.each do |e|
98
- if readcursor.zero?
99
- # Beginning of the bounce message or delivery status part
100
- if e =~ Re1[:begin]
101
- readcursor |= Indicators[:deliverystatus]
102
- next
103
- end
104
- end
105
-
106
- if readcursor & Indicators[:'message-rfc822'] == 0
107
- # Beginning of the original message part
108
- if e =~ Re1[:rfc822]
109
- readcursor |= Indicators[:'message-rfc822']
110
- next
111
- end
112
- end
113
-
114
- if readcursor & Indicators[:'message-rfc822'] > 0
115
- # After "message/rfc822"
116
- # After "message/rfc822"
117
- if e.empty?
118
- blanklines += 1
119
- break if blanklines > 1
120
- next
121
- end
122
- rfc822list << e
123
-
124
- else
125
- # Before "message/rfc822"
126
- next if readcursor & Indicators[:deliverystatus] == 0
127
- next if e.empty?
128
-
129
- # Это письмо создано автоматически
130
- # сервером Mail.Ru, # отвечать на него не
131
- # нужно.
132
- #
133
- # К сожалению, Ваше письмо не может
134
- # быть# доставлено одному или нескольким
135
- # получателям:
136
- #
137
- # **********************
138
- #
139
- # This message was created automatically by mail delivery software.
140
- #
141
- # A message that you sent could not be delivered to one or more of its
142
- # recipients. This is a permanent error. The following address(es) failed:
143
- #
144
- # kijitora@example.jp
145
- # SMTP error from remote mail server after RCPT TO:<kijitora@example.jp>:
146
- # host neko.example.jp [192.0.2.222]: 550 5.1.1 <kijitora@example.jp>... User Unknown
147
- v = dscontents[-1]
148
-
149
- if cv = e.match(/\A[ \t]+([^ \t]+[@][^ \t]+[.][a-zA-Z]+)\z/)
150
- # kijitora@example.jp
151
- if v['recipient']
152
- # There are multiple recipient addresses in the message body.
153
- dscontents << Sisimai::MSP.DELIVERYSTATUS
154
- v = dscontents[-1]
155
- end
156
- v['recipient'] = cv[1]
157
- recipients += 1
158
-
159
- elsif dscontents.size == recipients
160
- # Error message
161
- next if e.empty?
162
- v['diagnosis'] ||= ''
163
- v['diagnosis'] += e + ' '
164
-
165
- else
166
- # Error message when email address above does not include '@'
167
- # and domain part.
168
- next unless e =~ /\A[ \t]{4}/
169
- v['alterrors'] ||= ''
170
- v['alterrors'] += e + ' '
171
- end
172
- end
173
- end
174
-
175
- if recipients.zero?
176
- # Fallback for getting recipient addresses
177
- if mhead['x-failed-recipients']
178
- # X-Failed-Recipients: kijitora@example.jp
179
- rcptinhead = mhead['x-failed-recipients'].split(',')
180
- rcptinhead.each { |a| a.delete(' ') }
181
- recipients = rcptinhead.size
182
-
183
- rcptinhead.each do |e|
184
- # Insert each recipient address into @$dscontents
185
- dscontents[-1]['recipient'] = e
186
- next if dscontents.size == recipients
187
- dscontents << Sisimai::MTA.DELIVERYSTATUS
188
- end
189
- end
190
- end
191
- return nil if recipients.zero?
192
-
193
- if mhead['received'].size > 0
194
- # Get the name of local MTA
195
- # Received: from marutamachi.example.org (c192128.example.net [192.0.2.128])
196
- if cv = mhead['received'][-1].match(/from[ \t]([^ ]+)/)
197
- localhost0 = cv[1]
198
- end
199
- end
200
- require 'sisimai/string'
201
-
202
- dscontents.map do |e|
203
- # Set default values if each value is empty.
204
- e['lhost'] ||= localhost0
205
-
206
- if e['alterrors'] && e['alterrors'].size > 0
207
- # Copy alternative error message
208
- e['diagnosis'] ||= e['alterrors']
209
- if e['diagnosis'] =~ /\A[-]+/ || e['diagnosis'] =~ /__\z/
210
- # Override the value of diagnostic code message
211
- e['diagnosis'] = e['alterrors'] if e['alterrors'].size > 0
212
- end
213
- e.delete('alterrors')
214
- end
215
- e['diagnosis'] = Sisimai::String.sweep(e['diagnosis']) || ''
216
- e['diagnosis'] = e['diagnosis'].sub(/\b__.+\z/, '')
217
-
218
- unless e['rhost']
219
- # Get the remote host name
220
- if cv = e['diagnosis'].match(/host[ ]+([^ \t]+)[ ]\[.+\]:[ ]/)
221
- # host neko.example.jp [192.0.2.222]: 550 5.1.1 <kijitora@example.jp>... User Unknown
222
- e['rhost'] = cv[1]
223
- end
224
-
225
- unless e['rhost']
226
- if mhead['received'].size > 0
227
- # Get localhost and remote host name from Received header.
228
- e['rhost'] = Sisimai::RFC5322.received(mhead['received'][-1]).pop
229
- end
230
- end
231
- end
232
-
233
- unless e['command']
234
- # Get the SMTP command name for the session
235
- ReCommand.each do |r|
236
- # Verify each regular expression of SMTP commands
237
- if cv = e['diagnosis'].match(r)
238
- e['command'] = cv[1].upcase
239
- break
240
- end
241
- end
242
-
243
- # Detect the reason of bounce
244
- if e['command'] =~ /\A(?:HELO|EHLO)\z/
245
- # HELO | Connected to 192.0.2.135 but my name was rejected.
246
- e['reason'] = 'blocked'
247
-
248
- elsif e['command'] == 'MAIL'
249
- # MAIL | Connected to 192.0.2.135 but sender was rejected.
250
- e['reason'] = 'rejected'
251
-
252
- else
253
- # Verify each regular expression of session errors
254
- ReFailure.each_key do |r|
255
- # Check each regular expression
256
- next unless e['diagnosis'] =~ ReFailure[r]
257
- e['reason'] = r.to_s
258
- break
259
- end
260
- end
261
- end
262
- e['command'] ||= ''
263
- e['agent'] = Sisimai::MSP::RU::MailRu.smtpagent
264
- end
265
-
266
- rfc822part = Sisimai::RFC5322.weedout(rfc822list)
267
- return { 'ds' => dscontents, 'rfc822' => rfc822part }
268
- end
269
-
270
- end
271
- end
272
- end
273
- end
274
-
@@ -1,207 +0,0 @@
1
- module Sisimai
2
- module MSP::RU
3
- # Sisimai::MSP::RU::Yandex parses a bounce email which created by Yandex.Mail.
4
- # Methods in the module are called from only Sisimai::Message.
5
- module Yandex
6
- # Imported from p5-Sisimail/lib/Sisimai/MSP/RU/Yandex.pm
7
- class << self
8
- require 'sisimai/msp'
9
- require 'sisimai/rfc5322'
10
-
11
- Re0 = {
12
- :from => %r/\Amailer-daemon[@]yandex[.]ru\z/,
13
- }
14
- Re1 = {
15
- :begin => %r/\AThis is the mail system at host yandex[.]ru[.]/,
16
- :rfc822 => %r|\AContent-Type: message/rfc822|,
17
- :endof => %r/\A__END_OF_EMAIL_MESSAGE__\z/,
18
- }
19
- Indicators = Sisimai::MSP.INDICATORS
20
-
21
- def description; return 'Yandex.Mail: http://www.yandex.ru'; end
22
- def smtpagent; return Sisimai::MSP.smtpagent(self); end
23
-
24
- # X-Yandex-Front: mxback1h.mail.yandex.net
25
- # X-Yandex-TimeMark: 1417885948
26
- # X-Yandex-Uniq: 92309766-f1c8-4bd4-92bc-657c75766587
27
- # X-Yandex-Spam: 1
28
- # X-Yandex-Forward: 10104c00ad0726da5f37374723b1e0c8
29
- # X-Yandex-Queue-ID: 367D79E130D
30
- # X-Yandex-Sender: rfc822; shironeko@yandex.example.com
31
- def headerlist; return ['X-Yandex-Uniq']; end
32
- def pattern; return Re0; end
33
-
34
- # Parse bounce messages from Yandex.Mail
35
- # @param [Hash] mhead Message header of a bounce email
36
- # @options mhead [String] from From header
37
- # @options mhead [String] date Date header
38
- # @options mhead [String] subject Subject header
39
- # @options mhead [Array] received Received headers
40
- # @options mhead [String] others Other required headers
41
- # @param [String] mbody Message body of a bounce email
42
- # @return [Hash, Nil] Bounce data list and message/rfc822
43
- # part or nil if it failed to parse or
44
- # the arguments are missing
45
- def scan(mhead, mbody)
46
- return nil unless mhead
47
- return nil unless mbody
48
- return nil unless mhead['x-yandex-uniq']
49
- return nil unless mhead['from'] =~ Re0[:from]
50
-
51
- dscontents = [Sisimai::MSP.DELIVERYSTATUS]
52
- hasdivided = mbody.split("\n")
53
- havepassed = ['']
54
- rfc822list = [] # (Array) Each line in message/rfc822 part string
55
- blanklines = 0 # (Integer) The number of blank lines
56
- readcursor = 0 # (Integer) Points the current cursor position
57
- recipients = 0 # (Integer) The number of 'Final-Recipient' header
58
- commandset = [] # (Array) ``in reply to * command'' list
59
- connvalues = 0 # (Integer) Flag, 1 if all the value of $connheader have been set
60
- connheader = {
61
- 'date' => '', # The value of Arrival-Date header
62
- 'lhost' => '', # The value of Reporting-MTA header
63
- }
64
- v = nil
65
-
66
- hasdivided.each do |e|
67
- # Save the current line for the next loop
68
- havepassed << e
69
- p = havepassed[-2]
70
-
71
- if readcursor.zero?
72
- # Beginning of the bounce message or delivery status part
73
- if e =~ Re1[:begin]
74
- readcursor |= Indicators[:deliverystatus]
75
- next
76
- end
77
- end
78
-
79
- if readcursor & Indicators[:'message-rfc822'] == 0
80
- # Beginning of the original message part
81
- if e =~ Re1[:rfc822]
82
- readcursor |= Indicators[:'message-rfc822']
83
- next
84
- end
85
- end
86
-
87
- if readcursor & Indicators[:'message-rfc822'] > 0
88
- # After "message/rfc822"
89
- if e.empty?
90
- blanklines += 1
91
- break if blanklines > 1
92
- next
93
- end
94
- rfc822list << e
95
-
96
- else
97
- # Before "message/rfc822"
98
- next if readcursor & Indicators[:deliverystatus] == 0
99
- next if e.empty?
100
-
101
- if connvalues == connheader.keys.size
102
- # Final-Recipient: rfc822; kijitora@example.jp
103
- # Original-Recipient: rfc822;kijitora@example.jp
104
- # Action: failed
105
- # Status: 5.1.1
106
- # Remote-MTA: dns; mx.example.jp
107
- # Diagnostic-Code: smtp; 550 5.1.1 <kijitora@example.jp>... User Unknown
108
- #
109
- # --367D79E130D.1417885948/forward1h.mail.yandex.net
110
- # Content-Description: Undelivered Message
111
- # Content-Type: message/rfc822
112
- v = dscontents[-1]
113
-
114
- if cv = e.match(/\A[Ff]inal-[Rr]ecipient:[ ]*(?:RFC|rfc)822;[ ]*([^ ]+)\z/)
115
- # Final-Recipient: rfc822; kijitora@example.jp
116
- if v['recipient']
117
- # There are multiple recipient addresses in the message body.
118
- dscontents << Sisimai::MSP.DELIVERYSTATUS
119
- v = dscontents[-1]
120
- end
121
- v['recipient'] = cv[1]
122
- recipients += 1
123
-
124
- elsif cv = e.match(/\A[Aa]ction:[ ]*(.+)\z/)
125
- # Action: failed
126
- v['action'] = cv[1]
127
-
128
- elsif cv = e.match(/\A[Ss]tatus:[ ]*(\d[.]\d+[.]\d+)/)
129
- # Status:5.2.0
130
- v['status'] = cv[1]
131
-
132
- elsif cv = e.match(/\A[Rr]emote-MTA:[ ]*(?:DNS|dns);[ ]*(.+)\z/)
133
- # Remote-MTA: DNS; mx.example.jp
134
- v['rhost'] = cv[1].downcase
135
-
136
- else
137
- # Get error message
138
- if cv = e.match(/\A[Dd]iagnostic-[Cc]ode:[ ]*(.+?);[ ]*(.+)\z/)
139
- # Diagnostic-Code: SMTP; 550 5.1.1 <userunknown@example.jp>... User Unknown
140
- v['spec'] = cv[1].upcase
141
- v['diagnosis'] = cv[2]
142
-
143
- elsif p =~ /\A[Dd]iagnostic-[Cc]ode:[ ]*/ && cv = e.match(/\A[ \t]+(.+)\z/)
144
- # Continued line of the value of Diagnostic-Code header
145
- v['diagnosis'] ||= ''
146
- v['diagnosis'] += ' ' + cv[1]
147
- havepassed[-1] = 'Diagnostic-Code: ' + e
148
- end
149
- end
150
-
151
- else
152
- # Content-Type: message/delivery-status
153
- #
154
- # Reporting-MTA: dns; forward1h.mail.yandex.net
155
- # X-Yandex-Queue-ID: 367D79E130D
156
- # X-Yandex-Sender: rfc822; shironeko@yandex.example.com
157
- # Arrival-Date: Sat, 6 Dec 2014 20:12:27 +0300 (MSK)
158
- if cv = e.match(/\A[Rr]eporting-MTA:[ ]*(?:DNS|dns);[ ]*(.+)\z/)
159
- # Reporting-MTA: dns; mx.example.jp
160
- next if connheader['lhost'].size > 0
161
- connheader['lhost'] = cv[1].downcase
162
- connvalues += 1
163
-
164
- elsif cv = e.match(/\A[Aa]rrival-[Dd]ate:[ ]*(.+)\z/)
165
- # Arrival-Date: Wed, 29 Apr 2009 16:03:18 +0900
166
- next if connheader['date'].size > 0
167
- connheader['date'] = cv[1]
168
- connvalues += 1
169
-
170
- else
171
- # <kijitora@example.jp>: host mx.example.jp[192.0.2.153] said: 550
172
- # 5.1.1 <kijitora@example.jp>... User Unknown (in reply to RCPT TO
173
- # command)
174
- if cv = e.match(/[ \t][(]in reply to .*([A-Z]{4}).*/)
175
- # 5.1.1 <userunknown@example.co.jp>... User Unknown (in reply to RCPT TO
176
- commandset << cv[1]
177
-
178
- elsif cv = e.match(/([A-Z]{4})[ \t]*.*command[)]\z/)
179
- # to MAIL command)
180
- commandset << cv[1]
181
- end
182
- end
183
- end
184
-
185
- end
186
- end
187
- return nil if recipients.zero?
188
- require 'sisimai/string'
189
-
190
- dscontents.map do |e|
191
- # Set default values if each value is empty.
192
- connheader.each_key { |a| e[a] ||= connheader[a] || '' }
193
- e['command'] = commandset.shift || ''
194
- e['diagnosis'] = e['diagnosis'].gsub(/\\n/, '')
195
- e['diagnosis'] = Sisimai::String.sweep(e['diagnosis'])
196
- e['agent'] = Sisimai::MSP::RU::Yandex.smtpagent
197
- end
198
-
199
- rfc822part = Sisimai::RFC5322.weedout(rfc822list)
200
- return { 'ds' => dscontents, 'rfc822' => rfc822part }
201
- end
202
-
203
- end
204
- end
205
- end
206
- end
207
-