sisimai 4.25.4-java → 4.25.10-java

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of sisimai might be problematic. Click here for more details.

Files changed (681) hide show
  1. checksums.yaml +5 -5
  2. data/.travis.yml +2 -2
  3. data/ANALYTICAL-PRECISION +60 -56
  4. data/Benchmarks.mk +5 -3
  5. data/ChangeLog.md +184 -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 +45 -47
  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 +130 -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 +118 -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 +54 -86
  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 +22 -31
  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 +24 -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/policyviolation.rb +1 -0
  87. data/lib/sisimai/reason/rejected.rb +1 -0
  88. data/lib/sisimai/reason/securityerror.rb +5 -6
  89. data/lib/sisimai/reason/spamdetected.rb +9 -12
  90. data/lib/sisimai/reason/userunknown.rb +31 -25
  91. data/lib/sisimai/rfc1894.rb +1 -1
  92. data/lib/sisimai/rfc3464.rb +38 -56
  93. data/lib/sisimai/rfc3834.rb +11 -23
  94. data/lib/sisimai/rfc5322.rb +20 -32
  95. data/lib/sisimai/rhost.rb +5 -8
  96. data/lib/sisimai/rhost/cox.rb +112 -0
  97. data/lib/sisimai/rhost/exchangeonline.rb +25 -22
  98. data/lib/sisimai/rhost/franceptt.rb +120 -24
  99. data/lib/sisimai/rhost/googleapps.rb +4 -1
  100. data/lib/sisimai/rhost/iua.rb +1 -1
  101. data/lib/sisimai/rhost/spectrum.rb +73 -0
  102. data/lib/sisimai/smtp.rb +0 -13
  103. data/lib/sisimai/smtp/error.rb +7 -7
  104. data/lib/sisimai/smtp/status.rb +1 -1
  105. data/lib/sisimai/string.rb +3 -11
  106. data/lib/sisimai/version.rb +1 -1
  107. data/set-of-emails/README.md +5 -4
  108. data/set-of-emails/maildir/bsd/arf-24.eml +50 -0
  109. data/set-of-emails/maildir/bsd/arf-25.eml +61 -0
  110. data/set-of-emails/maildir/bsd/{email-activehunter-01.eml → lhost-activehunter-01.eml} +0 -0
  111. data/set-of-emails/maildir/bsd/{email-activehunter-02.eml → lhost-activehunter-02.eml} +0 -0
  112. data/set-of-emails/maildir/bsd/{email-amavis-01.eml → lhost-amavis-01.eml} +0 -0
  113. data/set-of-emails/maildir/bsd/{email-amavis-02.eml → lhost-amavis-02.eml} +0 -0
  114. data/set-of-emails/maildir/bsd/lhost-amavis-03.eml +90 -0
  115. data/set-of-emails/maildir/bsd/{email-amazonses-01.eml → lhost-amazonses-01.eml} +0 -0
  116. data/set-of-emails/maildir/bsd/{email-amazonses-02.eml → lhost-amazonses-02.eml} +0 -0
  117. data/set-of-emails/maildir/bsd/{email-amazonses-03.eml → lhost-amazonses-03.eml} +0 -0
  118. data/set-of-emails/maildir/bsd/{email-amazonses-05.eml → lhost-amazonses-05.eml} +0 -0
  119. data/set-of-emails/maildir/bsd/{email-amazonses-06.eml → lhost-amazonses-06.eml} +0 -0
  120. data/set-of-emails/maildir/bsd/{email-amazonses-07.eml → lhost-amazonses-07.eml} +0 -0
  121. data/set-of-emails/maildir/bsd/{email-amazonses-08.eml → lhost-amazonses-08.eml} +0 -0
  122. data/set-of-emails/maildir/bsd/{email-amazonses-09.eml → lhost-amazonses-09.eml} +0 -0
  123. data/set-of-emails/maildir/bsd/{email-amazonses-10.eml → lhost-amazonses-10.eml} +0 -0
  124. data/set-of-emails/maildir/bsd/{email-amazonses-11.eml → lhost-amazonses-11.eml} +0 -0
  125. data/set-of-emails/maildir/bsd/{email-amazonses-12.eml → lhost-amazonses-12.eml} +0 -0
  126. data/set-of-emails/maildir/bsd/{email-amazonses-13.eml → lhost-amazonses-13.eml} +0 -0
  127. data/set-of-emails/maildir/bsd/{email-amazonses-14.eml → lhost-amazonses-14.eml} +0 -0
  128. data/set-of-emails/maildir/bsd/{email-amazonses-15.eml → lhost-amazonses-15.eml} +0 -0
  129. data/set-of-emails/maildir/bsd/{email-amazonses-16.eml → lhost-amazonses-16.eml} +0 -0
  130. data/set-of-emails/maildir/bsd/{email-amazonses-17.eml → lhost-amazonses-17.eml} +0 -0
  131. data/set-of-emails/maildir/bsd/{email-amazonses-18.eml → lhost-amazonses-18.eml} +0 -0
  132. data/set-of-emails/maildir/bsd/{email-amazonses-19.eml → lhost-amazonses-19.eml} +0 -0
  133. data/set-of-emails/maildir/bsd/{email-amazonses-20.eml → lhost-amazonses-20.eml} +0 -0
  134. data/set-of-emails/maildir/bsd/{email-amazonses-21.eml → lhost-amazonses-21.eml} +0 -0
  135. data/set-of-emails/maildir/bsd/{email-amazonworkmail-01.eml → lhost-amazonworkmail-01.eml} +0 -0
  136. data/set-of-emails/maildir/bsd/{email-amazonworkmail-02.eml → lhost-amazonworkmail-02.eml} +0 -0
  137. data/set-of-emails/maildir/bsd/{email-amazonworkmail-03.eml → lhost-amazonworkmail-03.eml} +0 -0
  138. data/set-of-emails/maildir/bsd/{email-amazonworkmail-04.eml → lhost-amazonworkmail-04.eml} +0 -0
  139. data/set-of-emails/maildir/bsd/{email-amazonworkmail-05.eml → lhost-amazonworkmail-05.eml} +0 -0
  140. data/set-of-emails/maildir/bsd/{email-amazonworkmail-07.eml → lhost-amazonworkmail-07.eml} +0 -0
  141. data/set-of-emails/maildir/bsd/{email-amazonworkmail-08.eml → lhost-amazonworkmail-08.eml} +0 -0
  142. data/set-of-emails/maildir/bsd/{email-aol-01.eml → lhost-aol-01.eml} +0 -0
  143. data/set-of-emails/maildir/bsd/{email-aol-02.eml → lhost-aol-02.eml} +0 -0
  144. data/set-of-emails/maildir/bsd/{email-aol-03.eml → lhost-aol-03.eml} +0 -0
  145. data/set-of-emails/maildir/bsd/{email-aol-04.eml → lhost-aol-04.eml} +0 -0
  146. data/set-of-emails/maildir/bsd/{email-aol-05.eml → lhost-aol-05.eml} +0 -0
  147. data/set-of-emails/maildir/bsd/{email-aol-06.eml → lhost-aol-06.eml} +0 -0
  148. data/set-of-emails/maildir/bsd/{email-apachejames-01.eml → lhost-apachejames-01.eml} +0 -0
  149. data/set-of-emails/maildir/bsd/lhost-barracuda-01.eml +67 -0
  150. data/set-of-emails/maildir/bsd/lhost-barracuda-02.eml +71 -0
  151. data/set-of-emails/maildir/bsd/{email-bigfoot-02.eml → lhost-bigfoot-02.eml} +0 -0
  152. data/set-of-emails/maildir/bsd/{email-biglobe-01.eml → lhost-biglobe-01.eml} +0 -0
  153. data/set-of-emails/maildir/bsd/{email-courier-01.eml → lhost-courier-01.eml} +0 -0
  154. data/set-of-emails/maildir/bsd/{email-courier-02.eml → lhost-courier-02.eml} +0 -0
  155. data/set-of-emails/maildir/bsd/{email-courier-03.eml → lhost-courier-03.eml} +0 -0
  156. data/set-of-emails/maildir/bsd/{email-courier-04.eml → lhost-courier-04.eml} +0 -0
  157. data/set-of-emails/maildir/bsd/{email-domino-01.eml → lhost-domino-01.eml} +0 -0
  158. data/set-of-emails/maildir/bsd/{email-domino-02.eml → lhost-domino-02.eml} +0 -0
  159. data/set-of-emails/maildir/bsd/{email-domino-03.eml → lhost-domino-03.eml} +0 -0
  160. data/set-of-emails/maildir/bsd/{email-einsundeins-02.eml → lhost-einsundeins-02.eml} +0 -0
  161. data/set-of-emails/maildir/bsd/lhost-einsundeins-03.eml +66 -0
  162. data/set-of-emails/maildir/bsd/{email-exchange2003-01.eml → lhost-exchange2003-01.eml} +0 -0
  163. data/set-of-emails/maildir/bsd/{email-exchange2003-02.eml → lhost-exchange2003-02.eml} +0 -0
  164. data/set-of-emails/maildir/bsd/{email-exchange2003-03.eml → lhost-exchange2003-03.eml} +0 -0
  165. data/set-of-emails/maildir/bsd/{email-exchange2003-04.eml → lhost-exchange2003-04.eml} +0 -0
  166. data/set-of-emails/maildir/bsd/{email-exchange2003-05.eml → lhost-exchange2003-05.eml} +0 -0
  167. data/set-of-emails/maildir/bsd/{email-exchange2003-07.eml → lhost-exchange2003-07.eml} +0 -0
  168. data/set-of-emails/maildir/bsd/{email-exchange2007-01.eml → lhost-exchange2007-01.eml} +0 -0
  169. data/set-of-emails/maildir/bsd/{email-exchange2007-02.eml → lhost-exchange2007-02.eml} +0 -0
  170. data/set-of-emails/maildir/bsd/{email-exchange2007-03.eml → lhost-exchange2007-03.eml} +0 -0
  171. data/set-of-emails/maildir/bsd/{email-exchange2007-04.eml → lhost-exchange2007-04.eml} +0 -0
  172. data/set-of-emails/maildir/bsd/lhost-exchange2007-05.eml +1469 -0
  173. data/set-of-emails/maildir/bsd/lhost-exchange2007-06.eml +764 -0
  174. data/set-of-emails/maildir/bsd/lhost-exchange2007-07.eml +128 -0
  175. data/set-of-emails/maildir/bsd/{email-exim-01.eml → lhost-exim-01.eml} +0 -0
  176. data/set-of-emails/maildir/bsd/{email-exim-02.eml → lhost-exim-02.eml} +0 -0
  177. data/set-of-emails/maildir/bsd/{email-exim-03.eml → lhost-exim-03.eml} +0 -0
  178. data/set-of-emails/maildir/bsd/{email-exim-04.eml → lhost-exim-04.eml} +0 -0
  179. data/set-of-emails/maildir/bsd/{email-exim-05.eml → lhost-exim-05.eml} +0 -0
  180. data/set-of-emails/maildir/bsd/{email-exim-06.eml → lhost-exim-06.eml} +0 -0
  181. data/set-of-emails/maildir/bsd/{email-exim-07.eml → lhost-exim-07.eml} +0 -0
  182. data/set-of-emails/maildir/bsd/{email-exim-08.eml → lhost-exim-08.eml} +0 -0
  183. data/set-of-emails/maildir/bsd/{email-exim-29.eml → lhost-exim-29.eml} +0 -0
  184. data/set-of-emails/maildir/bsd/{email-exim-30.eml → lhost-exim-30.eml} +0 -0
  185. data/set-of-emails/maildir/bsd/{email-exim-31.eml → lhost-exim-31.eml} +0 -0
  186. data/set-of-emails/maildir/bsd/{email-exim-32.eml → lhost-exim-32.eml} +0 -0
  187. data/set-of-emails/maildir/bsd/{email-exim-33.eml → lhost-exim-33.eml} +0 -0
  188. data/set-of-emails/maildir/bsd/{email-exim-34.eml → lhost-exim-34.eml} +0 -0
  189. data/set-of-emails/maildir/bsd/{email-exim-35.eml → lhost-exim-35.eml} +0 -0
  190. data/set-of-emails/maildir/bsd/{email-exim-36.eml → lhost-exim-36.eml} +0 -0
  191. data/set-of-emails/maildir/bsd/{email-exim-37.eml → lhost-exim-37.eml} +0 -0
  192. data/set-of-emails/maildir/bsd/{email-exim-38.eml → lhost-exim-38.eml} +0 -0
  193. data/set-of-emails/maildir/bsd/{email-exim-39.eml → lhost-exim-39.eml} +0 -0
  194. data/set-of-emails/maildir/bsd/{email-exim-40.eml → lhost-exim-40.eml} +0 -0
  195. data/set-of-emails/maildir/bsd/{email-exim-41.eml → lhost-exim-41.eml} +0 -0
  196. data/set-of-emails/maildir/bsd/{email-exim-42.eml → lhost-exim-42.eml} +0 -0
  197. data/set-of-emails/maildir/bsd/{email-exim-43.eml → lhost-exim-43.eml} +0 -0
  198. data/set-of-emails/maildir/bsd/{email-exim-44.eml → lhost-exim-44.eml} +0 -0
  199. data/set-of-emails/maildir/bsd/{email-exim-45.eml → lhost-exim-45.eml} +0 -0
  200. data/set-of-emails/maildir/bsd/{email-exim-46.eml → lhost-exim-46.eml} +0 -0
  201. data/set-of-emails/maildir/bsd/{email-exim-47.eml → lhost-exim-47.eml} +0 -0
  202. data/set-of-emails/maildir/bsd/{email-exim-48.eml → lhost-exim-48.eml} +0 -0
  203. data/set-of-emails/maildir/bsd/{email-exim-49.eml → lhost-exim-49.eml} +0 -0
  204. data/set-of-emails/maildir/bsd/{email-exim-50.eml → lhost-exim-50.eml} +0 -0
  205. data/set-of-emails/maildir/bsd/{email-exim-51.eml → lhost-exim-51.eml} +0 -0
  206. data/set-of-emails/maildir/bsd/{email-exim-52.eml → lhost-exim-52.eml} +0 -0
  207. data/set-of-emails/maildir/bsd/{email-exim-53.eml → lhost-exim-53.eml} +0 -0
  208. data/set-of-emails/maildir/bsd/{email-exim-54.eml → lhost-exim-54.eml} +0 -0
  209. data/set-of-emails/maildir/bsd/{email-exim-55.eml → lhost-exim-55.eml} +0 -0
  210. data/set-of-emails/maildir/bsd/{email-exim-56.eml → lhost-exim-56.eml} +0 -0
  211. data/set-of-emails/maildir/bsd/{email-exim-57.eml → lhost-exim-57.eml} +0 -0
  212. data/set-of-emails/maildir/bsd/{email-exim-58.eml → lhost-exim-58.eml} +0 -0
  213. data/set-of-emails/maildir/bsd/{email-exim-59.eml → lhost-exim-59.eml} +0 -0
  214. data/set-of-emails/maildir/bsd/{email-exim-60.eml → lhost-exim-60.eml} +0 -0
  215. data/set-of-emails/maildir/bsd/lhost-exim-61.eml +40 -0
  216. data/set-of-emails/maildir/bsd/{email-ezweb-01.eml → lhost-ezweb-01.eml} +0 -0
  217. data/set-of-emails/maildir/bsd/{email-ezweb-02.eml → lhost-ezweb-02.eml} +0 -0
  218. data/set-of-emails/maildir/bsd/{email-ezweb-03.eml → lhost-ezweb-03.eml} +0 -0
  219. data/set-of-emails/maildir/bsd/{email-ezweb-04.eml → lhost-ezweb-04.eml} +0 -0
  220. data/set-of-emails/maildir/bsd/{email-ezweb-05.eml → lhost-ezweb-05.eml} +0 -0
  221. data/set-of-emails/maildir/bsd/{email-ezweb-07.eml → lhost-ezweb-07.eml} +0 -0
  222. data/set-of-emails/maildir/bsd/{email-ezweb-08.eml → lhost-ezweb-08.eml} +0 -0
  223. data/set-of-emails/maildir/bsd/{email-facebook-03.eml → lhost-facebook-03.eml} +0 -0
  224. data/set-of-emails/maildir/bsd/{email-facebook-04.eml → lhost-facebook-04.eml} +0 -0
  225. data/set-of-emails/maildir/bsd/{email-fml-02.eml → lhost-fml-02.eml} +0 -0
  226. data/set-of-emails/maildir/bsd/{email-fml-03.eml → lhost-fml-03.eml} +0 -0
  227. data/set-of-emails/maildir/bsd/{email-google-01.eml → lhost-gmail-01.eml} +0 -0
  228. data/set-of-emails/maildir/bsd/{email-google-03.eml → lhost-gmail-03.eml} +0 -0
  229. data/set-of-emails/maildir/bsd/{email-google-04.eml → lhost-gmail-04.eml} +0 -0
  230. data/set-of-emails/maildir/bsd/{email-google-05.eml → lhost-gmail-05.eml} +0 -0
  231. data/set-of-emails/maildir/bsd/{email-google-06.eml → lhost-gmail-06.eml} +0 -0
  232. data/set-of-emails/maildir/bsd/{email-google-07.eml → lhost-gmail-07.eml} +0 -0
  233. data/set-of-emails/maildir/bsd/{email-google-08.eml → lhost-gmail-08.eml} +0 -0
  234. data/set-of-emails/maildir/bsd/{email-google-09.eml → lhost-gmail-09.eml} +0 -0
  235. data/set-of-emails/maildir/bsd/{email-google-10.eml → lhost-gmail-10.eml} +0 -0
  236. data/set-of-emails/maildir/bsd/{email-google-11.eml → lhost-gmail-11.eml} +0 -0
  237. data/set-of-emails/maildir/bsd/{email-google-15.eml → lhost-gmail-15.eml} +0 -0
  238. data/set-of-emails/maildir/bsd/{email-google-16.eml → lhost-gmail-16.eml} +0 -0
  239. data/set-of-emails/maildir/bsd/{email-google-17.eml → lhost-gmail-17.eml} +0 -0
  240. data/set-of-emails/maildir/bsd/{email-google-18.eml → lhost-gmail-18.eml} +0 -0
  241. data/set-of-emails/maildir/bsd/{email-google-19.eml → lhost-gmail-19.eml} +0 -0
  242. data/set-of-emails/maildir/bsd/{email-gmx-01.eml → lhost-gmx-01.eml} +0 -0
  243. data/set-of-emails/maildir/bsd/{email-gmx-02.eml → lhost-gmx-02.eml} +0 -0
  244. data/set-of-emails/maildir/bsd/{email-gmx-03.eml → lhost-gmx-03.eml} +0 -0
  245. data/set-of-emails/maildir/bsd/{email-gmx-04.eml → lhost-gmx-04.eml} +0 -0
  246. data/set-of-emails/maildir/bsd/lhost-googlegroups-01.eml +116 -0
  247. data/set-of-emails/maildir/bsd/lhost-googlegroups-02.eml +114 -0
  248. data/set-of-emails/maildir/bsd/lhost-googlegroups-03.eml +116 -0
  249. data/set-of-emails/maildir/bsd/lhost-googlegroups-04.eml +116 -0
  250. data/set-of-emails/maildir/bsd/lhost-googlegroups-05.eml +116 -0
  251. data/set-of-emails/maildir/bsd/lhost-googlegroups-06.eml +116 -0
  252. data/set-of-emails/maildir/bsd/lhost-googlegroups-07.eml +116 -0
  253. data/set-of-emails/maildir/bsd/lhost-googlegroups-08.eml +115 -0
  254. data/set-of-emails/maildir/bsd/lhost-googlegroups-09.eml +116 -0
  255. data/set-of-emails/maildir/bsd/lhost-googlegroups-10.eml +116 -0
  256. data/set-of-emails/maildir/bsd/lhost-googlegroups-11.eml +116 -0
  257. data/set-of-emails/maildir/bsd/lhost-googlegroups-12.eml +116 -0
  258. data/set-of-emails/maildir/bsd/lhost-googlegroups-13.eml +115 -0
  259. data/set-of-emails/maildir/bsd/lhost-googlegroups-14.eml +127 -0
  260. data/set-of-emails/maildir/bsd/{email-gsuite-01.eml → lhost-gsuite-01.eml} +0 -0
  261. data/set-of-emails/maildir/bsd/{email-gsuite-02.eml → lhost-gsuite-02.eml} +0 -0
  262. data/set-of-emails/maildir/bsd/{email-gsuite-03.eml → lhost-gsuite-03.eml} +0 -0
  263. data/set-of-emails/maildir/bsd/{email-gsuite-04.eml → lhost-gsuite-04.eml} +0 -0
  264. data/set-of-emails/maildir/bsd/{email-gsuite-05.eml → lhost-gsuite-05.eml} +0 -0
  265. data/set-of-emails/maildir/bsd/{email-gsuite-06.eml → lhost-gsuite-06.eml} +0 -0
  266. data/set-of-emails/maildir/bsd/{email-gsuite-07.eml → lhost-gsuite-07.eml} +0 -0
  267. data/set-of-emails/maildir/bsd/{email-gsuite-08.eml → lhost-gsuite-08.eml} +0 -0
  268. data/set-of-emails/maildir/bsd/{email-gsuite-09.eml → lhost-gsuite-09.eml} +0 -0
  269. data/set-of-emails/maildir/bsd/{email-gsuite-10.eml → lhost-gsuite-10.eml} +0 -0
  270. data/set-of-emails/maildir/bsd/{email-gsuite-11.eml → lhost-gsuite-11.eml} +0 -0
  271. data/set-of-emails/maildir/bsd/{email-gsuite-12.eml → lhost-gsuite-12.eml} +0 -0
  272. data/set-of-emails/maildir/bsd/{email-gsuite-13.eml → lhost-gsuite-13.eml} +0 -0
  273. data/set-of-emails/maildir/bsd/lhost-gsuite-14.eml +273 -0
  274. data/set-of-emails/maildir/bsd/{email-imailserver-01.eml → lhost-imailserver-01.eml} +0 -0
  275. data/set-of-emails/maildir/bsd/{email-imailserver-02.eml → lhost-imailserver-02.eml} +0 -0
  276. data/set-of-emails/maildir/bsd/{email-imailserver-03.eml → lhost-imailserver-03.eml} +0 -0
  277. data/set-of-emails/maildir/bsd/{email-imailserver-04.eml → lhost-imailserver-04.eml} +0 -0
  278. data/set-of-emails/maildir/bsd/{email-imailserver-06.eml → lhost-imailserver-06.eml} +0 -0
  279. data/set-of-emails/maildir/bsd/{email-interscanmss-01.eml → lhost-interscanmss-01.eml} +0 -0
  280. data/set-of-emails/maildir/bsd/lhost-interscanmss-02.eml +70 -0
  281. data/set-of-emails/maildir/bsd/lhost-interscanmss-03.eml +73 -0
  282. data/set-of-emails/maildir/bsd/{email-kddi-01.eml → lhost-kddi-01.eml} +0 -0
  283. data/set-of-emails/maildir/bsd/{email-kddi-02.eml → lhost-kddi-02.eml} +0 -0
  284. data/set-of-emails/maildir/bsd/{email-kddi-03.eml → lhost-kddi-03.eml} +0 -0
  285. data/set-of-emails/maildir/bsd/{email-mailfoundry-01.eml → lhost-mailfoundry-01.eml} +0 -0
  286. data/set-of-emails/maildir/bsd/{email-mailfoundry-02.eml → lhost-mailfoundry-02.eml} +0 -0
  287. data/set-of-emails/maildir/bsd/{email-mailmarshalsmtp-02.eml → lhost-mailmarshalsmtp-02.eml} +0 -0
  288. data/set-of-emails/maildir/bsd/{email-mailru-01.eml → lhost-mailru-01.eml} +0 -0
  289. data/set-of-emails/maildir/bsd/{email-mailru-02.eml → lhost-mailru-02.eml} +0 -0
  290. data/set-of-emails/maildir/bsd/{email-mailru-03.eml → lhost-mailru-03.eml} +0 -0
  291. data/set-of-emails/maildir/bsd/{email-mailru-04.eml → lhost-mailru-04.eml} +0 -0
  292. data/set-of-emails/maildir/bsd/{email-mailru-05.eml → lhost-mailru-05.eml} +0 -0
  293. data/set-of-emails/maildir/bsd/{email-mailru-06.eml → lhost-mailru-06.eml} +0 -0
  294. data/set-of-emails/maildir/bsd/{email-mailru-07.eml → lhost-mailru-07.eml} +0 -0
  295. data/set-of-emails/maildir/bsd/{email-mailru-08.eml → lhost-mailru-08.eml} +0 -0
  296. data/set-of-emails/maildir/bsd/{email-mailru-09.eml → lhost-mailru-09.eml} +0 -0
  297. data/set-of-emails/maildir/bsd/{email-mailru-10.eml → lhost-mailru-10.eml} +0 -0
  298. data/set-of-emails/maildir/bsd/{email-mcafee-01.eml → lhost-mcafee-01.eml} +0 -0
  299. data/set-of-emails/maildir/bsd/{email-mcafee-02.eml → lhost-mcafee-02.eml} +0 -0
  300. data/set-of-emails/maildir/bsd/{email-mcafee-03.eml → lhost-mcafee-03.eml} +0 -0
  301. data/set-of-emails/maildir/bsd/{email-mcafee-04.eml → lhost-mcafee-04.eml} +0 -0
  302. data/set-of-emails/maildir/bsd/{email-mcafee-05.eml → lhost-mcafee-05.eml} +0 -0
  303. data/set-of-emails/maildir/bsd/{email-messagelabs-01.eml → lhost-messagelabs-01.eml} +0 -0
  304. data/set-of-emails/maildir/bsd/{email-messagelabs-02.eml → lhost-messagelabs-02.eml} +0 -0
  305. data/set-of-emails/maildir/bsd/{email-messagelabs-03.eml → lhost-messagelabs-03.eml} +0 -0
  306. data/set-of-emails/maildir/bsd/{email-messagingserver-01.eml → lhost-messagingserver-01.eml} +0 -0
  307. data/set-of-emails/maildir/bsd/{email-messagingserver-02.eml → lhost-messagingserver-02.eml} +0 -0
  308. data/set-of-emails/maildir/bsd/{email-messagingserver-03.eml → lhost-messagingserver-03.eml} +0 -0
  309. data/set-of-emails/maildir/bsd/{email-messagingserver-04.eml → lhost-messagingserver-04.eml} +0 -0
  310. data/set-of-emails/maildir/bsd/{email-messagingserver-05.eml → lhost-messagingserver-05.eml} +0 -0
  311. data/set-of-emails/maildir/bsd/{email-messagingserver-06.eml → lhost-messagingserver-06.eml} +0 -0
  312. data/set-of-emails/maildir/bsd/{email-messagingserver-07.eml → lhost-messagingserver-07.eml} +0 -0
  313. data/set-of-emails/maildir/bsd/{email-messagingserver-08.eml → lhost-messagingserver-08.eml} +0 -0
  314. data/set-of-emails/maildir/bsd/{email-messagingserver-09.eml → lhost-messagingserver-09.eml} +0 -0
  315. data/set-of-emails/maildir/bsd/{email-messagingserver-10.eml → lhost-messagingserver-10.eml} +0 -0
  316. data/set-of-emails/maildir/bsd/{email-messagingserver-11.eml → lhost-messagingserver-11.eml} +0 -0
  317. data/set-of-emails/maildir/bsd/{email-messagingserver-12.eml → lhost-messagingserver-12.eml} +0 -0
  318. data/set-of-emails/maildir/bsd/{email-mfilter-01.eml → lhost-mfilter-01.eml} +0 -0
  319. data/set-of-emails/maildir/bsd/{email-mfilter-02.eml → lhost-mfilter-02.eml} +0 -0
  320. data/set-of-emails/maildir/bsd/{email-mfilter-03.eml → lhost-mfilter-03.eml} +0 -0
  321. data/set-of-emails/maildir/bsd/{email-mfilter-04.eml → lhost-mfilter-04.eml} +0 -0
  322. data/set-of-emails/maildir/bsd/{email-mxlogic-01.eml → lhost-mxlogic-01.eml} +0 -0
  323. data/set-of-emails/maildir/bsd/{email-mxlogic-02.eml → lhost-mxlogic-02.eml} +0 -0
  324. data/set-of-emails/maildir/bsd/{email-mxlogic-03.eml → lhost-mxlogic-03.eml} +0 -0
  325. data/set-of-emails/maildir/bsd/{email-notes-01.eml → lhost-notes-01.eml} +0 -0
  326. data/set-of-emails/maildir/bsd/{email-notes-02.eml → lhost-notes-02.eml} +0 -0
  327. data/set-of-emails/maildir/bsd/{email-notes-03.eml → lhost-notes-03.eml} +0 -0
  328. data/set-of-emails/maildir/bsd/{email-office365-01.eml → lhost-office365-01.eml} +0 -0
  329. data/set-of-emails/maildir/bsd/{email-office365-02.eml → lhost-office365-02.eml} +0 -0
  330. data/set-of-emails/maildir/bsd/{email-office365-03.eml → lhost-office365-03.eml} +0 -0
  331. data/set-of-emails/maildir/bsd/{email-office365-04.eml → lhost-office365-04.eml} +0 -0
  332. data/set-of-emails/maildir/bsd/{email-office365-05.eml → lhost-office365-05.eml} +0 -0
  333. data/set-of-emails/maildir/bsd/{email-office365-06.eml → lhost-office365-06.eml} +0 -0
  334. data/set-of-emails/maildir/bsd/{email-office365-07.eml → lhost-office365-07.eml} +0 -0
  335. data/set-of-emails/maildir/bsd/{email-office365-08.eml → lhost-office365-08.eml} +0 -0
  336. data/set-of-emails/maildir/bsd/{email-office365-09.eml → lhost-office365-09.eml} +0 -0
  337. data/set-of-emails/maildir/bsd/{email-office365-10.eml → lhost-office365-10.eml} +0 -0
  338. data/set-of-emails/maildir/bsd/{email-office365-11.eml → lhost-office365-11.eml} +0 -0
  339. data/set-of-emails/maildir/bsd/{email-office365-12.eml → lhost-office365-12.eml} +0 -0
  340. data/set-of-emails/maildir/bsd/lhost-office365-13.eml +259 -0
  341. data/set-of-emails/maildir/bsd/{email-opensmtpd-01.eml → lhost-opensmtpd-01.eml} +0 -0
  342. data/set-of-emails/maildir/bsd/{email-opensmtpd-02.eml → lhost-opensmtpd-02.eml} +0 -0
  343. data/set-of-emails/maildir/bsd/{email-opensmtpd-03.eml → lhost-opensmtpd-03.eml} +0 -0
  344. data/set-of-emails/maildir/bsd/{email-opensmtpd-04.eml → lhost-opensmtpd-04.eml} +0 -0
  345. data/set-of-emails/maildir/bsd/{email-opensmtpd-05.eml → lhost-opensmtpd-05.eml} +0 -0
  346. data/set-of-emails/maildir/bsd/{email-opensmtpd-06.eml → lhost-opensmtpd-06.eml} +0 -0
  347. data/set-of-emails/maildir/bsd/{email-outlook-01.eml → lhost-outlook-01.eml} +0 -0
  348. data/set-of-emails/maildir/bsd/{email-outlook-02.eml → lhost-outlook-02.eml} +0 -0
  349. data/set-of-emails/maildir/bsd/{email-outlook-03.eml → lhost-outlook-03.eml} +0 -0
  350. data/set-of-emails/maildir/bsd/{email-outlook-04.eml → lhost-outlook-04.eml} +0 -0
  351. data/set-of-emails/maildir/bsd/{email-outlook-06.eml → lhost-outlook-06.eml} +0 -0
  352. data/set-of-emails/maildir/bsd/{email-outlook-07.eml → lhost-outlook-07.eml} +0 -0
  353. data/set-of-emails/maildir/bsd/{email-outlook-08.eml → lhost-outlook-08.eml} +0 -0
  354. data/set-of-emails/maildir/bsd/{email-outlook-09.eml → lhost-outlook-09.eml} +0 -0
  355. data/set-of-emails/maildir/bsd/{email-postfix-01.eml → lhost-postfix-01.eml} +0 -0
  356. data/set-of-emails/maildir/bsd/{email-postfix-02.eml → lhost-postfix-02.eml} +0 -0
  357. data/set-of-emails/maildir/bsd/{email-postfix-03.eml → lhost-postfix-03.eml} +0 -0
  358. data/set-of-emails/maildir/bsd/{email-postfix-04.eml → lhost-postfix-04.eml} +0 -0
  359. data/set-of-emails/maildir/bsd/{email-postfix-05.eml → lhost-postfix-05.eml} +0 -0
  360. data/set-of-emails/maildir/bsd/{email-postfix-06.eml → lhost-postfix-06.eml} +0 -0
  361. data/set-of-emails/maildir/bsd/{email-postfix-07.eml → lhost-postfix-07.eml} +0 -0
  362. data/set-of-emails/maildir/bsd/{email-postfix-08.eml → lhost-postfix-08.eml} +0 -0
  363. data/set-of-emails/maildir/bsd/{email-postfix-09.eml → lhost-postfix-09.eml} +0 -0
  364. data/set-of-emails/maildir/bsd/{email-postfix-10.eml → lhost-postfix-10.eml} +0 -0
  365. data/set-of-emails/maildir/bsd/{email-postfix-11.eml → lhost-postfix-11.eml} +0 -0
  366. data/set-of-emails/maildir/bsd/{email-postfix-13.eml → lhost-postfix-13.eml} +0 -0
  367. data/set-of-emails/maildir/bsd/{email-postfix-14.eml → lhost-postfix-14.eml} +0 -0
  368. data/set-of-emails/maildir/bsd/{email-postfix-15.eml → lhost-postfix-15.eml} +0 -0
  369. data/set-of-emails/maildir/bsd/{email-postfix-16.eml → lhost-postfix-16.eml} +0 -0
  370. data/set-of-emails/maildir/bsd/{email-postfix-17.eml → lhost-postfix-17.eml} +0 -0
  371. data/set-of-emails/maildir/bsd/{email-postfix-28.eml → lhost-postfix-28.eml} +0 -0
  372. data/set-of-emails/maildir/bsd/{email-postfix-29.eml → lhost-postfix-29.eml} +0 -0
  373. data/set-of-emails/maildir/bsd/{email-postfix-30.eml → lhost-postfix-30.eml} +0 -0
  374. data/set-of-emails/maildir/bsd/{email-postfix-31.eml → lhost-postfix-31.eml} +0 -0
  375. data/set-of-emails/maildir/bsd/{email-postfix-32.eml → lhost-postfix-32.eml} +0 -0
  376. data/set-of-emails/maildir/bsd/{email-postfix-33.eml → lhost-postfix-33.eml} +0 -0
  377. data/set-of-emails/maildir/bsd/{email-postfix-34.eml → lhost-postfix-34.eml} +0 -0
  378. data/set-of-emails/maildir/bsd/{email-postfix-35.eml → lhost-postfix-35.eml} +0 -0
  379. data/set-of-emails/maildir/bsd/{email-postfix-36.eml → lhost-postfix-36.eml} +0 -0
  380. data/set-of-emails/maildir/bsd/{email-postfix-37.eml → lhost-postfix-37.eml} +0 -0
  381. data/set-of-emails/maildir/bsd/{email-postfix-38.eml → lhost-postfix-38.eml} +1 -1
  382. data/set-of-emails/maildir/bsd/{email-postfix-39.eml → lhost-postfix-39.eml} +0 -0
  383. data/set-of-emails/maildir/bsd/{email-postfix-40.eml → lhost-postfix-40.eml} +0 -0
  384. data/set-of-emails/maildir/bsd/{email-postfix-41.eml → lhost-postfix-41.eml} +0 -0
  385. data/set-of-emails/maildir/bsd/{email-postfix-42.eml → lhost-postfix-42.eml} +0 -0
  386. data/set-of-emails/maildir/bsd/{email-postfix-43.eml → lhost-postfix-43.eml} +0 -0
  387. data/set-of-emails/maildir/bsd/{email-postfix-44.eml → lhost-postfix-44.eml} +0 -0
  388. data/set-of-emails/maildir/bsd/{email-postfix-45.eml → lhost-postfix-45.eml} +0 -0
  389. data/set-of-emails/maildir/bsd/{email-postfix-46.eml → lhost-postfix-46.eml} +0 -0
  390. data/set-of-emails/maildir/bsd/{email-postfix-47.eml → lhost-postfix-47.eml} +0 -0
  391. data/set-of-emails/maildir/bsd/{email-postfix-48.eml → lhost-postfix-48.eml} +0 -0
  392. data/set-of-emails/maildir/bsd/{email-postfix-49.eml → lhost-postfix-49.eml} +0 -0
  393. data/set-of-emails/maildir/bsd/{email-postfix-50.eml → lhost-postfix-50.eml} +0 -0
  394. data/set-of-emails/maildir/bsd/{email-postfix-51.eml → lhost-postfix-51.eml} +0 -0
  395. data/set-of-emails/maildir/bsd/{email-postfix-52.eml → lhost-postfix-52.eml} +0 -0
  396. data/set-of-emails/maildir/bsd/{email-postfix-53.eml → lhost-postfix-53.eml} +0 -0
  397. data/set-of-emails/maildir/bsd/{email-postfix-54.eml → lhost-postfix-54.eml} +0 -0
  398. data/set-of-emails/maildir/bsd/{email-postfix-55.eml → lhost-postfix-55.eml} +0 -0
  399. data/set-of-emails/maildir/bsd/{email-postfix-56.eml → lhost-postfix-56.eml} +0 -0
  400. data/set-of-emails/maildir/bsd/{email-postfix-57.eml → lhost-postfix-57.eml} +0 -0
  401. data/set-of-emails/maildir/bsd/{email-postfix-58.eml → lhost-postfix-58.eml} +0 -0
  402. data/set-of-emails/maildir/bsd/{email-postfix-59.eml → lhost-postfix-59.eml} +0 -0
  403. data/set-of-emails/maildir/bsd/{email-postfix-60.eml → lhost-postfix-60.eml} +0 -0
  404. data/set-of-emails/maildir/bsd/{email-postfix-61.eml → lhost-postfix-61.eml} +0 -0
  405. data/set-of-emails/maildir/bsd/{email-postfix-62.eml → lhost-postfix-62.eml} +0 -0
  406. data/set-of-emails/maildir/bsd/{email-postfix-63.eml → lhost-postfix-63.eml} +0 -0
  407. data/set-of-emails/maildir/bsd/lhost-postfix-64.eml +96 -0
  408. data/set-of-emails/maildir/bsd/lhost-postfix-65.eml +69 -0
  409. data/set-of-emails/maildir/bsd/lhost-postfix-66.eml +80 -0
  410. data/set-of-emails/maildir/bsd/lhost-postfix-67.eml +80 -0
  411. data/set-of-emails/maildir/bsd/lhost-postfix-68.eml +82 -0
  412. data/set-of-emails/maildir/bsd/lhost-postfix-69.eml +80 -0
  413. data/set-of-emails/maildir/bsd/lhost-postfix-70.eml +87 -0
  414. data/set-of-emails/maildir/bsd/lhost-postfix-71.eml +81 -0
  415. data/set-of-emails/maildir/bsd/lhost-postfix-72.eml +81 -0
  416. data/set-of-emails/maildir/bsd/lhost-postfix-73.eml +79 -0
  417. data/set-of-emails/maildir/bsd/lhost-postfix-74.eml +83 -0
  418. data/set-of-emails/maildir/bsd/{rfc3464-05.eml → lhost-powermta-01.eml} +19 -18
  419. data/set-of-emails/maildir/bsd/lhost-powermta-02.eml +58 -0
  420. data/set-of-emails/maildir/bsd/lhost-powermta-03.eml +71 -0
  421. data/set-of-emails/maildir/bsd/{email-qmail-01.eml → lhost-qmail-01.eml} +0 -0
  422. data/set-of-emails/maildir/bsd/{email-qmail-02.eml → lhost-qmail-02.eml} +0 -0
  423. data/set-of-emails/maildir/bsd/{email-qmail-03.eml → lhost-qmail-03.eml} +0 -0
  424. data/set-of-emails/maildir/bsd/{email-qmail-04.eml → lhost-qmail-04.eml} +0 -0
  425. data/set-of-emails/maildir/bsd/{email-qmail-05.eml → lhost-qmail-05.eml} +0 -0
  426. data/set-of-emails/maildir/bsd/{email-qmail-06.eml → lhost-qmail-06.eml} +0 -0
  427. data/set-of-emails/maildir/bsd/{email-qmail-07.eml → lhost-qmail-07.eml} +0 -0
  428. data/set-of-emails/maildir/bsd/{email-qmail-08.eml → lhost-qmail-08.eml} +0 -0
  429. data/set-of-emails/maildir/bsd/{email-qmail-09.eml → lhost-qmail-09.eml} +0 -0
  430. data/set-of-emails/maildir/bsd/{email-qmail-10.eml → lhost-qmail-10.eml} +0 -0
  431. data/set-of-emails/maildir/bsd/{email-receivingses-01.eml → lhost-receivingses-01.eml} +0 -0
  432. data/set-of-emails/maildir/bsd/{email-receivingses-02.eml → lhost-receivingses-02.eml} +0 -0
  433. data/set-of-emails/maildir/bsd/{email-receivingses-03.eml → lhost-receivingses-03.eml} +0 -0
  434. data/set-of-emails/maildir/bsd/{email-receivingses-04.eml → lhost-receivingses-04.eml} +0 -0
  435. data/set-of-emails/maildir/bsd/{email-receivingses-05.eml → lhost-receivingses-05.eml} +0 -0
  436. data/set-of-emails/maildir/bsd/{email-receivingses-06.eml → lhost-receivingses-06.eml} +0 -0
  437. data/set-of-emails/maildir/bsd/{email-receivingses-07.eml → lhost-receivingses-07.eml} +0 -0
  438. data/set-of-emails/maildir/bsd/{email-sendgrid-01.eml → lhost-sendgrid-01.eml} +0 -0
  439. data/set-of-emails/maildir/bsd/{email-sendgrid-02.eml → lhost-sendgrid-02.eml} +0 -0
  440. data/set-of-emails/maildir/bsd/{email-sendgrid-03.eml → lhost-sendgrid-03.eml} +0 -0
  441. data/set-of-emails/maildir/bsd/{email-sendmail-01.eml → lhost-sendmail-01.eml} +0 -0
  442. data/set-of-emails/maildir/bsd/{email-sendmail-02.eml → lhost-sendmail-02.eml} +0 -0
  443. data/set-of-emails/maildir/bsd/{email-sendmail-03.eml → lhost-sendmail-03.eml} +0 -0
  444. data/set-of-emails/maildir/bsd/{email-sendmail-04.eml → lhost-sendmail-04.eml} +0 -0
  445. data/set-of-emails/maildir/bsd/{email-sendmail-05.eml → lhost-sendmail-05.eml} +0 -0
  446. data/set-of-emails/maildir/bsd/{email-sendmail-06.eml → lhost-sendmail-06.eml} +0 -0
  447. data/set-of-emails/maildir/bsd/{email-sendmail-07.eml → lhost-sendmail-07.eml} +0 -0
  448. data/set-of-emails/maildir/bsd/{email-sendmail-08.eml → lhost-sendmail-08.eml} +0 -0
  449. data/set-of-emails/maildir/bsd/{email-sendmail-09.eml → lhost-sendmail-09.eml} +0 -0
  450. data/set-of-emails/maildir/bsd/{email-sendmail-10.eml → lhost-sendmail-10.eml} +0 -0
  451. data/set-of-emails/maildir/bsd/{email-sendmail-11.eml → lhost-sendmail-11.eml} +0 -0
  452. data/set-of-emails/maildir/bsd/{email-sendmail-12.eml → lhost-sendmail-12.eml} +0 -0
  453. data/set-of-emails/maildir/bsd/{email-sendmail-13.eml → lhost-sendmail-13.eml} +0 -0
  454. data/set-of-emails/maildir/bsd/{email-sendmail-14.eml → lhost-sendmail-14.eml} +0 -0
  455. data/set-of-emails/maildir/bsd/{email-sendmail-15.eml → lhost-sendmail-15.eml} +0 -0
  456. data/set-of-emails/maildir/bsd/{email-sendmail-16.eml → lhost-sendmail-16.eml} +0 -0
  457. data/set-of-emails/maildir/bsd/{email-sendmail-17.eml → lhost-sendmail-17.eml} +0 -0
  458. data/set-of-emails/maildir/bsd/{email-sendmail-18.eml → lhost-sendmail-18.eml} +0 -0
  459. data/set-of-emails/maildir/bsd/{email-sendmail-19.eml → lhost-sendmail-19.eml} +0 -0
  460. data/set-of-emails/maildir/bsd/{email-sendmail-20.eml → lhost-sendmail-20.eml} +0 -0
  461. data/set-of-emails/maildir/bsd/{email-sendmail-21.eml → lhost-sendmail-21.eml} +0 -0
  462. data/set-of-emails/maildir/bsd/{email-sendmail-22.eml → lhost-sendmail-22.eml} +0 -0
  463. data/set-of-emails/maildir/bsd/{email-sendmail-24.eml → lhost-sendmail-24.eml} +0 -0
  464. data/set-of-emails/maildir/bsd/{email-sendmail-25.eml → lhost-sendmail-25.eml} +0 -0
  465. data/set-of-emails/maildir/bsd/{email-sendmail-26.eml → lhost-sendmail-26.eml} +0 -0
  466. data/set-of-emails/maildir/bsd/{email-sendmail-27.eml → lhost-sendmail-27.eml} +0 -0
  467. data/set-of-emails/maildir/bsd/{email-sendmail-28.eml → lhost-sendmail-28.eml} +0 -0
  468. data/set-of-emails/maildir/bsd/{email-sendmail-29.eml → lhost-sendmail-29.eml} +0 -0
  469. data/set-of-emails/maildir/bsd/{email-sendmail-30.eml → lhost-sendmail-30.eml} +0 -0
  470. data/set-of-emails/maildir/bsd/{email-sendmail-31.eml → lhost-sendmail-31.eml} +0 -0
  471. data/set-of-emails/maildir/bsd/{email-sendmail-32.eml → lhost-sendmail-32.eml} +0 -0
  472. data/set-of-emails/maildir/bsd/{email-sendmail-33.eml → lhost-sendmail-33.eml} +0 -0
  473. data/set-of-emails/maildir/bsd/{email-sendmail-34.eml → lhost-sendmail-34.eml} +0 -0
  474. data/set-of-emails/maildir/bsd/{email-sendmail-35.eml → lhost-sendmail-35.eml} +0 -0
  475. data/set-of-emails/maildir/bsd/{email-sendmail-36.eml → lhost-sendmail-36.eml} +0 -0
  476. data/set-of-emails/maildir/bsd/{email-sendmail-37.eml → lhost-sendmail-37.eml} +0 -0
  477. data/set-of-emails/maildir/bsd/{email-sendmail-38.eml → lhost-sendmail-38.eml} +0 -0
  478. data/set-of-emails/maildir/bsd/{email-sendmail-39.eml → lhost-sendmail-39.eml} +0 -0
  479. data/set-of-emails/maildir/bsd/{email-sendmail-40.eml → lhost-sendmail-40.eml} +0 -0
  480. data/set-of-emails/maildir/bsd/{email-sendmail-41.eml → lhost-sendmail-41.eml} +0 -0
  481. data/set-of-emails/maildir/bsd/{email-sendmail-42.eml → lhost-sendmail-42.eml} +0 -0
  482. data/set-of-emails/maildir/bsd/{email-sendmail-43.eml → lhost-sendmail-43.eml} +0 -0
  483. data/set-of-emails/maildir/bsd/{email-sendmail-44.eml → lhost-sendmail-44.eml} +0 -0
  484. data/set-of-emails/maildir/bsd/{email-sendmail-45.eml → lhost-sendmail-45.eml} +0 -0
  485. data/set-of-emails/maildir/bsd/{email-sendmail-46.eml → lhost-sendmail-46.eml} +0 -0
  486. data/set-of-emails/maildir/bsd/{email-sendmail-47.eml → lhost-sendmail-47.eml} +0 -0
  487. data/set-of-emails/maildir/bsd/{email-sendmail-48.eml → lhost-sendmail-48.eml} +0 -0
  488. data/set-of-emails/maildir/bsd/{email-sendmail-49.eml → lhost-sendmail-49.eml} +0 -0
  489. data/set-of-emails/maildir/bsd/{email-sendmail-50.eml → lhost-sendmail-50.eml} +0 -0
  490. data/set-of-emails/maildir/bsd/{email-sendmail-51.eml → lhost-sendmail-51.eml} +0 -0
  491. data/set-of-emails/maildir/bsd/{email-sendmail-52.eml → lhost-sendmail-52.eml} +0 -0
  492. data/set-of-emails/maildir/bsd/{email-sendmail-53.eml → lhost-sendmail-53.eml} +0 -0
  493. data/set-of-emails/maildir/bsd/{email-sendmail-54.eml → lhost-sendmail-54.eml} +0 -0
  494. data/set-of-emails/maildir/bsd/{email-sendmail-55.eml → lhost-sendmail-55.eml} +0 -0
  495. data/set-of-emails/maildir/bsd/{email-sendmail-56.eml → lhost-sendmail-56.eml} +0 -0
  496. data/set-of-emails/maildir/bsd/lhost-sendmail-57.eml +59 -0
  497. data/set-of-emails/maildir/bsd/lhost-sendmail-58.eml +70 -0
  498. data/set-of-emails/maildir/bsd/lhost-sendmail-59.eml +68 -0
  499. data/set-of-emails/maildir/bsd/{email-surfcontrol-01.eml → lhost-surfcontrol-01.eml} +0 -0
  500. data/set-of-emails/maildir/bsd/{email-surfcontrol-02.eml → lhost-surfcontrol-02.eml} +0 -0
  501. data/set-of-emails/maildir/bsd/{email-surfcontrol-03.eml → lhost-surfcontrol-03.eml} +0 -0
  502. data/set-of-emails/maildir/bsd/{email-v5sendmail-01.eml → lhost-v5sendmail-01.eml} +0 -0
  503. data/set-of-emails/maildir/bsd/{email-v5sendmail-02.eml → lhost-v5sendmail-02.eml} +0 -0
  504. data/set-of-emails/maildir/bsd/{email-v5sendmail-03.eml → lhost-v5sendmail-03.eml} +0 -0
  505. data/set-of-emails/maildir/bsd/{email-v5sendmail-04.eml → lhost-v5sendmail-04.eml} +0 -0
  506. data/set-of-emails/maildir/bsd/{email-v5sendmail-05.eml → lhost-v5sendmail-05.eml} +0 -0
  507. data/set-of-emails/maildir/bsd/{email-v5sendmail-06.eml → lhost-v5sendmail-06.eml} +0 -0
  508. data/set-of-emails/maildir/bsd/{email-v5sendmail-07.eml → lhost-v5sendmail-07.eml} +0 -0
  509. data/set-of-emails/maildir/bsd/{email-verizon-01.eml → lhost-verizon-01.eml} +0 -0
  510. data/set-of-emails/maildir/bsd/{email-verizon-02.eml → lhost-verizon-02.eml} +0 -0
  511. data/set-of-emails/maildir/bsd/{email-x1-01.eml → lhost-x1-01.eml} +0 -0
  512. data/set-of-emails/maildir/bsd/{email-x1-02.eml → lhost-x1-02.eml} +0 -0
  513. data/set-of-emails/maildir/bsd/{email-x2-01.eml → lhost-x2-01.eml} +0 -0
  514. data/set-of-emails/maildir/bsd/{email-x2-02.eml → lhost-x2-02.eml} +0 -0
  515. data/set-of-emails/maildir/bsd/{email-x2-03.eml → lhost-x2-03.eml} +0 -0
  516. data/set-of-emails/maildir/bsd/{email-x2-04.eml → lhost-x2-04.eml} +0 -0
  517. data/set-of-emails/maildir/bsd/{email-x2-05.eml → lhost-x2-05.eml} +0 -0
  518. data/set-of-emails/maildir/bsd/{email-x3-01.eml → lhost-x3-01.eml} +0 -0
  519. data/set-of-emails/maildir/bsd/{email-x3-02.eml → lhost-x3-02.eml} +0 -0
  520. data/set-of-emails/maildir/bsd/{email-x3-03.eml → lhost-x3-03.eml} +0 -0
  521. data/set-of-emails/maildir/bsd/{email-x3-05.eml → lhost-x3-05.eml} +0 -0
  522. data/set-of-emails/maildir/bsd/lhost-x3-06.eml +53 -0
  523. data/set-of-emails/maildir/bsd/{email-x4-01.eml → lhost-x4-01.eml} +0 -0
  524. data/set-of-emails/maildir/bsd/{email-x4-08.eml → lhost-x4-08.eml} +0 -0
  525. data/set-of-emails/maildir/bsd/{email-x5-01.eml → lhost-x5-01.eml} +0 -0
  526. data/set-of-emails/maildir/bsd/lhost-x6-01.eml +71 -0
  527. data/set-of-emails/maildir/bsd/lhost-x6-02.eml +68 -0
  528. data/set-of-emails/maildir/bsd/{email-yahoo-01.eml → lhost-yahoo-01.eml} +0 -0
  529. data/set-of-emails/maildir/bsd/{email-yahoo-02.eml → lhost-yahoo-02.eml} +0 -0
  530. data/set-of-emails/maildir/bsd/{email-yahoo-03.eml → lhost-yahoo-03.eml} +0 -0
  531. data/set-of-emails/maildir/bsd/{email-yahoo-04.eml → lhost-yahoo-04.eml} +0 -0
  532. data/set-of-emails/maildir/bsd/{email-yahoo-05.eml → lhost-yahoo-05.eml} +0 -0
  533. data/set-of-emails/maildir/bsd/{email-yahoo-06.eml → lhost-yahoo-06.eml} +0 -0
  534. data/set-of-emails/maildir/bsd/{email-yahoo-07.eml → lhost-yahoo-07.eml} +0 -0
  535. data/set-of-emails/maildir/bsd/{email-yahoo-08.eml → lhost-yahoo-08.eml} +0 -0
  536. data/set-of-emails/maildir/bsd/{email-yahoo-09.eml → lhost-yahoo-09.eml} +0 -0
  537. data/set-of-emails/maildir/bsd/{email-yahoo-10.eml → lhost-yahoo-10.eml} +0 -0
  538. data/set-of-emails/maildir/bsd/{email-yahoo-11.eml → lhost-yahoo-11.eml} +0 -0
  539. data/set-of-emails/maildir/bsd/{email-yahoo-12.eml → lhost-yahoo-12.eml} +0 -0
  540. data/set-of-emails/maildir/bsd/{email-yahoo-13.eml → lhost-yahoo-13.eml} +0 -0
  541. data/set-of-emails/maildir/bsd/{email-yahoo-14.eml → lhost-yahoo-14.eml} +0 -0
  542. data/set-of-emails/maildir/bsd/{email-yandex-01.eml → lhost-yandex-01.eml} +0 -0
  543. data/set-of-emails/maildir/bsd/{email-yandex-02.eml → lhost-yandex-02.eml} +0 -0
  544. data/set-of-emails/maildir/bsd/{email-yandex-03.eml → lhost-yandex-03.eml} +0 -0
  545. data/set-of-emails/maildir/bsd/{email-zoho-01.eml → lhost-zoho-01.eml} +0 -0
  546. data/set-of-emails/maildir/bsd/{email-zoho-02.eml → lhost-zoho-02.eml} +0 -0
  547. data/set-of-emails/maildir/bsd/{email-zoho-03.eml → lhost-zoho-03.eml} +0 -0
  548. data/set-of-emails/maildir/bsd/{email-zoho-04.eml → lhost-zoho-04.eml} +0 -0
  549. data/set-of-emails/maildir/bsd/{email-zoho-05.eml → lhost-zoho-05.eml} +0 -0
  550. data/set-of-emails/maildir/bsd/rfc3834-03.eml +26 -0
  551. data/set-of-emails/maildir/bsd/{rfc3464-41.eml → rfc3834-04.eml} +0 -0
  552. data/set-of-emails/maildir/bsd/rhost-cox-01.eml +192 -0
  553. data/set-of-emails/maildir/bsd/rhost-franceptt-04.eml +66 -0
  554. data/set-of-emails/maildir/bsd/rhost-franceptt-05.eml +96 -0
  555. data/set-of-emails/maildir/bsd/rhost-franceptt-06.eml +100 -0
  556. data/set-of-emails/maildir/bsd/rhost-franceptt-07.eml +97 -0
  557. data/set-of-emails/maildir/bsd/rhost-franceptt-08.eml +78 -0
  558. data/set-of-emails/maildir/bsd/rhost-franceptt-10.eml +79 -0
  559. data/set-of-emails/maildir/bsd/rhost-franceptt-11.eml +96 -0
  560. data/set-of-emails/maildir/bsd/rhost-spectrum-01.eml +111 -0
  561. data/set-of-emails/maildir/dos/{email-activehunter-01.eml → lhost-activehunter-01.eml} +0 -0
  562. data/set-of-emails/maildir/dos/{email-amavis-01.eml → lhost-amavis-01.eml} +0 -0
  563. data/set-of-emails/maildir/dos/{email-amazonses-01.eml → lhost-amazonses-01.eml} +0 -0
  564. data/set-of-emails/maildir/dos/{email-amazonworkmail-01.eml → lhost-amazonworkmail-01.eml} +0 -0
  565. data/set-of-emails/maildir/dos/{email-aol-01.eml → lhost-aol-01.eml} +0 -0
  566. data/set-of-emails/maildir/dos/{email-apachejames-01.eml → lhost-apachejames-01.eml} +0 -0
  567. data/set-of-emails/maildir/dos/lhost-barracuda-01.eml +67 -0
  568. data/set-of-emails/maildir/dos/{email-bigfoot-01.eml → lhost-bigfoot-01.eml} +0 -0
  569. data/set-of-emails/maildir/dos/{email-biglobe-01.eml → lhost-biglobe-01.eml} +0 -0
  570. data/set-of-emails/maildir/dos/{email-courier-01.eml → lhost-courier-01.eml} +0 -0
  571. data/set-of-emails/maildir/dos/{email-domino-01.eml → lhost-domino-01.eml} +0 -0
  572. data/set-of-emails/maildir/dos/{email-einsundeins-01.eml → lhost-einsundeins-01.eml} +0 -0
  573. data/set-of-emails/maildir/dos/{email-exchange-01.eml → lhost-exchange-01.eml} +0 -0
  574. data/set-of-emails/maildir/dos/{email-exchange2003-01.eml → lhost-exchange2003-01.eml} +0 -0
  575. data/set-of-emails/maildir/dos/{email-exchange2007-01.eml → lhost-exchange2007-01.eml} +0 -0
  576. data/set-of-emails/maildir/dos/{email-exim-01.eml → lhost-exim-01.eml} +0 -0
  577. data/set-of-emails/maildir/dos/{email-ezweb-01.eml → lhost-ezweb-01.eml} +0 -0
  578. data/set-of-emails/maildir/dos/{email-facebook-01.eml → lhost-facebook-01.eml} +0 -0
  579. data/set-of-emails/maildir/dos/{email-google-01.eml → lhost-gmail-01.eml} +0 -0
  580. data/set-of-emails/maildir/dos/{email-gmx-01.eml → lhost-gmx-01.eml} +0 -0
  581. data/set-of-emails/maildir/dos/lhost-googlegroups-01.eml +116 -0
  582. data/set-of-emails/maildir/dos/{email-gsuite-01.eml → lhost-gsuite-01.eml} +0 -0
  583. data/set-of-emails/maildir/dos/{email-imailserver-01.eml → lhost-imailserver-01.eml} +0 -0
  584. data/set-of-emails/maildir/dos/{email-interscanmss-01.eml → lhost-interscanmss-01.eml} +0 -0
  585. data/set-of-emails/maildir/dos/{email-kddi-01.eml → lhost-kddi-01.eml} +0 -0
  586. data/set-of-emails/maildir/dos/{email-mailfoundry-01.eml → lhost-mailfoundry-01.eml} +0 -0
  587. data/set-of-emails/maildir/dos/{email-mailmarshalsmtp-01.eml → lhost-mailmarshalsmtp-01.eml} +0 -0
  588. data/set-of-emails/maildir/dos/{email-mailru-01.eml → lhost-mailru-01.eml} +0 -0
  589. data/set-of-emails/maildir/dos/{email-mcafee-01.eml → lhost-mcafee-01.eml} +0 -0
  590. data/set-of-emails/maildir/dos/{email-messagelabs-01.eml → lhost-messagelabs-01.eml} +0 -0
  591. data/set-of-emails/maildir/dos/{email-messagingserver-01.eml → lhost-messagingserver-01.eml} +0 -0
  592. data/set-of-emails/maildir/dos/{email-mfilter-01.eml → lhost-mfilter-01.eml} +0 -0
  593. data/set-of-emails/maildir/dos/{email-mxlogic-01.eml → lhost-mxlogic-01.eml} +0 -0
  594. data/set-of-emails/maildir/dos/{email-notes-01.eml → lhost-notes-01.eml} +0 -0
  595. data/set-of-emails/maildir/dos/{email-office365-01.eml → lhost-office365-01.eml} +0 -0
  596. data/set-of-emails/maildir/dos/{email-opensmtpd-01.eml → lhost-opensmtpd-01.eml} +0 -0
  597. data/set-of-emails/maildir/dos/{email-outlook-01.eml → lhost-outlook-01.eml} +0 -0
  598. data/set-of-emails/maildir/dos/{email-postfix-01.eml → lhost-postfix-01.eml} +0 -0
  599. data/set-of-emails/maildir/dos/lhost-powermta-01.eml +64 -0
  600. data/set-of-emails/maildir/dos/{email-qmail-01.eml → lhost-qmail-01.eml} +0 -0
  601. data/set-of-emails/maildir/dos/{email-receivingses-01.eml → lhost-receivingses-01.eml} +0 -0
  602. data/set-of-emails/maildir/dos/{email-sendgrid-01.eml → lhost-sendgrid-01.eml} +0 -0
  603. data/set-of-emails/maildir/dos/{email-sendmail-01.eml → lhost-sendmail-01.eml} +0 -0
  604. data/set-of-emails/maildir/dos/{email-surfcontrol-01.eml → lhost-surfcontrol-01.eml} +0 -0
  605. data/set-of-emails/maildir/dos/{email-v5sendmail-01.eml → lhost-v5sendmail-01.eml} +0 -0
  606. data/set-of-emails/maildir/dos/{email-verizon-01.eml → lhost-verizon-01.eml} +0 -0
  607. data/set-of-emails/maildir/dos/{email-x1-01.eml → lhost-x1-01.eml} +0 -0
  608. data/set-of-emails/maildir/dos/{email-x2-01.eml → lhost-x2-01.eml} +0 -0
  609. data/set-of-emails/maildir/dos/{email-x3-01.eml → lhost-x3-01.eml} +0 -0
  610. data/set-of-emails/maildir/dos/{email-x4-01.eml → lhost-x4-01.eml} +0 -0
  611. data/set-of-emails/maildir/dos/{email-x5-01.eml → lhost-x5-01.eml} +0 -0
  612. data/set-of-emails/maildir/dos/lhost-x6-01.eml +71 -0
  613. data/set-of-emails/maildir/dos/{email-yahoo-01.eml → lhost-yahoo-01.eml} +0 -0
  614. data/set-of-emails/maildir/dos/{email-yandex-01.eml → lhost-yandex-01.eml} +0 -0
  615. data/set-of-emails/maildir/dos/{email-zoho-01.eml → lhost-zoho-01.eml} +0 -0
  616. data/set-of-emails/maildir/dos/rhost-iua-01.eml +70 -0
  617. data/set-of-emails/maildir/mac/{email-activehunter-01.eml → lhost-activehunter-01.eml} +0 -0
  618. data/set-of-emails/maildir/mac/{email-amavis-01.eml → lhost-amavis-01.eml} +0 -0
  619. data/set-of-emails/maildir/mac/{email-amazonses-01.eml → lhost-amazonses-01.eml} +0 -0
  620. data/set-of-emails/maildir/mac/{email-amazonworkmail-01.eml → lhost-amazonworkmail-01.eml} +0 -0
  621. data/set-of-emails/maildir/mac/{email-aol-01.eml → lhost-aol-01.eml} +0 -0
  622. data/set-of-emails/maildir/mac/{email-apachejames-01.eml → lhost-apachejames-01.eml} +0 -0
  623. data/set-of-emails/maildir/mac/lhost-barracuda-01.eml +1 -4
  624. data/set-of-emails/maildir/mac/{email-bigfoot-01.eml → lhost-bigfoot-01.eml} +0 -0
  625. data/set-of-emails/maildir/mac/{email-biglobe-01.eml → lhost-biglobe-01.eml} +0 -0
  626. data/set-of-emails/maildir/mac/{email-courier-01.eml → lhost-courier-01.eml} +0 -0
  627. data/set-of-emails/maildir/mac/{email-domino-01.eml → lhost-domino-01.eml} +0 -0
  628. data/set-of-emails/maildir/mac/{email-einsundeins-01.eml → lhost-einsundeins-01.eml} +0 -0
  629. data/set-of-emails/maildir/mac/{email-exchange-01.eml → lhost-exchange-01.eml} +0 -0
  630. data/set-of-emails/maildir/mac/{email-exchange2003-01.eml → lhost-exchange2003-01.eml} +0 -0
  631. data/set-of-emails/maildir/mac/{email-exchange2007-01.eml → lhost-exchange2007-01.eml} +0 -0
  632. data/set-of-emails/maildir/mac/{email-exim-01.eml → lhost-exim-01.eml} +0 -0
  633. data/set-of-emails/maildir/mac/{email-ezweb-01.eml → lhost-ezweb-01.eml} +0 -0
  634. data/set-of-emails/maildir/mac/{email-facebook-01.eml → lhost-facebook-01.eml} +0 -0
  635. data/set-of-emails/maildir/mac/{email-google-01.eml → lhost-gmail-01.eml} +0 -0
  636. data/set-of-emails/maildir/mac/{email-gmx-01.eml → lhost-gmx-01.eml} +0 -0
  637. data/set-of-emails/maildir/mac/lhost-googlegroups-01.eml +1 -1
  638. data/set-of-emails/maildir/mac/{email-gsuite-01.eml → lhost-gsuite-01.eml} +0 -0
  639. data/set-of-emails/maildir/mac/{email-imailserver-01.eml → lhost-imailserver-01.eml} +0 -0
  640. data/set-of-emails/maildir/mac/{email-interscanmss-01.eml → lhost-interscanmss-01.eml} +0 -0
  641. data/set-of-emails/maildir/mac/{email-kddi-01.eml → lhost-kddi-01.eml} +0 -0
  642. data/set-of-emails/maildir/mac/{email-mailfoundry-01.eml → lhost-mailfoundry-01.eml} +0 -0
  643. data/set-of-emails/maildir/mac/{email-mailmarshalsmtp-01.eml → lhost-mailmarshalsmtp-01.eml} +0 -0
  644. data/set-of-emails/maildir/mac/{email-mailru-01.eml → lhost-mailru-01.eml} +0 -0
  645. data/set-of-emails/maildir/mac/{email-mcafee-01.eml → lhost-mcafee-01.eml} +0 -0
  646. data/set-of-emails/maildir/mac/{email-messagelabs-01.eml → lhost-messagelabs-01.eml} +0 -0
  647. data/set-of-emails/maildir/mac/{email-messagingserver-01.eml → lhost-messagingserver-01.eml} +0 -0
  648. data/set-of-emails/maildir/mac/{email-mfilter-01.eml → lhost-mfilter-01.eml} +0 -0
  649. data/set-of-emails/maildir/mac/{email-mxlogic-01.eml → lhost-mxlogic-01.eml} +0 -0
  650. data/set-of-emails/maildir/mac/{email-notes-01.eml → lhost-notes-01.eml} +0 -0
  651. data/set-of-emails/maildir/mac/{email-office365-01.eml → lhost-office365-01.eml} +0 -0
  652. data/set-of-emails/maildir/mac/{email-opensmtpd-01.eml → lhost-opensmtpd-01.eml} +0 -0
  653. data/set-of-emails/maildir/mac/{email-outlook-01.eml → lhost-outlook-01.eml} +0 -0
  654. data/set-of-emails/maildir/mac/{email-postfix-01.eml → lhost-postfix-01.eml} +0 -0
  655. data/set-of-emails/maildir/mac/lhost-powermta-01.eml +1 -4
  656. data/set-of-emails/maildir/mac/{email-qmail-01.eml → lhost-qmail-01.eml} +0 -0
  657. data/set-of-emails/maildir/mac/{email-receivingses-01.eml → lhost-receivingses-01.eml} +0 -0
  658. data/set-of-emails/maildir/mac/{email-sendgrid-01.eml → lhost-sendgrid-01.eml} +0 -0
  659. data/set-of-emails/maildir/mac/{email-sendmail-01.eml → lhost-sendmail-01.eml} +0 -0
  660. data/set-of-emails/maildir/mac/{email-surfcontrol-01.eml → lhost-surfcontrol-01.eml} +0 -0
  661. data/set-of-emails/maildir/mac/{email-v5sendmail-01.eml → lhost-v5sendmail-01.eml} +0 -0
  662. data/set-of-emails/maildir/mac/{email-verizon-01.eml → lhost-verizon-01.eml} +0 -0
  663. data/set-of-emails/maildir/mac/{email-x1-01.eml → lhost-x1-01.eml} +0 -0
  664. data/set-of-emails/maildir/mac/{email-x2-01.eml → lhost-x2-01.eml} +0 -0
  665. data/set-of-emails/maildir/mac/{email-x3-01.eml → lhost-x3-01.eml} +0 -0
  666. data/set-of-emails/maildir/mac/{email-x4-01.eml → lhost-x4-01.eml} +0 -0
  667. data/set-of-emails/maildir/mac/{email-x5-01.eml → lhost-x5-01.eml} +0 -0
  668. data/set-of-emails/maildir/mac/lhost-x6-01.eml +1 -3
  669. data/set-of-emails/maildir/mac/{email-yahoo-01.eml → lhost-yahoo-01.eml} +0 -0
  670. data/set-of-emails/maildir/mac/{email-yandex-01.eml → lhost-yandex-01.eml} +0 -0
  671. data/set-of-emails/maildir/mac/{email-zoho-01.eml → lhost-zoho-01.eml} +0 -0
  672. data/set-of-emails/maildir/mac/rhost-iua-01.eml +1 -4
  673. metadata +587 -521
  674. data/lib/sisimai/bite.rb +0 -42
  675. data/lib/sisimai/bite/email.rb +0 -18
  676. data/lib/sisimai/bite/json.rb +0 -16
  677. data/lib/sisimai/lhost/userdefined.rb +0 -115
  678. data/lib/sisimai/message/email.rb +0 -26
  679. data/lib/sisimai/message/json.rb +0 -24
  680. data/lib/sisimai/order/email.rb +0 -20
  681. 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
