sisimai 4.25.5-java → 4.25.11-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 (682) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +4 -3
  3. data/ANALYTICAL-PRECISION +60 -56
  4. data/Benchmarks.mk +5 -3
  5. data/ChangeLog.md +148 -1
  6. data/Developers.mk +2 -2
  7. data/Makefile +1 -1
  8. data/README-JA.md +22 -22
  9. data/README.md +23 -22
  10. data/Repository.mk +1 -1
  11. data/lib/sisimai.rb +8 -14
  12. data/lib/sisimai/address.rb +6 -3
  13. data/lib/sisimai/arf.rb +42 -44
  14. data/lib/sisimai/data.rb +12 -33
  15. data/lib/sisimai/datetime.rb +18 -17
  16. data/lib/sisimai/lhost.rb +25 -33
  17. data/lib/sisimai/lhost/activehunter.rb +6 -21
  18. data/lib/sisimai/lhost/amavis.rb +78 -20
  19. data/lib/sisimai/lhost/amazonses.rb +11 -25
  20. data/lib/sisimai/lhost/amazonworkmail.rb +8 -24
  21. data/lib/sisimai/lhost/aol.rb +15 -29
  22. data/lib/sisimai/lhost/apachejames.rb +6 -21
  23. data/lib/sisimai/lhost/barracuda.rb +94 -0
  24. data/lib/sisimai/lhost/bigfoot.rb +5 -17
  25. data/lib/sisimai/lhost/biglobe.rb +5 -16
  26. data/lib/sisimai/lhost/courier.rb +6 -19
  27. data/lib/sisimai/lhost/domino.rb +34 -21
  28. data/lib/sisimai/lhost/einsundeins.rb +6 -17
  29. data/lib/sisimai/lhost/exchange2003.rb +10 -19
  30. data/lib/sisimai/lhost/exchange2007.rb +17 -20
  31. data/lib/sisimai/lhost/exim.rb +20 -32
  32. data/lib/sisimai/lhost/ezweb.rb +6 -18
  33. data/lib/sisimai/lhost/facebook.rb +5 -16
  34. data/lib/sisimai/lhost/fml.rb +6 -20
  35. data/lib/sisimai/lhost/{google.rb → gmail.rb} +9 -21
  36. data/lib/sisimai/lhost/gmx.rb +9 -23
  37. data/lib/sisimai/lhost/googlegroups.rb +77 -0
  38. data/lib/sisimai/lhost/gsuite.rb +10 -17
  39. data/lib/sisimai/lhost/imailserver.rb +13 -25
  40. data/lib/sisimai/lhost/interscanmss.rb +11 -22
  41. data/lib/sisimai/lhost/kddi.rb +5 -16
  42. data/lib/sisimai/lhost/mailfoundry.rb +9 -25
  43. data/lib/sisimai/lhost/mailmarshalsmtp.rb +8 -23
  44. data/lib/sisimai/lhost/mailru.rb +5 -16
  45. data/lib/sisimai/lhost/mcafee.rb +6 -18
  46. data/lib/sisimai/lhost/messagelabs.rb +10 -22
  47. data/lib/sisimai/lhost/messagingserver.rb +5 -18
  48. data/lib/sisimai/lhost/mfilter.rb +7 -19
  49. data/lib/sisimai/lhost/mxlogic.rb +9 -22
  50. data/lib/sisimai/lhost/notes.rb +7 -19
  51. data/lib/sisimai/lhost/office365.rb +25 -35
  52. data/lib/sisimai/lhost/opensmtpd.rb +5 -19
  53. data/lib/sisimai/lhost/outlook.rb +7 -21
  54. data/lib/sisimai/lhost/postfix.rb +9 -27
  55. data/lib/sisimai/lhost/powermta.rb +120 -0
  56. data/lib/sisimai/lhost/qmail.rb +13 -24
  57. data/lib/sisimai/lhost/receivingses.rb +7 -22
  58. data/lib/sisimai/lhost/sendgrid.rb +9 -22
  59. data/lib/sisimai/lhost/sendmail.rb +7 -23
  60. data/lib/sisimai/lhost/surfcontrol.rb +9 -25
  61. data/lib/sisimai/lhost/v5sendmail.rb +5 -18
  62. data/lib/sisimai/lhost/verizon.rb +9 -21
  63. data/lib/sisimai/lhost/x1.rb +7 -19
  64. data/lib/sisimai/lhost/x2.rb +8 -23
  65. data/lib/sisimai/lhost/x3.rb +11 -19
  66. data/lib/sisimai/lhost/x4.rb +15 -27
  67. data/lib/sisimai/lhost/x5.rb +15 -26
  68. data/lib/sisimai/lhost/x6.rb +74 -0
  69. data/lib/sisimai/lhost/yahoo.rb +11 -24
  70. data/lib/sisimai/lhost/yandex.rb +14 -26
  71. data/lib/sisimai/lhost/zoho.rb +8 -28
  72. data/lib/sisimai/mail.rb +23 -27
  73. data/lib/sisimai/mail/maildir.rb +27 -28
  74. data/lib/sisimai/mail/memory.rb +18 -16
  75. data/lib/sisimai/mail/stdin.rb +5 -5
  76. data/lib/sisimai/mda.rb +6 -12
  77. data/lib/sisimai/message.rb +131 -301
  78. data/lib/sisimai/mime.rb +26 -31
  79. data/lib/sisimai/order.rb +149 -183
  80. data/lib/sisimai/reason.rb +25 -14
  81. data/lib/sisimai/reason/blocked.rb +40 -26
  82. data/lib/sisimai/reason/exceedlimit.rb +4 -1
  83. data/lib/sisimai/reason/expired.rb +2 -0
  84. data/lib/sisimai/reason/filtered.rb +1 -0
  85. data/lib/sisimai/reason/hostunknown.rb +3 -0
  86. data/lib/sisimai/reason/mailererror.rb +1 -1
  87. data/lib/sisimai/reason/norelaying.rb +5 -0
  88. data/lib/sisimai/reason/notaccept.rb +2 -0
  89. data/lib/sisimai/reason/policyviolation.rb +4 -0
  90. data/lib/sisimai/reason/rejected.rb +6 -1
  91. data/lib/sisimai/reason/securityerror.rb +5 -6
  92. data/lib/sisimai/reason/spamdetected.rb +17 -15
  93. data/lib/sisimai/reason/suspend.rb +1 -0
  94. data/lib/sisimai/reason/systemerror.rb +2 -0
  95. data/lib/sisimai/reason/userunknown.rb +37 -26
  96. data/lib/sisimai/rfc1894.rb +24 -22
  97. data/lib/sisimai/rfc3464.rb +10 -28
  98. data/lib/sisimai/rfc3834.rb +6 -19
  99. data/lib/sisimai/rfc5322.rb +8 -4
  100. data/lib/sisimai/rhost.rb +6 -8
  101. data/lib/sisimai/rhost/cox.rb +112 -0
  102. data/lib/sisimai/rhost/exchangeonline.rb +33 -23
  103. data/lib/sisimai/rhost/googleapps.rb +4 -1
  104. data/lib/sisimai/rhost/spectrum.rb +73 -0
  105. data/lib/sisimai/smtp.rb +0 -13
  106. data/lib/sisimai/smtp/error.rb +8 -6
  107. data/lib/sisimai/smtp/reply.rb +1 -1
  108. data/lib/sisimai/smtp/status.rb +1 -1
  109. data/lib/sisimai/string.rb +3 -11
  110. data/lib/sisimai/time.rb +1 -2
  111. data/lib/sisimai/version.rb +1 -1
  112. data/set-of-emails/README.md +5 -4
  113. data/set-of-emails/maildir/bsd/arf-24.eml +50 -0
  114. data/set-of-emails/maildir/bsd/arf-25.eml +61 -0
  115. data/set-of-emails/maildir/bsd/{email-activehunter-01.eml → lhost-activehunter-01.eml} +0 -0
  116. data/set-of-emails/maildir/bsd/{email-activehunter-02.eml → lhost-activehunter-02.eml} +0 -0
  117. data/set-of-emails/maildir/bsd/{email-amavis-01.eml → lhost-amavis-01.eml} +0 -0
  118. data/set-of-emails/maildir/bsd/{email-amavis-02.eml → lhost-amavis-02.eml} +0 -0
  119. data/set-of-emails/maildir/bsd/lhost-amavis-03.eml +90 -0
  120. data/set-of-emails/maildir/bsd/{email-amazonses-01.eml → lhost-amazonses-01.eml} +0 -0
  121. data/set-of-emails/maildir/bsd/{email-amazonses-02.eml → lhost-amazonses-02.eml} +0 -0
  122. data/set-of-emails/maildir/bsd/{email-amazonses-03.eml → lhost-amazonses-03.eml} +0 -0
  123. data/set-of-emails/maildir/bsd/{email-amazonses-05.eml → lhost-amazonses-05.eml} +0 -0
  124. data/set-of-emails/maildir/bsd/{email-amazonses-06.eml → lhost-amazonses-06.eml} +0 -0
  125. data/set-of-emails/maildir/bsd/{email-amazonses-07.eml → lhost-amazonses-07.eml} +0 -0
  126. data/set-of-emails/maildir/bsd/{email-amazonses-08.eml → lhost-amazonses-08.eml} +0 -0
  127. data/set-of-emails/maildir/bsd/{email-amazonses-09.eml → lhost-amazonses-09.eml} +0 -0
  128. data/set-of-emails/maildir/bsd/{email-amazonses-10.eml → lhost-amazonses-10.eml} +0 -0
  129. data/set-of-emails/maildir/bsd/{email-amazonses-11.eml → lhost-amazonses-11.eml} +0 -0
  130. data/set-of-emails/maildir/bsd/{email-amazonses-12.eml → lhost-amazonses-12.eml} +0 -0
  131. data/set-of-emails/maildir/bsd/{email-amazonses-13.eml → lhost-amazonses-13.eml} +0 -0
  132. data/set-of-emails/maildir/bsd/{email-amazonses-14.eml → lhost-amazonses-14.eml} +0 -0
  133. data/set-of-emails/maildir/bsd/{email-amazonses-15.eml → lhost-amazonses-15.eml} +0 -0
  134. data/set-of-emails/maildir/bsd/{email-amazonses-16.eml → lhost-amazonses-16.eml} +0 -0
  135. data/set-of-emails/maildir/bsd/{email-amazonses-17.eml → lhost-amazonses-17.eml} +0 -0
  136. data/set-of-emails/maildir/bsd/{email-amazonses-18.eml → lhost-amazonses-18.eml} +0 -0
  137. data/set-of-emails/maildir/bsd/{email-amazonses-19.eml → lhost-amazonses-19.eml} +0 -0
  138. data/set-of-emails/maildir/bsd/{email-amazonses-20.eml → lhost-amazonses-20.eml} +0 -0
  139. data/set-of-emails/maildir/bsd/{email-amazonses-21.eml → lhost-amazonses-21.eml} +0 -0
  140. data/set-of-emails/maildir/bsd/{email-amazonworkmail-01.eml → lhost-amazonworkmail-01.eml} +0 -0
  141. data/set-of-emails/maildir/bsd/{email-amazonworkmail-02.eml → lhost-amazonworkmail-02.eml} +0 -0
  142. data/set-of-emails/maildir/bsd/{email-amazonworkmail-03.eml → lhost-amazonworkmail-03.eml} +0 -0
  143. data/set-of-emails/maildir/bsd/{email-amazonworkmail-04.eml → lhost-amazonworkmail-04.eml} +0 -0
  144. data/set-of-emails/maildir/bsd/{email-amazonworkmail-05.eml → lhost-amazonworkmail-05.eml} +0 -0
  145. data/set-of-emails/maildir/bsd/{email-amazonworkmail-07.eml → lhost-amazonworkmail-07.eml} +0 -0
  146. data/set-of-emails/maildir/bsd/{email-amazonworkmail-08.eml → lhost-amazonworkmail-08.eml} +0 -0
  147. data/set-of-emails/maildir/bsd/{email-aol-01.eml → lhost-aol-01.eml} +0 -0
  148. data/set-of-emails/maildir/bsd/{email-aol-02.eml → lhost-aol-02.eml} +0 -0
  149. data/set-of-emails/maildir/bsd/{email-aol-03.eml → lhost-aol-03.eml} +0 -0
  150. data/set-of-emails/maildir/bsd/{email-aol-04.eml → lhost-aol-04.eml} +23 -23
  151. data/set-of-emails/maildir/bsd/{email-aol-05.eml → lhost-aol-05.eml} +0 -0
  152. data/set-of-emails/maildir/bsd/{email-aol-06.eml → lhost-aol-06.eml} +0 -0
  153. data/set-of-emails/maildir/bsd/{email-apachejames-01.eml → lhost-apachejames-01.eml} +0 -0
  154. data/set-of-emails/maildir/bsd/lhost-barracuda-01.eml +67 -0
  155. data/set-of-emails/maildir/bsd/lhost-barracuda-02.eml +71 -0
  156. data/set-of-emails/maildir/bsd/{email-bigfoot-02.eml → lhost-bigfoot-02.eml} +0 -0
  157. data/set-of-emails/maildir/bsd/{email-biglobe-01.eml → lhost-biglobe-01.eml} +0 -0
  158. data/set-of-emails/maildir/bsd/{email-courier-01.eml → lhost-courier-01.eml} +0 -0
  159. data/set-of-emails/maildir/bsd/{email-courier-02.eml → lhost-courier-02.eml} +0 -0
  160. data/set-of-emails/maildir/bsd/{email-courier-03.eml → lhost-courier-03.eml} +0 -0
  161. data/set-of-emails/maildir/bsd/{email-courier-04.eml → lhost-courier-04.eml} +0 -0
  162. data/set-of-emails/maildir/bsd/{email-domino-01.eml → lhost-domino-01.eml} +0 -0
  163. data/set-of-emails/maildir/bsd/{email-domino-02.eml → lhost-domino-02.eml} +1 -2
  164. data/set-of-emails/maildir/bsd/{email-domino-03.eml → lhost-domino-03.eml} +0 -0
  165. data/set-of-emails/maildir/bsd/{email-einsundeins-02.eml → lhost-einsundeins-02.eml} +0 -0
  166. data/set-of-emails/maildir/bsd/{email-einsundeins-03.eml → lhost-einsundeins-03.eml} +0 -0
  167. data/set-of-emails/maildir/bsd/{email-exchange2003-01.eml → lhost-exchange2003-01.eml} +0 -0
  168. data/set-of-emails/maildir/bsd/{email-exchange2003-02.eml → lhost-exchange2003-02.eml} +0 -0
  169. data/set-of-emails/maildir/bsd/{email-exchange2003-03.eml → lhost-exchange2003-03.eml} +0 -0
  170. data/set-of-emails/maildir/bsd/{email-exchange2003-04.eml → lhost-exchange2003-04.eml} +0 -0
  171. data/set-of-emails/maildir/bsd/{email-exchange2003-05.eml → lhost-exchange2003-05.eml} +0 -0
  172. data/set-of-emails/maildir/bsd/{email-exchange2003-07.eml → lhost-exchange2003-07.eml} +0 -0
  173. data/set-of-emails/maildir/bsd/{email-exchange2007-01.eml → lhost-exchange2007-01.eml} +0 -0
  174. data/set-of-emails/maildir/bsd/{email-exchange2007-02.eml → lhost-exchange2007-02.eml} +0 -0
  175. data/set-of-emails/maildir/bsd/{email-exchange2007-03.eml → lhost-exchange2007-03.eml} +0 -0
  176. data/set-of-emails/maildir/bsd/{email-exchange2007-04.eml → lhost-exchange2007-04.eml} +0 -0
  177. data/set-of-emails/maildir/bsd/{email-exchange2007-05.eml → lhost-exchange2007-05.eml} +0 -0
  178. data/set-of-emails/maildir/bsd/{email-exchange2007-06.eml → lhost-exchange2007-06.eml} +0 -0
  179. data/set-of-emails/maildir/bsd/lhost-exchange2007-07.eml +128 -0
  180. data/set-of-emails/maildir/bsd/{email-exim-01.eml → lhost-exim-01.eml} +0 -0
  181. data/set-of-emails/maildir/bsd/{email-exim-02.eml → lhost-exim-02.eml} +0 -0
  182. data/set-of-emails/maildir/bsd/{email-exim-03.eml → lhost-exim-03.eml} +0 -0
  183. data/set-of-emails/maildir/bsd/{email-exim-04.eml → lhost-exim-04.eml} +0 -0
  184. data/set-of-emails/maildir/bsd/{email-exim-05.eml → lhost-exim-05.eml} +0 -0
  185. data/set-of-emails/maildir/bsd/{email-exim-06.eml → lhost-exim-06.eml} +0 -0
  186. data/set-of-emails/maildir/bsd/{email-exim-07.eml → lhost-exim-07.eml} +0 -0
  187. data/set-of-emails/maildir/bsd/{email-exim-08.eml → lhost-exim-08.eml} +0 -0
  188. data/set-of-emails/maildir/bsd/{email-exim-29.eml → lhost-exim-29.eml} +0 -0
  189. data/set-of-emails/maildir/bsd/{email-exim-30.eml → lhost-exim-30.eml} +0 -0
  190. data/set-of-emails/maildir/bsd/{email-exim-31.eml → lhost-exim-31.eml} +0 -0
  191. data/set-of-emails/maildir/bsd/{email-exim-32.eml → lhost-exim-32.eml} +0 -0
  192. data/set-of-emails/maildir/bsd/{email-exim-33.eml → lhost-exim-33.eml} +0 -0
  193. data/set-of-emails/maildir/bsd/{email-exim-34.eml → lhost-exim-34.eml} +0 -0
  194. data/set-of-emails/maildir/bsd/{email-exim-35.eml → lhost-exim-35.eml} +0 -0
  195. data/set-of-emails/maildir/bsd/{email-exim-36.eml → lhost-exim-36.eml} +0 -0
  196. data/set-of-emails/maildir/bsd/{email-exim-37.eml → lhost-exim-37.eml} +0 -0
  197. data/set-of-emails/maildir/bsd/{email-exim-38.eml → lhost-exim-38.eml} +0 -0
  198. data/set-of-emails/maildir/bsd/{email-exim-39.eml → lhost-exim-39.eml} +0 -0
  199. data/set-of-emails/maildir/bsd/{email-exim-40.eml → lhost-exim-40.eml} +0 -0
  200. data/set-of-emails/maildir/bsd/{email-exim-41.eml → lhost-exim-41.eml} +0 -0
  201. data/set-of-emails/maildir/bsd/{email-exim-42.eml → lhost-exim-42.eml} +0 -0
  202. data/set-of-emails/maildir/bsd/{email-exim-43.eml → lhost-exim-43.eml} +0 -0
  203. data/set-of-emails/maildir/bsd/{email-exim-44.eml → lhost-exim-44.eml} +0 -0
  204. data/set-of-emails/maildir/bsd/{email-exim-45.eml → lhost-exim-45.eml} +0 -0
  205. data/set-of-emails/maildir/bsd/{email-exim-46.eml → lhost-exim-46.eml} +0 -0
  206. data/set-of-emails/maildir/bsd/{email-exim-47.eml → lhost-exim-47.eml} +0 -0
  207. data/set-of-emails/maildir/bsd/{email-exim-48.eml → lhost-exim-48.eml} +0 -0
  208. data/set-of-emails/maildir/bsd/{email-exim-49.eml → lhost-exim-49.eml} +0 -0
  209. data/set-of-emails/maildir/bsd/{email-exim-50.eml → lhost-exim-50.eml} +0 -0
  210. data/set-of-emails/maildir/bsd/{email-exim-51.eml → lhost-exim-51.eml} +0 -0
  211. data/set-of-emails/maildir/bsd/{email-exim-52.eml → lhost-exim-52.eml} +0 -0
  212. data/set-of-emails/maildir/bsd/{email-exim-53.eml → lhost-exim-53.eml} +0 -0
  213. data/set-of-emails/maildir/bsd/{email-exim-54.eml → lhost-exim-54.eml} +0 -0
  214. data/set-of-emails/maildir/bsd/{email-exim-55.eml → lhost-exim-55.eml} +0 -0
  215. data/set-of-emails/maildir/bsd/{email-exim-56.eml → lhost-exim-56.eml} +0 -0
  216. data/set-of-emails/maildir/bsd/{email-exim-57.eml → lhost-exim-57.eml} +0 -0
  217. data/set-of-emails/maildir/bsd/{email-exim-58.eml → lhost-exim-58.eml} +0 -0
  218. data/set-of-emails/maildir/bsd/{email-exim-59.eml → lhost-exim-59.eml} +0 -0
  219. data/set-of-emails/maildir/bsd/{email-exim-60.eml → lhost-exim-60.eml} +0 -0
  220. data/set-of-emails/maildir/bsd/lhost-exim-61.eml +40 -0
  221. data/set-of-emails/maildir/bsd/{email-ezweb-01.eml → lhost-ezweb-01.eml} +0 -0
  222. data/set-of-emails/maildir/bsd/{email-ezweb-02.eml → lhost-ezweb-02.eml} +0 -0
  223. data/set-of-emails/maildir/bsd/{email-ezweb-03.eml → lhost-ezweb-03.eml} +0 -0
  224. data/set-of-emails/maildir/bsd/{email-ezweb-04.eml → lhost-ezweb-04.eml} +0 -0
  225. data/set-of-emails/maildir/bsd/{email-ezweb-05.eml → lhost-ezweb-05.eml} +0 -0
  226. data/set-of-emails/maildir/bsd/{email-ezweb-07.eml → lhost-ezweb-07.eml} +0 -0
  227. data/set-of-emails/maildir/bsd/{email-ezweb-08.eml → lhost-ezweb-08.eml} +0 -0
  228. data/set-of-emails/maildir/bsd/{email-facebook-03.eml → lhost-facebook-03.eml} +0 -0
  229. data/set-of-emails/maildir/bsd/{email-facebook-04.eml → lhost-facebook-04.eml} +0 -0
  230. data/set-of-emails/maildir/bsd/{email-fml-02.eml → lhost-fml-02.eml} +0 -0
  231. data/set-of-emails/maildir/bsd/{email-fml-03.eml → lhost-fml-03.eml} +0 -0
  232. data/set-of-emails/maildir/bsd/{email-google-01.eml → lhost-gmail-01.eml} +0 -0
  233. data/set-of-emails/maildir/bsd/{email-google-03.eml → lhost-gmail-03.eml} +0 -0
  234. data/set-of-emails/maildir/bsd/{email-google-04.eml → lhost-gmail-04.eml} +0 -0
  235. data/set-of-emails/maildir/bsd/{email-google-05.eml → lhost-gmail-05.eml} +0 -0
  236. data/set-of-emails/maildir/bsd/{email-google-06.eml → lhost-gmail-06.eml} +0 -0
  237. data/set-of-emails/maildir/bsd/{email-google-07.eml → lhost-gmail-07.eml} +0 -0
  238. data/set-of-emails/maildir/bsd/{email-google-08.eml → lhost-gmail-08.eml} +0 -0
  239. data/set-of-emails/maildir/bsd/{email-google-09.eml → lhost-gmail-09.eml} +0 -0
  240. data/set-of-emails/maildir/bsd/{email-google-10.eml → lhost-gmail-10.eml} +0 -0
  241. data/set-of-emails/maildir/bsd/{email-google-11.eml → lhost-gmail-11.eml} +0 -0
  242. data/set-of-emails/maildir/bsd/{email-google-15.eml → lhost-gmail-15.eml} +0 -0
  243. data/set-of-emails/maildir/bsd/{email-google-16.eml → lhost-gmail-16.eml} +0 -0
  244. data/set-of-emails/maildir/bsd/{email-google-17.eml → lhost-gmail-17.eml} +0 -0
  245. data/set-of-emails/maildir/bsd/{email-google-18.eml → lhost-gmail-18.eml} +0 -0
  246. data/set-of-emails/maildir/bsd/{email-google-19.eml → lhost-gmail-19.eml} +0 -0
  247. data/set-of-emails/maildir/bsd/{email-gmx-01.eml → lhost-gmx-01.eml} +0 -0
  248. data/set-of-emails/maildir/bsd/{email-gmx-02.eml → lhost-gmx-02.eml} +0 -0
  249. data/set-of-emails/maildir/bsd/{email-gmx-03.eml → lhost-gmx-03.eml} +0 -0
  250. data/set-of-emails/maildir/bsd/{email-gmx-04.eml → lhost-gmx-04.eml} +0 -0
  251. data/set-of-emails/maildir/bsd/lhost-googlegroups-01.eml +116 -0
  252. data/set-of-emails/maildir/bsd/lhost-googlegroups-02.eml +114 -0
  253. data/set-of-emails/maildir/bsd/lhost-googlegroups-03.eml +116 -0
  254. data/set-of-emails/maildir/bsd/lhost-googlegroups-04.eml +116 -0
  255. data/set-of-emails/maildir/bsd/lhost-googlegroups-05.eml +116 -0
  256. data/set-of-emails/maildir/bsd/lhost-googlegroups-06.eml +116 -0
  257. data/set-of-emails/maildir/bsd/lhost-googlegroups-07.eml +116 -0
  258. data/set-of-emails/maildir/bsd/lhost-googlegroups-08.eml +115 -0
  259. data/set-of-emails/maildir/bsd/lhost-googlegroups-09.eml +116 -0
  260. data/set-of-emails/maildir/bsd/lhost-googlegroups-10.eml +116 -0
  261. data/set-of-emails/maildir/bsd/lhost-googlegroups-11.eml +116 -0
  262. data/set-of-emails/maildir/bsd/lhost-googlegroups-12.eml +116 -0
  263. data/set-of-emails/maildir/bsd/lhost-googlegroups-13.eml +115 -0
  264. data/set-of-emails/maildir/bsd/lhost-googlegroups-14.eml +127 -0
  265. data/set-of-emails/maildir/bsd/{email-gsuite-01.eml → lhost-gsuite-01.eml} +0 -0
  266. data/set-of-emails/maildir/bsd/{email-gsuite-02.eml → lhost-gsuite-02.eml} +0 -0
  267. data/set-of-emails/maildir/bsd/{email-gsuite-03.eml → lhost-gsuite-03.eml} +0 -0
  268. data/set-of-emails/maildir/bsd/{email-gsuite-04.eml → lhost-gsuite-04.eml} +0 -0
  269. data/set-of-emails/maildir/bsd/{email-gsuite-05.eml → lhost-gsuite-05.eml} +0 -0
  270. data/set-of-emails/maildir/bsd/{email-gsuite-06.eml → lhost-gsuite-06.eml} +0 -0
  271. data/set-of-emails/maildir/bsd/{email-gsuite-07.eml → lhost-gsuite-07.eml} +0 -0
  272. data/set-of-emails/maildir/bsd/{email-gsuite-08.eml → lhost-gsuite-08.eml} +0 -0
  273. data/set-of-emails/maildir/bsd/{email-gsuite-09.eml → lhost-gsuite-09.eml} +0 -0
  274. data/set-of-emails/maildir/bsd/{email-gsuite-10.eml → lhost-gsuite-10.eml} +0 -0
  275. data/set-of-emails/maildir/bsd/{email-gsuite-11.eml → lhost-gsuite-11.eml} +0 -0
  276. data/set-of-emails/maildir/bsd/{email-gsuite-12.eml → lhost-gsuite-12.eml} +0 -0
  277. data/set-of-emails/maildir/bsd/{email-gsuite-13.eml → lhost-gsuite-13.eml} +0 -0
  278. data/set-of-emails/maildir/bsd/lhost-gsuite-14.eml +273 -0
  279. data/set-of-emails/maildir/bsd/{email-imailserver-01.eml → lhost-imailserver-01.eml} +0 -0
  280. data/set-of-emails/maildir/bsd/{email-imailserver-02.eml → lhost-imailserver-02.eml} +0 -0
  281. data/set-of-emails/maildir/bsd/{email-imailserver-03.eml → lhost-imailserver-03.eml} +0 -0
  282. data/set-of-emails/maildir/bsd/{email-imailserver-04.eml → lhost-imailserver-04.eml} +0 -0
  283. data/set-of-emails/maildir/bsd/{email-imailserver-06.eml → lhost-imailserver-06.eml} +0 -0
  284. data/set-of-emails/maildir/bsd/{email-interscanmss-01.eml → lhost-interscanmss-01.eml} +0 -0
  285. data/set-of-emails/maildir/bsd/lhost-interscanmss-02.eml +70 -0
  286. data/set-of-emails/maildir/bsd/lhost-interscanmss-03.eml +73 -0
  287. data/set-of-emails/maildir/bsd/{email-kddi-01.eml → lhost-kddi-01.eml} +0 -0
  288. data/set-of-emails/maildir/bsd/{email-kddi-02.eml → lhost-kddi-02.eml} +0 -0
  289. data/set-of-emails/maildir/bsd/{email-kddi-03.eml → lhost-kddi-03.eml} +0 -0
  290. data/set-of-emails/maildir/bsd/{email-mailfoundry-01.eml → lhost-mailfoundry-01.eml} +0 -0
  291. data/set-of-emails/maildir/bsd/{email-mailfoundry-02.eml → lhost-mailfoundry-02.eml} +0 -0
  292. data/set-of-emails/maildir/bsd/{email-mailmarshalsmtp-02.eml → lhost-mailmarshalsmtp-02.eml} +0 -0
  293. data/set-of-emails/maildir/bsd/{email-mailru-01.eml → lhost-mailru-01.eml} +0 -0
  294. data/set-of-emails/maildir/bsd/{email-mailru-02.eml → lhost-mailru-02.eml} +0 -0
  295. data/set-of-emails/maildir/bsd/{email-mailru-03.eml → lhost-mailru-03.eml} +0 -0
  296. data/set-of-emails/maildir/bsd/{email-mailru-04.eml → lhost-mailru-04.eml} +0 -0
  297. data/set-of-emails/maildir/bsd/{email-mailru-05.eml → lhost-mailru-05.eml} +0 -0
  298. data/set-of-emails/maildir/bsd/{email-mailru-06.eml → lhost-mailru-06.eml} +0 -0
  299. data/set-of-emails/maildir/bsd/{email-mailru-07.eml → lhost-mailru-07.eml} +0 -0
  300. data/set-of-emails/maildir/bsd/{email-mailru-08.eml → lhost-mailru-08.eml} +0 -0
  301. data/set-of-emails/maildir/bsd/{email-mailru-09.eml → lhost-mailru-09.eml} +0 -0
  302. data/set-of-emails/maildir/bsd/{email-mailru-10.eml → lhost-mailru-10.eml} +0 -0
  303. data/set-of-emails/maildir/bsd/{email-mcafee-01.eml → lhost-mcafee-01.eml} +0 -0
  304. data/set-of-emails/maildir/bsd/{email-mcafee-02.eml → lhost-mcafee-02.eml} +0 -0
  305. data/set-of-emails/maildir/bsd/{email-mcafee-03.eml → lhost-mcafee-03.eml} +0 -0
  306. data/set-of-emails/maildir/bsd/{email-mcafee-04.eml → lhost-mcafee-04.eml} +0 -0
  307. data/set-of-emails/maildir/bsd/{email-mcafee-05.eml → lhost-mcafee-05.eml} +0 -0
  308. data/set-of-emails/maildir/bsd/{email-messagelabs-01.eml → lhost-messagelabs-01.eml} +0 -0
  309. data/set-of-emails/maildir/bsd/{email-messagelabs-02.eml → lhost-messagelabs-02.eml} +0 -0
  310. data/set-of-emails/maildir/bsd/{email-messagelabs-03.eml → lhost-messagelabs-03.eml} +0 -0
  311. data/set-of-emails/maildir/bsd/{email-messagingserver-01.eml → lhost-messagingserver-01.eml} +0 -0
  312. data/set-of-emails/maildir/bsd/{email-messagingserver-02.eml → lhost-messagingserver-02.eml} +0 -0
  313. data/set-of-emails/maildir/bsd/{email-messagingserver-03.eml → lhost-messagingserver-03.eml} +0 -0
  314. data/set-of-emails/maildir/bsd/{email-messagingserver-04.eml → lhost-messagingserver-04.eml} +0 -0
  315. data/set-of-emails/maildir/bsd/{email-messagingserver-05.eml → lhost-messagingserver-05.eml} +0 -0
  316. data/set-of-emails/maildir/bsd/{email-messagingserver-06.eml → lhost-messagingserver-06.eml} +0 -0
  317. data/set-of-emails/maildir/bsd/{email-messagingserver-07.eml → lhost-messagingserver-07.eml} +0 -0
  318. data/set-of-emails/maildir/bsd/{email-messagingserver-08.eml → lhost-messagingserver-08.eml} +0 -0
  319. data/set-of-emails/maildir/bsd/{email-messagingserver-09.eml → lhost-messagingserver-09.eml} +0 -0
  320. data/set-of-emails/maildir/bsd/{email-messagingserver-10.eml → lhost-messagingserver-10.eml} +0 -0
  321. data/set-of-emails/maildir/bsd/{email-messagingserver-11.eml → lhost-messagingserver-11.eml} +0 -0
  322. data/set-of-emails/maildir/bsd/{email-messagingserver-12.eml → lhost-messagingserver-12.eml} +0 -0
  323. data/set-of-emails/maildir/bsd/{email-mfilter-01.eml → lhost-mfilter-01.eml} +0 -0
  324. data/set-of-emails/maildir/bsd/{email-mfilter-02.eml → lhost-mfilter-02.eml} +0 -0
  325. data/set-of-emails/maildir/bsd/{email-mfilter-03.eml → lhost-mfilter-03.eml} +0 -0
  326. data/set-of-emails/maildir/bsd/{email-mfilter-04.eml → lhost-mfilter-04.eml} +0 -0
  327. data/set-of-emails/maildir/bsd/{email-mxlogic-01.eml → lhost-mxlogic-01.eml} +0 -0
  328. data/set-of-emails/maildir/bsd/{email-mxlogic-02.eml → lhost-mxlogic-02.eml} +0 -0
  329. data/set-of-emails/maildir/bsd/{email-mxlogic-03.eml → lhost-mxlogic-03.eml} +0 -0
  330. data/set-of-emails/maildir/bsd/{email-notes-01.eml → lhost-notes-01.eml} +0 -0
  331. data/set-of-emails/maildir/bsd/{email-notes-02.eml → lhost-notes-02.eml} +0 -0
  332. data/set-of-emails/maildir/bsd/{email-notes-03.eml → lhost-notes-03.eml} +0 -0
  333. data/set-of-emails/maildir/bsd/{email-office365-01.eml → lhost-office365-01.eml} +0 -0
  334. data/set-of-emails/maildir/bsd/{email-office365-02.eml → lhost-office365-02.eml} +0 -0
  335. data/set-of-emails/maildir/bsd/{email-office365-03.eml → lhost-office365-03.eml} +0 -0
  336. data/set-of-emails/maildir/bsd/{email-office365-04.eml → lhost-office365-04.eml} +0 -0
  337. data/set-of-emails/maildir/bsd/{email-office365-05.eml → lhost-office365-05.eml} +0 -0
  338. data/set-of-emails/maildir/bsd/{email-office365-06.eml → lhost-office365-06.eml} +0 -0
  339. data/set-of-emails/maildir/bsd/{email-office365-07.eml → lhost-office365-07.eml} +0 -0
  340. data/set-of-emails/maildir/bsd/{email-office365-08.eml → lhost-office365-08.eml} +0 -0
  341. data/set-of-emails/maildir/bsd/{email-office365-09.eml → lhost-office365-09.eml} +0 -0
  342. data/set-of-emails/maildir/bsd/{email-office365-10.eml → lhost-office365-10.eml} +0 -0
  343. data/set-of-emails/maildir/bsd/{email-office365-11.eml → lhost-office365-11.eml} +0 -0
  344. data/set-of-emails/maildir/bsd/{email-office365-12.eml → lhost-office365-12.eml} +0 -0
  345. data/set-of-emails/maildir/bsd/lhost-office365-13.eml +259 -0
  346. data/set-of-emails/maildir/bsd/{email-opensmtpd-01.eml → lhost-opensmtpd-01.eml} +0 -0
  347. data/set-of-emails/maildir/bsd/{email-opensmtpd-02.eml → lhost-opensmtpd-02.eml} +0 -0
  348. data/set-of-emails/maildir/bsd/{email-opensmtpd-03.eml → lhost-opensmtpd-03.eml} +0 -0
  349. data/set-of-emails/maildir/bsd/{email-opensmtpd-04.eml → lhost-opensmtpd-04.eml} +0 -0
  350. data/set-of-emails/maildir/bsd/{email-opensmtpd-05.eml → lhost-opensmtpd-05.eml} +0 -0
  351. data/set-of-emails/maildir/bsd/{email-opensmtpd-06.eml → lhost-opensmtpd-06.eml} +0 -0
  352. data/set-of-emails/maildir/bsd/{email-outlook-01.eml → lhost-outlook-01.eml} +0 -0
  353. data/set-of-emails/maildir/bsd/{email-outlook-02.eml → lhost-outlook-02.eml} +0 -0
  354. data/set-of-emails/maildir/bsd/{email-outlook-03.eml → lhost-outlook-03.eml} +0 -0
  355. data/set-of-emails/maildir/bsd/{email-outlook-04.eml → lhost-outlook-04.eml} +0 -0
  356. data/set-of-emails/maildir/bsd/{email-outlook-06.eml → lhost-outlook-06.eml} +0 -0
  357. data/set-of-emails/maildir/bsd/{email-outlook-07.eml → lhost-outlook-07.eml} +0 -0
  358. data/set-of-emails/maildir/bsd/{email-outlook-08.eml → lhost-outlook-08.eml} +0 -0
  359. data/set-of-emails/maildir/bsd/{email-outlook-09.eml → lhost-outlook-09.eml} +0 -0
  360. data/set-of-emails/maildir/bsd/{email-postfix-01.eml → lhost-postfix-01.eml} +0 -0
  361. data/set-of-emails/maildir/bsd/{email-postfix-02.eml → lhost-postfix-02.eml} +0 -0
  362. data/set-of-emails/maildir/bsd/{email-postfix-03.eml → lhost-postfix-03.eml} +0 -0
  363. data/set-of-emails/maildir/bsd/{email-postfix-04.eml → lhost-postfix-04.eml} +0 -0
  364. data/set-of-emails/maildir/bsd/{email-postfix-05.eml → lhost-postfix-05.eml} +0 -0
  365. data/set-of-emails/maildir/bsd/{email-postfix-06.eml → lhost-postfix-06.eml} +0 -0
  366. data/set-of-emails/maildir/bsd/{email-postfix-07.eml → lhost-postfix-07.eml} +0 -0
  367. data/set-of-emails/maildir/bsd/{email-postfix-08.eml → lhost-postfix-08.eml} +0 -0
  368. data/set-of-emails/maildir/bsd/{email-postfix-09.eml → lhost-postfix-09.eml} +0 -0
  369. data/set-of-emails/maildir/bsd/{email-postfix-10.eml → lhost-postfix-10.eml} +0 -0
  370. data/set-of-emails/maildir/bsd/{email-postfix-11.eml → lhost-postfix-11.eml} +0 -0
  371. data/set-of-emails/maildir/bsd/{email-postfix-13.eml → lhost-postfix-13.eml} +0 -0
  372. data/set-of-emails/maildir/bsd/{email-postfix-14.eml → lhost-postfix-14.eml} +0 -0
  373. data/set-of-emails/maildir/bsd/{email-postfix-15.eml → lhost-postfix-15.eml} +0 -0
  374. data/set-of-emails/maildir/bsd/{email-postfix-16.eml → lhost-postfix-16.eml} +0 -0
  375. data/set-of-emails/maildir/bsd/{email-postfix-17.eml → lhost-postfix-17.eml} +0 -0
  376. data/set-of-emails/maildir/bsd/{email-postfix-28.eml → lhost-postfix-28.eml} +0 -0
  377. data/set-of-emails/maildir/bsd/{email-postfix-29.eml → lhost-postfix-29.eml} +0 -0
  378. data/set-of-emails/maildir/bsd/{email-postfix-30.eml → lhost-postfix-30.eml} +0 -0
  379. data/set-of-emails/maildir/bsd/{email-postfix-31.eml → lhost-postfix-31.eml} +0 -0
  380. data/set-of-emails/maildir/bsd/{email-postfix-32.eml → lhost-postfix-32.eml} +0 -0
  381. data/set-of-emails/maildir/bsd/{email-postfix-33.eml → lhost-postfix-33.eml} +0 -0
  382. data/set-of-emails/maildir/bsd/{email-postfix-34.eml → lhost-postfix-34.eml} +0 -0
  383. data/set-of-emails/maildir/bsd/{email-postfix-35.eml → lhost-postfix-35.eml} +0 -0
  384. data/set-of-emails/maildir/bsd/{email-postfix-36.eml → lhost-postfix-36.eml} +0 -0
  385. data/set-of-emails/maildir/bsd/{email-postfix-37.eml → lhost-postfix-37.eml} +0 -0
  386. data/set-of-emails/maildir/bsd/{email-postfix-38.eml → lhost-postfix-38.eml} +1 -1
  387. data/set-of-emails/maildir/bsd/{email-postfix-39.eml → lhost-postfix-39.eml} +0 -0
  388. data/set-of-emails/maildir/bsd/{email-postfix-40.eml → lhost-postfix-40.eml} +0 -0
  389. data/set-of-emails/maildir/bsd/{email-postfix-41.eml → lhost-postfix-41.eml} +0 -0
  390. data/set-of-emails/maildir/bsd/{email-postfix-42.eml → lhost-postfix-42.eml} +0 -0
  391. data/set-of-emails/maildir/bsd/{email-postfix-43.eml → lhost-postfix-43.eml} +0 -0
  392. data/set-of-emails/maildir/bsd/{email-postfix-44.eml → lhost-postfix-44.eml} +0 -0
  393. data/set-of-emails/maildir/bsd/{email-postfix-45.eml → lhost-postfix-45.eml} +0 -0
  394. data/set-of-emails/maildir/bsd/{email-postfix-46.eml → lhost-postfix-46.eml} +0 -0
  395. data/set-of-emails/maildir/bsd/{email-postfix-47.eml → lhost-postfix-47.eml} +0 -0
  396. data/set-of-emails/maildir/bsd/{email-postfix-48.eml → lhost-postfix-48.eml} +0 -0
  397. data/set-of-emails/maildir/bsd/{email-postfix-49.eml → lhost-postfix-49.eml} +0 -0
  398. data/set-of-emails/maildir/bsd/{email-postfix-50.eml → lhost-postfix-50.eml} +0 -0
  399. data/set-of-emails/maildir/bsd/{email-postfix-51.eml → lhost-postfix-51.eml} +0 -0
  400. data/set-of-emails/maildir/bsd/{email-postfix-52.eml → lhost-postfix-52.eml} +0 -0
  401. data/set-of-emails/maildir/bsd/{email-postfix-53.eml → lhost-postfix-53.eml} +0 -0
  402. data/set-of-emails/maildir/bsd/{email-postfix-54.eml → lhost-postfix-54.eml} +0 -0
  403. data/set-of-emails/maildir/bsd/{email-postfix-55.eml → lhost-postfix-55.eml} +0 -0
  404. data/set-of-emails/maildir/bsd/{email-postfix-56.eml → lhost-postfix-56.eml} +0 -0
  405. data/set-of-emails/maildir/bsd/{email-postfix-57.eml → lhost-postfix-57.eml} +0 -0
  406. data/set-of-emails/maildir/bsd/{email-postfix-58.eml → lhost-postfix-58.eml} +0 -0
  407. data/set-of-emails/maildir/bsd/{email-postfix-59.eml → lhost-postfix-59.eml} +0 -0
  408. data/set-of-emails/maildir/bsd/{email-postfix-60.eml → lhost-postfix-60.eml} +0 -0
  409. data/set-of-emails/maildir/bsd/{email-postfix-61.eml → lhost-postfix-61.eml} +0 -0
  410. data/set-of-emails/maildir/bsd/{email-postfix-62.eml → lhost-postfix-62.eml} +0 -0
  411. data/set-of-emails/maildir/bsd/{email-postfix-63.eml → lhost-postfix-63.eml} +0 -0
  412. data/set-of-emails/maildir/bsd/{email-postfix-64.eml → lhost-postfix-64.eml} +0 -0
  413. data/set-of-emails/maildir/bsd/lhost-postfix-65.eml +69 -0
  414. data/set-of-emails/maildir/bsd/lhost-postfix-66.eml +80 -0
  415. data/set-of-emails/maildir/bsd/lhost-postfix-67.eml +80 -0
  416. data/set-of-emails/maildir/bsd/lhost-postfix-68.eml +82 -0
  417. data/set-of-emails/maildir/bsd/lhost-postfix-69.eml +80 -0
  418. data/set-of-emails/maildir/bsd/lhost-postfix-70.eml +87 -0
  419. data/set-of-emails/maildir/bsd/lhost-postfix-71.eml +81 -0
  420. data/set-of-emails/maildir/bsd/lhost-postfix-72.eml +81 -0
  421. data/set-of-emails/maildir/bsd/lhost-postfix-73.eml +79 -0
  422. data/set-of-emails/maildir/bsd/lhost-postfix-74.eml +83 -0
  423. data/set-of-emails/maildir/bsd/{rfc3464-05.eml → lhost-powermta-01.eml} +19 -18
  424. data/set-of-emails/maildir/bsd/lhost-powermta-02.eml +58 -0
  425. data/set-of-emails/maildir/bsd/lhost-powermta-03.eml +71 -0
  426. data/set-of-emails/maildir/bsd/{email-qmail-01.eml → lhost-qmail-01.eml} +0 -0
  427. data/set-of-emails/maildir/bsd/{email-qmail-02.eml → lhost-qmail-02.eml} +0 -0
  428. data/set-of-emails/maildir/bsd/{email-qmail-03.eml → lhost-qmail-03.eml} +0 -0
  429. data/set-of-emails/maildir/bsd/{email-qmail-04.eml → lhost-qmail-04.eml} +0 -0
  430. data/set-of-emails/maildir/bsd/{email-qmail-05.eml → lhost-qmail-05.eml} +0 -0
  431. data/set-of-emails/maildir/bsd/{email-qmail-06.eml → lhost-qmail-06.eml} +0 -0
  432. data/set-of-emails/maildir/bsd/{email-qmail-07.eml → lhost-qmail-07.eml} +0 -0
  433. data/set-of-emails/maildir/bsd/{email-qmail-08.eml → lhost-qmail-08.eml} +0 -0
  434. data/set-of-emails/maildir/bsd/{email-qmail-09.eml → lhost-qmail-09.eml} +0 -0
  435. data/set-of-emails/maildir/bsd/{email-qmail-10.eml → lhost-qmail-10.eml} +0 -0
  436. data/set-of-emails/maildir/bsd/{email-receivingses-01.eml → lhost-receivingses-01.eml} +0 -0
  437. data/set-of-emails/maildir/bsd/{email-receivingses-02.eml → lhost-receivingses-02.eml} +0 -0
  438. data/set-of-emails/maildir/bsd/{email-receivingses-03.eml → lhost-receivingses-03.eml} +0 -0
  439. data/set-of-emails/maildir/bsd/{email-receivingses-04.eml → lhost-receivingses-04.eml} +0 -0
  440. data/set-of-emails/maildir/bsd/{email-receivingses-05.eml → lhost-receivingses-05.eml} +0 -0
  441. data/set-of-emails/maildir/bsd/{email-receivingses-06.eml → lhost-receivingses-06.eml} +0 -0
  442. data/set-of-emails/maildir/bsd/{email-receivingses-07.eml → lhost-receivingses-07.eml} +0 -0
  443. data/set-of-emails/maildir/bsd/{email-sendgrid-01.eml → lhost-sendgrid-01.eml} +0 -0
  444. data/set-of-emails/maildir/bsd/{email-sendgrid-02.eml → lhost-sendgrid-02.eml} +0 -0
  445. data/set-of-emails/maildir/bsd/{email-sendgrid-03.eml → lhost-sendgrid-03.eml} +0 -0
  446. data/set-of-emails/maildir/bsd/{email-sendmail-01.eml → lhost-sendmail-01.eml} +0 -0
  447. data/set-of-emails/maildir/bsd/{email-sendmail-02.eml → lhost-sendmail-02.eml} +0 -0
  448. data/set-of-emails/maildir/bsd/{email-sendmail-03.eml → lhost-sendmail-03.eml} +0 -0
  449. data/set-of-emails/maildir/bsd/{email-sendmail-04.eml → lhost-sendmail-04.eml} +0 -0
  450. data/set-of-emails/maildir/bsd/{email-sendmail-05.eml → lhost-sendmail-05.eml} +0 -0
  451. data/set-of-emails/maildir/bsd/{email-sendmail-06.eml → lhost-sendmail-06.eml} +0 -0
  452. data/set-of-emails/maildir/bsd/{email-sendmail-07.eml → lhost-sendmail-07.eml} +0 -0
  453. data/set-of-emails/maildir/bsd/{email-sendmail-08.eml → lhost-sendmail-08.eml} +1 -1
  454. data/set-of-emails/maildir/bsd/{email-sendmail-09.eml → lhost-sendmail-09.eml} +0 -0
  455. data/set-of-emails/maildir/bsd/{email-sendmail-10.eml → lhost-sendmail-10.eml} +0 -0
  456. data/set-of-emails/maildir/bsd/{email-sendmail-11.eml → lhost-sendmail-11.eml} +1 -1
  457. data/set-of-emails/maildir/bsd/{email-sendmail-12.eml → lhost-sendmail-12.eml} +0 -0
  458. data/set-of-emails/maildir/bsd/{email-sendmail-13.eml → lhost-sendmail-13.eml} +0 -0
  459. data/set-of-emails/maildir/bsd/{email-sendmail-14.eml → lhost-sendmail-14.eml} +0 -0
  460. data/set-of-emails/maildir/bsd/{email-sendmail-15.eml → lhost-sendmail-15.eml} +0 -0
  461. data/set-of-emails/maildir/bsd/{email-sendmail-16.eml → lhost-sendmail-16.eml} +0 -0
  462. data/set-of-emails/maildir/bsd/{email-sendmail-17.eml → lhost-sendmail-17.eml} +0 -0
  463. data/set-of-emails/maildir/bsd/{email-sendmail-18.eml → lhost-sendmail-18.eml} +0 -0
  464. data/set-of-emails/maildir/bsd/{email-sendmail-19.eml → lhost-sendmail-19.eml} +0 -0
  465. data/set-of-emails/maildir/bsd/{email-sendmail-20.eml → lhost-sendmail-20.eml} +0 -0
  466. data/set-of-emails/maildir/bsd/{email-sendmail-21.eml → lhost-sendmail-21.eml} +0 -0
  467. data/set-of-emails/maildir/bsd/{email-sendmail-22.eml → lhost-sendmail-22.eml} +0 -0
  468. data/set-of-emails/maildir/bsd/{email-sendmail-24.eml → lhost-sendmail-24.eml} +0 -0
  469. data/set-of-emails/maildir/bsd/{email-sendmail-25.eml → lhost-sendmail-25.eml} +0 -0
  470. data/set-of-emails/maildir/bsd/{email-sendmail-26.eml → lhost-sendmail-26.eml} +0 -0
  471. data/set-of-emails/maildir/bsd/{email-sendmail-27.eml → lhost-sendmail-27.eml} +0 -0
  472. data/set-of-emails/maildir/bsd/{email-sendmail-28.eml → lhost-sendmail-28.eml} +0 -0
  473. data/set-of-emails/maildir/bsd/{email-sendmail-29.eml → lhost-sendmail-29.eml} +0 -0
  474. data/set-of-emails/maildir/bsd/{email-sendmail-30.eml → lhost-sendmail-30.eml} +0 -0
  475. data/set-of-emails/maildir/bsd/{email-sendmail-31.eml → lhost-sendmail-31.eml} +0 -0
  476. data/set-of-emails/maildir/bsd/{email-sendmail-32.eml → lhost-sendmail-32.eml} +0 -0
  477. data/set-of-emails/maildir/bsd/{email-sendmail-33.eml → lhost-sendmail-33.eml} +0 -0
  478. data/set-of-emails/maildir/bsd/{email-sendmail-34.eml → lhost-sendmail-34.eml} +0 -0
  479. data/set-of-emails/maildir/bsd/{email-sendmail-35.eml → lhost-sendmail-35.eml} +0 -0
  480. data/set-of-emails/maildir/bsd/{email-sendmail-36.eml → lhost-sendmail-36.eml} +0 -0
  481. data/set-of-emails/maildir/bsd/{email-sendmail-37.eml → lhost-sendmail-37.eml} +0 -0
  482. data/set-of-emails/maildir/bsd/{email-sendmail-38.eml → lhost-sendmail-38.eml} +0 -0
  483. data/set-of-emails/maildir/bsd/{email-sendmail-39.eml → lhost-sendmail-39.eml} +0 -0
  484. data/set-of-emails/maildir/bsd/{email-sendmail-40.eml → lhost-sendmail-40.eml} +0 -0
  485. data/set-of-emails/maildir/bsd/{email-sendmail-41.eml → lhost-sendmail-41.eml} +0 -0
  486. data/set-of-emails/maildir/bsd/{email-sendmail-42.eml → lhost-sendmail-42.eml} +0 -0
  487. data/set-of-emails/maildir/bsd/{email-sendmail-43.eml → lhost-sendmail-43.eml} +0 -0
  488. data/set-of-emails/maildir/bsd/{email-sendmail-44.eml → lhost-sendmail-44.eml} +0 -0
  489. data/set-of-emails/maildir/bsd/{email-sendmail-45.eml → lhost-sendmail-45.eml} +0 -0
  490. data/set-of-emails/maildir/bsd/{email-sendmail-46.eml → lhost-sendmail-46.eml} +0 -0
  491. data/set-of-emails/maildir/bsd/{email-sendmail-47.eml → lhost-sendmail-47.eml} +0 -0
  492. data/set-of-emails/maildir/bsd/{email-sendmail-48.eml → lhost-sendmail-48.eml} +0 -0
  493. data/set-of-emails/maildir/bsd/{email-sendmail-49.eml → lhost-sendmail-49.eml} +0 -0
  494. data/set-of-emails/maildir/bsd/{email-sendmail-50.eml → lhost-sendmail-50.eml} +0 -0
  495. data/set-of-emails/maildir/bsd/{email-sendmail-51.eml → lhost-sendmail-51.eml} +0 -0
  496. data/set-of-emails/maildir/bsd/{email-sendmail-52.eml → lhost-sendmail-52.eml} +0 -0
  497. data/set-of-emails/maildir/bsd/{email-sendmail-53.eml → lhost-sendmail-53.eml} +0 -0
  498. data/set-of-emails/maildir/bsd/{email-sendmail-54.eml → lhost-sendmail-54.eml} +0 -0
  499. data/set-of-emails/maildir/bsd/{email-sendmail-55.eml → lhost-sendmail-55.eml} +0 -0
  500. data/set-of-emails/maildir/bsd/{email-sendmail-56.eml → lhost-sendmail-56.eml} +0 -0
  501. data/set-of-emails/maildir/bsd/lhost-sendmail-57.eml +59 -0
  502. data/set-of-emails/maildir/bsd/lhost-sendmail-58.eml +70 -0
  503. data/set-of-emails/maildir/bsd/lhost-sendmail-59.eml +68 -0
  504. data/set-of-emails/maildir/bsd/{email-surfcontrol-01.eml → lhost-surfcontrol-01.eml} +0 -0
  505. data/set-of-emails/maildir/bsd/{email-surfcontrol-02.eml → lhost-surfcontrol-02.eml} +0 -0
  506. data/set-of-emails/maildir/bsd/{email-surfcontrol-03.eml → lhost-surfcontrol-03.eml} +0 -0
  507. data/set-of-emails/maildir/bsd/{email-v5sendmail-01.eml → lhost-v5sendmail-01.eml} +0 -0
  508. data/set-of-emails/maildir/bsd/{email-v5sendmail-02.eml → lhost-v5sendmail-02.eml} +0 -0
  509. data/set-of-emails/maildir/bsd/{email-v5sendmail-03.eml → lhost-v5sendmail-03.eml} +0 -0
  510. data/set-of-emails/maildir/bsd/{email-v5sendmail-04.eml → lhost-v5sendmail-04.eml} +0 -0
  511. data/set-of-emails/maildir/bsd/{email-v5sendmail-05.eml → lhost-v5sendmail-05.eml} +0 -0
  512. data/set-of-emails/maildir/bsd/{email-v5sendmail-06.eml → lhost-v5sendmail-06.eml} +0 -0
  513. data/set-of-emails/maildir/bsd/{email-v5sendmail-07.eml → lhost-v5sendmail-07.eml} +0 -0
  514. data/set-of-emails/maildir/bsd/{email-verizon-01.eml → lhost-verizon-01.eml} +0 -0
  515. data/set-of-emails/maildir/bsd/{email-verizon-02.eml → lhost-verizon-02.eml} +0 -0
  516. data/set-of-emails/maildir/bsd/{email-x1-01.eml → lhost-x1-01.eml} +0 -0
  517. data/set-of-emails/maildir/bsd/{email-x1-02.eml → lhost-x1-02.eml} +0 -0
  518. data/set-of-emails/maildir/bsd/{email-x2-01.eml → lhost-x2-01.eml} +0 -0
  519. data/set-of-emails/maildir/bsd/{email-x2-02.eml → lhost-x2-02.eml} +0 -0
  520. data/set-of-emails/maildir/bsd/{email-x2-03.eml → lhost-x2-03.eml} +0 -0
  521. data/set-of-emails/maildir/bsd/{email-x2-04.eml → lhost-x2-04.eml} +0 -0
  522. data/set-of-emails/maildir/bsd/{email-x2-05.eml → lhost-x2-05.eml} +0 -0
  523. data/set-of-emails/maildir/bsd/{email-x3-01.eml → lhost-x3-01.eml} +0 -0
  524. data/set-of-emails/maildir/bsd/{email-x3-02.eml → lhost-x3-02.eml} +0 -0
  525. data/set-of-emails/maildir/bsd/{email-x3-03.eml → lhost-x3-03.eml} +0 -0
  526. data/set-of-emails/maildir/bsd/{email-x3-05.eml → lhost-x3-05.eml} +0 -0
  527. data/set-of-emails/maildir/bsd/lhost-x3-06.eml +53 -0
  528. data/set-of-emails/maildir/bsd/{email-x4-01.eml → lhost-x4-01.eml} +0 -0
  529. data/set-of-emails/maildir/bsd/{email-x4-08.eml → lhost-x4-08.eml} +0 -0
  530. data/set-of-emails/maildir/bsd/{email-x5-01.eml → lhost-x5-01.eml} +0 -0
  531. data/set-of-emails/maildir/bsd/lhost-x6-01.eml +71 -0
  532. data/set-of-emails/maildir/bsd/lhost-x6-02.eml +68 -0
  533. data/set-of-emails/maildir/bsd/{email-yahoo-01.eml → lhost-yahoo-01.eml} +0 -0
  534. data/set-of-emails/maildir/bsd/{email-yahoo-02.eml → lhost-yahoo-02.eml} +0 -0
  535. data/set-of-emails/maildir/bsd/{email-yahoo-03.eml → lhost-yahoo-03.eml} +0 -0
  536. data/set-of-emails/maildir/bsd/{email-yahoo-04.eml → lhost-yahoo-04.eml} +0 -0
  537. data/set-of-emails/maildir/bsd/{email-yahoo-05.eml → lhost-yahoo-05.eml} +0 -0
  538. data/set-of-emails/maildir/bsd/{email-yahoo-06.eml → lhost-yahoo-06.eml} +0 -0
  539. data/set-of-emails/maildir/bsd/{email-yahoo-07.eml → lhost-yahoo-07.eml} +0 -0
  540. data/set-of-emails/maildir/bsd/{email-yahoo-08.eml → lhost-yahoo-08.eml} +0 -0
  541. data/set-of-emails/maildir/bsd/{email-yahoo-09.eml → lhost-yahoo-09.eml} +0 -0
  542. data/set-of-emails/maildir/bsd/{email-yahoo-10.eml → lhost-yahoo-10.eml} +0 -0
  543. data/set-of-emails/maildir/bsd/{email-yahoo-11.eml → lhost-yahoo-11.eml} +0 -0
  544. data/set-of-emails/maildir/bsd/{email-yahoo-12.eml → lhost-yahoo-12.eml} +0 -0
  545. data/set-of-emails/maildir/bsd/{email-yahoo-13.eml → lhost-yahoo-13.eml} +0 -0
  546. data/set-of-emails/maildir/bsd/{email-yahoo-14.eml → lhost-yahoo-14.eml} +0 -0
  547. data/set-of-emails/maildir/bsd/{email-yandex-01.eml → lhost-yandex-01.eml} +0 -0
  548. data/set-of-emails/maildir/bsd/{email-yandex-02.eml → lhost-yandex-02.eml} +0 -0
  549. data/set-of-emails/maildir/bsd/{email-yandex-03.eml → lhost-yandex-03.eml} +0 -0
  550. data/set-of-emails/maildir/bsd/{email-zoho-01.eml → lhost-zoho-01.eml} +0 -0
  551. data/set-of-emails/maildir/bsd/{email-zoho-02.eml → lhost-zoho-02.eml} +0 -0
  552. data/set-of-emails/maildir/bsd/{email-zoho-03.eml → lhost-zoho-03.eml} +0 -0
  553. data/set-of-emails/maildir/bsd/{email-zoho-04.eml → lhost-zoho-04.eml} +0 -0
  554. data/set-of-emails/maildir/bsd/{email-zoho-05.eml → lhost-zoho-05.eml} +0 -0
  555. data/set-of-emails/maildir/bsd/{rfc3464-41.eml → rfc3834-04.eml} +0 -0
  556. data/set-of-emails/maildir/bsd/rhost-cox-01.eml +192 -0
  557. data/set-of-emails/maildir/bsd/{rhost-exchange-online-01.eml → rhost-exchangeonline-01.eml} +0 -0
  558. data/set-of-emails/maildir/bsd/{rhost-exchange-online-02.eml → rhost-exchangeonline-02.eml} +0 -0
  559. data/set-of-emails/maildir/bsd/{rhost-exchange-online-03.eml → rhost-exchangeonline-03.eml} +0 -0
  560. data/set-of-emails/maildir/bsd/{rhost-google-apps-01.eml → rhost-googleapps-01.eml} +0 -0
  561. data/set-of-emails/maildir/bsd/{rhost-google-apps-02.eml → rhost-googleapps-02.eml} +0 -0
  562. data/set-of-emails/maildir/bsd/rhost-spectrum-01.eml +111 -0
  563. data/set-of-emails/maildir/dos/{email-activehunter-01.eml → lhost-activehunter-01.eml} +0 -0
  564. data/set-of-emails/maildir/dos/{email-amavis-01.eml → lhost-amavis-01.eml} +0 -0
  565. data/set-of-emails/maildir/dos/{email-amazonses-01.eml → lhost-amazonses-01.eml} +0 -0
  566. data/set-of-emails/maildir/dos/{email-amazonworkmail-01.eml → lhost-amazonworkmail-01.eml} +0 -0
  567. data/set-of-emails/maildir/dos/{email-aol-01.eml → lhost-aol-01.eml} +0 -0
  568. data/set-of-emails/maildir/dos/{email-apachejames-01.eml → lhost-apachejames-01.eml} +0 -0
  569. data/set-of-emails/maildir/dos/lhost-barracuda-01.eml +67 -0
  570. data/set-of-emails/maildir/dos/{email-bigfoot-01.eml → lhost-bigfoot-01.eml} +0 -0
  571. data/set-of-emails/maildir/dos/{email-biglobe-01.eml → lhost-biglobe-01.eml} +0 -0
  572. data/set-of-emails/maildir/dos/{email-courier-01.eml → lhost-courier-01.eml} +0 -0
  573. data/set-of-emails/maildir/dos/{email-domino-01.eml → lhost-domino-01.eml} +0 -0
  574. data/set-of-emails/maildir/dos/{email-einsundeins-01.eml → lhost-einsundeins-01.eml} +0 -0
  575. data/set-of-emails/maildir/dos/{email-exchange-01.eml → lhost-exchange-01.eml} +0 -0
  576. data/set-of-emails/maildir/dos/{email-exchange2003-01.eml → lhost-exchange2003-01.eml} +0 -0
  577. data/set-of-emails/maildir/dos/{email-exchange2007-01.eml → lhost-exchange2007-01.eml} +0 -0
  578. data/set-of-emails/maildir/dos/{email-exim-01.eml → lhost-exim-01.eml} +0 -0
  579. data/set-of-emails/maildir/dos/{email-ezweb-01.eml → lhost-ezweb-01.eml} +0 -0
  580. data/set-of-emails/maildir/dos/{email-facebook-01.eml → lhost-facebook-01.eml} +0 -0
  581. data/set-of-emails/maildir/dos/{email-google-01.eml → lhost-gmail-01.eml} +0 -0
  582. data/set-of-emails/maildir/dos/{email-gmx-01.eml → lhost-gmx-01.eml} +0 -0
  583. data/set-of-emails/maildir/dos/lhost-googlegroups-01.eml +116 -0
  584. data/set-of-emails/maildir/dos/{email-gsuite-01.eml → lhost-gsuite-01.eml} +0 -0
  585. data/set-of-emails/maildir/dos/{email-imailserver-01.eml → lhost-imailserver-01.eml} +0 -0
  586. data/set-of-emails/maildir/dos/{email-interscanmss-01.eml → lhost-interscanmss-01.eml} +0 -0
  587. data/set-of-emails/maildir/dos/{email-kddi-01.eml → lhost-kddi-01.eml} +0 -0
  588. data/set-of-emails/maildir/dos/{email-mailfoundry-01.eml → lhost-mailfoundry-01.eml} +0 -0
  589. data/set-of-emails/maildir/dos/{email-mailmarshalsmtp-01.eml → lhost-mailmarshalsmtp-01.eml} +0 -0
  590. data/set-of-emails/maildir/dos/{email-mailru-01.eml → lhost-mailru-01.eml} +0 -0
  591. data/set-of-emails/maildir/dos/{email-mcafee-01.eml → lhost-mcafee-01.eml} +0 -0
  592. data/set-of-emails/maildir/dos/{email-messagelabs-01.eml → lhost-messagelabs-01.eml} +0 -0
  593. data/set-of-emails/maildir/dos/{email-messagingserver-01.eml → lhost-messagingserver-01.eml} +0 -0
  594. data/set-of-emails/maildir/dos/{email-mfilter-01.eml → lhost-mfilter-01.eml} +0 -0
  595. data/set-of-emails/maildir/dos/{email-mxlogic-01.eml → lhost-mxlogic-01.eml} +0 -0
  596. data/set-of-emails/maildir/dos/{email-notes-01.eml → lhost-notes-01.eml} +0 -0
  597. data/set-of-emails/maildir/dos/{email-office365-01.eml → lhost-office365-01.eml} +0 -0
  598. data/set-of-emails/maildir/dos/{email-opensmtpd-01.eml → lhost-opensmtpd-01.eml} +0 -0
  599. data/set-of-emails/maildir/dos/{email-outlook-01.eml → lhost-outlook-01.eml} +0 -0
  600. data/set-of-emails/maildir/dos/{email-postfix-01.eml → lhost-postfix-01.eml} +0 -0
  601. data/set-of-emails/maildir/dos/lhost-powermta-01.eml +64 -0
  602. data/set-of-emails/maildir/dos/{email-qmail-01.eml → lhost-qmail-01.eml} +0 -0
  603. data/set-of-emails/maildir/dos/{email-receivingses-01.eml → lhost-receivingses-01.eml} +0 -0
  604. data/set-of-emails/maildir/dos/{email-sendgrid-01.eml → lhost-sendgrid-01.eml} +0 -0
  605. data/set-of-emails/maildir/dos/{email-sendmail-01.eml → lhost-sendmail-01.eml} +0 -0
  606. data/set-of-emails/maildir/dos/{email-surfcontrol-01.eml → lhost-surfcontrol-01.eml} +0 -0
  607. data/set-of-emails/maildir/dos/{email-v5sendmail-01.eml → lhost-v5sendmail-01.eml} +0 -0
  608. data/set-of-emails/maildir/dos/{email-verizon-01.eml → lhost-verizon-01.eml} +0 -0
  609. data/set-of-emails/maildir/dos/{email-x1-01.eml → lhost-x1-01.eml} +0 -0
  610. data/set-of-emails/maildir/dos/{email-x2-01.eml → lhost-x2-01.eml} +0 -0
  611. data/set-of-emails/maildir/dos/{email-x3-01.eml → lhost-x3-01.eml} +0 -0
  612. data/set-of-emails/maildir/dos/{email-x4-01.eml → lhost-x4-01.eml} +0 -0
  613. data/set-of-emails/maildir/dos/{email-x5-01.eml → lhost-x5-01.eml} +0 -0
  614. data/set-of-emails/maildir/dos/lhost-x6-01.eml +71 -0
  615. data/set-of-emails/maildir/dos/{email-yahoo-01.eml → lhost-yahoo-01.eml} +0 -0
  616. data/set-of-emails/maildir/dos/{email-yandex-01.eml → lhost-yandex-01.eml} +0 -0
  617. data/set-of-emails/maildir/dos/{email-zoho-01.eml → lhost-zoho-01.eml} +0 -0
  618. data/set-of-emails/maildir/dos/{rhost-exchange-online-01.eml → rhost-exchangeonline-01.eml} +0 -0
  619. data/set-of-emails/maildir/dos/{rhost-google-apps-01.eml → rhost-googleapps-01.eml} +0 -0
  620. data/set-of-emails/maildir/dos/rhost-iua-01.eml +70 -0
  621. data/set-of-emails/maildir/mac/{email-activehunter-01.eml → lhost-activehunter-01.eml} +0 -0
  622. data/set-of-emails/maildir/mac/{email-amavis-01.eml → lhost-amavis-01.eml} +0 -0
  623. data/set-of-emails/maildir/mac/{email-amazonses-01.eml → lhost-amazonses-01.eml} +0 -0
  624. data/set-of-emails/maildir/mac/{email-amazonworkmail-01.eml → lhost-amazonworkmail-01.eml} +0 -0
  625. data/set-of-emails/maildir/mac/{email-aol-01.eml → lhost-aol-01.eml} +0 -0
  626. data/set-of-emails/maildir/mac/{email-apachejames-01.eml → lhost-apachejames-01.eml} +0 -0
  627. data/set-of-emails/maildir/mac/lhost-barracuda-01.eml +1 -4
  628. data/set-of-emails/maildir/mac/{email-bigfoot-01.eml → lhost-bigfoot-01.eml} +0 -0
  629. data/set-of-emails/maildir/mac/{email-biglobe-01.eml → lhost-biglobe-01.eml} +0 -0
  630. data/set-of-emails/maildir/mac/{email-courier-01.eml → lhost-courier-01.eml} +0 -0
  631. data/set-of-emails/maildir/mac/{email-domino-01.eml → lhost-domino-01.eml} +0 -0
  632. data/set-of-emails/maildir/mac/{email-einsundeins-01.eml → lhost-einsundeins-01.eml} +0 -0
  633. data/set-of-emails/maildir/mac/{email-exchange-01.eml → lhost-exchange-01.eml} +0 -0
  634. data/set-of-emails/maildir/mac/{email-exchange2003-01.eml → lhost-exchange2003-01.eml} +0 -0
  635. data/set-of-emails/maildir/mac/{email-exchange2007-01.eml → lhost-exchange2007-01.eml} +0 -0
  636. data/set-of-emails/maildir/mac/{email-exim-01.eml → lhost-exim-01.eml} +0 -0
  637. data/set-of-emails/maildir/mac/{email-ezweb-01.eml → lhost-ezweb-01.eml} +0 -0
  638. data/set-of-emails/maildir/mac/{email-facebook-01.eml → lhost-facebook-01.eml} +0 -0
  639. data/set-of-emails/maildir/mac/{email-google-01.eml → lhost-gmail-01.eml} +0 -0
  640. data/set-of-emails/maildir/mac/{email-gmx-01.eml → lhost-gmx-01.eml} +0 -0
  641. data/set-of-emails/maildir/mac/lhost-googlegroups-01.eml +1 -1
  642. data/set-of-emails/maildir/mac/{email-gsuite-01.eml → lhost-gsuite-01.eml} +0 -0
  643. data/set-of-emails/maildir/mac/{email-imailserver-01.eml → lhost-imailserver-01.eml} +0 -0
  644. data/set-of-emails/maildir/mac/{email-interscanmss-01.eml → lhost-interscanmss-01.eml} +0 -0
  645. data/set-of-emails/maildir/mac/{email-kddi-01.eml → lhost-kddi-01.eml} +0 -0
  646. data/set-of-emails/maildir/mac/{email-mailfoundry-01.eml → lhost-mailfoundry-01.eml} +0 -0
  647. data/set-of-emails/maildir/mac/{email-mailmarshalsmtp-01.eml → lhost-mailmarshalsmtp-01.eml} +0 -0
  648. data/set-of-emails/maildir/mac/{email-mailru-01.eml → lhost-mailru-01.eml} +0 -0
  649. data/set-of-emails/maildir/mac/{email-mcafee-01.eml → lhost-mcafee-01.eml} +0 -0
  650. data/set-of-emails/maildir/mac/{email-messagelabs-01.eml → lhost-messagelabs-01.eml} +0 -0
  651. data/set-of-emails/maildir/mac/{email-messagingserver-01.eml → lhost-messagingserver-01.eml} +0 -0
  652. data/set-of-emails/maildir/mac/{email-mfilter-01.eml → lhost-mfilter-01.eml} +0 -0
  653. data/set-of-emails/maildir/mac/{email-mxlogic-01.eml → lhost-mxlogic-01.eml} +0 -0
  654. data/set-of-emails/maildir/mac/{email-notes-01.eml → lhost-notes-01.eml} +0 -0
  655. data/set-of-emails/maildir/mac/{email-office365-01.eml → lhost-office365-01.eml} +0 -0
  656. data/set-of-emails/maildir/mac/{email-opensmtpd-01.eml → lhost-opensmtpd-01.eml} +0 -0
  657. data/set-of-emails/maildir/mac/{email-outlook-01.eml → lhost-outlook-01.eml} +0 -0
  658. data/set-of-emails/maildir/mac/{email-postfix-01.eml → lhost-postfix-01.eml} +0 -0
  659. data/set-of-emails/maildir/mac/lhost-powermta-01.eml +1 -4
  660. data/set-of-emails/maildir/mac/{email-qmail-01.eml → lhost-qmail-01.eml} +0 -0
  661. data/set-of-emails/maildir/mac/{email-receivingses-01.eml → lhost-receivingses-01.eml} +0 -0
  662. data/set-of-emails/maildir/mac/{email-sendgrid-01.eml → lhost-sendgrid-01.eml} +0 -0
  663. data/set-of-emails/maildir/mac/{email-sendmail-01.eml → lhost-sendmail-01.eml} +0 -0
  664. data/set-of-emails/maildir/mac/{email-surfcontrol-01.eml → lhost-surfcontrol-01.eml} +0 -0
  665. data/set-of-emails/maildir/mac/{email-v5sendmail-01.eml → lhost-v5sendmail-01.eml} +0 -0
  666. data/set-of-emails/maildir/mac/{email-verizon-01.eml → lhost-verizon-01.eml} +0 -0
  667. data/set-of-emails/maildir/mac/{email-x1-01.eml → lhost-x1-01.eml} +0 -0
  668. data/set-of-emails/maildir/mac/{email-x2-01.eml → lhost-x2-01.eml} +0 -0
  669. data/set-of-emails/maildir/mac/{email-x3-01.eml → lhost-x3-01.eml} +0 -0
  670. data/set-of-emails/maildir/mac/{email-x4-01.eml → lhost-x4-01.eml} +0 -0
  671. data/set-of-emails/maildir/mac/{email-x5-01.eml → lhost-x5-01.eml} +0 -0
  672. data/set-of-emails/maildir/mac/lhost-x6-01.eml +1 -3
  673. data/set-of-emails/maildir/mac/{email-yahoo-01.eml → lhost-yahoo-01.eml} +0 -0
  674. data/set-of-emails/maildir/mac/{email-yandex-01.eml → lhost-yandex-01.eml} +0 -0
  675. data/set-of-emails/maildir/mac/{email-zoho-01.eml → lhost-zoho-01.eml} +0 -0
  676. data/set-of-emails/maildir/mac/{rhost-exchange-online-01.eml → rhost-exchangeonline-01.eml} +0 -0
  677. data/set-of-emails/maildir/mac/{rhost-google-apps-01.eml → rhost-googleapps-01.eml} +0 -0
  678. data/set-of-emails/maildir/mac/rhost-iua-01.eml +1 -4
  679. data/sisimai-java.gemspec +4 -4
  680. data/sisimai.gemspec +4 -4
  681. metadata +584 -524
  682. data/lib/sisimai/lhost/userdefined.rb +0 -95
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
 
