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
@@ -3,39 +3,41 @@ module Sisimai
3
3
  # Sisimai::Mail::Memory is a class for reading an email string
4
4
  class Memory
5
5
  # Imported from p5-Sisimail/lib/Sisimai/Mail/Memory.pm
6
- # :size [Integer] data size of the email text
7
- # :data [Array] Entire bounce mail message
8
- # :offset [Integer] Index of ":data"
9
- attr_reader :size
10
- attr_accessor :data, :offset
6
+ # :path [String] Fixed string "<MEMORY>"
7
+ # :size [Integer] data size of the email text
8
+ # :payload [Array] Entire bounce mail message
9
+ # :offset [Integer] Index of ":payload"
10
+ attr_reader :path, :size
11
+ attr_accessor :payload, :offset
11
12
 
12
13
  # Constructor of Sisimai::Mail::Memory
13
- # @param [String] argv1 Entire email string
14
- # @return [Sisimai::Mail::Memory,Nil] Object or nil if the argument is
15
- # not specified or does not exist
14
+ # @param [String] argv1 Entire email string
15
+ # @return [Sisimai::Mail::Memory] Object
16
+ # [Nil] is not specified or does not exist
16
17
  def initialize(argv1)
17
18
  raise 'is not a String' unless argv1.is_a? ::String
18
19
  raise 'is empty' if argv1.empty?
19
20
 
20
- @size = argv1.size
21
- @data = []
22
- @offset = 0
21
+ @path = '<MEMORY>'
22
+ @size = argv1.size
23
+ @payload = []
24
+ @offset = 0
23
25
 
24
26
  if argv1.start_with?('From ')
25
27
  # UNIX mbox
26
- @data = argv1.split(/^From /).map! { |e| e = 'From ' + e }
27
- @data.shift
28
+ @payload = argv1.split(/^From /).map! { |e| e = 'From ' + e }
29
+ @payload.shift
28
30
  else
29
- @data = [argv1]
31
+ @payload = [argv1]
30
32
  end
31
33
  end
32
34
 
33
35
  # Memory reader, works as an iterator.
34
36
  # @return [String] Contents of a bounce mail
35
37
  def read
36
- return nil if self.data.empty?
38
+ return nil if self.payload.empty?
37
39
  self.offset += 1
38
- return self.data.shift
40
+ return self.payload.shift
39
41
  end
40
42
  end
41
43
  end
@@ -4,10 +4,9 @@ module Sisimai
4
4
  # STDIN
5
5
  class STDIN
6
6
  # Imported from p5-Sisimail/lib/Sisimai/Mail/STDIN.pm
7
- # :path [String] Path to mbox
8
- # :name [String] File name of the mbox
9
- # :size [Integer] File size of the mbox
10
- # :offset [Integer] Offset position for seeking
7
+ # :path [String] Fixed string "<STDIN>"
8
+ # :size [Integer] Data size which has been read
9
+ # :offset [Integer] The number of emails which have neen read
11
10
  # :handle [IO::File] File handle
12
11
  attr_reader :path, :name, :size
13
12
  attr_accessor :offset, :handle
@@ -19,7 +18,6 @@ module Sisimai
19
18
  raise 'is not an IO object' unless stdin.is_a?(IO)
20
19
 
21
20
  @path = '<STDIN>'
22
- @name = '<STDIN>'
23
21
  @size = nil
24
22
  @offset = 0
25
23
  @handle = stdin
@@ -45,6 +43,8 @@ module Sisimai
45
43
  readhandle.close
46
44
  end
47
45
 
46
+ self.size += readbuffer.size
47
+ self.offset += 1
48
48
  return readbuffer
49
49
  end
50
50
  end
data/lib/sisimai/mda.rb CHANGED
@@ -7,7 +7,7 @@ module Sisimai
7
7
  # dovecot/src/deliver/deliver.c
8
8
  # 11: #define DEFAULT_MAIL_REJECTION_HUMAN_REASON \
9
9
  # 12: "Your message to <%t> was automatically rejected:%n%r"