@@ -14,28 +14,31 @@ module Sisimai
14
14
  # OpenDMARC 1.3.0 uses: This is an authentication failure report for an email message received from IP
15
15
  # Abusix ARF uses this is an autogenerated email abuse complaint regarding your network.
16
16
  Indicators = Sisimai::Lhost.INDICATORS
17
- StartingOf = { rfc822: ['Content-Type: message/rfc822', 'Content-Type: text/rfc822-headers'] }.freeze
17
+ StartingOf = {
18
+ rfc822: ['Content-Type: message/rfc822', 'Content-Type: text/rfc822-headers'],
19
+ report: ['Content-Type: message/feedback-report'],
20
+ }.freeze
18
21
  MarkingsOf = {
19
22
  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
- )
23
+ [Tt]his[ ]is[ ]a[ ][^ ]+[ ](?:email[ ])?[Aa]buse[ ][Rr]eport
24
+ |[Tt]his[ ]is[ ]an[ ]email[ ]abuse[ ]report
25
+ |[Tt]his[ ]is[ ](?:
26
+ a[ ][^ ]+[ ]authentication[ -]failure[ ]report
27
+ |an[ ]authentication[ -]failure[ ]report
28
+ |an[ ]autogenerated[ ]email[ ]abuse[ ]complaint
29
+ |an?[ ][^ ]+[ ]report[ ]for
30
+ )
26
31
  )
