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
data/README.md CHANGED
@@ -1,9 +1,9 @@
1
1
  ![](https://libsisimai.org/static/images/logo/sisimai-x01.png)
2
2
 
3
- [![License](https://img.shields.io/badge/license-BSD%202--Clause-orange.svg)](https://github.com/sisimai/rb-Sisimai/blob/master/LICENSE)
4
- [![Coverage Status](https://img.shields.io/coveralls/sisimai/rb-Sisimai.svg)](https://coveralls.io/r/sisimai/rb-Sisimai)
5
- [![Build Status](https://travis-ci.org/sisimai/rb-Sisimai.svg?branch=master)](https://travis-ci.org/sisimai/rb-Sisimai)
6
- [![Codacy Badge](https://api.codacy.com/project/badge/grade/38340177e6284a65be69c0c7c3dc2b58)](https://www.codacy.com/app/azumakuniyuki/rb-Sisimai)
3
+ [![License](https://img.shields.io/badge/license-BSD%202--Clause-orange.svg)](https://github.com/sisimai/rb-sisimai/blob/master/LICENSE)
4
+ [![Coverage Status](https://img.shields.io/coveralls/sisimai/rb-sisimai.svg)](https://coveralls.io/r/sisimai/rb-sisimai)
5
+ [![Build Status](https://travis-ci.org/sisimai/rb-sisimai.svg?branch=master)](https://travis-ci.org/sisimai/rb-sisimai)
6
+ [![Codacy Badge](https://api.codacy.com/project/badge/grade/38340177e6284a65be69c0c7c3dc2b58)](https://www.codacy.com/app/azumakuniyuki/rb-sisimai)
7
7
  [![Ruby](https://img.shields.io/badge/ruby-v2.1.0--v2.6.0-red.svg)](https://www.ruby-lang.org/)
8
8
  [![Gem Version](https://badge.fury.io/rb/sisimai.svg)](https://badge.fury.io/rb/sisimai)
9
9
 
@@ -19,7 +19,6 @@
19
19
  - [Usage](#usage)
20
20
  - [Basic usage](#basic-usage)
21
21
  - [Convert to JSON](#convert-to-json)
22
- - [Read bounce object](#read-bounce-object)
23
22
  - [Callback feature](#callback-feature)
24
23
  - [One-Liner](#one-liner)
25
24
  - [Output example](#output-example)
@@ -40,7 +39,7 @@ What is Sisimai
40
39
  ===============================================================================
41
40
  Sisimai is a Ruby library for analyzing RFC5322 bounce emails and generating
42
41
  structured data from parsed results. The Ruby version of Sisimai is ported from
43
- the Perl version of Sisimai at [github.com/sisimai/p5-Sisimai](https://github.com/sisimai/p5-Sisimai/).
42
+ the Perl version of Sisimai at [github.com/sisimai/p5-sisimai](https://github.com/sisimai/p5-sisimai/).
44
43
 
45
44
  ![](https://libsisimai.org/static/images/figure/sisimai-overview-1.png)
46
45
 
@@ -53,17 +52,14 @@ Key Features
53
52
  * git clone & make
54
53
  * __High Precision of Analysis__
55
54
  * 2 times higher than bounceHammer
56
- * Support 24 known MTAs and 5 unknown MTAs
57
- * Support 22 major MSPs(Mail Service Providers)
58
- * Support 2 major Cloud Email Delivery Services(JSON format)
59
- * **WILL BE REMOVED AT Sisimai 4.25.5**
55
+ * Support 68 MTAs/MDAs/ESPs
60
56
  * Support Feedback Loop Message(ARF)
61
57
  * Can detect 29 error reasons
62
58
 
63
59
  Command line demo
64
60
  -------------------------------------------------------------------------------
65
61
  The following screen shows a demonstration of Sisimai at the command line using
66
- Ruby(rb-Sisimai) and Perl(p5-Sisimai) version of Sisimai.
62
+ Ruby(rb-sisimai) and Perl(p5-sisimai) version of Sisimai.
67
63
  ![](https://libsisimai.org/static/images/demo/sisimai-dump-01.gif)
68
64
 
69
65
  Setting Up Sisimai
@@ -86,10 +82,10 @@ Install
86
82
 
87
83
  ```shell
88
84
  $ sudo gem install sisimai
89
- Fetching: sisimai-4.25.1.gem (100%)
90
- Successfully installed sisimai-4.25.1
91
- Parsing documentation for sisimai-4.25.1
92
- Installing ri documentation for sisimai-4.25.1
85
+ Fetching: sisimai-4.25.5.gem (100%)
86
+ Successfully installed sisimai-4.25.5
87
+ Parsing documentation for sisimai-4.25.5
88
+ Installing ri documentation for sisimai-4.25.5
93
89
  Done installing documentation for sisimai after 6 seconds
94
90
  1 gem installed
95
91
  ```
@@ -98,15 +94,15 @@ Done installing documentation for sisimai after 6 seconds
98
94
 
99
95
  ```shell
100
96
  $ cd /usr/local/src
101
- $ git clone https://github.com/sisimai/rb-Sisimai.git
102
- $ cd ./rb-Sisimai
97
+ $ git clone https://github.com/sisimai/rb-sisimai.git
98
+ $ cd ./rb-sisimai
103
99
  $ sudo make depend install-from-local
104
100
  gem install bundle rake rspec coveralls
105
101
  ...
106
102
  4 gems installed
107
103
  bundle exec rake install
108
- sisimai 4.25.1 built to pkg/sisimai-4.25.1.gem.
109
- sisimai (4.25.1) installed.
104
+ sisimai 4.25.5 built to pkg/sisimai-4.25.5.gem.
105
+ sisimai (4.25.5) installed.
110
106
  ```
111
107
 
112
108
  Usage
@@ -115,7 +111,9 @@ Usage
115
111
  Basic usage
116
112
  -------------------------------------------------------------------------------
117
113
  `make()` method provides feature for getting parsed data from bounced email
118
- messages like following.
114
+ messages like following. Beginning with v4.25.6, new accessor `origin` which
115
+ keeps the path to email file as a data source is available.
116
+
119
117
 
120
118
  ```ruby
121
119
  #! /usr/bin/env ruby
@@ -143,6 +141,7 @@ if v.is_a? Array
143
141
  puts e.deliverystatus # 5.1.1
144
142
  puts e.replycode # 550
145
143
  puts e.reason # userunknown
144
+ puts e.origin # /var/spool/bounce/Maildir/new/1740074341.eml
146
145
 
147
146
  h = e.damn # Convert to HASH
148
147
  j = e.dump('json') # Convert to JSON string
@@ -164,30 +163,6 @@ puts Sisimai.dump('/path/to/mbox') # or path to Maildir/
164
163
  puts Sisimai.dump('/path/to/mbox', delivered: true)
165
164
  ```
166
165
 
167
- Read bounce object
168
- -------------------------------------------------------------------------------
169
- **THIS FEATURE WILL BE REMOVED AT SISIMAI 4.25.5**
170
-
171
- The way to read a bounce object retrived from Cloud Email Services as JSON using
172
- their API is the following code. This feature is available at between v4.20.0
173
- and **v4.25.5**.
174
-
175
- ```ruby
176
- #! /usr/bin/env ruby
177
- require 'json'
178
- require 'sisimai'
179
-
180
- j = JSON.load('{"notificationType"=>"Bounce", "bounce"=>{"...') # JSON String
181
- v = Sisimai.make(j, input: 'json')
182
-
183
- if v.is_a? Array
184
- v.each do |e|
185
- ...
186
- end
187
- end
188
- ```
189
- As of present, Only Amazon SES and SendGrid are supported.
190
-
191
166
  Callback feature
192
167
  -------------------------------------------------------------------------------
193
168
  Beginning with Sisimai 4.19.0, `make()` and `dump()` methods of Sisimai accept
@@ -207,9 +182,8 @@ callbackto = lambda do |v|
207
182
  return r
208
183
  end
209
184
 
210
- list = ['X-Mailer']
211
- data = Sisimai.make('/path/to/mbox', hook: callbackto, field: list)
212
- json = Sisimai.dump('/path/to/mbox', hook: callbackto, field: list)
185
+ data = Sisimai.make('/path/to/mbox', hook: callbackto)
186
+ json = Sisimai.dump('/path/to/mbox', hook: callbackto)
213
187
 
214
188
  puts data[0].catch['x-mailer'] # Apple Mail (2.1283)
215
189
  ```
@@ -230,7 +204,7 @@ Output example
230
204
  ![](https://libsisimai.org/static/images/demo/sisimai-dump-02.gif)
231
205
 
232
206
  ```json
233
- [{"action": "failed", "subject": "Nyaan", "catch": null, "token": "08acf78323edc7923a783c04749dd547ab45c433", "alias": "", "messageid": "201806090556.w595u8GZ093276@neko.example.jp", "listid": "", "smtpcommand": "MAIL", "smtpagent": "Email::Sendmail", "lhost": "localhost", "timezoneoffset": "+0900", "feedbacktype": "", "senderdomain": "neko.example.jp", "diagnostictype": "SMTP", "softbounce": 1, "deliverystatus": "5.0.0", "addresser": "kijitora@neko.example.jp", "diagnosticcode": "550 Unauthenticated senders not allowed", "timestamp": 1528523769, "destination": "example.com", "recipient": "sironeko@example.com", "reason": "securityerror", "replycode": "550", "rhost": "neko.example.jp"}]
207
+ [{"catch":{"x-mailer":"","return-path":"<shironeko@mx.example.co.jp>"},"token":"cf17945938502bd876603a375f0e9517c921bbab","lhost":"localhost","rhost":"mx-s.neko.example.jp","alias":"","listid":"","reason":"hasmoved","action":"failed","origin":"set-of-emails/maildir/bsd/lhost-sendmail-22.eml","subject":"Nyaaaan","messageid":"0000000011111.fff0000000003@mx.example.co.jp","replycode":"","smtpagent":"Sendmail","softbounce":0,"smtpcommand":"DATA","destination":"example.net","senderdomain":"example.co.jp","feedbacktype":"","diagnosticcode":"450 busy - please try later 551 not our customer 503 need RCPT command [data]","diagnostictype":"SMTP","deliverystatus":"5.1.6","timezoneoffset":"+0900","addresser":"shironeko@example.co.jp","recipient":"kijitora@example.net","timestamp":1397054085}]
234
208
  ```
235
209
 
236
210
  Sisimai Specification
@@ -248,15 +222,15 @@ and bounceHammer are available at
248
222
  | System requirements | Ruby 2.1 - 2.6 | Perl 5.10 - |
249
223
  | | JRuby 9.0.4.0- | |
250
224
  | Analytical precision ratio(2000 emails)[1] | 1.00 | 1.00 |
251
- | The speed of parsing email(1000 emails) | 2.22s[2] | 1.50s |
225
+ | The speed of parsing email(1000 emails) | 2.22s[2] | 1.35s |
252
226
  | How to install | gem install | cpanm, cpm |
253
227
  | Dependencies (Except core modules) | 1 module | 2 modules |
254
- | LOC:Source lines of code | 11700 lines | 8300 lines |
255
- | The number of tests(spec/,t/,xt/) directory | 227600 tests | 250000 tests |
228
+ | LOC:Source lines of code | 10300 lines | 10500 lines |
229
+ | The number of tests(spec/,t/,xt/) directory | 236000 tests | 265000 tests |
256
230
  | License | BSD 2-Clause | BSD 2-Clause |
257
231
  | Support Contract provided by Developer | Available | Available |
258
232
 
259
- 1. See [./ANALYTICAL-PRECISION](https://github.com/sisimai/rb-Sisimai/blob/master/ANALYTICAL-PRECISION)
233
+ 1. See [./ANALYTICAL-PRECISION](https://github.com/sisimai/rb-sisimai/blob/master/ANALYTICAL-PRECISION)
260
234
  2. Xeon E5-2640 2.5GHz x 2 cores | 5000 bogomips | 1GB RAM | Ruby 2.3.4p301
261
235
 
262
236
  Other specification of Sisimai
@@ -270,7 +244,7 @@ Contributing
270
244
 
271
245
  Bug report
272
246
  -------------------------------------------------------------------------------
273
- Please use the [issue tracker](https://github.com/sisimai/rb-Sisimai/issues)
247
+ Please use the [issue tracker](https://github.com/sisimai/rb-sisimai/issues)
274
248
  to report any bugs.
275
249
 
276
250
  Emails could not be parsed
@@ -289,14 +263,14 @@ Related Sites
289
263
  * __libSISIMAI.ORG__ | [Sisimai | The successor to bounceHammer, Library to parse bounce mails](https://libsisimai.org/)
290
264
  * __Sisimai Blog__ | [blog.libsisimai.org](http://blog.libsisimai.org/)
291
265
  * __Facebook Page__ | [facebook.com/libsisimai](https://www.facebook.com/libsisimai/)
292
- * __GitHub__ | [github.com/sisimai/rb-Sisimai](https://github.com/sisimai/rb-Sisimai)
266
+ * __GitHub__ | [github.com/sisimai/rb-sisimai](https://github.com/sisimai/rb-sisimai)
293
267
  * __RubyGems.org__ | [rubygems.org/gems/sisimai](https://rubygems.org/gems/sisimai)
294
- * __Perl verson__ | [Perl version of Sisimai](https://github.com/sisimai/p5-Sisimai)
268
+ * __Perl verson__ | [Perl version of Sisimai](https://github.com/sisimai/p5-sisimai)
295
269
  * __Fixtures__ | [set-of-emails - Sample emails for "make test"](https://github.com/sisimai/set-of-emails)
296
270
 
297
271
  See also
298
272
  -------------------------------------------------------------------------------
299
- * [README-JA.md - README.md in Japanese(日本語)](https://github.com/sisimai/rb-Sisimai/blob/master/README-JA.md)
273
+ * [README-JA.md - README.md in Japanese(日本語)](https://github.com/sisimai/rb-sisimai/blob/master/README-JA.md)
300
274
  * [RFC3463 - Enhanced Mail System Status Codes](https://tools.ietf.org/html/rfc3463)
301
275
  * [RFC3464 - An Extensible Message Format for Delivery Status Notifications](https://tools.ietf.org/html/rfc3464)
302
276
  * [RFC3834 - Recommendations for Automatic Responses to Electronic Mail](https://tools.ietf.org/html/rfc3834)
@@ -309,7 +283,7 @@ Author
309
283
 
310
284
  Copyright
311
285
  ===============================================================================
312
- Copyright (C) 2015-2019 azumakuniyuki, All Rights Reserved.
286
+ Copyright (C) 2015-2020 azumakuniyuki, All Rights Reserved.
313
287
 
314
288
  License
315
289
  ===============================================================================
@@ -1,4 +1,4 @@
1
- # rb-Sisimai/Repository.mk
1
+ # rb-sisimai/Repository.mk
2
2
  # ____ _ _ _
3
3
  # | _ \ ___ _ __ ___ ___(_) |_ ___ _ __ _ _ _ __ ___ | | __
4
4
  # | |_) / _ \ '_ \ / _ \/ __| | __/ _ \| '__| | | | | '_ ` _ \| |/ /
@@ -1,10 +1,9 @@
1
- require 'sisimai/version'
2
-
3
1
  # Sisimai is the system formerly known as bounceHammer 4, is a Ruby module for
4
2
  # analyzing bounce mails and generate structured data in a JSON format (YAML is
5
3
  # also available if "YAML" module is installed on your system) from parsed bounce
6
4
  # messages. Sisimai is a coined word: Sisi (the number 4 is pronounced "Si" in
7
5
  # Japanese) and MAI (acronym of "Mail Analyzing Interface").
6
+ require 'sisimai/version'
8
7
  module Sisimai
9
8
  # Imported from p5-Sisimail/lib/Sisimai.pm
10
9
  class << self
@@ -19,82 +18,29 @@ module Sisimai
19
18
  # @param [Hash] argv1 Parser options(delivered=false)
20
19
  # @options argv1 [Boolean] delivered true: Include "delivered" reason
21
20
  # @options argv1 [Lambda] hook Lambda object to be called back
22
- # @options argv1 [String] input Input data format: 'email', 'json'
23
- # @options argv1 [Array] field Email header name to be captured
24
21
  # @return [Array] Parsed objects
25
22
  # @return [nil] nil if the argument was wrong or an empty array
26
23
  def make(argv0, **argv1)
27
24
  return nil unless argv0
28
-
29
- input = argv1[:input] || nil
30
- field = argv1[:field] || []
31
- raise ' ***error: "field" accepts an array only' unless field.is_a? Array
32
-
33
- unless input
34
- klass = argv0.class
35
- # "input" did not specified, try to detect automatically.
36
- if klass == ::String || klass == IO
37
- # The argument may be a path to email OR an email text
38
- input = 'email'
39
- elsif klass == Array || klass == Hash
40
- # The argument may be a decoded JSON object
41
- input = 'json'
42
- end
43
- end
44
-
45
- delivered1 = argv1[:delivered] || false
46
- hookmethod = argv1[:hook] || nil
47
- bouncedata = []
48
-
49
25
  require 'sisimai/data'
50
26
  require 'sisimai/message'
51
- if input == 'email'
52
- # Path to mailbox or Maildir/, or STDIN: 'input' => 'email'
53
- require 'sisimai/mail'
54
- return nil unless mail = Sisimai::Mail.new(argv0)
55
-
56
- while r = mail.read do
57
- # Read and parse each mail file
58
- methodargv = { data: r, hook: hookmethod, input: 'email', field: field }
59
- mesg = Sisimai::Message.new(methodargv)
60
- next if mesg.void
61
-
62
- methodargv = { data: mesg, hook: hookmethod, input: 'email', delivered: delivered1 }
63
- next unless data = Sisimai::Data.make(methodargv)
64
- bouncedata += data unless data.empty?
65
- end
66
-
67
- elsif input == 'json'
68
- # Decoded JSON object: 'input' => 'json'
69
- warn ' ***warning: input: "json" is marked as obsoleted'
70
- type = argv0.class.to_s
71
- list = []
72
-
73
- if type == 'Array'
74
- # [ {...}, {...}, ... ]
75
- while e = argv0.shift do
76
- list << e
77
- end
78
- else
79
- list << argv0
80
- end
81
-
82
- while e = list.shift do
83
- methodargv = { data: e, hook: hookmethod, input: 'json' }
84
- mesg = Sisimai::Message.new(methodargv)
85
- next if mesg.void
86
-
87
- methodargv = { data: mesg, hook: hookmethod, input: 'json', delivered: delivered1 }
88
- next unless data = Sisimai::Data.make(methodargv)
89
- bouncedata += data unless data.empty?
90
- end
91
- else
92
- # The value of "input" neither "email" nor "json"
93
- raise ' ***error: invalid value of "input"'
27
+ require 'sisimai/mail'
28
+
29
+ list = []
30
+ return nil unless mail = Sisimai::Mail.new(argv0)
31
+ while r = mail.data.read do
32
+ # Read and parse each email file
33
+ methodargv = { data: r, hook: argv1[:hook] }
34
+ mesg = Sisimai::Message.new(**methodargv)
35
+ next if mesg.void
36
+
37
+ methodargv = { data: mesg, delivered: argv1[:delivered], origin: mail.data.path }
38
+ next unless data = Sisimai::Data.make(**methodargv)
39
+ list += data unless data.empty?
94
40
  end
95
41
 
96
- return nil if bouncedata.empty?
97
- return bouncedata
42
+ return nil if list.empty?
43
+ return list
98
44
  end
99
45
 
100
46
  # Wrapper method to parse mailbox/Maildir and dump as JSON
@@ -104,12 +50,11 @@ module Sisimai
104
50
  # @param [Hash] argv1 Parser options
105
51
  # @options argv1 [Integer] delivered true: Include "delivered" reason
106
52
  # @options argv1 [Lambda] hook Lambda object to be called back
107
- # @options argv1 [String] input Input data format: 'email', 'json'
108
53
  # @return [String] Parsed data as JSON text
109
54
  def dump(argv0, **argv1)
110
55
  return nil unless argv0
111
56
 
112
- nyaan = Sisimai.make(argv0, argv1) || []
57
+ nyaan = Sisimai.make(argv0, **argv1) || []
113
58
  if RUBY_PLATFORM.start_with?('java')
114
59
  # java-based ruby environment like JRuby.
115
60
  require 'jrjackson'
@@ -30,7 +30,7 @@ module Sisimai
30
30
  # # => Sisimai::Address object
31
31
  def self.make(argvs)
32
32
  return nil unless argvs.is_a? Hash
33
- return nil unless argvs.key?(:address)
33
+ return nil unless argvs[:address]
34
34
  return nil if argvs[:address].empty?
35
35
 
36
36
  thing = Sisimai::Address.new(argvs[:address])
@@ -69,7 +69,7 @@ module Sisimai
69
69
 
70
70
  while e = characters.shift do
71
71
  # Check each characters
72
- if Delimiters.key?(e)
72
+ if Delimiters[e]
73
73
  # The character is a delimiter character
74
74
  if e == ','
75
75
  # Separator of email addresses or not
@@ -283,7 +283,7 @@ module Sisimai
283
283
  # expand_verp('bounce+neko=example.org@example.org') #=> 'neko@example.org'
284
284
  def self.expand_verp(email)
285
285
  return nil unless email.is_a? Object::String
286
- return nil unless cv = email.split('@', 2).first.match(/\A[-_\w]+?[+](\w[-._\w]+\w)[=](\w[-.\w]+\w)\z/)
286
+ return nil unless cv = email.split('@', 2).first.match(/\A[-\w]+?[+](\w[-.\w]+\w)[=](\w[-.\w]+\w)\z/)
287
287
  verp0 = cv[1] + '@' + cv[2]
288
288
  return verp0 if Sisimai::RFC5322.is_emailaddress(verp0)
289
289
  end
@@ -297,23 +297,19 @@ module Sisimai
297
297
  return nil unless Sisimai::RFC5322.is_emailaddress(email)
298
298
 
299
299
  local = email.split('@')
300
- return nil unless cv = local[0].match(/\A([-_\w]+?)[+].+\z/)
300
+ return nil unless cv = local[0].match(/\A([-\w]+?)[+].+\z/)
301
301
  return cv[1] + '@' + local[1]
302
302
  end
303
303
 
304
- @@roaccessors = [
305
- :address, # [String] Email address
306
- :user, # [String] local part of the email address
307
- :host, # [String] domain part of the email address
308
- :verp, # [String] VERP
309
- :alias, # [String] alias of the email address
310
- ]
311
- @@rwaccessors = [
312
- :name, # [String] Display name
313
- :comment, # [String] Comment
314
- ]
315
- @@roaccessors.each { |e| attr_reader e }
316
- @@rwaccessors.each { |e| attr_accessor e }
304
+ # :address, # [String] Email address
305
+ # :user, # [String] local part of the email address
306
+ # :host, # [String] domain part of the email address
307
+ # :verp, # [String] VERP
308
+ # :alias, # [String] alias of the email address
309
+ # :name, # [String] Display name
310
+ # :comment, # [String] Comment
311
+ attr_reader :address, :user, :host, :verp, :alias
312
+ attr_accessor :name, :comment
317
313
 
318
314
  # Constructor of Sisimai::Address
319
315
  # @param <str> [String] argv1 Email address
@@ -17,21 +17,22 @@ module Sisimai
17
17
  StartingOf = { rfc822: ['Content-Type: message/rfc822', 'Content-Type: text/rfc822-headers'] }.freeze
18
18
  MarkingsOf = {
19
19
  message: %r{\A(?>
20
- [Tt]his[ ]is[ ].+[ ]email[ ]abuse[ ]report
21
- |[Tt]his[ ]is[ ](?:
22
- an[ ]autogenerated[ ]email[ ]abuse[ ]complaint
23
- |an?[ ].+[ ]report[ ]for
24
- |a[ ].+[ ]authentication[ -]failure[ ]report[ ]for
25
- )
20
+ [Tt]his[ ]is[ ]a[ ][^ ]+[ ]email[ ]abuse[ ]report
21
+ |[Tt]his[ ]is[ ]an[ ]email[ ]abuse[ ]report
22
+ |[Tt]his[ ]is[ ](?:
23
+ a[ ][^ ]+[ ]authentication[ -]failure[ ]report
24
+ |an[ ]authentication[ -]failure[ ]report
25
+ |an[ ]autogenerated[ ]email[ ]abuse[ ]complaint
26
+ |an?[ ][^ ]+[ ]report[ ]for
27
+ )
26
28
  )
27
29
  }x,
28
30
  }.freeze
31
+ ReportFrom = /(?:staff[@]hotmail[.]com|complaints[@]email-abuse[.]amazonses[.]com)\z/.freeze
29
32
  LongFields = Sisimai::RFC5322.LONGFIELDS
30
33
  RFC822Head = Sisimai::RFC5322.HEADERFIELDS
31
34
 
32
35
  def description; return 'Abuse Feedback Reporting Format'; end
33
- def smtpagent; return 'FeedBack-Loop'; end
34
- def headerlist; return []; end
35
36
 
36
37
  # Email is a Feedback-Loop message or not
37
38
  # @param [Hash] heads Email header including "Content-Type", "From",
@@ -49,13 +50,8 @@ module Sisimai
49
50
  elsif heads['content-type'].start_with?('multipart/mixed')
50
51
  # Microsoft (Hotmail, MSN, Live, Outlook) uses its own report format.
51
52
  # Amazon SES Complaints bounces
52
- hfrom = Sisimai::Address.s3s4(heads['from'])
53
- mfrom = %r{(?:
54
- staff[@]hotmail[.]com
55
- |complaints[@]email-abuse[.]amazonses[.]com
56
- )\z
57
- }x
58
- if hfrom =~ mfrom && heads['subject'].include?('complaint about message from ')
53
+ p = Sisimai::Address.s3s4(heads['from'])
54
+ if p =~ ReportFrom && heads['subject'].include?('complaint about message from ')
59
55
  # From: staff@hotmail.com
60
56
  # From: complaints@email-abuse.amazonses.com
61
57
  # Subject: complaint about message from 192.0.2.1
@@ -66,21 +62,15 @@ module Sisimai
66
62
  end
67
63
 
68
64
  # Detect an error for Feedback Loop
69
- # @param [Hash] mhead Message headers of a bounce email
70
- # @options mhead [String] from From header
71
- # @options mhead [String] date Date header
72
- # @options mhead [String] subject Subject header
73
- # @options mhead [Array] received Received headers
74
- # @options mhead [String] others Other required headers
75
- # @param [String] mbody Message body of a bounce email
76
- # @return [Hash, Nil] Bounce data list and message/rfc822 part
77
- # or nil if it failed to parse or the
78
- # arguments are missing
65
+ # @param [Hash] mhead Message headers of a bounce email
66
+ # @param [String] mbody Message body of a bounce email
67
+ # @return [Hash] Bounce data list and message/rfc822 part
68
+ # @return [Nil] it failed to parse or the arguments are missing
79
69
  def make(mhead, mbody)
80
70
  return nil unless self.is_arf(mhead)
81
71
 
82
72
  dscontents = [Sisimai::Lhost.DELIVERYSTATUS]
83
- hasdivided = mbody.split("\n")
73
+ bodyslices = mbody.split("\n")
84
74
  rfc822part = '' # (String) message/rfc822-headers part
85
75
  previousfn = '' # (String) Previous field name
86
76
  readcursor = 0 # (Integer) Points the current cursor position
@@ -120,7 +110,7 @@ module Sisimai
120
110
  # generator is using to generate the report. The version number in
121
111
  # this specification is set to "1".
122
112
  #
123
- while e = hasdivided.shift do
113
+ while e = bodyslices.shift do
124
114
  if readcursor == 0
125
115
  # Beginning of the bounce message or message/delivery-status part
126
116
  if e =~ MarkingsOf[:message]
@@ -153,11 +143,18 @@ module Sisimai
153
143
  elsif cv = e.match(/\AFrom:[ ]*(.+)\z/)
154
144
  # Microsoft ARF: original sender.
155
145
  commondata['from'] = Sisimai::Address.s3s4(cv[1]) if commondata['from'].empty?
146
+ previousfn = 'from'
156
147
 
157
148
  elsif e.start_with?(' ', "\t")
158
149
  # Continued line from the previous line
159
- rfc822part << e + "\n" if LongFields.key?(previousfn)
160
- next unless e.empty?
150
+ if previousfn == 'from'
151
+ # Multiple lines at "From:" field
152
+ commondata['from'] << e
153
+ next
154
+ else
155
+ rfc822part << e + "\n" if LongFields[previousfn]
156
+ next unless e.empty?
157
+ end
161
158
  rcptintext << e if previousfn == 'to'
162
159
 
163
160
  else
@@ -167,7 +164,7 @@ module Sisimai
167
164
  lhs.downcase!
168
165
 
169
166
  previousfn = ''
170
- next unless RFC822Head.key?(lhs)
167
+ next unless RFC822Head[lhs]
171
168
 
172
169
  previousfn = lhs
173
170
  rfc822part << e + "\n"
@@ -294,7 +291,7 @@ module Sisimai
294
291
  e['diagnosis'] = commondata['diagnosis'] unless e['diagnosis']
295
292
  e['date'] = mhead['date'] if e['date'].empty?
296
293
  e['reason'] = 'feedback'
297
- e['agent'] = self.smtpagent if e['agent'].empty?
294
+ e['agent'] = 'Feedback-Loop'
298
295
  %w[command action status alias].each { |a| e[a] = '' }
299
296
 
300
297
  # Get the remote IP address from the message body
@@ -308,7 +305,6 @@ module Sisimai
308
305
  # from IP address 24.64.1.1 on Thu, 29 Apr 2010 00:00:00 +0000
309
306
  e['rhost'] = cv[1]
310
307
  end
311
-
312
308
  end
313
309
  return { 'ds' => dscontents, 'rfc822' => rfc822part }
314
310
  end