sisimai 4.25.4 → 4.25.9

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 (665) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +2 -2
  3. data/ANALYTICAL-PRECISION +60 -56
  4. data/Benchmarks.mk +5 -3
  5. data/ChangeLog.md +168 -1
  6. data/Developers.mk +2 -2
  7. data/Makefile +1 -1
  8. data/README-JA.md +30 -57
  9. data/README.md +31 -57
  10. data/Repository.mk +1 -1
  11. data/lib/sisimai.rb +17 -72
  12. data/lib/sisimai/address.rb +13 -17
  13. data/lib/sisimai/arf.rb +28 -32
  14. data/lib/sisimai/data.rb +15 -38
  15. data/lib/sisimai/datetime.rb +3 -3
  16. data/lib/sisimai/lhost.rb +25 -47
  17. data/lib/sisimai/lhost/activehunter.rb +37 -76
  18. data/lib/sisimai/lhost/amavis.rb +119 -86
  19. data/lib/sisimai/lhost/amazonses.rb +196 -256
  20. data/lib/sisimai/lhost/amazonworkmail.rb +56 -95
  21. data/lib/sisimai/lhost/aol.rb +64 -104
  22. data/lib/sisimai/lhost/apachejames.rb +66 -104
  23. data/lib/sisimai/lhost/barracuda.rb +94 -0
  24. data/lib/sisimai/lhost/bigfoot.rb +66 -102
  25. data/lib/sisimai/lhost/biglobe.rb +45 -78
  26. data/lib/sisimai/lhost/courier.rb +66 -101
  27. data/lib/sisimai/lhost/domino.rb +54 -92
  28. data/lib/sisimai/lhost/einsundeins.rb +61 -70
  29. data/lib/sisimai/lhost/exchange2003.rb +89 -120
  30. data/lib/sisimai/lhost/exchange2007.rb +79 -90
  31. data/lib/sisimai/lhost/exim.rb +129 -168
  32. data/lib/sisimai/lhost/ezweb.rb +58 -90
  33. data/lib/sisimai/lhost/facebook.rb +54 -91
  34. data/lib/sisimai/lhost/fml.rb +30 -69
  35. data/lib/sisimai/lhost/{google.rb → gmail.rb} +48 -87
  36. data/lib/sisimai/lhost/gmx.rb +64 -102
  37. data/lib/sisimai/lhost/googlegroups.rb +77 -0
  38. data/lib/sisimai/lhost/gsuite.rb +79 -111
  39. data/lib/sisimai/lhost/imailserver.rb +46 -91
  40. data/lib/sisimai/lhost/interscanmss.rb +40 -85
  41. data/lib/sisimai/lhost/kddi.rb +35 -68
  42. data/lib/sisimai/lhost/mailfoundry.rb +41 -78
  43. data/lib/sisimai/lhost/mailmarshalsmtp.rb +71 -109
  44. data/lib/sisimai/lhost/mailru.rb +56 -92
  45. data/lib/sisimai/lhost/mcafee.rb +59 -97
  46. data/lib/sisimai/lhost/messagelabs.rb +59 -97
  47. data/lib/sisimai/lhost/messagingserver.rb +96 -131
  48. data/lib/sisimai/lhost/mfilter.rb +57 -89
  49. data/lib/sisimai/lhost/mxlogic.rb +47 -85
  50. data/lib/sisimai/lhost/notes.rb +59 -100
  51. data/lib/sisimai/lhost/office365.rb +86 -113
  52. data/lib/sisimai/lhost/opensmtpd.rb +35 -71
  53. data/lib/sisimai/lhost/outlook.rb +56 -96
  54. data/lib/sisimai/lhost/postfix.rb +125 -137
  55. data/lib/sisimai/lhost/powermta.rb +120 -0
  56. data/lib/sisimai/lhost/qmail.rb +46 -79
  57. data/lib/sisimai/lhost/receivingses.rb +56 -97
  58. data/lib/sisimai/lhost/sendgrid.rb +75 -223
  59. data/lib/sisimai/lhost/sendmail.rb +108 -148
  60. data/lib/sisimai/lhost/surfcontrol.rb +62 -104
  61. data/lib/sisimai/lhost/v5sendmail.rb +64 -107
  62. data/lib/sisimai/lhost/verizon.rb +80 -141
  63. data/lib/sisimai/lhost/x1.rb +37 -73
  64. data/lib/sisimai/lhost/x2.rb +36 -75
  65. data/lib/sisimai/lhost/x3.rb +51 -87
  66. data/lib/sisimai/lhost/x4.rb +49 -85
  67. data/lib/sisimai/lhost/x5.rb +54 -93
  68. data/lib/sisimai/lhost/x6.rb +74 -0
  69. data/lib/sisimai/lhost/yahoo.rb +55 -92
  70. data/lib/sisimai/lhost/yandex.rb +72 -110
  71. data/lib/sisimai/lhost/zoho.rb +62 -106
  72. data/lib/sisimai/mail.rb +36 -25
  73. data/lib/sisimai/mail/maildir.rb +31 -36
  74. data/lib/sisimai/mail/mbox.rb +8 -12
  75. data/lib/sisimai/mail/memory.rb +18 -20
  76. data/lib/sisimai/mail/stdin.rb +8 -12
  77. data/lib/sisimai/mda.rb +8 -14
  78. data/lib/sisimai/message.rb +142 -415
  79. data/lib/sisimai/mime.rb +28 -33
  80. data/lib/sisimai/order.rb +150 -209
  81. data/lib/sisimai/reason.rb +28 -19
  82. data/lib/sisimai/reason/blocked.rb +23 -23
  83. data/lib/sisimai/reason/hostunknown.rb +2 -0
  84. data/lib/sisimai/reason/mailererror.rb +1 -1
  85. data/lib/sisimai/reason/notaccept.rb +1 -0
  86. data/lib/sisimai/reason/rejected.rb +1 -0
  87. data/lib/sisimai/reason/securityerror.rb +5 -6
  88. data/lib/sisimai/reason/spamdetected.rb +9 -12
  89. data/lib/sisimai/reason/userunknown.rb +31 -25
  90. data/lib/sisimai/rfc1894.rb +1 -1
  91. data/lib/sisimai/rfc3464.rb +38 -56
  92. data/lib/sisimai/rfc3834.rb +11 -23
  93. data/lib/sisimai/rfc5322.rb +20 -32
  94. data/lib/sisimai/rhost.rb +5 -8
  95. data/lib/sisimai/rhost/cox.rb +112 -0
  96. data/lib/sisimai/rhost/exchangeonline.rb +25 -22
  97. data/lib/sisimai/rhost/franceptt.rb +120 -24
  98. data/lib/sisimai/rhost/iua.rb +1 -1
  99. data/lib/sisimai/rhost/spectrum.rb +73 -0
  100. data/lib/sisimai/smtp.rb +0 -13
  101. data/lib/sisimai/smtp/error.rb +7 -7
  102. data/lib/sisimai/smtp/status.rb +1 -1
  103. data/lib/sisimai/string.rb +3 -11
  104. data/lib/sisimai/version.rb +1 -1
  105. data/set-of-emails/README.md +5 -4
  106. data/set-of-emails/maildir/bsd/arf-24.eml +50 -0
  107. data/set-of-emails/maildir/bsd/{email-activehunter-01.eml → lhost-activehunter-01.eml} +0 -0
  108. data/set-of-emails/maildir/bsd/{email-activehunter-02.eml → lhost-activehunter-02.eml} +0 -0
  109. data/set-of-emails/maildir/bsd/{email-amavis-01.eml → lhost-amavis-01.eml} +0 -0
  110. data/set-of-emails/maildir/bsd/{email-amavis-02.eml → lhost-amavis-02.eml} +0 -0
  111. data/set-of-emails/maildir/bsd/lhost-amavis-03.eml +90 -0
  112. data/set-of-emails/maildir/bsd/{email-amazonses-01.eml → lhost-amazonses-01.eml} +0 -0
  113. data/set-of-emails/maildir/bsd/{email-amazonses-02.eml → lhost-amazonses-02.eml} +0 -0
  114. data/set-of-emails/maildir/bsd/{email-amazonses-03.eml → lhost-amazonses-03.eml} +0 -0
  115. data/set-of-emails/maildir/bsd/{email-amazonses-05.eml → lhost-amazonses-05.eml} +0 -0
  116. data/set-of-emails/maildir/bsd/{email-amazonses-06.eml → lhost-amazonses-06.eml} +0 -0
  117. data/set-of-emails/maildir/bsd/{email-amazonses-07.eml → lhost-amazonses-07.eml} +0 -0
  118. data/set-of-emails/maildir/bsd/{email-amazonses-08.eml → lhost-amazonses-08.eml} +0 -0
  119. data/set-of-emails/maildir/bsd/{email-amazonses-09.eml → lhost-amazonses-09.eml} +0 -0
  120. data/set-of-emails/maildir/bsd/{email-amazonses-10.eml → lhost-amazonses-10.eml} +0 -0
  121. data/set-of-emails/maildir/bsd/{email-amazonses-11.eml → lhost-amazonses-11.eml} +0 -0
  122. data/set-of-emails/maildir/bsd/{email-amazonses-12.eml → lhost-amazonses-12.eml} +0 -0
  123. data/set-of-emails/maildir/bsd/{email-amazonses-13.eml → lhost-amazonses-13.eml} +0 -0
  124. data/set-of-emails/maildir/bsd/{email-amazonses-14.eml → lhost-amazonses-14.eml} +0 -0
  125. data/set-of-emails/maildir/bsd/{email-amazonses-15.eml → lhost-amazonses-15.eml} +0 -0
  126. data/set-of-emails/maildir/bsd/{email-amazonses-16.eml → lhost-amazonses-16.eml} +0 -0
  127. data/set-of-emails/maildir/bsd/{email-amazonses-17.eml → lhost-amazonses-17.eml} +0 -0
  128. data/set-of-emails/maildir/bsd/{email-amazonses-18.eml → lhost-amazonses-18.eml} +0 -0
  129. data/set-of-emails/maildir/bsd/{email-amazonses-19.eml → lhost-amazonses-19.eml} +0 -0
  130. data/set-of-emails/maildir/bsd/{email-amazonses-20.eml → lhost-amazonses-20.eml} +0 -0
  131. data/set-of-emails/maildir/bsd/{email-amazonses-21.eml → lhost-amazonses-21.eml} +0 -0
  132. data/set-of-emails/maildir/bsd/{email-amazonworkmail-01.eml → lhost-amazonworkmail-01.eml} +0 -0
  133. data/set-of-emails/maildir/bsd/{email-amazonworkmail-02.eml → lhost-amazonworkmail-02.eml} +0 -0
  134. data/set-of-emails/maildir/bsd/{email-amazonworkmail-03.eml → lhost-amazonworkmail-03.eml} +0 -0
  135. data/set-of-emails/maildir/bsd/{email-amazonworkmail-04.eml → lhost-amazonworkmail-04.eml} +0 -0
  136. data/set-of-emails/maildir/bsd/{email-amazonworkmail-05.eml → lhost-amazonworkmail-05.eml} +0 -0
  137. data/set-of-emails/maildir/bsd/{email-amazonworkmail-07.eml → lhost-amazonworkmail-07.eml} +0 -0
  138. data/set-of-emails/maildir/bsd/{email-amazonworkmail-08.eml → lhost-amazonworkmail-08.eml} +0 -0
  139. data/set-of-emails/maildir/bsd/{email-aol-01.eml → lhost-aol-01.eml} +0 -0
  140. data/set-of-emails/maildir/bsd/{email-aol-02.eml → lhost-aol-02.eml} +0 -0
  141. data/set-of-emails/maildir/bsd/{email-aol-03.eml → lhost-aol-03.eml} +0 -0
  142. data/set-of-emails/maildir/bsd/{email-aol-04.eml → lhost-aol-04.eml} +0 -0
  143. data/set-of-emails/maildir/bsd/{email-aol-05.eml → lhost-aol-05.eml} +0 -0
  144. data/set-of-emails/maildir/bsd/{email-aol-06.eml → lhost-aol-06.eml} +0 -0
  145. data/set-of-emails/maildir/bsd/{email-apachejames-01.eml → lhost-apachejames-01.eml} +0 -0
  146. data/set-of-emails/maildir/bsd/lhost-barracuda-01.eml +67 -0
  147. data/set-of-emails/maildir/bsd/lhost-barracuda-02.eml +71 -0
  148. data/set-of-emails/maildir/bsd/{email-bigfoot-02.eml → lhost-bigfoot-02.eml} +0 -0
  149. data/set-of-emails/maildir/bsd/{email-biglobe-01.eml → lhost-biglobe-01.eml} +0 -0
  150. data/set-of-emails/maildir/bsd/{email-courier-01.eml → lhost-courier-01.eml} +0 -0
  151. data/set-of-emails/maildir/bsd/{email-courier-02.eml → lhost-courier-02.eml} +0 -0
  152. data/set-of-emails/maildir/bsd/{email-courier-03.eml → lhost-courier-03.eml} +0 -0
  153. data/set-of-emails/maildir/bsd/{email-courier-04.eml → lhost-courier-04.eml} +0 -0
  154. data/set-of-emails/maildir/bsd/{email-domino-01.eml → lhost-domino-01.eml} +0 -0
  155. data/set-of-emails/maildir/bsd/{email-domino-02.eml → lhost-domino-02.eml} +0 -0
  156. data/set-of-emails/maildir/bsd/{email-domino-03.eml → lhost-domino-03.eml} +0 -0
  157. data/set-of-emails/maildir/bsd/{email-einsundeins-02.eml → lhost-einsundeins-02.eml} +0 -0
  158. data/set-of-emails/maildir/bsd/lhost-einsundeins-03.eml +66 -0
  159. data/set-of-emails/maildir/bsd/{email-exchange2003-01.eml → lhost-exchange2003-01.eml} +0 -0
  160. data/set-of-emails/maildir/bsd/{email-exchange2003-02.eml → lhost-exchange2003-02.eml} +0 -0
  161. data/set-of-emails/maildir/bsd/{email-exchange2003-03.eml → lhost-exchange2003-03.eml} +0 -0
  162. data/set-of-emails/maildir/bsd/{email-exchange2003-04.eml → lhost-exchange2003-04.eml} +0 -0
  163. data/set-of-emails/maildir/bsd/{email-exchange2003-05.eml → lhost-exchange2003-05.eml} +0 -0
  164. data/set-of-emails/maildir/bsd/{email-exchange2003-07.eml → lhost-exchange2003-07.eml} +0 -0
  165. data/set-of-emails/maildir/bsd/{email-exchange2007-01.eml → lhost-exchange2007-01.eml} +0 -0
  166. data/set-of-emails/maildir/bsd/{email-exchange2007-02.eml → lhost-exchange2007-02.eml} +0 -0
  167. data/set-of-emails/maildir/bsd/{email-exchange2007-03.eml → lhost-exchange2007-03.eml} +0 -0
  168. data/set-of-emails/maildir/bsd/{email-exchange2007-04.eml → lhost-exchange2007-04.eml} +0 -0
  169. data/set-of-emails/maildir/bsd/lhost-exchange2007-05.eml +1469 -0
  170. data/set-of-emails/maildir/bsd/lhost-exchange2007-06.eml +764 -0
  171. data/set-of-emails/maildir/bsd/lhost-exchange2007-07.eml +128 -0
  172. data/set-of-emails/maildir/bsd/{email-exim-01.eml → lhost-exim-01.eml} +0 -0
  173. data/set-of-emails/maildir/bsd/{email-exim-02.eml → lhost-exim-02.eml} +0 -0
  174. data/set-of-emails/maildir/bsd/{email-exim-03.eml → lhost-exim-03.eml} +0 -0
  175. data/set-of-emails/maildir/bsd/{email-exim-04.eml → lhost-exim-04.eml} +0 -0
  176. data/set-of-emails/maildir/bsd/{email-exim-05.eml → lhost-exim-05.eml} +0 -0
  177. data/set-of-emails/maildir/bsd/{email-exim-06.eml → lhost-exim-06.eml} +0 -0
  178. data/set-of-emails/maildir/bsd/{email-exim-07.eml → lhost-exim-07.eml} +0 -0
  179. data/set-of-emails/maildir/bsd/{email-exim-08.eml → lhost-exim-08.eml} +0 -0
  180. data/set-of-emails/maildir/bsd/{email-exim-29.eml → lhost-exim-29.eml} +0 -0
  181. data/set-of-emails/maildir/bsd/{email-exim-30.eml → lhost-exim-30.eml} +0 -0
  182. data/set-of-emails/maildir/bsd/{email-exim-31.eml → lhost-exim-31.eml} +0 -0
  183. data/set-of-emails/maildir/bsd/{email-exim-32.eml → lhost-exim-32.eml} +0 -0
  184. data/set-of-emails/maildir/bsd/{email-exim-33.eml → lhost-exim-33.eml} +0 -0
  185. data/set-of-emails/maildir/bsd/{email-exim-34.eml → lhost-exim-34.eml} +0 -0
  186. data/set-of-emails/maildir/bsd/{email-exim-35.eml → lhost-exim-35.eml} +0 -0
  187. data/set-of-emails/maildir/bsd/{email-exim-36.eml → lhost-exim-36.eml} +0 -0
  188. data/set-of-emails/maildir/bsd/{email-exim-37.eml → lhost-exim-37.eml} +0 -0
  189. data/set-of-emails/maildir/bsd/{email-exim-38.eml → lhost-exim-38.eml} +0 -0
  190. data/set-of-emails/maildir/bsd/{email-exim-39.eml → lhost-exim-39.eml} +0 -0
  191. data/set-of-emails/maildir/bsd/{email-exim-40.eml → lhost-exim-40.eml} +0 -0
  192. data/set-of-emails/maildir/bsd/{email-exim-41.eml → lhost-exim-41.eml} +0 -0
  193. data/set-of-emails/maildir/bsd/{email-exim-42.eml → lhost-exim-42.eml} +0 -0
  194. data/set-of-emails/maildir/bsd/{email-exim-43.eml → lhost-exim-43.eml} +0 -0
  195. data/set-of-emails/maildir/bsd/{email-exim-44.eml → lhost-exim-44.eml} +0 -0
  196. data/set-of-emails/maildir/bsd/{email-exim-45.eml → lhost-exim-45.eml} +0 -0
  197. data/set-of-emails/maildir/bsd/{email-exim-46.eml → lhost-exim-46.eml} +0 -0
  198. data/set-of-emails/maildir/bsd/{email-exim-47.eml → lhost-exim-47.eml} +0 -0
  199. data/set-of-emails/maildir/bsd/{email-exim-48.eml → lhost-exim-48.eml} +0 -0
  200. data/set-of-emails/maildir/bsd/{email-exim-49.eml → lhost-exim-49.eml} +0 -0
  201. data/set-of-emails/maildir/bsd/{email-exim-50.eml → lhost-exim-50.eml} +0 -0
  202. data/set-of-emails/maildir/bsd/{email-exim-51.eml → lhost-exim-51.eml} +0 -0
  203. data/set-of-emails/maildir/bsd/{email-exim-52.eml → lhost-exim-52.eml} +0 -0
  204. data/set-of-emails/maildir/bsd/{email-exim-53.eml → lhost-exim-53.eml} +0 -0
  205. data/set-of-emails/maildir/bsd/{email-exim-54.eml → lhost-exim-54.eml} +0 -0
  206. data/set-of-emails/maildir/bsd/{email-exim-55.eml → lhost-exim-55.eml} +0 -0
  207. data/set-of-emails/maildir/bsd/{email-exim-56.eml → lhost-exim-56.eml} +0 -0
  208. data/set-of-emails/maildir/bsd/{email-exim-57.eml → lhost-exim-57.eml} +0 -0
  209. data/set-of-emails/maildir/bsd/{email-exim-58.eml → lhost-exim-58.eml} +0 -0
  210. data/set-of-emails/maildir/bsd/{email-exim-59.eml → lhost-exim-59.eml} +0 -0
  211. data/set-of-emails/maildir/bsd/{email-exim-60.eml → lhost-exim-60.eml} +0 -0
  212. data/set-of-emails/maildir/bsd/{email-ezweb-01.eml → lhost-ezweb-01.eml} +0 -0
  213. data/set-of-emails/maildir/bsd/{email-ezweb-02.eml → lhost-ezweb-02.eml} +0 -0
  214. data/set-of-emails/maildir/bsd/{email-ezweb-03.eml → lhost-ezweb-03.eml} +0 -0
  215. data/set-of-emails/maildir/bsd/{email-ezweb-04.eml → lhost-ezweb-04.eml} +0 -0
  216. data/set-of-emails/maildir/bsd/{email-ezweb-05.eml → lhost-ezweb-05.eml} +0 -0
  217. data/set-of-emails/maildir/bsd/{email-ezweb-07.eml → lhost-ezweb-07.eml} +0 -0
  218. data/set-of-emails/maildir/bsd/{email-ezweb-08.eml → lhost-ezweb-08.eml} +0 -0
  219. data/set-of-emails/maildir/bsd/{email-facebook-03.eml → lhost-facebook-03.eml} +0 -0
  220. data/set-of-emails/maildir/bsd/{email-facebook-04.eml → lhost-facebook-04.eml} +0 -0
  221. data/set-of-emails/maildir/bsd/{email-fml-02.eml → lhost-fml-02.eml} +0 -0
  222. data/set-of-emails/maildir/bsd/{email-fml-03.eml → lhost-fml-03.eml} +0 -0
  223. data/set-of-emails/maildir/bsd/{email-google-01.eml → lhost-gmail-01.eml} +0 -0
  224. data/set-of-emails/maildir/bsd/{email-google-03.eml → lhost-gmail-03.eml} +0 -0
  225. data/set-of-emails/maildir/bsd/{email-google-04.eml → lhost-gmail-04.eml} +0 -0
  226. data/set-of-emails/maildir/bsd/{email-google-05.eml → lhost-gmail-05.eml} +0 -0
  227. data/set-of-emails/maildir/bsd/{email-google-06.eml → lhost-gmail-06.eml} +0 -0
  228. data/set-of-emails/maildir/bsd/{email-google-07.eml → lhost-gmail-07.eml} +0 -0
  229. data/set-of-emails/maildir/bsd/{email-google-08.eml → lhost-gmail-08.eml} +0 -0
  230. data/set-of-emails/maildir/bsd/{email-google-09.eml → lhost-gmail-09.eml} +0 -0
  231. data/set-of-emails/maildir/bsd/{email-google-10.eml → lhost-gmail-10.eml} +0 -0
  232. data/set-of-emails/maildir/bsd/{email-google-11.eml → lhost-gmail-11.eml} +0 -0
  233. data/set-of-emails/maildir/bsd/{email-google-15.eml → lhost-gmail-15.eml} +0 -0
  234. data/set-of-emails/maildir/bsd/{email-google-16.eml → lhost-gmail-16.eml} +0 -0
  235. data/set-of-emails/maildir/bsd/{email-google-17.eml → lhost-gmail-17.eml} +0 -0
  236. data/set-of-emails/maildir/bsd/{email-google-18.eml → lhost-gmail-18.eml} +0 -0
  237. data/set-of-emails/maildir/bsd/{email-google-19.eml → lhost-gmail-19.eml} +0 -0
  238. data/set-of-emails/maildir/bsd/{email-gmx-01.eml → lhost-gmx-01.eml} +0 -0
  239. data/set-of-emails/maildir/bsd/{email-gmx-02.eml → lhost-gmx-02.eml} +0 -0
  240. data/set-of-emails/maildir/bsd/{email-gmx-03.eml → lhost-gmx-03.eml} +0 -0
  241. data/set-of-emails/maildir/bsd/{email-gmx-04.eml → lhost-gmx-04.eml} +0 -0
  242. data/set-of-emails/maildir/bsd/lhost-googlegroups-01.eml +116 -0
  243. data/set-of-emails/maildir/bsd/lhost-googlegroups-02.eml +114 -0
  244. data/set-of-emails/maildir/bsd/lhost-googlegroups-03.eml +116 -0
  245. data/set-of-emails/maildir/bsd/lhost-googlegroups-04.eml +116 -0
  246. data/set-of-emails/maildir/bsd/lhost-googlegroups-05.eml +116 -0
  247. data/set-of-emails/maildir/bsd/lhost-googlegroups-06.eml +116 -0
  248. data/set-of-emails/maildir/bsd/lhost-googlegroups-07.eml +116 -0
  249. data/set-of-emails/maildir/bsd/lhost-googlegroups-08.eml +115 -0
  250. data/set-of-emails/maildir/bsd/lhost-googlegroups-09.eml +116 -0
  251. data/set-of-emails/maildir/bsd/lhost-googlegroups-10.eml +116 -0
  252. data/set-of-emails/maildir/bsd/lhost-googlegroups-11.eml +116 -0
  253. data/set-of-emails/maildir/bsd/lhost-googlegroups-12.eml +116 -0
  254. data/set-of-emails/maildir/bsd/lhost-googlegroups-13.eml +115 -0
  255. data/set-of-emails/maildir/bsd/lhost-googlegroups-14.eml +127 -0
  256. data/set-of-emails/maildir/bsd/{email-gsuite-01.eml → lhost-gsuite-01.eml} +0 -0
  257. data/set-of-emails/maildir/bsd/{email-gsuite-02.eml → lhost-gsuite-02.eml} +0 -0
  258. data/set-of-emails/maildir/bsd/{email-gsuite-03.eml → lhost-gsuite-03.eml} +0 -0
  259. data/set-of-emails/maildir/bsd/{email-gsuite-04.eml → lhost-gsuite-04.eml} +0 -0
  260. data/set-of-emails/maildir/bsd/{email-gsuite-05.eml → lhost-gsuite-05.eml} +0 -0
  261. data/set-of-emails/maildir/bsd/{email-gsuite-06.eml → lhost-gsuite-06.eml} +0 -0
  262. data/set-of-emails/maildir/bsd/{email-gsuite-07.eml → lhost-gsuite-07.eml} +0 -0
  263. data/set-of-emails/maildir/bsd/{email-gsuite-08.eml → lhost-gsuite-08.eml} +0 -0
  264. data/set-of-emails/maildir/bsd/{email-gsuite-09.eml → lhost-gsuite-09.eml} +0 -0
  265. data/set-of-emails/maildir/bsd/{email-gsuite-10.eml → lhost-gsuite-10.eml} +0 -0
  266. data/set-of-emails/maildir/bsd/{email-gsuite-11.eml → lhost-gsuite-11.eml} +0 -0
  267. data/set-of-emails/maildir/bsd/{email-gsuite-12.eml → lhost-gsuite-12.eml} +0 -0
  268. data/set-of-emails/maildir/bsd/{email-gsuite-13.eml → lhost-gsuite-13.eml} +0 -0
  269. data/set-of-emails/maildir/bsd/lhost-gsuite-14.eml +273 -0
  270. data/set-of-emails/maildir/bsd/{email-imailserver-01.eml → lhost-imailserver-01.eml} +0 -0
  271. data/set-of-emails/maildir/bsd/{email-imailserver-02.eml → lhost-imailserver-02.eml} +0 -0
  272. data/set-of-emails/maildir/bsd/{email-imailserver-03.eml → lhost-imailserver-03.eml} +0 -0
  273. data/set-of-emails/maildir/bsd/{email-imailserver-04.eml → lhost-imailserver-04.eml} +0 -0
  274. data/set-of-emails/maildir/bsd/{email-imailserver-06.eml → lhost-imailserver-06.eml} +0 -0
  275. data/set-of-emails/maildir/bsd/{email-interscanmss-01.eml → lhost-interscanmss-01.eml} +0 -0
  276. data/set-of-emails/maildir/bsd/lhost-interscanmss-02.eml +70 -0
  277. data/set-of-emails/maildir/bsd/lhost-interscanmss-03.eml +73 -0
  278. data/set-of-emails/maildir/bsd/{email-kddi-01.eml → lhost-kddi-01.eml} +0 -0
  279. data/set-of-emails/maildir/bsd/{email-kddi-02.eml → lhost-kddi-02.eml} +0 -0
  280. data/set-of-emails/maildir/bsd/{email-kddi-03.eml → lhost-kddi-03.eml} +0 -0
  281. data/set-of-emails/maildir/bsd/{email-mailfoundry-01.eml → lhost-mailfoundry-01.eml} +0 -0
  282. data/set-of-emails/maildir/bsd/{email-mailfoundry-02.eml → lhost-mailfoundry-02.eml} +0 -0
  283. data/set-of-emails/maildir/bsd/{email-mailmarshalsmtp-02.eml → lhost-mailmarshalsmtp-02.eml} +0 -0
  284. data/set-of-emails/maildir/bsd/{email-mailru-01.eml → lhost-mailru-01.eml} +0 -0
  285. data/set-of-emails/maildir/bsd/{email-mailru-02.eml → lhost-mailru-02.eml} +0 -0
  286. data/set-of-emails/maildir/bsd/{email-mailru-03.eml → lhost-mailru-03.eml} +0 -0
  287. data/set-of-emails/maildir/bsd/{email-mailru-04.eml → lhost-mailru-04.eml} +0 -0
  288. data/set-of-emails/maildir/bsd/{email-mailru-05.eml → lhost-mailru-05.eml} +0 -0
  289. data/set-of-emails/maildir/bsd/{email-mailru-06.eml → lhost-mailru-06.eml} +0 -0
  290. data/set-of-emails/maildir/bsd/{email-mailru-07.eml → lhost-mailru-07.eml} +0 -0
  291. data/set-of-emails/maildir/bsd/{email-mailru-08.eml → lhost-mailru-08.eml} +0 -0
  292. data/set-of-emails/maildir/bsd/{email-mailru-09.eml → lhost-mailru-09.eml} +0 -0
  293. data/set-of-emails/maildir/bsd/{email-mailru-10.eml → lhost-mailru-10.eml} +0 -0
  294. data/set-of-emails/maildir/bsd/{email-mcafee-01.eml → lhost-mcafee-01.eml} +0 -0
  295. data/set-of-emails/maildir/bsd/{email-mcafee-02.eml → lhost-mcafee-02.eml} +0 -0
  296. data/set-of-emails/maildir/bsd/{email-mcafee-03.eml → lhost-mcafee-03.eml} +0 -0
  297. data/set-of-emails/maildir/bsd/{email-mcafee-04.eml → lhost-mcafee-04.eml} +0 -0
  298. data/set-of-emails/maildir/bsd/{email-mcafee-05.eml → lhost-mcafee-05.eml} +0 -0
  299. data/set-of-emails/maildir/bsd/{email-messagelabs-01.eml → lhost-messagelabs-01.eml} +0 -0
  300. data/set-of-emails/maildir/bsd/{email-messagelabs-02.eml → lhost-messagelabs-02.eml} +0 -0
  301. data/set-of-emails/maildir/bsd/{email-messagelabs-03.eml → lhost-messagelabs-03.eml} +0 -0
  302. data/set-of-emails/maildir/bsd/{email-messagingserver-01.eml → lhost-messagingserver-01.eml} +0 -0
  303. data/set-of-emails/maildir/bsd/{email-messagingserver-02.eml → lhost-messagingserver-02.eml} +0 -0
  304. data/set-of-emails/maildir/bsd/{email-messagingserver-03.eml → lhost-messagingserver-03.eml} +0 -0
  305. data/set-of-emails/maildir/bsd/{email-messagingserver-04.eml → lhost-messagingserver-04.eml} +0 -0
  306. data/set-of-emails/maildir/bsd/{email-messagingserver-05.eml → lhost-messagingserver-05.eml} +0 -0
  307. data/set-of-emails/maildir/bsd/{email-messagingserver-06.eml → lhost-messagingserver-06.eml} +0 -0
  308. data/set-of-emails/maildir/bsd/{email-messagingserver-07.eml → lhost-messagingserver-07.eml} +0 -0
  309. data/set-of-emails/maildir/bsd/{email-messagingserver-08.eml → lhost-messagingserver-08.eml} +0 -0
  310. data/set-of-emails/maildir/bsd/{email-messagingserver-09.eml → lhost-messagingserver-09.eml} +0 -0
  311. data/set-of-emails/maildir/bsd/{email-messagingserver-10.eml → lhost-messagingserver-10.eml} +0 -0
  312. data/set-of-emails/maildir/bsd/{email-messagingserver-11.eml → lhost-messagingserver-11.eml} +0 -0
  313. data/set-of-emails/maildir/bsd/{email-messagingserver-12.eml → lhost-messagingserver-12.eml} +0 -0
  314. data/set-of-emails/maildir/bsd/{email-mfilter-01.eml → lhost-mfilter-01.eml} +0 -0
  315. data/set-of-emails/maildir/bsd/{email-mfilter-02.eml → lhost-mfilter-02.eml} +0 -0
  316. data/set-of-emails/maildir/bsd/{email-mfilter-03.eml → lhost-mfilter-03.eml} +0 -0
  317. data/set-of-emails/maildir/bsd/{email-mfilter-04.eml → lhost-mfilter-04.eml} +0 -0
  318. data/set-of-emails/maildir/bsd/{email-mxlogic-01.eml → lhost-mxlogic-01.eml} +0 -0
  319. data/set-of-emails/maildir/bsd/{email-mxlogic-02.eml → lhost-mxlogic-02.eml} +0 -0
  320. data/set-of-emails/maildir/bsd/{email-mxlogic-03.eml → lhost-mxlogic-03.eml} +0 -0
  321. data/set-of-emails/maildir/bsd/{email-notes-01.eml → lhost-notes-01.eml} +0 -0
  322. data/set-of-emails/maildir/bsd/{email-notes-02.eml → lhost-notes-02.eml} +0 -0
  323. data/set-of-emails/maildir/bsd/{email-notes-03.eml → lhost-notes-03.eml} +0 -0
  324. data/set-of-emails/maildir/bsd/{email-office365-01.eml → lhost-office365-01.eml} +0 -0
  325. data/set-of-emails/maildir/bsd/{email-office365-02.eml → lhost-office365-02.eml} +0 -0
  326. data/set-of-emails/maildir/bsd/{email-office365-03.eml → lhost-office365-03.eml} +0 -0
  327. data/set-of-emails/maildir/bsd/{email-office365-04.eml → lhost-office365-04.eml} +0 -0
  328. data/set-of-emails/maildir/bsd/{email-office365-05.eml → lhost-office365-05.eml} +0 -0
  329. data/set-of-emails/maildir/bsd/{email-office365-06.eml → lhost-office365-06.eml} +0 -0
  330. data/set-of-emails/maildir/bsd/{email-office365-07.eml → lhost-office365-07.eml} +0 -0
  331. data/set-of-emails/maildir/bsd/{email-office365-08.eml → lhost-office365-08.eml} +0 -0
  332. data/set-of-emails/maildir/bsd/{email-office365-09.eml → lhost-office365-09.eml} +0 -0
  333. data/set-of-emails/maildir/bsd/{email-office365-10.eml → lhost-office365-10.eml} +0 -0
  334. data/set-of-emails/maildir/bsd/{email-office365-11.eml → lhost-office365-11.eml} +0 -0
  335. data/set-of-emails/maildir/bsd/{email-office365-12.eml → lhost-office365-12.eml} +0 -0
  336. data/set-of-emails/maildir/bsd/lhost-office365-13.eml +259 -0
  337. data/set-of-emails/maildir/bsd/{email-opensmtpd-01.eml → lhost-opensmtpd-01.eml} +0 -0
  338. data/set-of-emails/maildir/bsd/{email-opensmtpd-02.eml → lhost-opensmtpd-02.eml} +0 -0
  339. data/set-of-emails/maildir/bsd/{email-opensmtpd-03.eml → lhost-opensmtpd-03.eml} +0 -0
  340. data/set-of-emails/maildir/bsd/{email-opensmtpd-04.eml → lhost-opensmtpd-04.eml} +0 -0
  341. data/set-of-emails/maildir/bsd/{email-opensmtpd-05.eml → lhost-opensmtpd-05.eml} +0 -0
  342. data/set-of-emails/maildir/bsd/{email-opensmtpd-06.eml → lhost-opensmtpd-06.eml} +0 -0
  343. data/set-of-emails/maildir/bsd/{email-outlook-01.eml → lhost-outlook-01.eml} +0 -0
  344. data/set-of-emails/maildir/bsd/{email-outlook-02.eml → lhost-outlook-02.eml} +0 -0
  345. data/set-of-emails/maildir/bsd/{email-outlook-03.eml → lhost-outlook-03.eml} +0 -0
  346. data/set-of-emails/maildir/bsd/{email-outlook-04.eml → lhost-outlook-04.eml} +0 -0
  347. data/set-of-emails/maildir/bsd/{email-outlook-06.eml → lhost-outlook-06.eml} +0 -0
  348. data/set-of-emails/maildir/bsd/{email-outlook-07.eml → lhost-outlook-07.eml} +0 -0
  349. data/set-of-emails/maildir/bsd/{email-outlook-08.eml → lhost-outlook-08.eml} +0 -0
  350. data/set-of-emails/maildir/bsd/{email-outlook-09.eml → lhost-outlook-09.eml} +0 -0
  351. data/set-of-emails/maildir/bsd/{email-postfix-01.eml → lhost-postfix-01.eml} +0 -0
  352. data/set-of-emails/maildir/bsd/{email-postfix-02.eml → lhost-postfix-02.eml} +0 -0
  353. data/set-of-emails/maildir/bsd/{email-postfix-03.eml → lhost-postfix-03.eml} +0 -0
  354. data/set-of-emails/maildir/bsd/{email-postfix-04.eml → lhost-postfix-04.eml} +0 -0
  355. data/set-of-emails/maildir/bsd/{email-postfix-05.eml → lhost-postfix-05.eml} +0 -0
  356. data/set-of-emails/maildir/bsd/{email-postfix-06.eml → lhost-postfix-06.eml} +0 -0
  357. data/set-of-emails/maildir/bsd/{email-postfix-07.eml → lhost-postfix-07.eml} +0 -0
  358. data/set-of-emails/maildir/bsd/{email-postfix-08.eml → lhost-postfix-08.eml} +0 -0
  359. data/set-of-emails/maildir/bsd/{email-postfix-09.eml → lhost-postfix-09.eml} +0 -0
  360. data/set-of-emails/maildir/bsd/{email-postfix-10.eml → lhost-postfix-10.eml} +0 -0
  361. data/set-of-emails/maildir/bsd/{email-postfix-11.eml → lhost-postfix-11.eml} +0 -0
  362. data/set-of-emails/maildir/bsd/{email-postfix-13.eml → lhost-postfix-13.eml} +0 -0
  363. data/set-of-emails/maildir/bsd/{email-postfix-14.eml → lhost-postfix-14.eml} +0 -0
  364. data/set-of-emails/maildir/bsd/{email-postfix-15.eml → lhost-postfix-15.eml} +0 -0
  365. data/set-of-emails/maildir/bsd/{email-postfix-16.eml → lhost-postfix-16.eml} +0 -0
  366. data/set-of-emails/maildir/bsd/{email-postfix-17.eml → lhost-postfix-17.eml} +0 -0
  367. data/set-of-emails/maildir/bsd/{email-postfix-28.eml → lhost-postfix-28.eml} +0 -0
  368. data/set-of-emails/maildir/bsd/{email-postfix-29.eml → lhost-postfix-29.eml} +0 -0
  369. data/set-of-emails/maildir/bsd/{email-postfix-30.eml → lhost-postfix-30.eml} +0 -0
  370. data/set-of-emails/maildir/bsd/{email-postfix-31.eml → lhost-postfix-31.eml} +0 -0
  371. data/set-of-emails/maildir/bsd/{email-postfix-32.eml → lhost-postfix-32.eml} +0 -0
  372. data/set-of-emails/maildir/bsd/{email-postfix-33.eml → lhost-postfix-33.eml} +0 -0
  373. data/set-of-emails/maildir/bsd/{email-postfix-34.eml → lhost-postfix-34.eml} +0 -0
  374. data/set-of-emails/maildir/bsd/{email-postfix-35.eml → lhost-postfix-35.eml} +0 -0
  375. data/set-of-emails/maildir/bsd/{email-postfix-36.eml → lhost-postfix-36.eml} +0 -0
  376. data/set-of-emails/maildir/bsd/{email-postfix-37.eml → lhost-postfix-37.eml} +0 -0
  377. data/set-of-emails/maildir/bsd/{email-postfix-38.eml → lhost-postfix-38.eml} +1 -1
  378. data/set-of-emails/maildir/bsd/{email-postfix-39.eml → lhost-postfix-39.eml} +0 -0
  379. data/set-of-emails/maildir/bsd/{email-postfix-40.eml → lhost-postfix-40.eml} +0 -0
  380. data/set-of-emails/maildir/bsd/{email-postfix-41.eml → lhost-postfix-41.eml} +0 -0
  381. data/set-of-emails/maildir/bsd/{email-postfix-42.eml → lhost-postfix-42.eml} +0 -0
  382. data/set-of-emails/maildir/bsd/{email-postfix-43.eml → lhost-postfix-43.eml} +0 -0
  383. data/set-of-emails/maildir/bsd/{email-postfix-44.eml → lhost-postfix-44.eml} +0 -0
  384. data/set-of-emails/maildir/bsd/{email-postfix-45.eml → lhost-postfix-45.eml} +0 -0
  385. data/set-of-emails/maildir/bsd/{email-postfix-46.eml → lhost-postfix-46.eml} +0 -0
  386. data/set-of-emails/maildir/bsd/{email-postfix-47.eml → lhost-postfix-47.eml} +0 -0
  387. data/set-of-emails/maildir/bsd/{email-postfix-48.eml → lhost-postfix-48.eml} +0 -0
  388. data/set-of-emails/maildir/bsd/{email-postfix-49.eml → lhost-postfix-49.eml} +0 -0
  389. data/set-of-emails/maildir/bsd/{email-postfix-50.eml → lhost-postfix-50.eml} +0 -0
  390. data/set-of-emails/maildir/bsd/{email-postfix-51.eml → lhost-postfix-51.eml} +0 -0
  391. data/set-of-emails/maildir/bsd/{email-postfix-52.eml → lhost-postfix-52.eml} +0 -0
  392. data/set-of-emails/maildir/bsd/{email-postfix-53.eml → lhost-postfix-53.eml} +0 -0
  393. data/set-of-emails/maildir/bsd/{email-postfix-54.eml → lhost-postfix-54.eml} +0 -0
  394. data/set-of-emails/maildir/bsd/{email-postfix-55.eml → lhost-postfix-55.eml} +0 -0
  395. data/set-of-emails/maildir/bsd/{email-postfix-56.eml → lhost-postfix-56.eml} +0 -0
  396. data/set-of-emails/maildir/bsd/{email-postfix-57.eml → lhost-postfix-57.eml} +0 -0
  397. data/set-of-emails/maildir/bsd/{email-postfix-58.eml → lhost-postfix-58.eml} +0 -0
  398. data/set-of-emails/maildir/bsd/{email-postfix-59.eml → lhost-postfix-59.eml} +0 -0
  399. data/set-of-emails/maildir/bsd/{email-postfix-60.eml → lhost-postfix-60.eml} +0 -0
  400. data/set-of-emails/maildir/bsd/{email-postfix-61.eml → lhost-postfix-61.eml} +0 -0
  401. data/set-of-emails/maildir/bsd/{email-postfix-62.eml → lhost-postfix-62.eml} +0 -0
  402. data/set-of-emails/maildir/bsd/{email-postfix-63.eml → lhost-postfix-63.eml} +0 -0
  403. data/set-of-emails/maildir/bsd/lhost-postfix-64.eml +96 -0
  404. data/set-of-emails/maildir/bsd/lhost-postfix-65.eml +69 -0
  405. data/set-of-emails/maildir/bsd/{rfc3464-05.eml → lhost-powermta-01.eml} +19 -18
  406. data/set-of-emails/maildir/bsd/lhost-powermta-02.eml +58 -0
  407. data/set-of-emails/maildir/bsd/lhost-powermta-03.eml +71 -0
  408. data/set-of-emails/maildir/bsd/{email-qmail-01.eml → lhost-qmail-01.eml} +0 -0
  409. data/set-of-emails/maildir/bsd/{email-qmail-02.eml → lhost-qmail-02.eml} +0 -0
  410. data/set-of-emails/maildir/bsd/{email-qmail-03.eml → lhost-qmail-03.eml} +0 -0
  411. data/set-of-emails/maildir/bsd/{email-qmail-04.eml → lhost-qmail-04.eml} +0 -0
  412. data/set-of-emails/maildir/bsd/{email-qmail-05.eml → lhost-qmail-05.eml} +0 -0
  413. data/set-of-emails/maildir/bsd/{email-qmail-06.eml → lhost-qmail-06.eml} +0 -0
  414. data/set-of-emails/maildir/bsd/{email-qmail-07.eml → lhost-qmail-07.eml} +0 -0
  415. data/set-of-emails/maildir/bsd/{email-qmail-08.eml → lhost-qmail-08.eml} +0 -0
  416. data/set-of-emails/maildir/bsd/{email-qmail-09.eml → lhost-qmail-09.eml} +0 -0
  417. data/set-of-emails/maildir/bsd/{email-qmail-10.eml → lhost-qmail-10.eml} +0 -0
  418. data/set-of-emails/maildir/bsd/{email-receivingses-01.eml → lhost-receivingses-01.eml} +0 -0
  419. data/set-of-emails/maildir/bsd/{email-receivingses-02.eml → lhost-receivingses-02.eml} +0 -0
  420. data/set-of-emails/maildir/bsd/{email-receivingses-03.eml → lhost-receivingses-03.eml} +0 -0
  421. data/set-of-emails/maildir/bsd/{email-receivingses-04.eml → lhost-receivingses-04.eml} +0 -0
  422. data/set-of-emails/maildir/bsd/{email-receivingses-05.eml → lhost-receivingses-05.eml} +0 -0
  423. data/set-of-emails/maildir/bsd/{email-receivingses-06.eml → lhost-receivingses-06.eml} +0 -0
  424. data/set-of-emails/maildir/bsd/{email-receivingses-07.eml → lhost-receivingses-07.eml} +0 -0
  425. data/set-of-emails/maildir/bsd/{email-sendgrid-01.eml → lhost-sendgrid-01.eml} +0 -0
  426. data/set-of-emails/maildir/bsd/{email-sendgrid-02.eml → lhost-sendgrid-02.eml} +0 -0
  427. data/set-of-emails/maildir/bsd/{email-sendgrid-03.eml → lhost-sendgrid-03.eml} +0 -0
  428. data/set-of-emails/maildir/bsd/{email-sendmail-01.eml → lhost-sendmail-01.eml} +0 -0
  429. data/set-of-emails/maildir/bsd/{email-sendmail-02.eml → lhost-sendmail-02.eml} +0 -0
  430. data/set-of-emails/maildir/bsd/{email-sendmail-03.eml → lhost-sendmail-03.eml} +0 -0
  431. data/set-of-emails/maildir/bsd/{email-sendmail-04.eml → lhost-sendmail-04.eml} +0 -0
  432. data/set-of-emails/maildir/bsd/{email-sendmail-05.eml → lhost-sendmail-05.eml} +0 -0
  433. data/set-of-emails/maildir/bsd/{email-sendmail-06.eml → lhost-sendmail-06.eml} +0 -0
  434. data/set-of-emails/maildir/bsd/{email-sendmail-07.eml → lhost-sendmail-07.eml} +0 -0
  435. data/set-of-emails/maildir/bsd/{email-sendmail-08.eml → lhost-sendmail-08.eml} +0 -0
  436. data/set-of-emails/maildir/bsd/{email-sendmail-09.eml → lhost-sendmail-09.eml} +0 -0
  437. data/set-of-emails/maildir/bsd/{email-sendmail-10.eml → lhost-sendmail-10.eml} +0 -0
  438. data/set-of-emails/maildir/bsd/{email-sendmail-11.eml → lhost-sendmail-11.eml} +0 -0
  439. data/set-of-emails/maildir/bsd/{email-sendmail-12.eml → lhost-sendmail-12.eml} +0 -0
  440. data/set-of-emails/maildir/bsd/{email-sendmail-13.eml → lhost-sendmail-13.eml} +0 -0
  441. data/set-of-emails/maildir/bsd/{email-sendmail-14.eml → lhost-sendmail-14.eml} +0 -0
  442. data/set-of-emails/maildir/bsd/{email-sendmail-15.eml → lhost-sendmail-15.eml} +0 -0
  443. data/set-of-emails/maildir/bsd/{email-sendmail-16.eml → lhost-sendmail-16.eml} +0 -0
  444. data/set-of-emails/maildir/bsd/{email-sendmail-17.eml → lhost-sendmail-17.eml} +0 -0
  445. data/set-of-emails/maildir/bsd/{email-sendmail-18.eml → lhost-sendmail-18.eml} +0 -0
  446. data/set-of-emails/maildir/bsd/{email-sendmail-19.eml → lhost-sendmail-19.eml} +0 -0
  447. data/set-of-emails/maildir/bsd/{email-sendmail-20.eml → lhost-sendmail-20.eml} +0 -0
  448. data/set-of-emails/maildir/bsd/{email-sendmail-21.eml → lhost-sendmail-21.eml} +0 -0
  449. data/set-of-emails/maildir/bsd/{email-sendmail-22.eml → lhost-sendmail-22.eml} +0 -0
  450. data/set-of-emails/maildir/bsd/{email-sendmail-24.eml → lhost-sendmail-24.eml} +0 -0
  451. data/set-of-emails/maildir/bsd/{email-sendmail-25.eml → lhost-sendmail-25.eml} +0 -0
  452. data/set-of-emails/maildir/bsd/{email-sendmail-26.eml → lhost-sendmail-26.eml} +0 -0
  453. data/set-of-emails/maildir/bsd/{email-sendmail-27.eml → lhost-sendmail-27.eml} +0 -0
  454. data/set-of-emails/maildir/bsd/{email-sendmail-28.eml → lhost-sendmail-28.eml} +0 -0
  455. data/set-of-emails/maildir/bsd/{email-sendmail-29.eml → lhost-sendmail-29.eml} +0 -0
  456. data/set-of-emails/maildir/bsd/{email-sendmail-30.eml → lhost-sendmail-30.eml} +0 -0
  457. data/set-of-emails/maildir/bsd/{email-sendmail-31.eml → lhost-sendmail-31.eml} +0 -0
  458. data/set-of-emails/maildir/bsd/{email-sendmail-32.eml → lhost-sendmail-32.eml} +0 -0
  459. data/set-of-emails/maildir/bsd/{email-sendmail-33.eml → lhost-sendmail-33.eml} +0 -0
  460. data/set-of-emails/maildir/bsd/{email-sendmail-34.eml → lhost-sendmail-34.eml} +0 -0
  461. data/set-of-emails/maildir/bsd/{email-sendmail-35.eml → lhost-sendmail-35.eml} +0 -0
  462. data/set-of-emails/maildir/bsd/{email-sendmail-36.eml → lhost-sendmail-36.eml} +0 -0
  463. data/set-of-emails/maildir/bsd/{email-sendmail-37.eml → lhost-sendmail-37.eml} +0 -0
  464. data/set-of-emails/maildir/bsd/{email-sendmail-38.eml → lhost-sendmail-38.eml} +0 -0
  465. data/set-of-emails/maildir/bsd/{email-sendmail-39.eml → lhost-sendmail-39.eml} +0 -0
  466. data/set-of-emails/maildir/bsd/{email-sendmail-40.eml → lhost-sendmail-40.eml} +0 -0
  467. data/set-of-emails/maildir/bsd/{email-sendmail-41.eml → lhost-sendmail-41.eml} +0 -0
  468. data/set-of-emails/maildir/bsd/{email-sendmail-42.eml → lhost-sendmail-42.eml} +0 -0
  469. data/set-of-emails/maildir/bsd/{email-sendmail-43.eml → lhost-sendmail-43.eml} +0 -0
  470. data/set-of-emails/maildir/bsd/{email-sendmail-44.eml → lhost-sendmail-44.eml} +0 -0
  471. data/set-of-emails/maildir/bsd/{email-sendmail-45.eml → lhost-sendmail-45.eml} +0 -0
  472. data/set-of-emails/maildir/bsd/{email-sendmail-46.eml → lhost-sendmail-46.eml} +0 -0
  473. data/set-of-emails/maildir/bsd/{email-sendmail-47.eml → lhost-sendmail-47.eml} +0 -0
  474. data/set-of-emails/maildir/bsd/{email-sendmail-48.eml → lhost-sendmail-48.eml} +0 -0
  475. data/set-of-emails/maildir/bsd/{email-sendmail-49.eml → lhost-sendmail-49.eml} +0 -0
  476. data/set-of-emails/maildir/bsd/{email-sendmail-50.eml → lhost-sendmail-50.eml} +0 -0
  477. data/set-of-emails/maildir/bsd/{email-sendmail-51.eml → lhost-sendmail-51.eml} +0 -0
  478. data/set-of-emails/maildir/bsd/{email-sendmail-52.eml → lhost-sendmail-52.eml} +0 -0
  479. data/set-of-emails/maildir/bsd/{email-sendmail-53.eml → lhost-sendmail-53.eml} +0 -0
  480. data/set-of-emails/maildir/bsd/{email-sendmail-54.eml → lhost-sendmail-54.eml} +0 -0
  481. data/set-of-emails/maildir/bsd/{email-sendmail-55.eml → lhost-sendmail-55.eml} +0 -0
  482. data/set-of-emails/maildir/bsd/{email-sendmail-56.eml → lhost-sendmail-56.eml} +0 -0
  483. data/set-of-emails/maildir/bsd/lhost-sendmail-57.eml +59 -0
  484. data/set-of-emails/maildir/bsd/{email-surfcontrol-01.eml → lhost-surfcontrol-01.eml} +0 -0
  485. data/set-of-emails/maildir/bsd/{email-surfcontrol-02.eml → lhost-surfcontrol-02.eml} +0 -0
  486. data/set-of-emails/maildir/bsd/{email-surfcontrol-03.eml → lhost-surfcontrol-03.eml} +0 -0
  487. data/set-of-emails/maildir/bsd/{email-v5sendmail-01.eml → lhost-v5sendmail-01.eml} +0 -0
  488. data/set-of-emails/maildir/bsd/{email-v5sendmail-02.eml → lhost-v5sendmail-02.eml} +0 -0
  489. data/set-of-emails/maildir/bsd/{email-v5sendmail-03.eml → lhost-v5sendmail-03.eml} +0 -0
  490. data/set-of-emails/maildir/bsd/{email-v5sendmail-04.eml → lhost-v5sendmail-04.eml} +0 -0
  491. data/set-of-emails/maildir/bsd/{email-v5sendmail-05.eml → lhost-v5sendmail-05.eml} +0 -0
  492. data/set-of-emails/maildir/bsd/{email-v5sendmail-06.eml → lhost-v5sendmail-06.eml} +0 -0
  493. data/set-of-emails/maildir/bsd/{email-v5sendmail-07.eml → lhost-v5sendmail-07.eml} +0 -0
  494. data/set-of-emails/maildir/bsd/{email-verizon-01.eml → lhost-verizon-01.eml} +0 -0
  495. data/set-of-emails/maildir/bsd/{email-verizon-02.eml → lhost-verizon-02.eml} +0 -0
  496. data/set-of-emails/maildir/bsd/{email-x1-01.eml → lhost-x1-01.eml} +0 -0
  497. data/set-of-emails/maildir/bsd/{email-x1-02.eml → lhost-x1-02.eml} +0 -0
  498. data/set-of-emails/maildir/bsd/{email-x2-01.eml → lhost-x2-01.eml} +0 -0
  499. data/set-of-emails/maildir/bsd/{email-x2-02.eml → lhost-x2-02.eml} +0 -0
  500. data/set-of-emails/maildir/bsd/{email-x2-03.eml → lhost-x2-03.eml} +0 -0
  501. data/set-of-emails/maildir/bsd/{email-x2-04.eml → lhost-x2-04.eml} +0 -0
  502. data/set-of-emails/maildir/bsd/{email-x2-05.eml → lhost-x2-05.eml} +0 -0
  503. data/set-of-emails/maildir/bsd/{email-x3-01.eml → lhost-x3-01.eml} +0 -0
  504. data/set-of-emails/maildir/bsd/{email-x3-02.eml → lhost-x3-02.eml} +0 -0
  505. data/set-of-emails/maildir/bsd/{email-x3-03.eml → lhost-x3-03.eml} +0 -0
  506. data/set-of-emails/maildir/bsd/{email-x3-05.eml → lhost-x3-05.eml} +0 -0
  507. data/set-of-emails/maildir/bsd/{email-x4-01.eml → lhost-x4-01.eml} +0 -0
  508. data/set-of-emails/maildir/bsd/{email-x4-08.eml → lhost-x4-08.eml} +0 -0
  509. data/set-of-emails/maildir/bsd/{email-x5-01.eml → lhost-x5-01.eml} +0 -0
  510. data/set-of-emails/maildir/bsd/lhost-x6-01.eml +71 -0
  511. data/set-of-emails/maildir/bsd/lhost-x6-02.eml +68 -0
  512. data/set-of-emails/maildir/bsd/{email-yahoo-01.eml → lhost-yahoo-01.eml} +0 -0
  513. data/set-of-emails/maildir/bsd/{email-yahoo-02.eml → lhost-yahoo-02.eml} +0 -0
  514. data/set-of-emails/maildir/bsd/{email-yahoo-03.eml → lhost-yahoo-03.eml} +0 -0
  515. data/set-of-emails/maildir/bsd/{email-yahoo-04.eml → lhost-yahoo-04.eml} +0 -0
  516. data/set-of-emails/maildir/bsd/{email-yahoo-05.eml → lhost-yahoo-05.eml} +0 -0
  517. data/set-of-emails/maildir/bsd/{email-yahoo-06.eml → lhost-yahoo-06.eml} +0 -0
  518. data/set-of-emails/maildir/bsd/{email-yahoo-07.eml → lhost-yahoo-07.eml} +0 -0
  519. data/set-of-emails/maildir/bsd/{email-yahoo-08.eml → lhost-yahoo-08.eml} +0 -0
  520. data/set-of-emails/maildir/bsd/{email-yahoo-09.eml → lhost-yahoo-09.eml} +0 -0
  521. data/set-of-emails/maildir/bsd/{email-yahoo-10.eml → lhost-yahoo-10.eml} +0 -0
  522. data/set-of-emails/maildir/bsd/{email-yahoo-11.eml → lhost-yahoo-11.eml} +0 -0
  523. data/set-of-emails/maildir/bsd/{email-yahoo-12.eml → lhost-yahoo-12.eml} +0 -0
  524. data/set-of-emails/maildir/bsd/{email-yahoo-13.eml → lhost-yahoo-13.eml} +0 -0
  525. data/set-of-emails/maildir/bsd/{email-yahoo-14.eml → lhost-yahoo-14.eml} +0 -0
  526. data/set-of-emails/maildir/bsd/{email-yandex-01.eml → lhost-yandex-01.eml} +0 -0
  527. data/set-of-emails/maildir/bsd/{email-yandex-02.eml → lhost-yandex-02.eml} +0 -0
  528. data/set-of-emails/maildir/bsd/{email-yandex-03.eml → lhost-yandex-03.eml} +0 -0
  529. data/set-of-emails/maildir/bsd/{email-zoho-01.eml → lhost-zoho-01.eml} +0 -0
  530. data/set-of-emails/maildir/bsd/{email-zoho-02.eml → lhost-zoho-02.eml} +0 -0
  531. data/set-of-emails/maildir/bsd/{email-zoho-03.eml → lhost-zoho-03.eml} +0 -0
  532. data/set-of-emails/maildir/bsd/{email-zoho-04.eml → lhost-zoho-04.eml} +0 -0
  533. data/set-of-emails/maildir/bsd/{email-zoho-05.eml → lhost-zoho-05.eml} +0 -0
  534. data/set-of-emails/maildir/bsd/rfc3834-03.eml +26 -0
  535. data/set-of-emails/maildir/bsd/{rfc3464-41.eml → rfc3834-04.eml} +0 -0
  536. data/set-of-emails/maildir/bsd/rhost-cox-01.eml +192 -0
  537. data/set-of-emails/maildir/bsd/rhost-franceptt-04.eml +66 -0
  538. data/set-of-emails/maildir/bsd/rhost-franceptt-05.eml +96 -0
  539. data/set-of-emails/maildir/bsd/rhost-franceptt-06.eml +100 -0
  540. data/set-of-emails/maildir/bsd/rhost-franceptt-07.eml +97 -0
  541. data/set-of-emails/maildir/bsd/rhost-franceptt-08.eml +78 -0
  542. data/set-of-emails/maildir/bsd/rhost-franceptt-10.eml +79 -0
  543. data/set-of-emails/maildir/bsd/rhost-franceptt-11.eml +96 -0
  544. data/set-of-emails/maildir/bsd/rhost-spectrum-01.eml +111 -0
  545. data/set-of-emails/maildir/dos/{email-activehunter-01.eml → lhost-activehunter-01.eml} +0 -0
  546. data/set-of-emails/maildir/dos/{email-amavis-01.eml → lhost-amavis-01.eml} +0 -0
  547. data/set-of-emails/maildir/dos/{email-amazonses-01.eml → lhost-amazonses-01.eml} +0 -0
  548. data/set-of-emails/maildir/dos/{email-amazonworkmail-01.eml → lhost-amazonworkmail-01.eml} +0 -0
  549. data/set-of-emails/maildir/dos/{email-aol-01.eml → lhost-aol-01.eml} +0 -0
  550. data/set-of-emails/maildir/dos/{email-apachejames-01.eml → lhost-apachejames-01.eml} +0 -0
  551. data/set-of-emails/maildir/dos/lhost-barracuda-01.eml +67 -0
  552. data/set-of-emails/maildir/dos/{email-bigfoot-01.eml → lhost-bigfoot-01.eml} +0 -0
  553. data/set-of-emails/maildir/dos/{email-biglobe-01.eml → lhost-biglobe-01.eml} +0 -0
  554. data/set-of-emails/maildir/dos/{email-courier-01.eml → lhost-courier-01.eml} +0 -0
  555. data/set-of-emails/maildir/dos/{email-domino-01.eml → lhost-domino-01.eml} +0 -0
  556. data/set-of-emails/maildir/dos/{email-einsundeins-01.eml → lhost-einsundeins-01.eml} +0 -0
  557. data/set-of-emails/maildir/dos/{email-exchange-01.eml → lhost-exchange-01.eml} +0 -0
  558. data/set-of-emails/maildir/dos/{email-exchange2003-01.eml → lhost-exchange2003-01.eml} +0 -0
  559. data/set-of-emails/maildir/dos/{email-exchange2007-01.eml → lhost-exchange2007-01.eml} +0 -0
  560. data/set-of-emails/maildir/dos/{email-exim-01.eml → lhost-exim-01.eml} +0 -0
  561. data/set-of-emails/maildir/dos/{email-ezweb-01.eml → lhost-ezweb-01.eml} +0 -0
  562. data/set-of-emails/maildir/dos/{email-facebook-01.eml → lhost-facebook-01.eml} +0 -0
  563. data/set-of-emails/maildir/dos/{email-google-01.eml → lhost-gmail-01.eml} +0 -0
  564. data/set-of-emails/maildir/dos/{email-gmx-01.eml → lhost-gmx-01.eml} +0 -0
  565. data/set-of-emails/maildir/dos/lhost-googlegroups-01.eml +116 -0
  566. data/set-of-emails/maildir/dos/{email-gsuite-01.eml → lhost-gsuite-01.eml} +0 -0
  567. data/set-of-emails/maildir/dos/{email-imailserver-01.eml → lhost-imailserver-01.eml} +0 -0
  568. data/set-of-emails/maildir/dos/{email-interscanmss-01.eml → lhost-interscanmss-01.eml} +0 -0
  569. data/set-of-emails/maildir/dos/{email-kddi-01.eml → lhost-kddi-01.eml} +0 -0
  570. data/set-of-emails/maildir/dos/{email-mailfoundry-01.eml → lhost-mailfoundry-01.eml} +0 -0
  571. data/set-of-emails/maildir/dos/{email-mailmarshalsmtp-01.eml → lhost-mailmarshalsmtp-01.eml} +0 -0
  572. data/set-of-emails/maildir/dos/{email-mailru-01.eml → lhost-mailru-01.eml} +0 -0
  573. data/set-of-emails/maildir/dos/{email-mcafee-01.eml → lhost-mcafee-01.eml} +0 -0
  574. data/set-of-emails/maildir/dos/{email-messagelabs-01.eml → lhost-messagelabs-01.eml} +0 -0
  575. data/set-of-emails/maildir/dos/{email-messagingserver-01.eml → lhost-messagingserver-01.eml} +0 -0
  576. data/set-of-emails/maildir/dos/{email-mfilter-01.eml → lhost-mfilter-01.eml} +0 -0
  577. data/set-of-emails/maildir/dos/{email-mxlogic-01.eml → lhost-mxlogic-01.eml} +0 -0
  578. data/set-of-emails/maildir/dos/{email-notes-01.eml → lhost-notes-01.eml} +0 -0
  579. data/set-of-emails/maildir/dos/{email-office365-01.eml → lhost-office365-01.eml} +0 -0
  580. data/set-of-emails/maildir/dos/{email-opensmtpd-01.eml → lhost-opensmtpd-01.eml} +0 -0
  581. data/set-of-emails/maildir/dos/{email-outlook-01.eml → lhost-outlook-01.eml} +0 -0
  582. data/set-of-emails/maildir/dos/{email-postfix-01.eml → lhost-postfix-01.eml} +0 -0
  583. data/set-of-emails/maildir/dos/lhost-powermta-01.eml +64 -0
  584. data/set-of-emails/maildir/dos/{email-qmail-01.eml → lhost-qmail-01.eml} +0 -0
  585. data/set-of-emails/maildir/dos/{email-receivingses-01.eml → lhost-receivingses-01.eml} +0 -0
  586. data/set-of-emails/maildir/dos/{email-sendgrid-01.eml → lhost-sendgrid-01.eml} +0 -0
  587. data/set-of-emails/maildir/dos/{email-sendmail-01.eml → lhost-sendmail-01.eml} +0 -0
  588. data/set-of-emails/maildir/dos/{email-surfcontrol-01.eml → lhost-surfcontrol-01.eml} +0 -0
  589. data/set-of-emails/maildir/dos/{email-v5sendmail-01.eml → lhost-v5sendmail-01.eml} +0 -0
  590. data/set-of-emails/maildir/dos/{email-verizon-01.eml → lhost-verizon-01.eml} +0 -0
  591. data/set-of-emails/maildir/dos/{email-x1-01.eml → lhost-x1-01.eml} +0 -0
  592. data/set-of-emails/maildir/dos/{email-x2-01.eml → lhost-x2-01.eml} +0 -0
  593. data/set-of-emails/maildir/dos/{email-x3-01.eml → lhost-x3-01.eml} +0 -0
  594. data/set-of-emails/maildir/dos/{email-x4-01.eml → lhost-x4-01.eml} +0 -0
  595. data/set-of-emails/maildir/dos/{email-x5-01.eml → lhost-x5-01.eml} +0 -0
  596. data/set-of-emails/maildir/dos/lhost-x6-01.eml +71 -0
  597. data/set-of-emails/maildir/dos/{email-yahoo-01.eml → lhost-yahoo-01.eml} +0 -0
  598. data/set-of-emails/maildir/dos/{email-yandex-01.eml → lhost-yandex-01.eml} +0 -0
  599. data/set-of-emails/maildir/dos/{email-zoho-01.eml → lhost-zoho-01.eml} +0 -0
  600. data/set-of-emails/maildir/dos/rhost-iua-01.eml +70 -0
  601. data/set-of-emails/maildir/mac/{email-activehunter-01.eml → lhost-activehunter-01.eml} +0 -0
  602. data/set-of-emails/maildir/mac/{email-amavis-01.eml → lhost-amavis-01.eml} +0 -0
  603. data/set-of-emails/maildir/mac/{email-amazonses-01.eml → lhost-amazonses-01.eml} +0 -0
  604. data/set-of-emails/maildir/mac/{email-amazonworkmail-01.eml → lhost-amazonworkmail-01.eml} +0 -0
  605. data/set-of-emails/maildir/mac/{email-aol-01.eml → lhost-aol-01.eml} +0 -0
  606. data/set-of-emails/maildir/mac/{email-apachejames-01.eml → lhost-apachejames-01.eml} +0 -0
  607. data/set-of-emails/maildir/mac/lhost-barracuda-01.eml +1 -4
  608. data/set-of-emails/maildir/mac/{email-bigfoot-01.eml → lhost-bigfoot-01.eml} +0 -0
  609. data/set-of-emails/maildir/mac/{email-biglobe-01.eml → lhost-biglobe-01.eml} +0 -0
  610. data/set-of-emails/maildir/mac/{email-courier-01.eml → lhost-courier-01.eml} +0 -0
  611. data/set-of-emails/maildir/mac/{email-domino-01.eml → lhost-domino-01.eml} +0 -0
  612. data/set-of-emails/maildir/mac/{email-einsundeins-01.eml → lhost-einsundeins-01.eml} +0 -0
  613. data/set-of-emails/maildir/mac/{email-exchange-01.eml → lhost-exchange-01.eml} +0 -0
  614. data/set-of-emails/maildir/mac/{email-exchange2003-01.eml → lhost-exchange2003-01.eml} +0 -0
  615. data/set-of-emails/maildir/mac/{email-exchange2007-01.eml → lhost-exchange2007-01.eml} +0 -0
  616. data/set-of-emails/maildir/mac/{email-exim-01.eml → lhost-exim-01.eml} +0 -0
  617. data/set-of-emails/maildir/mac/{email-ezweb-01.eml → lhost-ezweb-01.eml} +0 -0
  618. data/set-of-emails/maildir/mac/{email-facebook-01.eml → lhost-facebook-01.eml} +0 -0
  619. data/set-of-emails/maildir/mac/{email-google-01.eml → lhost-gmail-01.eml} +0 -0
  620. data/set-of-emails/maildir/mac/{email-gmx-01.eml → lhost-gmx-01.eml} +0 -0
  621. data/set-of-emails/maildir/mac/lhost-googlegroups-01.eml +1 -1
  622. data/set-of-emails/maildir/mac/{email-gsuite-01.eml → lhost-gsuite-01.eml} +0 -0
  623. data/set-of-emails/maildir/mac/{email-imailserver-01.eml → lhost-imailserver-01.eml} +0 -0
  624. data/set-of-emails/maildir/mac/{email-interscanmss-01.eml → lhost-interscanmss-01.eml} +0 -0
  625. data/set-of-emails/maildir/mac/{email-kddi-01.eml → lhost-kddi-01.eml} +0 -0
  626. data/set-of-emails/maildir/mac/{email-mailfoundry-01.eml → lhost-mailfoundry-01.eml} +0 -0
  627. data/set-of-emails/maildir/mac/{email-mailmarshalsmtp-01.eml → lhost-mailmarshalsmtp-01.eml} +0 -0
  628. data/set-of-emails/maildir/mac/{email-mailru-01.eml → lhost-mailru-01.eml} +0 -0
  629. data/set-of-emails/maildir/mac/{email-mcafee-01.eml → lhost-mcafee-01.eml} +0 -0
  630. data/set-of-emails/maildir/mac/{email-messagelabs-01.eml → lhost-messagelabs-01.eml} +0 -0
  631. data/set-of-emails/maildir/mac/{email-messagingserver-01.eml → lhost-messagingserver-01.eml} +0 -0
  632. data/set-of-emails/maildir/mac/{email-mfilter-01.eml → lhost-mfilter-01.eml} +0 -0
  633. data/set-of-emails/maildir/mac/{email-mxlogic-01.eml → lhost-mxlogic-01.eml} +0 -0
  634. data/set-of-emails/maildir/mac/{email-notes-01.eml → lhost-notes-01.eml} +0 -0
  635. data/set-of-emails/maildir/mac/{email-office365-01.eml → lhost-office365-01.eml} +0 -0
  636. data/set-of-emails/maildir/mac/{email-opensmtpd-01.eml → lhost-opensmtpd-01.eml} +0 -0
  637. data/set-of-emails/maildir/mac/{email-outlook-01.eml → lhost-outlook-01.eml} +0 -0
  638. data/set-of-emails/maildir/mac/{email-postfix-01.eml → lhost-postfix-01.eml} +0 -0
  639. data/set-of-emails/maildir/mac/lhost-powermta-01.eml +1 -4
  640. data/set-of-emails/maildir/mac/{email-qmail-01.eml → lhost-qmail-01.eml} +0 -0
  641. data/set-of-emails/maildir/mac/{email-receivingses-01.eml → lhost-receivingses-01.eml} +0 -0
  642. data/set-of-emails/maildir/mac/{email-sendgrid-01.eml → lhost-sendgrid-01.eml} +0 -0
  643. data/set-of-emails/maildir/mac/{email-sendmail-01.eml → lhost-sendmail-01.eml} +0 -0
  644. data/set-of-emails/maildir/mac/{email-surfcontrol-01.eml → lhost-surfcontrol-01.eml} +0 -0
  645. data/set-of-emails/maildir/mac/{email-v5sendmail-01.eml → lhost-v5sendmail-01.eml} +0 -0
  646. data/set-of-emails/maildir/mac/{email-verizon-01.eml → lhost-verizon-01.eml} +0 -0
  647. data/set-of-emails/maildir/mac/{email-x1-01.eml → lhost-x1-01.eml} +0 -0
  648. data/set-of-emails/maildir/mac/{email-x2-01.eml → lhost-x2-01.eml} +0 -0
  649. data/set-of-emails/maildir/mac/{email-x3-01.eml → lhost-x3-01.eml} +0 -0
  650. data/set-of-emails/maildir/mac/{email-x4-01.eml → lhost-x4-01.eml} +0 -0
  651. data/set-of-emails/maildir/mac/{email-x5-01.eml → lhost-x5-01.eml} +0 -0
  652. data/set-of-emails/maildir/mac/lhost-x6-01.eml +1 -3
  653. data/set-of-emails/maildir/mac/{email-yahoo-01.eml → lhost-yahoo-01.eml} +0 -0
  654. data/set-of-emails/maildir/mac/{email-yandex-01.eml → lhost-yandex-01.eml} +0 -0
  655. data/set-of-emails/maildir/mac/{email-zoho-01.eml → lhost-zoho-01.eml} +0 -0
  656. data/set-of-emails/maildir/mac/rhost-iua-01.eml +1 -4
  657. metadata +560 -509
  658. data/lib/sisimai/bite.rb +0 -42
  659. data/lib/sisimai/bite/email.rb +0 -18
  660. data/lib/sisimai/bite/json.rb +0 -16
  661. data/lib/sisimai/lhost/userdefined.rb +0 -115
  662. data/lib/sisimai/message/email.rb +0 -26
  663. data/lib/sisimai/message/json.rb +0 -24
  664. data/lib/sisimai/order/email.rb +0 -20
  665. data/lib/sisimai/order/json.rb +0 -16