27
32
  }x,
28
33
  }.freeze
34
+ ReportFrom = /(?:staff[@]hotmail[.]com|complaints[@]email-abuse[.]amazonses[.]com)\z/.freeze
29
35
  LongFields = Sisimai::RFC5322.LONGFIELDS
30
36
  RFC822Head = Sisimai::RFC5322.HEADERFIELDS
31
37
 
32
38
  def description; return 'Abuse Feedback Reporting Format'; end
33
- def smtpagent; return 'FeedBack-Loop'; end
34
- def headerlist; return []; end
35
39
 
36
40
  # Email is a Feedback-Loop message or not
37
- # @param [Hash] heads Email header including "Content-Type", "From",
38
- # and "Subject" field
41
+ # @param [Hash] heads Email header including "Content-Type", "From", and "Subject" field
39
42
  # @return [True,False] true: Feedback Loop
40
43
  # false: is not Feedback loop
41
44
  def is_arf(heads)
@@ -49,13 +52,8 @@ module Sisimai
49
52
  elsif heads['content-type'].start_with?('multipart/mixed')
50
53
  # Microsoft (Hotmail, MSN, Live, Outlook) uses its own report format.
51
54
  # 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 ')
55
+ p = Sisimai::Address.s3s4(heads['from'])
56
+ if p =~ ReportFrom && heads['subject'].include?('complaint about message from ')
59
57
  # From: staff@hotmail.com