10
- 'dovecot' => %r/\AYour message to .+ was automatically rejected:\z/,
10
+ 'dovecot' => %r/\AYour message to [^ ]+ was automatically rejected:\z/,
11
11
  'mail.local' => %r/\Amail[.]local: /,
12
12
  'procmail' => %r/\Aprocmail: /,
13
13
  'maildrop' => %r/\Amaildrop: /,
@@ -16,7 +16,7 @@ module Sisimai
16
16
  }.freeze
17
17
  MarkingsOf = {
18
18
  message: %r{\A(?>
19
- Your[ ]message[ ]to[ ].+[ ]was[ ]automatically[ ]rejected:\z
19
+ Your[ ]message[ ]to[ ][^ ]+[ ]was[ ]automatically[ ]rejected:\z
20
20
  |(?:mail[.]local|procmail|maildrop|vdelivermail|vdeliver):[ ]
21
21
  )
22
22
  }x
@@ -75,16 +75,10 @@ module Sisimai
75
75
  }.freeze
76
76
 
77
77
  # Parse message body and return reason and text
78
- # @param [Hash] mhead Message header of a bounce email
79
- # @options mhead [String] from From header
80
- # @options mhead [String] date Date header
81
- # @options mhead [String] subject Subject header
82
- # @options mhead [Array] received Received headers
83
- # @options mhead [String] others Other required headers
84
- # @param [String] mbody Message body of a bounce email
85
- # @return [Hash, Nil] Bounce data list and message/rfc822 part
86
- # or nil if it failed to parse or the
87
- # arguments are missing
78
+ # @param [Hash] mhead Message headers of a bounce email
79
+ # @param [String] mbody Message body of a bounce email
80
+ # @return [Hash] Bounce data list and message/rfc822 part
81
+ # @return [Nil] it failed to parse or the arguments are missing
88
82
  def make(mhead, mbody)
89
83
  return nil unless mhead['from'].downcase.start_with?('mail delivery subsystem','mailer-daemon', 'postmaster')
90
84
 
@@ -12,137 +12,91 @@ module Sisimai
12
12
  # :catch [Any] The results returned by hook method
13
13
  attr_accessor :from, :header, :ds, :rfc822, :catch
14
14
 
15
- require 'sisimai/arf'
16
15
  require 'sisimai/mime'
17
16
  require 'sisimai/order'
17
+ require 'sisimai/lhost'
18
18
  require 'sisimai/string'
19
19
  require 'sisimai/address'
20
20
  require 'sisimai/rfc5322'
21
- require 'sisimai/rfc3834'
22
- require 'sisimai/smtp/error'
23
-
24
21
  DefaultSet = Sisimai::Order.another
25
- ExtHeaders = Sisimai::Order.headers
26
- SubjectTab = Sisimai::Order.by('subject')
27
- RFC822Head = Sisimai::RFC5322.HEADERFIELDS
28
- RFC3834Set = Sisimai::RFC3834.headerlist
29
- HeaderList = %w[from to date subject content-type reply-to message-id
30
- received content-transfer-encoding return-path x-mailer]
31
- IsMultiple = { 'received' => true }
32
- EndOfEmail = Sisimai::String.EOM
33
- BorderLine = '__MIME_ENCODED_BOUNDARY__'
22
+ LhostTable = Sisimai::Lhost.path
34
23
 
35
24
  # Constructor of Sisimai::Message
36
25
  # @param [String] data Email text data
37
26
  # @param [Hash] argvs Module to be loaded
38
27
  # @options argvs [String] :data Entire email message
39
28
  # @options argvs [Array] :load User defined MTA module list
40
- # @options argvs [Array] :field Email header names to be captured
41
29
  # @options argvs [Array] :order The order of MTA modules
42
30
  # @options argvs [Code] :hook Reference to callback method
43
31
  # @return [Sisimai::Message] Structured email data or nil if each
44
32
  # value of the arguments are missing
45
33
  def initialize(data: '', **argvs)