@@ -8,6 +8,7 @@ module Sisimai
8
8
  require 'sisimai/rhost'
9
9
  require 'sisimai/time'
10
10
  require 'sisimai/datetime'
11
+ require 'sisimai/smtp/error'
11
12
 
12
13
  @@rwaccessors = [
13
14
  :catch, # [?] Results generated by hook method
@@ -18,6 +19,7 @@ module Sisimai
18
19
  :listid, # [String] List-Id header of each ML
19
20
  :reason, # [String] Bounce reason
20
21
  :action, # [String] The value of Action: header
22
+ :origin, # [String] Email path as a data source
21
23
  :subject, # [String] UTF-8 Subject text
22
24
  :timestamp, # [Sisimai::Time] Date: header in the original message
23
25
  :addresser, # [Sisimai::Address] From address
@@ -35,12 +37,10 @@ module Sisimai
35
37
  :deliverystatus, # [String] Delivery Status(DSN)
36
38
  :timezoneoffset, # [Integer] Time zone offset(seconds)
37
39
  ]
38
- @@rwaccessors.each { |e| attr_accessor e }
40
+ attr_accessor(*@@rwaccessors)
39
41
 
40
- EndOfEmail = Sisimai::String.EOM
41
42
  RetryIndex = Sisimai::Reason.retry