60
58
  # From: complaints@email-abuse.amazonses.com
61
59
  # Subject: complaint about message from 192.0.2.1
@@ -66,21 +64,15 @@ module Sisimai
66
64
  end
67
65
 
68
66
  # 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
67
+ # @param [Hash] mhead Message headers of a bounce email
68
+ # @param [String] mbody Message body of a bounce email
69
+ # @return [Hash] Bounce data list and message/rfc822 part
70
+ # @return [Nil] it failed to parse or the arguments are missing
79
71
  def make(mhead, mbody)
80
72
  return nil unless self.is_arf(mhead)
81
73
 
82
74
  dscontents = [Sisimai::Lhost.DELIVERYSTATUS]
83
- hasdivided = mbody.split("\n")
75
+ bodyslices = mbody.split("\n")
84
76
  rfc822part = '' # (String) message/rfc822-headers part
85
77
  previousfn = '' # (String) Previous field name
86
78
  readcursor = 0 # (Integer) Points the current cursor position
@@ -120,13 +112,18 @@ module Sisimai
120
112
  # generator is using to generate the report. The version number in
121
113
  # this specification is set to "1".
122
114
  #
123
- while e = hasdivided.shift do
115
+ while e = bodyslices.shift do
116
+ # This is an email abuse report for an email message with the
117
+ # message-id of 0000-000000000000000000000000000000000@mx
118
+ # received from IP address 192.0.2.1 on
119
+ # Thu, 29 Apr 2010 00:00:00 +0900 (JST)
120
+ if e =~ MarkingsOf[:message]
121
+ commondata['diagnosis'] = e if commondata['diagnosis'].empty?
122
+ end
123
+
124
124
  if readcursor == 0