46
34
  return nil if data.empty?
47
-
35
+ param = {}
48
36
  email = data.scrub('?').gsub("\r\n", "\n")
49
- field = argvs[:field] || []
50
-
51
- unless field.is_a? Array
52
- # Unsupported value in "field"
53
- warn ' ***warning: "field" accepts an array reference only'
54
- return nil
55
- end
37
+ thing = { 'from' => '','header' => {}, 'rfc822' => '', ds => [], 'catch' => nil }
56
38
 
57
- methodargv = { 'data' => email, 'hook' => argvs[:hook] || nil, 'field' => field }
39
+ #methodargv = { 'data' => email, 'hook' => argvs[:hook] || nil }
40
+ # 1. Load specified MTA modules
58
41
  [:load, :order].each do |e|
59
42
  # Order of MTA modules
60
43
  next unless argvs[e]
61
44
  next unless argvs[e].is_a? Array
62
45
  next if argvs[e].empty?
63
- methodargv[e.to_s] = argvs[e]
46
+ param[e.to_s] = argvs[e]
64
47
  end
48
+ tobeloaded = Sisimai::Message.load(param)
65
49
 
66
- datasource = Sisimai::Message.make(methodargv)
67
- return nil unless datasource
68
- return nil unless datasource['ds']
69
-
70
- @from = datasource['from']
71
- @header = datasource['header']
72
- @ds = datasource['ds']
73
- @rfc822 = datasource['rfc822']
74
- @catch = datasource['catch'] || nil
75
- end
76
-
77
- # Check whether the object has valid content or not
78
- # @return [True,False] returns true if the object is void
79
- def void
80
- return true unless @ds
81
- return false
82
- end
83
-
84
- # Make data structure from the email message(a body part and headers)
85
- # @param [Hash] argvs Email data
86
- # @options argvs [String] data Entire email message
87
- # @options argvs [Array] load User defined MTA module list
88
- # @options argvs [Array] field Email header names to be captured
89
- # @options argvs [Array] order The order of MTA modules
90
- # @options argvs [Code] hook Reference to callback method
91
- # @return [Hash] Resolved data structure
92
- def self.make(argvs)
93
- email = argvs['data']
94
-
95
- hookmethod = argvs['hook'] || nil
96
- processing = {
97
- 'from' => '', # From_ line
98
- 'header' => {}, # Email header
99
- 'rfc822' => '', # Original message part
100
- 'ds' => [], # Parsed data, Delivery Status
101
- 'catch' => nil, # Data parsed by callback method
102
- }
103
- methodargv = {
104
- 'load' => argvs['load'] || [],
105
- 'order' => argvs['order'] || []
106
- }
107
- tobeloaded = Sisimai::Message.load(methodargv)
108
-
109
- # 1. Split email data to headers and a body part.
50
+ # 2. Split email data to headers and a body part.
110
51
  return nil unless aftersplit = Sisimai::Message.divideup(email)
111
52
 
112
- # 2. Convert email headers from text to hash reference
113
- headerargv = {
114
- 'extheaders' => ExtHeaders,
115
- 'tryonfirst' => [],
116
- 'extrafield' => argvs['field'] || [],
117
- }
118
- processing['from'] = aftersplit['from']
119
- processing['header'] = Sisimai::Message.headers(aftersplit['header'], headerargv)
53
+ # 3. Convert email headers from text to hash reference
54
+ thing['from'] = aftersplit[0]
55
+ thing['header'] = Sisimai::Message.makemap(aftersplit[1])
120
56
 