42
43
  RFC822Head = Sisimai::RFC5322.HEADERFIELDS(:all)
43
- AddrHeader = { addresser: RFC822Head[:addresser], recipient: RFC822Head[:recipient] }.freeze
44
44
 
45
45
  # Constructor of Sisimai::Data
46
46
  # @param [Hash] argvs Data
@@ -77,6 +77,7 @@ module Sisimai
77
77
  @smtpcommand = argvs['smtpcommand'] || ''
78
78
  @feedbacktype = argvs['feedbacktype'] || ''
79
79
  @action = argvs['action'] || ''
80
+ @origin = argvs['origin'] || ''
80
81
  @replycode = argvs['replycode'] || ''
81
82
  @replycode = Sisimai::SMTP::Reply.find(argvs['diagnosticcode']).to_s if @replycode.empty?
82
83
  @softbounce = argvs['softbounce'] || ''
@@ -94,35 +95,11 @@ module Sisimai
94
95
 
95
96
  messageobj = data
96
97
  rfc822data = messageobj.rfc822
97
- fieldorder = { :recipient => [], :addresser => [] }
98
98
  objectlist = []
99
- givenorder = argvs[:order] || {}
100
99
  delivered1 = argvs[:delivered] || false
101
100
 
102
101
  return nil unless messageobj.ds