125
125
  # Beginning of the bounce message or message/delivery-status part
126
- if e =~ MarkingsOf[:message]
127
- readcursor |= Indicators[:deliverystatus]
128
- next
129
- end
126
+ readcursor |= Indicators[:deliverystatus] if e.start_with?(StartingOf[:report][0])
130
127
  end
131
128
 
132
129
  if (readcursor & Indicators[:'message-rfc822']) == 0
@@ -153,11 +150,18 @@ module Sisimai
153
150
  elsif cv = e.match(/\AFrom:[ ]*(.+)\z/)
154
151
  # Microsoft ARF: original sender.
155
152
  commondata['from'] = Sisimai::Address.s3s4(cv[1]) if commondata['from'].empty?
153
+ previousfn = 'from'
156
154
 
157
155
  elsif e.start_with?(' ', "\t")
158
156
  # Continued line from the previous line
159
- rfc822part << e + "\n" if LongFields.key?(previousfn)
160
- next unless e.empty?
157
+ if previousfn == 'from'
158
+ # Multiple lines at "From:" field
159
+ commondata['from'] << e
160
+ next
161
+ else
162
+ rfc822part << e + "\n" if LongFields[previousfn]
163
+ next unless e.empty?
164
+ end
161
165
  rcptintext << e if previousfn == 'to'