@@ -39,7 +39,7 @@ What is Sisimai
39
39
  ===============================================================================
40
40
  Sisimai is a Ruby library for analyzing RFC5322 bounce emails and generating
41
41
  structured data from parsed results. The Ruby version of Sisimai is ported from
42
- 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/).
43
43
 
44
44
  ![](https://libsisimai.org/static/images/figure/sisimai-overview-1.png)
45
45
 
@@ -52,15 +52,14 @@ Key Features
52
52
  * git clone & make
53
53
  * __High Precision of Analysis__
54
54
  * 2 times higher than bounceHammer
55
- * Support 24 known MTAs and 5 unknown MTAs
56
- * Support 22 major MSPs(Mail Service Providers)
55
+ * Support 68 MTAs/MDAs/ESPs
57
56
  * Support Feedback Loop Message(ARF)
58
57
  * Can detect 29 error reasons
59
58
 
60
59
  Command line demo
61
60
  -------------------------------------------------------------------------------
62
61
  The following screen shows a demonstration of Sisimai at the command line using
63
- Ruby(rb-Sisimai) and Perl(p5-Sisimai) version of Sisimai.
62
+ Ruby(rb-sisimai) and Perl(p5-sisimai) version of Sisimai.
64
63
  ![](https://libsisimai.org/static/images/demo/sisimai-dump-01.gif)
65
64
 
66
65
  Setting Up Sisimai
@@ -95,8 +94,8 @@ Done installing documentation for sisimai after 6 seconds
95
94
 
96
95
  ```shell
97
96
  $ cd /usr/local/src
98
- $ git clone https://github.com/sisimai/rb-Sisimai.git
99
- $ cd ./rb-Sisimai
97
+ $ git clone https://github.com/sisimai/rb-sisimai.git
98
+ $ cd ./rb-sisimai
100
99
  $ sudo make depend install-from-local
101
100
  gem install bundle rake rspec coveralls
102
101
  ...
@@ -112,7 +111,9 @@ Usage
112
111
  Basic usage
113
112
  -------------------------------------------------------------------------------
114
113
  `make()` method provides feature for getting parsed data from bounced email
115
- 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
+
116
117
 
117
118
  ```ruby
118
119
  #! /usr/bin/env ruby
@@ -140,6 +141,7 @@ if v.is_a? Array
140
141
  puts e.deliverystatus # 5.1.1
141
142
  puts e.replycode # 550
142
143
  puts e.reason # userunknown
144
+ puts e.origin # /var/spool/bounce/Maildir/new/1740074341.eml
143
145
 
144
146
  h = e.damn # Convert to HASH
145
147
  j = e.dump('json') # Convert to JSON string
@@ -180,9 +182,8 @@ callbackto = lambda do |v|
180
182
  return r
181
183
  end
182
184
 
183
- list = ['X-Mailer']
184
- data = Sisimai.make('/path/to/mbox', hook: callbackto, field: list)
185
- 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)
186
187
 
187
188
  puts data[0].catch['x-mailer'] # Apple Mail (2.1283)
188
189
  ```
@@ -203,7 +204,7 @@ Output example
203
204
  ![](https://libsisimai.org/static/images/demo/sisimai-dump-02.gif)
204
205
 
205
206
  ```json
206
- [{"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}]
207
208
  ```
208
209
 
209
210
  Sisimai Specification
@@ -224,12 +225,12 @@ and bounceHammer are available at
224
225
  | The speed of parsing email(1000 emails) | 2.22s[2] | 1.35s |
225
226
  | How to install | gem install | cpanm, cpm |
226
227
  | Dependencies (Except core modules) | 1 module | 2 modules |
227
- | LOC:Source lines of code | 10300 lines | 7100 lines |
228
- | The number of tests(spec/,t/,xt/) directory | 230000 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 |
229
230
  | License | BSD 2-Clause | BSD 2-Clause |
230
231
  | Support Contract provided by Developer | Available | Available |
231
232
 
232
- 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)
233
234
  2. Xeon E5-2640 2.5GHz x 2 cores | 5000 bogomips | 1GB RAM | Ruby 2.3.4p301
234
235
 
235
236
  Other specification of Sisimai
@@ -243,7 +244,7 @@ Contributing
243
244
 
244
245
  Bug report
245
246
  -------------------------------------------------------------------------------
246
- 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)
247
248
  to report any bugs.
248
249
 
249
250
  Emails could not be parsed
@@ -262,14 +263,14 @@ Related Sites
262
263
  * __libSISIMAI.ORG__ | [Sisimai | The successor to bounceHammer, Library to parse bounce mails](https://libsisimai.org/)
263
264
  * __Sisimai Blog__ | [blog.libsisimai.org](http://blog.libsisimai.org/)
264
265
  * __Facebook Page__ | [facebook.com/libsisimai](https://www.facebook.com/libsisimai/)
265
- * __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)
266
267
  * __RubyGems.org__ | [rubygems.org/gems/sisimai](https://rubygems.org/gems/sisimai)
267
- * __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)
268
269
  * __Fixtures__ | [set-of-emails - Sample emails for "make test"](https://github.com/sisimai/set-of-emails)
269
270
 
270
271
  See also
271
272
  -------------------------------------------------------------------------------
272
- * [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)
273
274
  * [RFC3463 - Enhanced Mail System Status Codes](https://tools.ietf.org/html/rfc3463)
274
275
  * [RFC3464 - An Extensible Message Format for Delivery Status Notifications](https://tools.ietf.org/html/rfc3464)
275
276
  * [RFC3834 - Recommendations for Automatic Responses to Electronic Mail](https://tools.ietf.org/html/rfc3834)
data/Repository.mk CHANGED
@@ -1,4 +1,4 @@
1
- # rb-Sisimai/Repository.mk
1
+ # rb-sisimai/Repository.mk
2
2
  # ____ _ _ _
3
3
  # | _ \ ___ _ __ ___ ___(_) |_ ___ _ __ _ _ _ __ ___ | | __
4
4
  # | |_) / _ \ '_ \ / _ \/ __| | __/ _ \| '__| | | | | '_ ` _ \| |/ /
data/lib/sisimai.rb CHANGED
@@ -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,29 +18,24 @@ 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 [Array] field Email header name to be captured
23
21
  # @return [Array] Parsed objects
24
22
  # @return [nil] nil if the argument was wrong or an empty array
25
23
  def make(argv0, **argv1)
26
24
  return nil unless argv0
27
-
28
- field = argv1[:field] || []
29
- raise ' ***error: "field" accepts an array only' unless field.is_a? Array
30
-
31
25
  require 'sisimai/data'
32
26
  require 'sisimai/message'
33
27
  require 'sisimai/mail'
34
28
 
35
29
  list = []
36
30
  return nil unless mail = Sisimai::Mail.new(argv0)
37
- while r = mail.read do
38
- # Read and parse each mail file
39
- methodargv = { data: r, hook: argv1[:hook], field: field }
40
- mesg = Sisimai::Message.new(methodargv)
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)
41
35
  next if mesg.void
42
36
 
43
- methodargv = { data: mesg, delivered: argv1[:delivered] }
44
- next unless data = Sisimai::Data.make(methodargv)
37
+ methodargv = { data: mesg, delivered: argv1[:delivered], origin: mail.data.path }
38
+ next unless data = Sisimai::Data.make(**methodargv)
45
39
  list += data unless data.empty?
46
40
  end
47
41
 
@@ -60,7 +54,7 @@ module Sisimai
60
54
  def dump(argv0, **argv1)
61
55
  return nil unless argv0
62
56
 
63
- nyaan = Sisimai.make(argv0, argv1) || []
57
+ nyaan = Sisimai.make(argv0, **argv1) || []
64
58
  if RUBY_PLATFORM.start_with?('java')
65
59
  # java-based ruby environment like JRuby.
66
60
  require 'jrjackson'
@@ -240,7 +240,7 @@ module Sisimai
240
240
 
241
241
  # Remove angle brackets, other brackets, and quotations: []<>{}'`
242
242
  # except a domain part is an IP address like neko@[192.0.2.222]
243
- e[:address] = e[:address].sub(/\A[\[<{('`]/, '').sub(/['`>})]\z/, '')
243
+ e[:address] = e[:address].sub(/\A[\[<{('`]/, '').sub(/[.'`>});]\z/, '')
244
244
  e[:address].chomp!(']') unless e[:address] =~ /[@]\[[0-9A-Za-z:\.]+\]\z/
245
245
  e[:address] = e[:address].sub(/\A["]/, '').chomp('"') unless e[:address] =~ /\A["].+["][@]/
246
246
 
@@ -321,13 +321,16 @@ module Sisimai
321
321
  addrs = Sisimai::Address.find(argv1)
322
322
  return nil unless addrs
323
323
  return nil if addrs.empty?
324
+
324
325
  thing = addrs.shift
326
+ heads = ['<']
327
+ tails = ['>', ',', '.', ';']
325
328
 
326
329
  if cv = thing[:address].match(/\A([^\s]+)[@]([^@]+)\z/) ||
327
330
  thing[:address].match(/\A(["].+?["])[@]([^@]+)\z/)
328
331
  # Get the local part and the domain part from the email address
329
- lpart = cv[1]
330
- dpart = cv[2]
332
+ lpart = cv[1]; heads.each { |e| lpart.gsub!(/\A#{e}/, '') if lpart.start_with?(e) }
333
+ dpart = cv[2]; tails.each { |e| dpart.gsub!(/#{e}\z/, '') if dpart.end_with?(e) }
331
334
  email = Sisimai::Address.expand_verp(thing[:address])
332
335
  aname = nil
333
336
 
data/lib/sisimai/arf.rb CHANGED
@@ -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,16 +64,10 @@ 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
 
@@ -121,12 +113,17 @@ module Sisimai
121
113
  # this specification is set to "1".
122
114
  #
123
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[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
@@ -174,7 +178,7 @@ module Sisimai
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
data/lib/sisimai/data.rb CHANGED
@@ -8,6 +8,7 @@ module Sisimai
8
8
  require 'sisimai/rhost'
9
9
  require 'sisimai/time'
10
10
  require 'sisimai/datetime'
11
+ require 'sisimai/smtp/error'
11
12
 
12
13
  @@rwaccessors = [
13
14
  :catch, # [?] Results generated by hook method
@@ -18,6 +19,7 @@ module Sisimai
18
19
  :listid, # [String] List-Id header of each ML
19
20
  :reason, # [String] Bounce reason
20
21
  :action, # [String] The value of Action: header
22
+ :origin, # [String] Email path as a data source
21
23
  :subject, # [String] UTF-8 Subject text
22
24
  :timestamp, # [Sisimai::Time] Date: header in the original message
23
25
  :addresser, # [Sisimai::Address] From address
@@ -37,10 +39,8 @@ module Sisimai
37
39
  ]
38
40
  attr_accessor(*@@rwaccessors)
39
41
 
40
- EndOfEmail = Sisimai::String.EOM
41
42
  RetryIndex = Sisimai::Reason.retry
42
43
  RFC822Head = Sisimai::RFC5322.HEADERFIELDS(:all)
43
- AddrHeader = { addresser: RFC822Head[:addresser], recipient: RFC822Head[:recipient] }.freeze
44
44
 
45
45
  # Constructor of Sisimai::Data
46
46
  # @param [Hash] argvs Data
@@ -77,6 +77,7 @@ module Sisimai
77
77
  @smtpcommand = argvs['smtpcommand'] || ''
78
78
  @feedbacktype = argvs['feedbacktype'] || ''
79
79
  @action = argvs['action'] || ''
80
+ @origin = argvs['origin'] || ''
80
81
  @replycode = argvs['replycode'] || ''
81
82
  @replycode = Sisimai::SMTP::Reply.find(argvs['diagnosticcode']).to_s if @replycode.empty?
82
83
  @softbounce = argvs['softbounce'] || ''
@@ -94,35 +95,11 @@ module Sisimai
94
95
 
95
96
  messageobj = data
96
97
  rfc822data = messageobj.rfc822
97
- fieldorder = { :recipient => [], :addresser => [] }
98
98
  objectlist = []
99
- givenorder = argvs[:order] || {}
100
99
  delivered1 = argvs[:delivered] || false
101
100
 
102
101
  return nil unless messageobj.ds
103
102
  return nil unless messageobj.rfc822
104
- require 'sisimai/smtp'
105
-
106
- # Decide the order of email headers: user specified or system default.
107
- if givenorder.is_a?(Hash) && !givenorder.empty?
108
- # If the order of headers for searching is specified, use the order
109
- # for detecting an email address.
110
- fieldorder.each_key do |e|
111
- # The order should be "Array Reference".
112
- next unless givenorder[e]
113
- next unless givenorder[e].is_a? Array
114
- next if givenorder[e].empty?
115
- fieldorder[e] += givenorder[e]
116
- end
117
- end
118
-
119
- fieldorder.each_key do |e|
120
- # If the order is empty, use default order.
121
- next unless fieldorder[e].empty?
122
-
123
- # Load default order of each accessor.
124
- fieldorder[e] = AddrHeader[e]
125
- end
126
103
 
127
104
  eachobject = messageobj.ds.dup
128
105
  while e = eachobject.shift do
@@ -151,7 +128,7 @@ module Sisimai
151
128
 
152
129
  # EMAIL_ADDRESS:
153
130
  # Detect email address from message/rfc822 part
154
- fieldorder[:addresser].each do |f|
131
+ RFC822Head[:addresser].each do |f|
155
132
  # Check each header in message/rfc822 part
156
133
  next unless rfc822data[f]
157
134
  next if rfc822data[f].empty?
@@ -257,8 +234,6 @@ module Sisimai
257
234
 
258
235
  # CHECK_DELIVERY_STATUS_VALUE:
259
236
  # Cleanup the value of "Diagnostic-Code:" header
260
- p['diagnosticcode'].sub!(/[ \t.]+#{EndOfEmail}/, '')
261
-
262
237
  unless p['diagnosticcode'].empty?
263
238
  # Count the number of D.S.N. and SMTP Reply Code
264
239
  vs = Sisimai::SMTP::Status.find(p['diagnosticcode'])
@@ -296,6 +271,7 @@ module Sisimai
296
271
 
297
272
  # Check the value of SMTP command
298
273
  p['smtpcommand'] = '' unless %w[EHLO HELO MAIL RCPT DATA QUIT].include?(p['smtpcommand'])
274
+ p['origin'] = argvs[:origin] # Set the path to the original email
299
275
 
300
276
  if p['action'].empty?
301
277
  # Check the value of "action"
@@ -313,10 +289,13 @@ module Sisimai
313
289
 
314
290
  if o.reason.empty? || RetryIndex[o.reason]
315
291
  # Decide the reason of email bounce
316
- r = ''
317
- r = Sisimai::Rhost.get(o) if Sisimai::Rhost.match(o.rhost) # Remote host dependent error
318
- r = Sisimai::Reason.get(o) if r.empty?
319
- r = 'undefined' if r.empty?
292
+ r = ''; r = Sisimai::Rhost.get(o) if Sisimai::Rhost.match(o.rhost)
293
+ if r.empty?
294
+ # Failed to detect a bounce reason by the value of "rhost"
295
+ r = Sisimai::Rhost.get(o, o.destination) if Sisimai::Rhost.match(o.destination)
296
+ r = Sisimai::Reason.get(o) if r.empty?
297
+ r = 'undefined' if r.empty?
298
+ end
320
299
  o.reason = r
321
300
  end
322
301