103
102
  return nil unless messageobj.rfc822
104
- require 'sisimai/smtp'
105
-
106
- # Decide the order of email headers: user specified or system default.
107
- if givenorder.is_a?(Hash) && !givenorder.empty?
108
- # If the order of headers for searching is specified, use the order
109
- # for detecting an email address.
110
- fieldorder.each_key do |e|
111
- # The order should be "Array Reference".
112
- next unless givenorder[e]
113
- next unless givenorder[e].is_a? Array
114
- next if givenorder[e].empty?
115
- fieldorder[e] += givenorder[e]
116
- end
117
- end
118
-
119
- fieldorder.each_key do |e|
120
- # If the order is empty, use default order.
121
- next unless fieldorder[e].empty?
122
-
123
- # Load default order of each accessor.
124
- fieldorder[e] = AddrHeader[e]
125
- end
126
103
 
127
104
  eachobject = messageobj.ds.dup
128
105
  while e = eachobject.shift do
@@ -151,9 +128,8 @@ module Sisimai
151
128
 
152
129
  # EMAIL_ADDRESS:
153
130
  # Detect email address from message/rfc822 part
154
- fieldorder[:addresser].each do |f|
131
+ RFC822Head[:addresser].each do |f|
155
132
  # Check each header in message/rfc822 part