162
166
 
163
167
  else
@@ -167,14 +171,14 @@ module Sisimai
167
171
  lhs.downcase!
168
172
 
169
173
  previousfn = ''
170
- next unless RFC822Head.key?(lhs)
174
+ next unless RFC822Head[lhs]
171
175
 
172
176
  previousfn = lhs
173
177
  rfc822part << e + "\n"
174
178
  rcptintext = rhs if lhs == 'to'
175
179
  end
176
180
  else
177
- # message/delivery-status part
181
+ # message/feedback-report part
178
182
  next unless readcursor & Indicators[:deliverystatus] > 0
179
183
  next if e.empty?
180
184
 
@@ -231,7 +235,7 @@ module Sisimai
231
235
  # Reporting-MTA: dns; mx.example.jp
232
236
  commondata['rhost'] = cv[1]
233
237
 
234
- elsif cv = e.match(/\ASource-IP:[ ]*(.+)\z/)
238
+ elsif cv = e.match(/\ASource-I[Pp]:[ ]*(.+)\z/)
235
239
  # The header is optional and MUST NOT appear more than once.
236
240
  # Source-IP: 192.0.2.45
237
241
  arfheaders['rhost'] = cv[1]
@@ -241,12 +245,6 @@ module Sisimai
241
245
  # Original-Mail-From: <somespammer@example.net>