121
- # 3. Check headers for detecting MTA modules
122
- if headerargv['tryonfirst'].empty?
123
- headerargv['tryonfirst'] += Sisimai::Message.makeorder(processing['header'])
57
+ # 4. Decode and rewrite the "Subject:" header
58
+ unless thing['header']['subject'].empty?
59
+ # Decode MIME-Encoded "Subject:" header
60
+ s = thing['header']['subject']
61
+ q = Sisimai::MIME.is_mimeencoded(s) ? Sisimai::MIME.mimedecode(s.split(/[ ]/)) : s
62
+
63
+ # Remove "Fwd:" string from the Subject: header
64
+ if cv = q.downcase.match(/\A[ \t]*fwd?:[ ]*(.*)\z/)
65
+ # Delete quoted strings, quote symbols(>)
66
+ q = cv[1]
67
+ aftersplit[2] = aftersplit[2].gsub(/^[>]+[ ]/, '').gsub(/^[>]$/, '')
68
+ end
69
+ thing['header']['subject'] = q
124
70
  end
125
71
 
126
- # 4. Rewrite message body for detecting the bounce reason
127
- methodargv = {
128
- 'hook' => hookmethod,
129
- 'mail' => processing,
130
- 'body' => aftersplit['body'],
131
- 'tryonfirst' => headerargv['tryonfirst'],
72
+ # 5. Rewrite message body for detecting the bounce reason
73
+ param = {
74
+ 'hook' => argvs[:hook] || nil,
75
+ 'mail' => thing,
76
+ 'body' => aftersplit[2],
132
77
  'tobeloaded' => tobeloaded,
78
+ 'tryonfirst' => Sisimai::Order.make(thing['header']['subject'])
133
79
  }
134
- return nil unless bouncedata = Sisimai::Message.parse(methodargv)
80
+ return nil unless bouncedata = Sisimai::Message.parse(param)
135
81
  return nil if bouncedata.empty?
136
- %w|ds catch rfc822|.each { |e| processing[e] = bouncedata[e] }
137
82
 
138
- # 5. Rewrite headers of the original message in the body part
83
+ # 6. Rewrite headers of the original message in the body part
84
+ %w|ds catch rfc822|.each { |e| thing[e] = bouncedata[e] }
139
85
  p = bouncedata['rfc822']
140
- p = aftersplit['body'] if p.empty?
141
- processing['rfc822'] = p.is_a?(::String) ? Sisimai::Message.takeapart(p) : p
142
-
143
- return processing
86
+ p = aftersplit[2] if p.empty?
87
+ thing['rfc822'] = p.is_a?(::String) ? Sisimai::Message.makemap(p, true) : p
88
+
89
+ @from = thing['from']
90
+ @header = thing['header']
91
+ @ds = thing['ds']
92
+ @rfc822 = thing['rfc822']
93
+ @catch = thing['catch'] || nil
144
94
  end
145
95
 
96
+ # Check whether the object has valid content or not
97
+ # @return [True,False] returns true if the object is void
98
+ def void; return @ds ? false : true; end
99
+
146
100
  # Load MTA modules which specified at 'order' and 'load' in the argument
147
101
  # @param [Hash] argvs Module information to be loaded
148
102
  # @options argvs [Array] load User defined MTA module list
@@ -171,12 +125,6 @@ module Sisimai
171
125
  warn ' ***warning: Failed to load ' << v
172
126
  next
173
127
  end
174
-
175
- Module.const_get(v).headerlist.each do |w|
176
- # Get header name which required user defined MTA module
177
- ExtHeaders[w] ||= {}
178
- ExtHeaders[w][v] = 1
179
- end
180
128
  tobeloaded << v
181
129
  end
182
130
  end
@@ -190,191 +138,81 @@ module Sisimai
190
138
  return tobeloaded
191
139
  end
192
140
 
193
- # Check headers for detecting MTA module and returns the order of modules
194
- # @param [Hash] heads Email header data
195
- # @return [Array] Order of MTA modules
196
- def self.makeorder(heads)
197
- return [] unless heads
198
- return [] unless heads['subject']
199
- return [] if heads['subject'].empty?
200
- order = []
201
-
202
- # Try to match the value of "Subject" with patterns generated by
203
- # Sisimai::Order->by('subject') method
204
- title = heads['subject'].downcase
205
- SubjectTab.each_key do |e|
206
- # Get MTA list from the subject header
207
- next unless title.include?(e)
208
- order += SubjectTab[e] # Matched and push MTA list
209
- break
210
- end
211
- return order
212
- end
213
-
214
- # Convert email headers from text to hash reference
215
- # @param [String] heads Email header data
216
- # @param [Hash] argvs
217
- # @param options extheaders [Array] External header table
218
- # @return [Hash] Structured email header data
219
- def self.headers(heads, argvs = {})
220
- return nil unless heads
221
-
222
- currheader = ''
223
- allheaders = {}
224
- structured = {}
225
- extheaders = argvs['extheaders'] || []
226
- extrafield = argvs['extrafield'] || []
227
- headslices = heads.split("\n")
228
-
229
- HeaderList.each { |e| structured[e] = nil }
230
- HeaderList.each { |e| allheaders[e] = true }
231
- RFC3834Set.each { |e| allheaders[e] = true }
232
- IsMultiple.each_key { |e| structured[e] = [] }
233
- extheaders.each_key { |e| allheaders[e] = true }
234
- unless extrafield.empty?
235
- extrafield.each { |e| allheaders[e] = true }
236
- end
237
-
238
- while e = headslices.shift do
239
- # Convert email headers to hash
240
- if cv = e.match(/\A[ \t]+(.+)\z/)
241
- # Continued (foled) header value from the previous line
242
- next unless allheaders[currheader]
243
-
244
- # Header line continued from the previous line
245
- if structured[currheader].is_a? Array
246
- # Concatenate a header which have multi-lines such as 'Received'
247
- structured[currheader][-1] << ' ' << cv[1]
248
- else
249
- structured[currheader] ||= ''
250
- structured[currheader] << ' ' << cv[1]
251
- end
252
- else
253
- # split the line into a header name and a header content
254
- (lhs, rhs) = e.split(/:[ ]*/, 2)
255
- currheader = lhs ? lhs.downcase : ''
256
- next unless allheaders[currheader]
257
-
258
- if IsMultiple[currheader]
259
- # Such as 'Received' header, there are multiple headers in a single
260
- # email message.
261
- rhs = rhs.tr("\t", ' ')
262
- structured[currheader] << rhs
263
- else
264
- # Other headers except "Received" and so on
265
- if extheaders[currheader]
266
- # MTA specific header
267
- extheaders[currheader].each do |r|
268
- next if argvs['tryonfirst'].index(r)
269
- argvs['tryonfirst'] << r
270
- end
271
- end
272
- structured[currheader] = rhs
273
- end
274
- end
275
- end
276
- return structured
277
- end
278
-
279
141
  # Divide email data up headers and a body part.
280
142
  # @param [String] email Email data
281
- # @return [Hash] Email data after split
143
+ # @return [Array] Email data after split
282
144
  def self.divideup(email)
283
145
  return nil if email.empty?
284
146
 
285
- block = { 'from' => '', 'header' => '', 'body' => '' }
286
- email.scrub!('?')
147
+ block = ['', '', ''] # 0:From, 1:Header, 2:Body
287
148
  email.gsub!(/\r\n/, "\n") if email.include?("\r\n")
288
149
  email.gsub!(/[ \t]+$/, '') if email =~ /[ \t]+$/
289
150
 
290
- (block['header'], block['body']) = email.split(/\n\n/, 2)
291
- return nil unless block['header']
292
- return nil unless block['body']
151
+ (block[1], block[2]) = email.split(/\n\n/, 2)
152
+ return nil unless block[1]
153
+ return nil unless block[2]
293
154
 
294
- if block['header'].start_with?('From ')
155
+ if block[1].start_with?('From ')
295
156
  # From MAILER-DAEMON Tue Feb 11 00:00:00 2014
296
- block['from'] = block['header'].split(/\n/, 2)[0].delete("\r")
157
+ block[0] = block[1].split(/\n/, 2)[0].delete("\r")
297
158
  else
298
159
  # Set pseudo UNIX From line
299
- block['from'] = 'MAILER-DAEMON Tue Feb 11 00:00:00 2014'
160
+ block[0] = 'MAILER-DAEMON Tue Feb 11 00:00:00 2014'
300
161
  end
301
162
 
302
- block['body'] << "\n"
163
+ block[1] << "\n" unless block[1].end_with?("\n")
164
+ block[2] << "\n"
303
165
  return block
304
166
  end
305
167
 
306
- # Take each email header in the original message apart
307
- # @param [String] heads The original message header
308
- # @return [Hash] Structured message headers
309
- def self.takeapart(heads)
310
- return {} unless heads
311
-
312
- # 1. Scrub to avoid "invalid byte sequence in UTF-8" exception (#82)
313
- # 2. Convert from string to hash reference
314
- heads = heads.scrub('?').gsub(/^[>]+[ ]/m, '').gsub(/=[ ]+=/, "=\n =")
315
-
316
- previousfn = '' # Previous field name
317
- asciiarmor = {} # Header names which has MIME encoded value
318
- headerpart = {} # Required headers in the original message part
319
- headslices = heads.split("\n")
320
-
321
- while e = headslices.shift do
322
- # Header name as a key, The value of header as a value
323
- if e.start_with?(' ', "\t")
324
- # Continued (foled) header value from the previous line
325
- next if previousfn.empty?
326
-
327
- # Concatenate the line if it is the value of required header
328
- if Sisimai::MIME.is_mimeencoded(e)
329
- # The line is MIME-Encoded test
330
- headerpart[previousfn] << if previousfn == 'subject'
331
- # Subject: header
332
- BorderLine + e
333
- else
334
- # Is not Subject header
335
- e
336
- end
337
- asciiarmor[previousfn] = true
338
- else
339
- # ASCII Characters only: Not MIME-Encoded
340
- headerpart[previousfn] << e.lstrip
341
- asciiarmor[previousfn] ||= false
342
- end
343
- else
344
- # Header name as a key, The value of header as a value
345
- (lhs, rhs) = e.split(/:[ ]*/, 2)
346
- next unless lhs
347
- lhs.downcase!
348
- previousfn = ''
349
-
350
- next unless RFC822Head[lhs]
351
- previousfn = lhs
352
- headerpart[previousfn] = rhs unless headerpart[previousfn]
353
- end
168
+ # Convert a text including email headers to a hash reference
169
+ # @param [String] argv0 Email header data
170
+ # @param [Bool] argv1 Decode "Subject:" header
171
+ # @return [Hash] Structured email header data
172
+ # @since v4.25.6
173
+ def self.makemap(argv0 = '', argv1 = nil)
174
+ return {} if argv0.empty?
175
+ argv0.gsub!(/^[>]+[ ]/m, '') # Remove '>' indent symbol of forwarded message
176
+
177
+ # Select and convert all the headers in $argv0. The following regular expression
178
+ # is based on https://gist.github.com/xtetsuji/b080e1f5551d17242f6415aba8a00239
179
+ headermaps = { 'subject' => '' }
180
+ recvheader = []
181
+ argv0.scan(/^([\w-]+):[ ]*(.*?)\n(?![\s\t])/m) { |e| headermaps[e[0].downcase] = e[1] }
182
+ headermaps.delete('received')
183
+ headermaps.each_key { |e| headermaps[e].gsub!(/\n[\s\t]+/, ' ') }
184
+
185
+ if argv0.include?('Received:')
186
+ # Capture values of each Received: header
187
+ recvheader = argv0.scan(/^Received:[ ]*(.*?)\n(?![\s\t])/m).flatten
188
+ recvheader.each { |e| e.gsub!(/\n[\s\t]+/, ' ') }
354
189
  end
355
- return headerpart unless headerpart['subject']
190
+ headermaps['received'] = recvheader
191
+
192
+ return headermaps unless argv1
193
+ return headermaps if headermaps['subject'].empty?
356
194
 
357
195
  # Convert MIME-Encoded subject
358
- if Sisimai::String.is_8bit(headerpart['subject'])
196
+ if Sisimai::String.is_8bit(headermaps['subject'])
359
197
  # The value of ``Subject'' header is including multibyte character,
360
198
  # is not MIME-Encoded text.
361
- headerpart['subject'].scrub!('?')
199
+ headermaps['subject'].scrub!('?')
362
200
  else
363
201
  # MIME-Encoded subject field or ASCII characters only
364
202
  r = []
365
- if asciiarmor['subject']
203
+ if Sisimai::MIME.is_mimeencoded(headermaps['subject'])
366
204
  # split the value of Subject by borderline
367
- headerpart['subject'].split(BorderLine).each do |v|
205
+ headermaps['subject'].split(/ /).each do |v|
368
206
  # Insert value to the array if the string is MIME encoded text
369
207
  r << v if Sisimai::MIME.is_mimeencoded(v)
370
208
  end
371
209
  else
372
210
  # Subject line is not MIME encoded
373
- r << headerpart['subject']
211
+ r << headermaps['subject']
374
212
  end
375
- headerpart['subject'] = Sisimai::MIME.mimedecode(r)
213
+ headermaps['subject'] = Sisimai::MIME.mimedecode(r)
376
214
  end
377
- return headerpart
215
+ return headermaps
378
216
  end
379
217
 
380
218
  # @abstract Parse bounce mail with each MTA module
@@ -396,7 +234,6 @@ module Sisimai
396
234
  bodystring = argvs['body']
397
235
  hookmethod = argvs['hook'] || nil
398
236
  havecaught = nil
399
-
400
237
  return nil unless mailheader
401
238
 
402
239
  # PRECHECK_EACH_HEADER:
@@ -408,7 +245,6 @@ module Sisimai
408
245
  # Decode BASE64 Encoded message body, rewrite.
409
246
  mesgformat = (mailheader['content-type'] || '').downcase
410
247
  ctencoding = (mailheader['content-transfer-encoding'] || '').downcase
411
-
412
248
  if mesgformat.start_with?('text/plain', 'text/html')
413
249
  # Content-Type: text/plain; charset=UTF-8
414
250
  if ctencoding == 'base64'
@@ -432,89 +268,83 @@ module Sisimai
432
268
  bodystring = p unless p.empty?
433
269
  end
434
270
  end
435
-
436
- # EXPAND_FORWARDED_MESSAGE:
437
- # Check whether or not the message is a bounce mail.
438
- # Pre-Process email body if it is a forwarded bounce message.
439
- # Get the original text when the subject begins from 'fwd:' or 'fw:'
440
- if mailheader['subject'].downcase =~ /\A[ \t]*fwd?:/
441
- # Delete quoted strings, quote symbols(>)
442
- bodystring = bodystring.gsub(/^[>]+[ ]/m, '').gsub(/^[>]$/m, '')
443
- elsif Sisimai::MIME.is_mimeencoded(mailheader['subject'])
444
- # Decode MIME-Encoded "Subject:" header
445
- mailheader['subject'] = Sisimai::MIME.mimedecode(mailheader['subject'].split(/[ ]/))
446
- mailheader['subject'].scrub!('?')
447
- end
448
271
  bodystring = bodystring.scrub('?').delete("\r")
449
272
 
273
+ haveloaded = {}
274
+ parseddata = nil
275
+ modulename = ''
450
276
  if hookmethod.is_a? Proc
451
277
  # Call the hook method
452
278
  begin
453
- p = {
454
- 'datasrc' => 'email',
455
- 'headers' => mailheader,
456
- 'message' => bodystring,
457
- 'bounces' => nil
458
- }
279
+ p = { 'headers' => mailheader, 'message' => bodystring }
459
280
  havecaught = hookmethod.call(p)
460
281
  rescue StandardError => ce
461
282
  warn ' ***warning: Something is wrong in hook method :' << ce.to_s
462
283
  end
463
284
  end
464
285
 
465
- bodystring << EndOfEmail
466
- haveloaded = {}
467
- parseddata = nil
468
-
469
286
  catch :PARSER do
470
287
  while true
471
- # 1. Sisimai::ARF
472
- # 2. User-Defined Module
473
- # 3. MTA Module Candidates to be tried on first
474
- # 4. Sisimai::Lhost::*
475
- # 5. Sisimai::RFC3464
288
+ # 1. User-Defined Module
289
+ # 2. MTA Module Candidates to be tried on first
290
+ # 3. Sisimai::Lhost::*
291
+ # 4. Sisimai::RFC3464
292
+ # 5. Sisimai::ARF
476
293
  # 6. Sisimai::RFC3834
477
- if Sisimai::ARF.is_arf(mailheader)
478
- # Feedback Loop message
479
- parseddata = Sisimai::ARF.make(mailheader, bodystring)
480
- throw :PARSER if parseddata
481
- end
482
-
483
294
  while r = argvs['tobeloaded'].shift do
484
295
  # Call user defined MTA modules
485
296
  next if haveloaded[r]
486
297
  parseddata = Module.const_get(r).make(mailheader, bodystring)
487
298
  haveloaded[r] = true
299
+ modulename = r
488
300
  throw :PARSER if parseddata
489
301
  end
490
302
 
491
- argvs['tryonfirst'].concat(DefaultSet)
492
- while r = argvs['tryonfirst'].shift do
303
+ [argvs['tryonfirst'], DefaultSet].flatten.each do |r|
493
304
  # Try MTA module candidates
494
305
  next if haveloaded[r]
495
- require r.gsub('::', '/').downcase
306
+ require LhostTable[r]
496
307
  parseddata = Module.const_get(r).make(mailheader, bodystring)
497
308
  haveloaded[r] = true
309
+ modulename = r
310
+ throw :PARSER if parseddata
311
+ end
312
+
313
+ unless haveloaded['Sisimai::RFC3464']
314
+ # When the all of Sisimai::Lhost::* modules did not return bounce
315
+ # data, call Sisimai::RFC3464;
316
+ require 'sisimai/rfc3464'
317
+ parseddata = Sisimai::RFC3464.make(mailheader, bodystring)
318
+ modulename = 'RFC3464'
498
319
  throw :PARSER if parseddata
499
320
  end
500
321
 
501
- # When the all of Sisimai::Lhost::* modules did not return bounce
502
- # data, call Sisimai::RFC3464;
503
- require 'sisimai/rfc3464'
504
- parseddata = Sisimai::RFC3464.make(mailheader, bodystring)
505
- break if parseddata
322
+ unless haveloaded['Sisimai::ARF']
323
+ # Feedback Loop message
324
+ require 'sisimai/arf'
325
+ parseddata = Sisimai::ARF.make(mailheader, bodystring) if Sisimai::ARF.is_arf(mailheader)
326
+ throw :PARSER if parseddata
327
+ end
506
328
 
507
- # Try to parse the message as auto reply message defined in RFC3834
508
- require 'sisimai/rfc3834'
509
- parseddata = Sisimai::RFC3834.make(mailheader, bodystring)
510
- break if parseddata
329
+ unless haveloaded['Sisimai::RFC3834']
330
+ # Try to parse the message as auto reply message defined in RFC3834
331
+ require 'sisimai/rfc3834'
332
+ parseddata = Sisimai::RFC3834.make(mailheader, bodystring)
333
+ modulename = 'RFC3834'
334
+ throw :PARSER if parseddata
335
+ end
511
336
 
512
- # as of now, we have no sample email for coding this block
513
- break
337
+ break # as of now, we have no sample email for coding this block
514
338
  end
515
339
  end
340
+ return nil unless parseddata
516
341
 
517
- parseddata['catch'] = havecaught if parseddata
342
+ parseddata['catch'] = havecaught
343
+ modulename = modulename.sub(/\A.+::/, '')
344
+ parseddata['ds'].each do |e|
345
+ e['agent'] = modulename unless e['agent']
346
+ e.each_key { |a| e[a] ||= '' } # Replace nil with ""
347
+ end
518
348
  return parseddata
519
349
  end
520
350