156
- next unless rfc822data.key?(f)
157
133
  next unless rfc822data[f]
158
134
  next if rfc822data[f].empty?
159
135
 
@@ -258,8 +234,6 @@ module Sisimai
258
234
 
259
235
  # CHECK_DELIVERY_STATUS_VALUE:
260
236
  # Cleanup the value of "Diagnostic-Code:" header
261
- p['diagnosticcode'].sub!(/[ \t.]+#{EndOfEmail}/, '')
262
-
263
237
  unless p['diagnosticcode'].empty?
264
238
  # Count the number of D.S.N. and SMTP Reply Code
265
239
  vs = Sisimai::SMTP::Status.find(p['diagnosticcode'])
@@ -297,6 +271,7 @@ module Sisimai
297
271
 
298
272
  # Check the value of SMTP command
299
273
  p['smtpcommand'] = '' unless %w[EHLO HELO MAIL RCPT DATA QUIT].include?(p['smtpcommand'])
274
+ p['origin'] = argvs[:origin] # Set the path to the original email
300
275
 
301
276
  if p['action'].empty?
302
277
  # Check the value of "action"
@@ -312,12 +287,15 @@ module Sisimai
312
287
  o = Sisimai::Data.new(p)
313
288
  next unless o.recipient
314
289
 
315
- if o.reason.empty? || RetryIndex.key?(o.reason)
290
+ if o.reason.empty? || RetryIndex[o.reason]
316
291
  # Decide the reason of email bounce
317
- r = ''
318
- r = Sisimai::Rhost.get(o) if Sisimai::Rhost.match(o.rhost) # Remote host dependent error
319
- r = Sisimai::Reason.get(o) if r.empty?
320
- r = 'undefined' if r.empty?
292
+ r = ''; r = Sisimai::Rhost.get(o) if Sisimai::Rhost.match(o.rhost)
293
+ if r.empty?
294
+ # Failed to detect a bounce reason by the value of "rhost"
295
+ r = Sisimai::Rhost.get(o, o.destination) if Sisimai::Rhost.match(o.destination)
296
+ r = Sisimai::Reason.get(o) if r.empty?
297
+ r = 'undefined' if r.empty?
298
+ end
321
299
  o.reason = r
322
300
  end
323
301
 
@@ -348,9 +326,8 @@ module Sisimai
348
326
  textasargv = (o.replycode + ' ' + p['diagnosticcode']).lstrip
349
327
  getchecked = Sisimai::SMTP::Error.is_permanent(textasargv)
350
328
  tmpfailure = getchecked.nil? ? false : (getchecked ? false : true)
351
- pseudocode = Sisimai::SMTP::Status.code(o.reason, tmpfailure)
352
329
 
353
- if pseudocode
330
+ if pseudocode = Sisimai::SMTP::Status.code(o.reason, tmpfailure)
354
331
  # Set the value of "deliverystatus" and "softbounce"
355
332
  o.deliverystatus = pseudocode
356
333
 
@@ -43,7 +43,7 @@ module Sisimai
43
43
  abbr: %w[Sun Mon Tue Wed Thu Fri Sat],
44
44
  }.freeze