242
246
  commondata['from'] = Sisimai::Address.s3s4(cv[1]) if commondata['from'].empty?
243
247
 
244
- elsif e =~ MarkingsOf[:message]
245
- # This is an email abuse report for an email message with the
246
- # message-id of 0000-000000000000000000000000000000000@mx
247
- # received from IP address 192.0.2.1 on
248
- # Thu, 29 Apr 2010 00:00:00 +0900 (JST)
249
- commondata['diagnosis'] = e
250
248
  end
251
249
  end
252
250
  end
@@ -292,9 +290,10 @@ module Sisimai
292
290
 
293
291
  e['softbounce'] = -1
294
292
  e['diagnosis'] = commondata['diagnosis'] unless e['diagnosis']
293
+ e['diagnosis'] = Sisimai::String.sweep(e['diagnosis'])
295
294
  e['date'] = mhead['date'] if e['date'].empty?
296
295
  e['reason'] = 'feedback'
297
- e['agent'] = self.smtpagent if e['agent'].empty?
296
+ e['agent'] = 'Feedback-Loop'
298
297
  %w[command action status alias].each { |a| e[a] = '' }
299
298
 
300
299
  # Get the remote IP address from the message body
@@ -308,7 +307,6 @@ module Sisimai
308
307
  # from IP address 24.64.1.1 on Thu, 29 Apr 2010 00:00:00 +0000
309
308
  e['rhost'] = cv[1]
310
309
  end
311
-
312
310
  end
313
311
  return { 'ds' => dscontents, 'rfc822' => rfc822part }
314
312
  end