45
45
 
46
- TimeZoneAbbr = {
46
+ TimeZones = {
47
47
  # http://en.wikipedia.org/wiki/List_of_time_zone_abbreviations
48
48
  #'ACDT' => '+1030', # Australian Central Daylight Time UTC+10:30
49
49
  #'ACST' => '+0930', # Australian Central Standard Time UTC+09:30
@@ -399,7 +399,7 @@ module Sisimai
399
399
  # abbr2tz('JST') #=> '+0900'
400
400
  def abbr2tz(argv1)
401
401
  return nil unless argv1.is_a?(::String)
402
- return TimeZoneAbbr[argv1]
402
+ return TimeZones[argv1]
403
403
  end
404
404
 
405
405
  # Convert to second
@@ -428,7 +428,7 @@ module Sisimai
428
428
  return ztime
429
429
 
430
430
  elsif argv1 =~ /\A[A-Za-z]+\z/
431
- return tz2second(TimeZoneAbbr[argv1])
431
+ return tz2second(TimeZones[argv1])
432
432
  else
433
433
  return nil
434
434
  end
@@ -38,63 +38,41 @@ module Sisimai
38
38
  }
39
39
  end
40
40
 
41
- def smtpagent(v = '')
42
- return v.to_s.sub(/\ASisimai::Lhost::/, 'Email::')
43
- end
44
- def description; return ''; end
45
- def headerlist; return []; end
46
- def removedat; return 'v4.25.5'; end # This method will be removed at the future release of Sisimai
47
-
48
41
  # @abstract MTA list
49
42
  # @return [Array] MTA list with order
50
43
  def index
51
44
  return %w[
52
- Sendmail Postfix Qmail Exim Courier OpenSMTPD Office365 Outlook
53
- Exchange2007 Exchange2003 Yahoo GSuite Aol SendGrid AmazonSES MailRu
54
- Yandex MessagingServer Domino Notes ReceivingSES AmazonWorkMail Verizon
55
- GMX Bigfoot Facebook Zoho EinsUndEins MessageLabs EZweb KDDI Biglobe
56
- Amavis ApacheJames McAfee MXLogic MailFoundry IMailServer
57
- MFILTER Activehunter InterScanMSS SurfControl MailMarshalSMTP
58
- X1 X2 X3 X4 X5 V5sendmail FML Google]
45
+ Activehunter Amavis AmazonSES AmazonWorkMail Aol ApacheJames Barracuda Bigfoot
46
+ Biglobe Courier Domino EZweb EinsUndEins Exchange2003 Exchange2007 Exim FML
47
+ Facebook GMX GSuite GoogleGroups Gmail IMailServer InterScanMSS KDDI MXLogic
48
+ MailFoundry MailMarshalSMTP MailRu McAfee MessageLabs MessagingServer Notes
49
+ Office365 OpenSMTPD Outlook Postfix PowerMTA ReceivingSES SendGrid Sendmail
50
+ SurfControl V5sendmail Verizon X1 X2 X3 X4 X5 X6 Yahoo Yandex Zoho MFILTER
51
+ Qmail
52
+ ]
59
53
  end
60
54
 
61
- # @abstract MTA list which have one or more extra headers
62
- # @return [Array] MTA list (have extra headers)
63
- def heads
64
- return %w[
65
- Exim Office365 Outlook Exchange2007 Exchange2003 GSuite SendGrid
66
- AmazonSES ReceivingSES AmazonWorkMail Aol GMX MailRu MessageLabs Yahoo
67
- Yandex Zoho EinsUndEins MXLogic McAfee MFILTER EZweb Activehunter IMailServer
68
- SurfControl FML Google
69
- ]
55
+ # @abstract Returns Sisimai::Lhost::* module path table
56
+ # @return [Hash] Module path table
57
+ # @since v4.25.6
58
+ def path
59
+ index = Sisimai::Lhost.index
60
+ table = {
61
+ 'Sisimai::ARF' => 'sisimai/arf',
62
+ 'Sisimai::RFC3464' => 'sisimai/rfc3464',
63
+ 'Sisimai::RFC3834' => 'sisimai/rfc3834',
64
+ }
65
+ index.each { |e| table['Sisimai::Lhost::' << e] = 'sisimai/lhost/' << e.downcase }
66
+ return table
70
67
  end
71
68
 
72
69
  # @abstract Parse bounce messages
73
- # @param [Hash] mhead Message header of a bounce email
74
- # @options mhead [String] from From header
75
- # @options mhead [String] date Date header
76
- # @options mhead [String] subject Subject header
77
- # @options mhead [Array] received Received headers
78
- # @options mhead [String] others Other required headers
79
- # @param [String] mbody Message body of a bounce email
80
- # @return [Hash, Nil] Bounce data list and message/rfc822
81
- # part or nil if it failed to parse or
82
- # the arguments are missing
70
+ # @param [Hash] mhead Message headers of a bounce email
71
+ # @param [String] mbody Message body of a bounce email
72
+ # @return [Hash] Bounce data list and message/rfc822 part
73
+ # @return [Nil] it failed to parse or the arguments are missing
83
74
  def make; return nil; end
84
-
85
- # @abstract Print warnings about an obsoleted method. This method will be
86
- # removed at the future release of Sisimai
87
- # @until v4.25.5
88
- def warn(whois = '', useit = nil)
89
- label = ' ***warning:'
90
- methodname = caller[0][/`.*'/][1..-2]
91
- messageset = sprintf("%s %s.%s is marked as obsoleted", label, whois, methodname)
92
-
93
- useit ||= methodname
94
- messageset << sprintf(" and will be removed at %s.", removedat)
95
- messageset << sprintf(" Use %s.%s instead.\n", self.name, useit) if useit != 'gone'
96
- Kernel.warn messageset
97
- end
75
+ def description; return ''; end
98
76
  end
99
77
  end
100
78
  end
@@ -8,109 +8,70 @@ module Sisimai::Lhost
8
8
  require 'sisimai/lhost'
9
9
 
10
10
  Indicators = Sisimai::Lhost.INDICATORS
11
- StartingOf = {
12
- message: [' ----- The following addresses had permanent fatal errors -----'],
13
- rfc822: ['Content-type: message/rfc822'],
14
- }.freeze
15
-
16
- def description; return 'TransWARE Active!hunter'; end
17
- def smtpagent; return Sisimai::Lhost.smtpagent(self); end
18
- def headerlist; return %w[x-ahmailid]; end
11
+ ReBackbone = %r|^Content-type:[ ]message/rfc822|.freeze
12
+ StartingOf = { message: [' ----- The following addresses had permanent fatal errors -----'] }.freeze
19
13
 
20
14
  # Parse bounce messages from TransWARE Active!hunter
21
- # @param [Hash] mhead Message headers of a bounce email
22
- # @options mhead [String] from From header
23
- # @options mhead [String] date Date header
24
- # @options mhead [String] subject Subject header
25
- # @options mhead [Array] received Received headers
26
- # @options mhead [String] others Other required headers
27
- # @param [String] mbody Message body of a bounce email
28
- # @return [Hash, Nil] Bounce data list and message/rfc822
29
- # part or nil if it failed to parse or
30
- # the arguments are missing
15
+ # @param [Hash] mhead Message headers of a bounce email
16
+ # @param [String] mbody Message body of a bounce email
17
+ # @return [Hash] Bounce data list and message/rfc822 part
18
+ # @return [Nil] it failed to parse or the arguments are missing
31
19
  def make(mhead, mbody)
32
20
  # :from => %r/\A"MAILER-DAEMON"/,
33
21
  # :subject => %r/FAILURE NOTICE :/,
34
22
  return nil unless mhead['x-ahmailid']
35
23
 
36
24
  dscontents = [Sisimai::Lhost.DELIVERYSTATUS]
37
- hasdivided = mbody.split("\n")
38
- rfc822list = [] # (Array) Each line in message/rfc822 part string
39
- blanklines = 0 # (Integer) The number of blank lines
25
+ emailsteak = Sisimai::RFC5322.fillet(mbody, ReBackbone)
26
+ bodyslices = emailsteak[0].split("\n")
40
27
  readcursor = 0 # (Integer) Points the current cursor position
41
28
  recipients = 0 # (Integer) The number of 'Final-Recipient' header
42
29
  v = nil
43
30
 
44
- while e = hasdivided.shift do
31
+ while e = bodyslices.shift do
32
+ # Read error messages and delivery status lines from the head of the email
33
+ # to the previous line of the beginning of the original message.
45
34
  if readcursor == 0
46
35
  # Beginning of the bounce message or delivery status part
47
- if e == StartingOf[:message][0]
48
- readcursor |= Indicators[:deliverystatus]
49
- next
50
- end
36
+ readcursor |= Indicators[:deliverystatus] if e == StartingOf[:message][0]
37
+ next
51
38
  end
39
+ next if (readcursor & Indicators[:deliverystatus]) == 0
40
+ next if e.empty?
52
41
 
53
- if (readcursor & Indicators[:'message-rfc822']) == 0
54
- # Beginning of the original message part
55
- if e == StartingOf[:rfc822][0]
56
- readcursor |= Indicators[:'message-rfc822']
57
- next
58
- end
59
- end
42
+ # ----- The following addresses had permanent fatal errors -----
43
+ #
44
+ # >>> kijitora@example.org <kijitora@example.org>
45
+ #
46
+ # ----- Transcript of session follows -----
47
+ # 550 sorry, no mailbox here by that name (#5.1.1 - chkusr)
48
+ v = dscontents[-1]
60
49
 
61
- if readcursor & Indicators[:'message-rfc822'] > 0
62
- # Inside of the original message part
63
- if e.empty?
64
- blanklines += 1
65
- break if blanklines > 1
66
- next
50
+ if cv = e.match(/\A[>]{3}[ \t]+.+[<]([^ ]+?[@][^ ]+?)[>]\z/)
51
+ # >>> kijitora@example.org <kijitora@example.org>
52
+ if v['recipient']
53
+ # There are multiple recipient addresses in the message body.
54
+ dscontents << Sisimai::Lhost.DELIVERYSTATUS
55
+ v = dscontents[-1]
67
56
  end
68
- rfc822list << e
57
+ v['recipient'] = cv[1]
58
+ v['diagnosis'] = ''
59
+ recipients += 1
69
60
  else
70
- # Error message part
71
- next if (readcursor & Indicators[:deliverystatus]) == 0
72
- next if e.empty?
73
-
74
- # ----- The following addresses had permanent fatal errors -----
75
- #
76
- # >>> kijitora@example.org <kijitora@example.org>
77
- #
78
61
  # ----- Transcript of session follows -----
79
62
  # 550 sorry, no mailbox here by that name (#5.1.1 - chkusr)
80
- v = dscontents[-1]
81
-
82
- if cv = e.match(/\A[>]{3}[ \t]+.+[<]([^ ]+?[@][^ ]+?)[>]\z/)
83
- # >>> kijitora@example.org <kijitora@example.org>
84
- if v['recipient']
85
- # There are multiple recipient addresses in the message body.
86
- dscontents << Sisimai::Lhost.DELIVERYSTATUS
87
- v = dscontents[-1]
88
- end
89
- v['recipient'] = cv[1]
90
- v['diagnosis'] = ''
91
- recipients += 1
92
- else
93
- # ----- Transcript of session follows -----
94
- # 550 sorry, no mailbox here by that name (#5.1.1 - chkusr)
95
- next unless e =~ /\A[0-9A-Za-z]+/
96
- next unless v['diagnosis'].empty?
97
- v['diagnosis'] = e
98
- end
63
+ next unless e =~ /\A[0-9A-Za-z]+/
64
+ next unless v['diagnosis'].empty?
65
+ v['diagnosis'] = e
99
66
  end
100
67
  end
101
68
  return nil unless recipients > 0
102
69
 
103
70
  require 'sisimai/string'
104
- dscontents.each do |e|
105
- e['diagnosis'] = Sisimai::String.sweep(e['diagnosis'])
106
- e['agent'] = self.smtpagent
107
- e.each_key { |a| e[a] ||= '' }
108
- end
109
-
110
- rfc822part = Sisimai::RFC5322.weedout(rfc822list)
111
- return { 'ds' => dscontents, 'rfc822' => rfc822part }
71
+ dscontents.each { |e| e['diagnosis'] = Sisimai::String.sweep(e['diagnosis']) }
72
+ return { 'ds' => dscontents, 'rfc822' => emailsteak[1] }
112
73
  end
113
-
74
+ def description; return 'TransWARE Active!hunter'; end
114
75
  end
115
76
  end
116
77
  end
@@ -7,25 +7,74 @@ module Sisimai::Lhost
7
7
  require 'sisimai/lhost'
8
8
 
9
9
  Indicators = Sisimai::Lhost.INDICATORS
10
- StartingOf = {
11
- message: ['The message '],
12
- rfc822: ['Content-Type: text/rfc822-headers'],
10
+ ReBackbone = %r|^Content-Type:[ ]text/rfc822-headers|.freeze
11
+ StartingOf = { message: ['The message '] }.freeze
12
+ MessagesOf = {
13
+ # amavisd-new-2.11.1/amavisd:1840|%smtp_reason_by_ccat = (
14
+ # amavisd-new-2.11.1/amavisd:1840| # currently only used for blocked messages only, status 5xx
15
+ # amavisd-new-2.11.1/amavisd:1840| # a multiline message will produce a valid multiline SMTP response
16
+ # amavisd-new-2.11.1/amavisd:1840| CC_VIRUS, 'id=%n - INFECTED: %V',
17
+ # amavisd-new-2.11.1/amavisd:1840| CC_BANNED, 'id=%n - BANNED: %F',
18
+ # amavisd-new-2.11.1/amavisd:1840| CC_UNCHECKED.',1', 'id=%n - UNCHECKED: encrypted',
19
+ # amavisd-new-2.11.1/amavisd:1840| CC_UNCHECKED.',2', 'id=%n - UNCHECKED: over limits',
20
+ # amavisd-new-2.11.1/amavisd:1840| CC_UNCHECKED, 'id=%n - UNCHECKED',
21
+ # amavisd-new-2.11.1/amavisd:1840| CC_SPAM, 'id=%n - spam',
22
+ # amavisd-new-2.11.1/amavisd:1840| CC_SPAMMY.',1', 'id=%n - spammy (tag3)',
23
+ # amavisd-new-2.11.1/amavisd:1840| CC_SPAMMY, 'id=%n - spammy',
24
+ # amavisd-new-2.11.1/amavisd:1840| CC_BADH.',1', 'id=%n - BAD HEADER: MIME error',
25
+ # amavisd-new-2.11.1/amavisd:1840| CC_BADH.',2', 'id=%n - BAD HEADER: nonencoded 8-bit character',
26
+ # amavisd-new-2.11.1/amavisd:1840| CC_BADH.',3', 'id=%n - BAD HEADER: contains invalid control character',
27
+ # amavisd-new-2.11.1/amavisd:1840| CC_BADH.',4', 'id=%n - BAD HEADER: line made up entirely of whitespace',
28
+ # amavisd-new-2.11.1/amavisd:1840| CC_BADH.',5', 'id=%n - BAD HEADER: line longer than RFC 5322 limit',
29
+ # amavisd-new-2.11.1/amavisd:1840| CC_BADH.',6', 'id=%n - BAD HEADER: syntax error',
30
+ # amavisd-new-2.11.1/amavisd:1840| CC_BADH.',7', 'id=%n - BAD HEADER: missing required header field',
31
+ # amavisd-new-2.11.1/amavisd:1840| CC_BADH.',8', 'id=%n - BAD HEADER: duplicate header field',
32
+ # amavisd-new-2.11.1/amavisd:1840| CC_BADH, 'id=%n - BAD HEADER',
33
+ # amavisd-new-2.11.1/amavisd:1840| CC_OVERSIZED, 'id=%n - Message size exceeds recipient\'s size limit',
34
+ # amavisd-new-2.11.1/amavisd:1840| CC_MTA.',1', 'id=%n - Temporary MTA failure on relaying',
35
+ # amavisd-new-2.11.1/amavisd:1840| CC_MTA.',2', 'id=%n - Rejected by next-hop MTA on relaying',
36
+ # amavisd-new-2.11.1/amavisd:1840| CC_MTA, 'id=%n - Unable to relay message back to MTA',
37
+ # amavisd-new-2.11.1/amavisd:1840| CC_CLEAN, 'id=%n - CLEAN',
38
+ # amavisd-new-2.11.1/amavisd:1840| CC_CATCHALL, 'id=%n - OTHER', # should not happen
39
+ # ...
40
+ # amavisd-new-2.11.1/amavisd:15289|my $status = setting_by_given_contents_category(
41
+ # amavisd-new-2.11.1/amavisd:15289| $blocking_ccat,
42
+ # amavisd-new-2.11.1/amavisd:15289| { CC_VIRUS, "554 5.7.0",
43
+ # amavisd-new-2.11.1/amavisd:15289| CC_BANNED, "554 5.7.0",
44
+ # amavisd-new-2.11.1/amavisd:15289| CC_UNCHECKED, "554 5.7.0",
45
+ # amavisd-new-2.11.1/amavisd:15289| CC_SPAM, "554 5.7.0",
46
+ # amavisd-new-2.11.1/amavisd:15289| CC_SPAMMY, "554 5.7.0",
47
+ # amavisd-new-2.11.1/amavisd:15289| CC_BADH.",2", "554 5.6.3", # nonencoded 8-bit character
48
+ # amavisd-new-2.11.1/amavisd:15289| CC_BADH, "554 5.6.0",
49
+ # amavisd-new-2.11.1/amavisd:15289| CC_OVERSIZED, "552 5.3.4",
50
+ # amavisd-new-2.11.1/amavisd:15289| CC_MTA, "550 5.3.5",
51
+ # amavisd-new-2.11.1/amavisd:15289| CC_CATCHALL, "554 5.7.0",
52
+ # amavisd-new-2.11.1/amavisd:15289| });
53
+ # ...
54
+ # amavisd-new-2.11.1/amavisd:15332|my $response = sprintf("%s %s%s%s", $status,
55
+ # amavisd-new-2.11.1/amavisd:15333| ($final_destiny == D_PASS ? "Ok" :
56
+ # amavisd-new-2.11.1/amavisd:15334| $final_destiny == D_DISCARD ? "Ok, discarded" :
57
+ # amavisd-new-2.11.1/amavisd:15335| $final_destiny == D_REJECT ? "Reject" :
58
+ # amavisd-new-2.11.1/amavisd:15336| $final_destiny == D_BOUNCE ? "Bounce" :
59
+ # amavisd-new-2.11.1/amavisd:15337| $final_destiny == D_TEMPFAIL ? "Temporary failure" :
60
+ # amavisd-new-2.11.1/amavisd:15338| "Not ok ($final_destiny)" ),
61
+ 'spamdetected' => [' - spam'],
62
+ 'virusdetected' => [' - infected'],
63
+ 'contenterror' => [' - bad header:'],
64
+ 'exceedlimit' => [' - message size exceeds recipient'],
65
+ 'systemerror' => [
66
+ ' - temporary mta failure on relaying',
67
+ ' - rejected by next-hop mta on relaying',
68
+ ' - unable to relay message back to mta',
69
+ ],
13
70
  }.freeze
14
71
 
15
- def description; return 'amavisd-new: https://www.amavis.org/'; end
16
- def smtpagent; return Sisimai::Lhost.smtpagent(self); end
17
-
18
72
  # Parse bounce messages from amavisd-new
19
- # @param [Hash] mhead Message headers of a bounce email
20
- # @options mhead [String] from From header
21
- # @options mhead [String] date Date header
22
- # @options mhead [String] subject Subject header
23
- # @options mhead [Array] received Received headers
24
- # @options mhead [String] others Other required headers
25
- # @param [String] mbody Message body of a bounce email
26
- # @return [Hash, Nil] Bounce data list and message/rfc822
27
- # part or nil if it failed to parse or
28
- # the arguments are missing
73
+ # @param [Hash] mhead Message headers of a bounce email
74
+ # @param [String] mbody Message body of a bounce email
75
+ # @return [Hash] Bounce data list and message/rfc822 part
76
+ # @return [Nil] it failed to parse or the arguments are missing
77
+ # @since v4.25.0
29
78
  def make(mhead, mbody)
30
79
  # From: "Content-filter at neko1.example.jp" <postmaster@neko1.example.jp>
31
80
  # Subject: Undeliverable mail, MTA-BLOCKED
@@ -36,97 +85,81 @@ module Sisimai::Lhost
36
85
  permessage = {} # (Hash) Store values of each Per-Message field
37
86
 
38
87
  dscontents = [Sisimai::Lhost.DELIVERYSTATUS]
39
- hasdivided = mbody.split("\n")
40
- havepassed = ['']
41
- rfc822list = [] # (Array) Each line in message/rfc822 part string
42
- blanklines = 0 # (Integer) The number of blank lines
88
+ emailsteak = Sisimai::RFC5322.fillet(mbody, ReBackbone)
89
+ bodyslices = emailsteak[0].split("\n")
43
90
  readcursor = 0 # (Integer) Points the current cursor position
44
91
  recipients = 0 # (Integer) The number of 'Final-Recipient' header
45
92
  v = nil
46
93
 
47
- while e = hasdivided.shift do
48
- # Save the current line for the next loop
49
- havepassed << e
50
- p = havepassed[-2]
94
+ while e = bodyslices.shift do
95
+ # Read error messages and delivery status lines from the head of the email
96
+ # to the previous line of the beginning of the original message.
51
97
 
52
98
  if readcursor == 0
53
99
  # Beginning of the bounce message or message/delivery-status part
54
- if e.start_with?(StartingOf[:message][0])
55
- readcursor |= Indicators[:deliverystatus]
56
- next
57
- end
58
- end
59
-
60
- if (readcursor & Indicators[:'message-rfc822']) == 0
61
- # Beginning of the original message part(message/rfc822)
62
- if e == StartingOf[:rfc822][0]
63
- readcursor |= Indicators[:'message-rfc822']
64
- next
65
- end
100
+ readcursor |= Indicators[:deliverystatus] if e.start_with?(StartingOf[:message][0])
101
+ next
66
102
  end
67
-
68
- if readcursor & Indicators[:'message-rfc822'] > 0
69
- # message/rfc822 OR text/rfc822-headers part
70
- if e.empty?
71
- blanklines += 1
72
- break if blanklines > 1
73
- next
74
- end
75
- rfc822list << e
76
- else
77
- # message/delivery-status part
78
- next if (readcursor & Indicators[:deliverystatus]) == 0
79
- next if e.empty?
80
- next unless f = Sisimai::RFC1894.match(e)
81
-
82
- # "e" matched with any field defined in RFC3464
83
- next unless o = Sisimai::RFC1894.field(e)
84
- v = dscontents[-1]
85
-
86
- if o[-1] == 'addr'
103
+ next if (readcursor & Indicators[:deliverystatus]) == 0
104
+ next if e.empty?
105
+ next unless f = Sisimai::RFC1894.match(e)
106
+
107
+ # "e" matched with any field defined in RFC3464
108
+ next unless o = Sisimai::RFC1894.field(e)
109
+ v = dscontents[-1]
110
+
111
+ if o[-1] == 'addr'
112
+ # Final-Recipient: rfc822; kijitora@example.jp
113
+ # X-Actual-Recipient: rfc822; kijitora@example.co.jp
114
+ if o[0] == 'final-recipient'
87
115
  # Final-Recipient: rfc822; kijitora@example.jp
88
- # X-Actual-Recipient: rfc822; kijitora@example.co.jp
89
- if o[0] == 'final-recipient'
90
- # Final-Recipient: rfc822; kijitora@example.jp
91
- if v['recipient']
92
- # There are multiple recipient addresses in the message body.
93
- dscontents << Sisimai::Lhost.DELIVERYSTATUS
94
- v = dscontents[-1]
95
- end
96
- v['recipient'] = o[2]
97
- recipients += 1
98
- else
99
- # X-Actual-Recipient: rfc822; kijitora@example.co.jp
100
- v['alias'] = o[2]
116
+ if v['recipient']
117
+ # There are multiple recipient addresses in the message body.
118
+ dscontents << Sisimai::Lhost.DELIVERYSTATUS
119
+ v = dscontents[-1]
101
120
  end
102
- elsif o[-1] == 'code'
103
- # Diagnostic-Code: SMTP; 550 5.1.1 <userunknown@example.jp>... User Unknown
104
- v['spec'] = o[1]
105
- v['diagnosis'] = o[2]
121
+ v['recipient'] = o[2]
122
+ recipients += 1
106
123
  else
107
- # Other DSN fields defined in RFC3464
108
- next unless fieldtable.key?(o[0])
109
- v[fieldtable[o[0]]] = o[2]
110
-
111
- next unless f == 1
112
- permessage[fieldtable[o[0]]] = o[2]
124
+ # X-Actual-Recipient: rfc822; kijitora@example.co.jp
125
+ v['alias'] = o[2]
113
126
  end
114
- end # End of message/delivery-status
127
+ elsif o[-1] == 'code'
128
+ # Diagnostic-Code: SMTP; 550 5.1.1 <userunknown@example.jp>... User Unknown
129
+ v['spec'] = o[1]
130
+ v['diagnosis'] = o[2]
131
+ else
132
+ # Other DSN fields defined in RFC3464
133
+ next unless fieldtable[o[0]]
134
+ v[fieldtable[o[0]]] = o[2]
135
+
136
+ next unless f == 1
137
+ permessage[fieldtable[o[0]]] = o[2]
138
+ end
115
139
  end
116
140
  return nil unless recipients > 0
117
141
 
118
142
  dscontents.each do |e|
119
143
  # Set default values if each value is empty.
120
144
  permessage.each_key { |a| e[a] ||= permessage[a] || '' }
121
-
122
145
  e['diagnosis'] = Sisimai::String.sweep(e['diagnosis'].to_s.tr("\n", ' '))
123
- e['agent'] = self.smtpagent
146
+ q = e['diagnosis'].downcase
147
+ catch :DETECT_REASON do
148
+ MessagesOf.each_key do |p|
149
+ # Try to detect an error reason
150
+ MessagesOf[p].each do |r|
151
+ # Try to find an error message including lower-cased string
152
+ # defined in MessagesOf constant
153
+ next unless q.include?(r)
154
+ e['reason'] = p
155
+ throw :DETECT_REASON
156
+ end
157
+ end
158
+ end
124
159
  end
125
-
126
- rfc822part = Sisimai::RFC5322.weedout(rfc822list)
127
- return { 'ds' => dscontents, 'rfc822' => rfc822part }
160
+ return { 'ds' => dscontents, 'rfc822' => emailsteak[1] }
128
161
  end
129
-
162
+ def description; return 'amavisd-new: https://www.amavis.org/'; end
130
163
  end
131
164
  end
132
165
  end