sisimai 4.25.4-java → 4.25.10-java

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

Potentially problematic release.


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

Files changed (681) hide show
  1. checksums.yaml +5 -5
  2. data/.travis.yml +2 -2
  3. data/ANALYTICAL-PRECISION +60 -56
  4. data/Benchmarks.mk +5 -3
  5. data/ChangeLog.md +184 -1
  6. data/Developers.mk +2 -2
  7. data/Makefile +1 -1
  8. data/README-JA.md +30 -57
  9. data/README.md +31 -57
  10. data/Repository.mk +1 -1
  11. data/lib/sisimai.rb +17 -72
  12. data/lib/sisimai/address.rb +13 -17
  13. data/lib/sisimai/arf.rb +45 -47
  14. data/lib/sisimai/data.rb +15 -38
  15. data/lib/sisimai/datetime.rb +3 -3
  16. data/lib/sisimai/lhost.rb +25 -47
  17. data/lib/sisimai/lhost/activehunter.rb +37 -76
  18. data/lib/sisimai/lhost/amavis.rb +119 -86
  19. data/lib/sisimai/lhost/amazonses.rb +196 -256
  20. data/lib/sisimai/lhost/amazonworkmail.rb +56 -95
  21. data/lib/sisimai/lhost/aol.rb +64 -104
  22. data/lib/sisimai/lhost/apachejames.rb +66 -104
  23. data/lib/sisimai/lhost/barracuda.rb +94 -0
  24. data/lib/sisimai/lhost/bigfoot.rb +66 -102
  25. data/lib/sisimai/lhost/biglobe.rb +45 -78
  26. data/lib/sisimai/lhost/courier.rb +66 -101
  27. data/lib/sisimai/lhost/domino.rb +54 -92
  28. data/lib/sisimai/lhost/einsundeins.rb +61 -70
  29. data/lib/sisimai/lhost/exchange2003.rb +89 -120
  30. data/lib/sisimai/lhost/exchange2007.rb +79 -90
  31. data/lib/sisimai/lhost/exim.rb +130 -168
  32. data/lib/sisimai/lhost/ezweb.rb +58 -90
  33. data/lib/sisimai/lhost/facebook.rb +54 -91
  34. data/lib/sisimai/lhost/fml.rb +30 -69
  35. data/lib/sisimai/lhost/{google.rb → gmail.rb} +48 -87
  36. data/lib/sisimai/lhost/gmx.rb +64 -102
  37. data/lib/sisimai/lhost/googlegroups.rb +77 -0
  38. data/lib/sisimai/lhost/gsuite.rb +79 -111
  39. data/lib/sisimai/lhost/imailserver.rb +46 -91
  40. data/lib/sisimai/lhost/interscanmss.rb +40 -85
  41. data/lib/sisimai/lhost/kddi.rb +35 -68
  42. data/lib/sisimai/lhost/mailfoundry.rb +41 -78
  43. data/lib/sisimai/lhost/mailmarshalsmtp.rb +71 -109
  44. data/lib/sisimai/lhost/mailru.rb +56 -92
  45. data/lib/sisimai/lhost/mcafee.rb +59 -97
  46. data/lib/sisimai/lhost/messagelabs.rb +59 -97
  47. data/lib/sisimai/lhost/messagingserver.rb +96 -131
  48. data/lib/sisimai/lhost/mfilter.rb +57 -89
  49. data/lib/sisimai/lhost/mxlogic.rb +47 -85
  50. data/lib/sisimai/lhost/notes.rb +59 -100
  51. data/lib/sisimai/lhost/office365.rb +86 -113
  52. data/lib/sisimai/lhost/opensmtpd.rb +35 -71
  53. data/lib/sisimai/lhost/outlook.rb +56 -96
  54. data/lib/sisimai/lhost/postfix.rb +118 -137
  55. data/lib/sisimai/lhost/powermta.rb +120 -0
  56. data/lib/sisimai/lhost/qmail.rb +46 -79
  57. data/lib/sisimai/lhost/receivingses.rb +56 -97
  58. data/lib/sisimai/lhost/sendgrid.rb +75 -223
  59. data/lib/sisimai/lhost/sendmail.rb +108 -148
  60. data/lib/sisimai/lhost/surfcontrol.rb +62 -104
  61. data/lib/sisimai/lhost/v5sendmail.rb +64 -107
  62. data/lib/sisimai/lhost/verizon.rb +80 -141
  63. data/lib/sisimai/lhost/x1.rb +37 -73
  64. data/lib/sisimai/lhost/x2.rb +36 -75
  65. data/lib/sisimai/lhost/x3.rb +54 -86
  66. data/lib/sisimai/lhost/x4.rb +49 -85
  67. data/lib/sisimai/lhost/x5.rb +54 -93
  68. data/lib/sisimai/lhost/x6.rb +74 -0
  69. data/lib/sisimai/lhost/yahoo.rb +55 -92
  70. data/lib/sisimai/lhost/yandex.rb +72 -110
  71. data/lib/sisimai/lhost/zoho.rb +62 -106
  72. data/lib/sisimai/mail.rb +22 -31
  73. data/lib/sisimai/mail/maildir.rb +31 -36
  74. data/lib/sisimai/mail/mbox.rb +8 -12
  75. data/lib/sisimai/mail/memory.rb +18 -20
  76. data/lib/sisimai/mail/stdin.rb +8 -12
  77. data/lib/sisimai/mda.rb +8 -14
  78. data/lib/sisimai/message.rb +142 -415
  79. data/lib/sisimai/mime.rb +28 -33
  80. data/lib/sisimai/order.rb +150 -209
  81. data/lib/sisimai/reason.rb +28 -19
  82. data/lib/sisimai/reason/blocked.rb +24 -23
  83. data/lib/sisimai/reason/hostunknown.rb +2 -0
  84. data/lib/sisimai/reason/mailererror.rb +1 -1
  85. data/lib/sisimai/reason/notaccept.rb +1 -0
  86. data/lib/sisimai/reason/policyviolation.rb +1 -0
  87. data/lib/sisimai/reason/rejected.rb +1 -0
  88. data/lib/sisimai/reason/securityerror.rb +5 -6
  89. data/lib/sisimai/reason/spamdetected.rb +9 -12
  90. data/lib/sisimai/reason/userunknown.rb +31 -25
  91. data/lib/sisimai/rfc1894.rb +1 -1
  92. data/lib/sisimai/rfc3464.rb +38 -56
  93. data/lib/sisimai/rfc3834.rb +11 -23
  94. data/lib/sisimai/rfc5322.rb +20 -32
  95. data/lib/sisimai/rhost.rb +5 -8
  96. data/lib/sisimai/rhost/cox.rb +112 -0
  97. data/lib/sisimai/rhost/exchangeonline.rb +25 -22
  98. data/lib/sisimai/rhost/franceptt.rb +120 -24
  99. data/lib/sisimai/rhost/googleapps.rb +4 -1
  100. data/lib/sisimai/rhost/iua.rb +1 -1
  101. data/lib/sisimai/rhost/spectrum.rb +73 -0
  102. data/lib/sisimai/smtp.rb +0 -13
  103. data/lib/sisimai/smtp/error.rb +7 -7
  104. data/lib/sisimai/smtp/status.rb +1 -1
  105. data/lib/sisimai/string.rb +3 -11
  106. data/lib/sisimai/version.rb +1 -1
  107. data/set-of-emails/README.md +5 -4
  108. data/set-of-emails/maildir/bsd/arf-24.eml +50 -0
  109. data/set-of-emails/maildir/bsd/arf-25.eml +61 -0
  110. data/set-of-emails/maildir/bsd/{email-activehunter-01.eml → lhost-activehunter-01.eml} +0 -0
  111. data/set-of-emails/maildir/bsd/{email-activehunter-02.eml → lhost-activehunter-02.eml} +0 -0
  112. data/set-of-emails/maildir/bsd/{email-amavis-01.eml → lhost-amavis-01.eml} +0 -0
  113. data/set-of-emails/maildir/bsd/{email-amavis-02.eml → lhost-amavis-02.eml} +0 -0
  114. data/set-of-emails/maildir/bsd/lhost-amavis-03.eml +90 -0
  115. data/set-of-emails/maildir/bsd/{email-amazonses-01.eml → lhost-amazonses-01.eml} +0 -0
  116. data/set-of-emails/maildir/bsd/{email-amazonses-02.eml → lhost-amazonses-02.eml} +0 -0
  117. data/set-of-emails/maildir/bsd/{email-amazonses-03.eml → lhost-amazonses-03.eml} +0 -0
  118. data/set-of-emails/maildir/bsd/{email-amazonses-05.eml → lhost-amazonses-05.eml} +0 -0
  119. data/set-of-emails/maildir/bsd/{email-amazonses-06.eml → lhost-amazonses-06.eml} +0 -0
  120. data/set-of-emails/maildir/bsd/{email-amazonses-07.eml → lhost-amazonses-07.eml} +0 -0
  121. data/set-of-emails/maildir/bsd/{email-amazonses-08.eml → lhost-amazonses-08.eml} +0 -0
  122. data/set-of-emails/maildir/bsd/{email-amazonses-09.eml → lhost-amazonses-09.eml} +0 -0
  123. data/set-of-emails/maildir/bsd/{email-amazonses-10.eml → lhost-amazonses-10.eml} +0 -0
  124. data/set-of-emails/maildir/bsd/{email-amazonses-11.eml → lhost-amazonses-11.eml} +0 -0
  125. data/set-of-emails/maildir/bsd/{email-amazonses-12.eml → lhost-amazonses-12.eml} +0 -0
  126. data/set-of-emails/maildir/bsd/{email-amazonses-13.eml → lhost-amazonses-13.eml} +0 -0
  127. data/set-of-emails/maildir/bsd/{email-amazonses-14.eml → lhost-amazonses-14.eml} +0 -0
  128. data/set-of-emails/maildir/bsd/{email-amazonses-15.eml → lhost-amazonses-15.eml} +0 -0
  129. data/set-of-emails/maildir/bsd/{email-amazonses-16.eml → lhost-amazonses-16.eml} +0 -0
  130. data/set-of-emails/maildir/bsd/{email-amazonses-17.eml → lhost-amazonses-17.eml} +0 -0
  131. data/set-of-emails/maildir/bsd/{email-amazonses-18.eml → lhost-amazonses-18.eml} +0 -0
  132. data/set-of-emails/maildir/bsd/{email-amazonses-19.eml → lhost-amazonses-19.eml} +0 -0
  133. data/set-of-emails/maildir/bsd/{email-amazonses-20.eml → lhost-amazonses-20.eml} +0 -0
  134. data/set-of-emails/maildir/bsd/{email-amazonses-21.eml → lhost-amazonses-21.eml} +0 -0
  135. data/set-of-emails/maildir/bsd/{email-amazonworkmail-01.eml → lhost-amazonworkmail-01.eml} +0 -0
  136. data/set-of-emails/maildir/bsd/{email-amazonworkmail-02.eml → lhost-amazonworkmail-02.eml} +0 -0
  137. data/set-of-emails/maildir/bsd/{email-amazonworkmail-03.eml → lhost-amazonworkmail-03.eml} +0 -0
  138. data/set-of-emails/maildir/bsd/{email-amazonworkmail-04.eml → lhost-amazonworkmail-04.eml} +0 -0
  139. data/set-of-emails/maildir/bsd/{email-amazonworkmail-05.eml → lhost-amazonworkmail-05.eml} +0 -0
  140. data/set-of-emails/maildir/bsd/{email-amazonworkmail-07.eml → lhost-amazonworkmail-07.eml} +0 -0
  141. data/set-of-emails/maildir/bsd/{email-amazonworkmail-08.eml → lhost-amazonworkmail-08.eml} +0 -0
  142. data/set-of-emails/maildir/bsd/{email-aol-01.eml → lhost-aol-01.eml} +0 -0
  143. data/set-of-emails/maildir/bsd/{email-aol-02.eml → lhost-aol-02.eml} +0 -0
  144. data/set-of-emails/maildir/bsd/{email-aol-03.eml → lhost-aol-03.eml} +0 -0
  145. data/set-of-emails/maildir/bsd/{email-aol-04.eml → lhost-aol-04.eml} +0 -0
  146. data/set-of-emails/maildir/bsd/{email-aol-05.eml → lhost-aol-05.eml} +0 -0
  147. data/set-of-emails/maildir/bsd/{email-aol-06.eml → lhost-aol-06.eml} +0 -0
  148. data/set-of-emails/maildir/bsd/{email-apachejames-01.eml → lhost-apachejames-01.eml} +0 -0
  149. data/set-of-emails/maildir/bsd/lhost-barracuda-01.eml +67 -0
  150. data/set-of-emails/maildir/bsd/lhost-barracuda-02.eml +71 -0
  151. data/set-of-emails/maildir/bsd/{email-bigfoot-02.eml → lhost-bigfoot-02.eml} +0 -0
  152. data/set-of-emails/maildir/bsd/{email-biglobe-01.eml → lhost-biglobe-01.eml} +0 -0
  153. data/set-of-emails/maildir/bsd/{email-courier-01.eml → lhost-courier-01.eml} +0 -0
  154. data/set-of-emails/maildir/bsd/{email-courier-02.eml → lhost-courier-02.eml} +0 -0
  155. data/set-of-emails/maildir/bsd/{email-courier-03.eml → lhost-courier-03.eml} +0 -0
  156. data/set-of-emails/maildir/bsd/{email-courier-04.eml → lhost-courier-04.eml} +0 -0
  157. data/set-of-emails/maildir/bsd/{email-domino-01.eml → lhost-domino-01.eml} +0 -0
  158. data/set-of-emails/maildir/bsd/{email-domino-02.eml → lhost-domino-02.eml} +0 -0
  159. data/set-of-emails/maildir/bsd/{email-domino-03.eml → lhost-domino-03.eml} +0 -0
  160. data/set-of-emails/maildir/bsd/{email-einsundeins-02.eml → lhost-einsundeins-02.eml} +0 -0
  161. data/set-of-emails/maildir/bsd/lhost-einsundeins-03.eml +66 -0
  162. data/set-of-emails/maildir/bsd/{email-exchange2003-01.eml → lhost-exchange2003-01.eml} +0 -0
  163. data/set-of-emails/maildir/bsd/{email-exchange2003-02.eml → lhost-exchange2003-02.eml} +0 -0
  164. data/set-of-emails/maildir/bsd/{email-exchange2003-03.eml → lhost-exchange2003-03.eml} +0 -0
  165. data/set-of-emails/maildir/bsd/{email-exchange2003-04.eml → lhost-exchange2003-04.eml} +0 -0
  166. data/set-of-emails/maildir/bsd/{email-exchange2003-05.eml → lhost-exchange2003-05.eml} +0 -0
  167. data/set-of-emails/maildir/bsd/{email-exchange2003-07.eml → lhost-exchange2003-07.eml} +0 -0
  168. data/set-of-emails/maildir/bsd/{email-exchange2007-01.eml → lhost-exchange2007-01.eml} +0 -0
  169. data/set-of-emails/maildir/bsd/{email-exchange2007-02.eml → lhost-exchange2007-02.eml} +0 -0
  170. data/set-of-emails/maildir/bsd/{email-exchange2007-03.eml → lhost-exchange2007-03.eml} +0 -0
  171. data/set-of-emails/maildir/bsd/{email-exchange2007-04.eml → lhost-exchange2007-04.eml} +0 -0
  172. data/set-of-emails/maildir/bsd/lhost-exchange2007-05.eml +1469 -0
  173. data/set-of-emails/maildir/bsd/lhost-exchange2007-06.eml +764 -0
  174. data/set-of-emails/maildir/bsd/lhost-exchange2007-07.eml +128 -0
  175. data/set-of-emails/maildir/bsd/{email-exim-01.eml → lhost-exim-01.eml} +0 -0
  176. data/set-of-emails/maildir/bsd/{email-exim-02.eml → lhost-exim-02.eml} +0 -0
  177. data/set-of-emails/maildir/bsd/{email-exim-03.eml → lhost-exim-03.eml} +0 -0
  178. data/set-of-emails/maildir/bsd/{email-exim-04.eml → lhost-exim-04.eml} +0 -0
  179. data/set-of-emails/maildir/bsd/{email-exim-05.eml → lhost-exim-05.eml} +0 -0
  180. data/set-of-emails/maildir/bsd/{email-exim-06.eml → lhost-exim-06.eml} +0 -0
  181. data/set-of-emails/maildir/bsd/{email-exim-07.eml → lhost-exim-07.eml} +0 -0
  182. data/set-of-emails/maildir/bsd/{email-exim-08.eml → lhost-exim-08.eml} +0 -0
  183. data/set-of-emails/maildir/bsd/{email-exim-29.eml → lhost-exim-29.eml} +0 -0
  184. data/set-of-emails/maildir/bsd/{email-exim-30.eml → lhost-exim-30.eml} +0 -0
  185. data/set-of-emails/maildir/bsd/{email-exim-31.eml → lhost-exim-31.eml} +0 -0
  186. data/set-of-emails/maildir/bsd/{email-exim-32.eml → lhost-exim-32.eml} +0 -0
  187. data/set-of-emails/maildir/bsd/{email-exim-33.eml → lhost-exim-33.eml} +0 -0
  188. data/set-of-emails/maildir/bsd/{email-exim-34.eml → lhost-exim-34.eml} +0 -0
  189. data/set-of-emails/maildir/bsd/{email-exim-35.eml → lhost-exim-35.eml} +0 -0
  190. data/set-of-emails/maildir/bsd/{email-exim-36.eml → lhost-exim-36.eml} +0 -0
  191. data/set-of-emails/maildir/bsd/{email-exim-37.eml → lhost-exim-37.eml} +0 -0
  192. data/set-of-emails/maildir/bsd/{email-exim-38.eml → lhost-exim-38.eml} +0 -0
  193. data/set-of-emails/maildir/bsd/{email-exim-39.eml → lhost-exim-39.eml} +0 -0
  194. data/set-of-emails/maildir/bsd/{email-exim-40.eml → lhost-exim-40.eml} +0 -0
  195. data/set-of-emails/maildir/bsd/{email-exim-41.eml → lhost-exim-41.eml} +0 -0
  196. data/set-of-emails/maildir/bsd/{email-exim-42.eml → lhost-exim-42.eml} +0 -0
  197. data/set-of-emails/maildir/bsd/{email-exim-43.eml → lhost-exim-43.eml} +0 -0
  198. data/set-of-emails/maildir/bsd/{email-exim-44.eml → lhost-exim-44.eml} +0 -0
  199. data/set-of-emails/maildir/bsd/{email-exim-45.eml → lhost-exim-45.eml} +0 -0
  200. data/set-of-emails/maildir/bsd/{email-exim-46.eml → lhost-exim-46.eml} +0 -0
  201. data/set-of-emails/maildir/bsd/{email-exim-47.eml → lhost-exim-47.eml} +0 -0
  202. data/set-of-emails/maildir/bsd/{email-exim-48.eml → lhost-exim-48.eml} +0 -0
  203. data/set-of-emails/maildir/bsd/{email-exim-49.eml → lhost-exim-49.eml} +0 -0
  204. data/set-of-emails/maildir/bsd/{email-exim-50.eml → lhost-exim-50.eml} +0 -0
  205. data/set-of-emails/maildir/bsd/{email-exim-51.eml → lhost-exim-51.eml} +0 -0
  206. data/set-of-emails/maildir/bsd/{email-exim-52.eml → lhost-exim-52.eml} +0 -0
  207. data/set-of-emails/maildir/bsd/{email-exim-53.eml → lhost-exim-53.eml} +0 -0
  208. data/set-of-emails/maildir/bsd/{email-exim-54.eml → lhost-exim-54.eml} +0 -0
  209. data/set-of-emails/maildir/bsd/{email-exim-55.eml → lhost-exim-55.eml} +0 -0
  210. data/set-of-emails/maildir/bsd/{email-exim-56.eml → lhost-exim-56.eml} +0 -0
  211. data/set-of-emails/maildir/bsd/{email-exim-57.eml → lhost-exim-57.eml} +0 -0
  212. data/set-of-emails/maildir/bsd/{email-exim-58.eml → lhost-exim-58.eml} +0 -0
  213. data/set-of-emails/maildir/bsd/{email-exim-59.eml → lhost-exim-59.eml} +0 -0
  214. data/set-of-emails/maildir/bsd/{email-exim-60.eml → lhost-exim-60.eml} +0 -0
  215. data/set-of-emails/maildir/bsd/lhost-exim-61.eml +40 -0
  216. data/set-of-emails/maildir/bsd/{email-ezweb-01.eml → lhost-ezweb-01.eml} +0 -0
  217. data/set-of-emails/maildir/bsd/{email-ezweb-02.eml → lhost-ezweb-02.eml} +0 -0
  218. data/set-of-emails/maildir/bsd/{email-ezweb-03.eml → lhost-ezweb-03.eml} +0 -0
  219. data/set-of-emails/maildir/bsd/{email-ezweb-04.eml → lhost-ezweb-04.eml} +0 -0
  220. data/set-of-emails/maildir/bsd/{email-ezweb-05.eml → lhost-ezweb-05.eml} +0 -0
  221. data/set-of-emails/maildir/bsd/{email-ezweb-07.eml → lhost-ezweb-07.eml} +0 -0
  222. data/set-of-emails/maildir/bsd/{email-ezweb-08.eml → lhost-ezweb-08.eml} +0 -0
  223. data/set-of-emails/maildir/bsd/{email-facebook-03.eml → lhost-facebook-03.eml} +0 -0
  224. data/set-of-emails/maildir/bsd/{email-facebook-04.eml → lhost-facebook-04.eml} +0 -0
  225. data/set-of-emails/maildir/bsd/{email-fml-02.eml → lhost-fml-02.eml} +0 -0
  226. data/set-of-emails/maildir/bsd/{email-fml-03.eml → lhost-fml-03.eml} +0 -0
  227. data/set-of-emails/maildir/bsd/{email-google-01.eml → lhost-gmail-01.eml} +0 -0
  228. data/set-of-emails/maildir/bsd/{email-google-03.eml → lhost-gmail-03.eml} +0 -0
  229. data/set-of-emails/maildir/bsd/{email-google-04.eml → lhost-gmail-04.eml} +0 -0
  230. data/set-of-emails/maildir/bsd/{email-google-05.eml → lhost-gmail-05.eml} +0 -0
  231. data/set-of-emails/maildir/bsd/{email-google-06.eml → lhost-gmail-06.eml} +0 -0
  232. data/set-of-emails/maildir/bsd/{email-google-07.eml → lhost-gmail-07.eml} +0 -0
  233. data/set-of-emails/maildir/bsd/{email-google-08.eml → lhost-gmail-08.eml} +0 -0
  234. data/set-of-emails/maildir/bsd/{email-google-09.eml → lhost-gmail-09.eml} +0 -0
  235. data/set-of-emails/maildir/bsd/{email-google-10.eml → lhost-gmail-10.eml} +0 -0
  236. data/set-of-emails/maildir/bsd/{email-google-11.eml → lhost-gmail-11.eml} +0 -0
  237. data/set-of-emails/maildir/bsd/{email-google-15.eml → lhost-gmail-15.eml} +0 -0
  238. data/set-of-emails/maildir/bsd/{email-google-16.eml → lhost-gmail-16.eml} +0 -0
  239. data/set-of-emails/maildir/bsd/{email-google-17.eml → lhost-gmail-17.eml} +0 -0
  240. data/set-of-emails/maildir/bsd/{email-google-18.eml → lhost-gmail-18.eml} +0 -0
  241. data/set-of-emails/maildir/bsd/{email-google-19.eml → lhost-gmail-19.eml} +0 -0
  242. data/set-of-emails/maildir/bsd/{email-gmx-01.eml → lhost-gmx-01.eml} +0 -0
  243. data/set-of-emails/maildir/bsd/{email-gmx-02.eml → lhost-gmx-02.eml} +0 -0
  244. data/set-of-emails/maildir/bsd/{email-gmx-03.eml → lhost-gmx-03.eml} +0 -0
  245. data/set-of-emails/maildir/bsd/{email-gmx-04.eml → lhost-gmx-04.eml} +0 -0
  246. data/set-of-emails/maildir/bsd/lhost-googlegroups-01.eml +116 -0
  247. data/set-of-emails/maildir/bsd/lhost-googlegroups-02.eml +114 -0
  248. data/set-of-emails/maildir/bsd/lhost-googlegroups-03.eml +116 -0
  249. data/set-of-emails/maildir/bsd/lhost-googlegroups-04.eml +116 -0
  250. data/set-of-emails/maildir/bsd/lhost-googlegroups-05.eml +116 -0
  251. data/set-of-emails/maildir/bsd/lhost-googlegroups-06.eml +116 -0
  252. data/set-of-emails/maildir/bsd/lhost-googlegroups-07.eml +116 -0
  253. data/set-of-emails/maildir/bsd/lhost-googlegroups-08.eml +115 -0
  254. data/set-of-emails/maildir/bsd/lhost-googlegroups-09.eml +116 -0
  255. data/set-of-emails/maildir/bsd/lhost-googlegroups-10.eml +116 -0
  256. data/set-of-emails/maildir/bsd/lhost-googlegroups-11.eml +116 -0
  257. data/set-of-emails/maildir/bsd/lhost-googlegroups-12.eml +116 -0
  258. data/set-of-emails/maildir/bsd/lhost-googlegroups-13.eml +115 -0
  259. data/set-of-emails/maildir/bsd/lhost-googlegroups-14.eml +127 -0
  260. data/set-of-emails/maildir/bsd/{email-gsuite-01.eml → lhost-gsuite-01.eml} +0 -0
  261. data/set-of-emails/maildir/bsd/{email-gsuite-02.eml → lhost-gsuite-02.eml} +0 -0
  262. data/set-of-emails/maildir/bsd/{email-gsuite-03.eml → lhost-gsuite-03.eml} +0 -0
  263. data/set-of-emails/maildir/bsd/{email-gsuite-04.eml → lhost-gsuite-04.eml} +0 -0
  264. data/set-of-emails/maildir/bsd/{email-gsuite-05.eml → lhost-gsuite-05.eml} +0 -0
  265. data/set-of-emails/maildir/bsd/{email-gsuite-06.eml → lhost-gsuite-06.eml} +0 -0
  266. data/set-of-emails/maildir/bsd/{email-gsuite-07.eml → lhost-gsuite-07.eml} +0 -0
  267. data/set-of-emails/maildir/bsd/{email-gsuite-08.eml → lhost-gsuite-08.eml} +0 -0
  268. data/set-of-emails/maildir/bsd/{email-gsuite-09.eml → lhost-gsuite-09.eml} +0 -0
  269. data/set-of-emails/maildir/bsd/{email-gsuite-10.eml → lhost-gsuite-10.eml} +0 -0
  270. data/set-of-emails/maildir/bsd/{email-gsuite-11.eml → lhost-gsuite-11.eml} +0 -0
  271. data/set-of-emails/maildir/bsd/{email-gsuite-12.eml → lhost-gsuite-12.eml} +0 -0
  272. data/set-of-emails/maildir/bsd/{email-gsuite-13.eml → lhost-gsuite-13.eml} +0 -0
  273. data/set-of-emails/maildir/bsd/lhost-gsuite-14.eml +273 -0
  274. data/set-of-emails/maildir/bsd/{email-imailserver-01.eml → lhost-imailserver-01.eml} +0 -0
  275. data/set-of-emails/maildir/bsd/{email-imailserver-02.eml → lhost-imailserver-02.eml} +0 -0
  276. data/set-of-emails/maildir/bsd/{email-imailserver-03.eml → lhost-imailserver-03.eml} +0 -0
  277. data/set-of-emails/maildir/bsd/{email-imailserver-04.eml → lhost-imailserver-04.eml} +0 -0
  278. data/set-of-emails/maildir/bsd/{email-imailserver-06.eml → lhost-imailserver-06.eml} +0 -0
  279. data/set-of-emails/maildir/bsd/{email-interscanmss-01.eml → lhost-interscanmss-01.eml} +0 -0
  280. data/set-of-emails/maildir/bsd/lhost-interscanmss-02.eml +70 -0
  281. data/set-of-emails/maildir/bsd/lhost-interscanmss-03.eml +73 -0
  282. data/set-of-emails/maildir/bsd/{email-kddi-01.eml → lhost-kddi-01.eml} +0 -0
  283. data/set-of-emails/maildir/bsd/{email-kddi-02.eml → lhost-kddi-02.eml} +0 -0
  284. data/set-of-emails/maildir/bsd/{email-kddi-03.eml → lhost-kddi-03.eml} +0 -0
  285. data/set-of-emails/maildir/bsd/{email-mailfoundry-01.eml → lhost-mailfoundry-01.eml} +0 -0
  286. data/set-of-emails/maildir/bsd/{email-mailfoundry-02.eml → lhost-mailfoundry-02.eml} +0 -0
  287. data/set-of-emails/maildir/bsd/{email-mailmarshalsmtp-02.eml → lhost-mailmarshalsmtp-02.eml} +0 -0
  288. data/set-of-emails/maildir/bsd/{email-mailru-01.eml → lhost-mailru-01.eml} +0 -0
  289. data/set-of-emails/maildir/bsd/{email-mailru-02.eml → lhost-mailru-02.eml} +0 -0
  290. data/set-of-emails/maildir/bsd/{email-mailru-03.eml → lhost-mailru-03.eml} +0 -0
  291. data/set-of-emails/maildir/bsd/{email-mailru-04.eml → lhost-mailru-04.eml} +0 -0
  292. data/set-of-emails/maildir/bsd/{email-mailru-05.eml → lhost-mailru-05.eml} +0 -0
  293. data/set-of-emails/maildir/bsd/{email-mailru-06.eml → lhost-mailru-06.eml} +0 -0
  294. data/set-of-emails/maildir/bsd/{email-mailru-07.eml → lhost-mailru-07.eml} +0 -0
  295. data/set-of-emails/maildir/bsd/{email-mailru-08.eml → lhost-mailru-08.eml} +0 -0
  296. data/set-of-emails/maildir/bsd/{email-mailru-09.eml → lhost-mailru-09.eml} +0 -0
  297. data/set-of-emails/maildir/bsd/{email-mailru-10.eml → lhost-mailru-10.eml} +0 -0
  298. data/set-of-emails/maildir/bsd/{email-mcafee-01.eml → lhost-mcafee-01.eml} +0 -0
  299. data/set-of-emails/maildir/bsd/{email-mcafee-02.eml → lhost-mcafee-02.eml} +0 -0
  300. data/set-of-emails/maildir/bsd/{email-mcafee-03.eml → lhost-mcafee-03.eml} +0 -0
  301. data/set-of-emails/maildir/bsd/{email-mcafee-04.eml → lhost-mcafee-04.eml} +0 -0
  302. data/set-of-emails/maildir/bsd/{email-mcafee-05.eml → lhost-mcafee-05.eml} +0 -0
  303. data/set-of-emails/maildir/bsd/{email-messagelabs-01.eml → lhost-messagelabs-01.eml} +0 -0
  304. data/set-of-emails/maildir/bsd/{email-messagelabs-02.eml → lhost-messagelabs-02.eml} +0 -0
  305. data/set-of-emails/maildir/bsd/{email-messagelabs-03.eml → lhost-messagelabs-03.eml} +0 -0
  306. data/set-of-emails/maildir/bsd/{email-messagingserver-01.eml → lhost-messagingserver-01.eml} +0 -0
  307. data/set-of-emails/maildir/bsd/{email-messagingserver-02.eml → lhost-messagingserver-02.eml} +0 -0
  308. data/set-of-emails/maildir/bsd/{email-messagingserver-03.eml → lhost-messagingserver-03.eml} +0 -0
  309. data/set-of-emails/maildir/bsd/{email-messagingserver-04.eml → lhost-messagingserver-04.eml} +0 -0
  310. data/set-of-emails/maildir/bsd/{email-messagingserver-05.eml → lhost-messagingserver-05.eml} +0 -0
  311. data/set-of-emails/maildir/bsd/{email-messagingserver-06.eml → lhost-messagingserver-06.eml} +0 -0
  312. data/set-of-emails/maildir/bsd/{email-messagingserver-07.eml → lhost-messagingserver-07.eml} +0 -0
  313. data/set-of-emails/maildir/bsd/{email-messagingserver-08.eml → lhost-messagingserver-08.eml} +0 -0
  314. data/set-of-emails/maildir/bsd/{email-messagingserver-09.eml → lhost-messagingserver-09.eml} +0 -0
  315. data/set-of-emails/maildir/bsd/{email-messagingserver-10.eml → lhost-messagingserver-10.eml} +0 -0
  316. data/set-of-emails/maildir/bsd/{email-messagingserver-11.eml → lhost-messagingserver-11.eml} +0 -0
  317. data/set-of-emails/maildir/bsd/{email-messagingserver-12.eml → lhost-messagingserver-12.eml} +0 -0
  318. data/set-of-emails/maildir/bsd/{email-mfilter-01.eml → lhost-mfilter-01.eml} +0 -0
  319. data/set-of-emails/maildir/bsd/{email-mfilter-02.eml → lhost-mfilter-02.eml} +0 -0
  320. data/set-of-emails/maildir/bsd/{email-mfilter-03.eml → lhost-mfilter-03.eml} +0 -0
  321. data/set-of-emails/maildir/bsd/{email-mfilter-04.eml → lhost-mfilter-04.eml} +0 -0
  322. data/set-of-emails/maildir/bsd/{email-mxlogic-01.eml → lhost-mxlogic-01.eml} +0 -0
  323. data/set-of-emails/maildir/bsd/{email-mxlogic-02.eml → lhost-mxlogic-02.eml} +0 -0
  324. data/set-of-emails/maildir/bsd/{email-mxlogic-03.eml → lhost-mxlogic-03.eml} +0 -0
  325. data/set-of-emails/maildir/bsd/{email-notes-01.eml → lhost-notes-01.eml} +0 -0
  326. data/set-of-emails/maildir/bsd/{email-notes-02.eml → lhost-notes-02.eml} +0 -0
  327. data/set-of-emails/maildir/bsd/{email-notes-03.eml → lhost-notes-03.eml} +0 -0
  328. data/set-of-emails/maildir/bsd/{email-office365-01.eml → lhost-office365-01.eml} +0 -0
  329. data/set-of-emails/maildir/bsd/{email-office365-02.eml → lhost-office365-02.eml} +0 -0
  330. data/set-of-emails/maildir/bsd/{email-office365-03.eml → lhost-office365-03.eml} +0 -0
  331. data/set-of-emails/maildir/bsd/{email-office365-04.eml → lhost-office365-04.eml} +0 -0
  332. data/set-of-emails/maildir/bsd/{email-office365-05.eml → lhost-office365-05.eml} +0 -0
  333. data/set-of-emails/maildir/bsd/{email-office365-06.eml → lhost-office365-06.eml} +0 -0
  334. data/set-of-emails/maildir/bsd/{email-office365-07.eml → lhost-office365-07.eml} +0 -0
  335. data/set-of-emails/maildir/bsd/{email-office365-08.eml → lhost-office365-08.eml} +0 -0
  336. data/set-of-emails/maildir/bsd/{email-office365-09.eml → lhost-office365-09.eml} +0 -0
  337. data/set-of-emails/maildir/bsd/{email-office365-10.eml → lhost-office365-10.eml} +0 -0
  338. data/set-of-emails/maildir/bsd/{email-office365-11.eml → lhost-office365-11.eml} +0 -0
  339. data/set-of-emails/maildir/bsd/{email-office365-12.eml → lhost-office365-12.eml} +0 -0
  340. data/set-of-emails/maildir/bsd/lhost-office365-13.eml +259 -0
  341. data/set-of-emails/maildir/bsd/{email-opensmtpd-01.eml → lhost-opensmtpd-01.eml} +0 -0
  342. data/set-of-emails/maildir/bsd/{email-opensmtpd-02.eml → lhost-opensmtpd-02.eml} +0 -0
  343. data/set-of-emails/maildir/bsd/{email-opensmtpd-03.eml → lhost-opensmtpd-03.eml} +0 -0
  344. data/set-of-emails/maildir/bsd/{email-opensmtpd-04.eml → lhost-opensmtpd-04.eml} +0 -0
  345. data/set-of-emails/maildir/bsd/{email-opensmtpd-05.eml → lhost-opensmtpd-05.eml} +0 -0
  346. data/set-of-emails/maildir/bsd/{email-opensmtpd-06.eml → lhost-opensmtpd-06.eml} +0 -0
  347. data/set-of-emails/maildir/bsd/{email-outlook-01.eml → lhost-outlook-01.eml} +0 -0
  348. data/set-of-emails/maildir/bsd/{email-outlook-02.eml → lhost-outlook-02.eml} +0 -0
  349. data/set-of-emails/maildir/bsd/{email-outlook-03.eml → lhost-outlook-03.eml} +0 -0
  350. data/set-of-emails/maildir/bsd/{email-outlook-04.eml → lhost-outlook-04.eml} +0 -0
  351. data/set-of-emails/maildir/bsd/{email-outlook-06.eml → lhost-outlook-06.eml} +0 -0
  352. data/set-of-emails/maildir/bsd/{email-outlook-07.eml → lhost-outlook-07.eml} +0 -0
  353. data/set-of-emails/maildir/bsd/{email-outlook-08.eml → lhost-outlook-08.eml} +0 -0
  354. data/set-of-emails/maildir/bsd/{email-outlook-09.eml → lhost-outlook-09.eml} +0 -0
  355. data/set-of-emails/maildir/bsd/{email-postfix-01.eml → lhost-postfix-01.eml} +0 -0
  356. data/set-of-emails/maildir/bsd/{email-postfix-02.eml → lhost-postfix-02.eml} +0 -0
  357. data/set-of-emails/maildir/bsd/{email-postfix-03.eml → lhost-postfix-03.eml} +0 -0
  358. data/set-of-emails/maildir/bsd/{email-postfix-04.eml → lhost-postfix-04.eml} +0 -0
  359. data/set-of-emails/maildir/bsd/{email-postfix-05.eml → lhost-postfix-05.eml} +0 -0
  360. data/set-of-emails/maildir/bsd/{email-postfix-06.eml → lhost-postfix-06.eml} +0 -0
  361. data/set-of-emails/maildir/bsd/{email-postfix-07.eml → lhost-postfix-07.eml} +0 -0
  362. data/set-of-emails/maildir/bsd/{email-postfix-08.eml → lhost-postfix-08.eml} +0 -0
  363. data/set-of-emails/maildir/bsd/{email-postfix-09.eml → lhost-postfix-09.eml} +0 -0
  364. data/set-of-emails/maildir/bsd/{email-postfix-10.eml → lhost-postfix-10.eml} +0 -0
  365. data/set-of-emails/maildir/bsd/{email-postfix-11.eml → lhost-postfix-11.eml} +0 -0
  366. data/set-of-emails/maildir/bsd/{email-postfix-13.eml → lhost-postfix-13.eml} +0 -0
  367. data/set-of-emails/maildir/bsd/{email-postfix-14.eml → lhost-postfix-14.eml} +0 -0
  368. data/set-of-emails/maildir/bsd/{email-postfix-15.eml → lhost-postfix-15.eml} +0 -0
  369. data/set-of-emails/maildir/bsd/{email-postfix-16.eml → lhost-postfix-16.eml} +0 -0
  370. data/set-of-emails/maildir/bsd/{email-postfix-17.eml → lhost-postfix-17.eml} +0 -0
  371. data/set-of-emails/maildir/bsd/{email-postfix-28.eml → lhost-postfix-28.eml} +0 -0
  372. data/set-of-emails/maildir/bsd/{email-postfix-29.eml → lhost-postfix-29.eml} +0 -0
  373. data/set-of-emails/maildir/bsd/{email-postfix-30.eml → lhost-postfix-30.eml} +0 -0
  374. data/set-of-emails/maildir/bsd/{email-postfix-31.eml → lhost-postfix-31.eml} +0 -0
  375. data/set-of-emails/maildir/bsd/{email-postfix-32.eml → lhost-postfix-32.eml} +0 -0
  376. data/set-of-emails/maildir/bsd/{email-postfix-33.eml → lhost-postfix-33.eml} +0 -0
  377. data/set-of-emails/maildir/bsd/{email-postfix-34.eml → lhost-postfix-34.eml} +0 -0
  378. data/set-of-emails/maildir/bsd/{email-postfix-35.eml → lhost-postfix-35.eml} +0 -0
  379. data/set-of-emails/maildir/bsd/{email-postfix-36.eml → lhost-postfix-36.eml} +0 -0
  380. data/set-of-emails/maildir/bsd/{email-postfix-37.eml → lhost-postfix-37.eml} +0 -0
  381. data/set-of-emails/maildir/bsd/{email-postfix-38.eml → lhost-postfix-38.eml} +1 -1
  382. data/set-of-emails/maildir/bsd/{email-postfix-39.eml → lhost-postfix-39.eml} +0 -0
  383. data/set-of-emails/maildir/bsd/{email-postfix-40.eml → lhost-postfix-40.eml} +0 -0
  384. data/set-of-emails/maildir/bsd/{email-postfix-41.eml → lhost-postfix-41.eml} +0 -0
  385. data/set-of-emails/maildir/bsd/{email-postfix-42.eml → lhost-postfix-42.eml} +0 -0
  386. data/set-of-emails/maildir/bsd/{email-postfix-43.eml → lhost-postfix-43.eml} +0 -0
  387. data/set-of-emails/maildir/bsd/{email-postfix-44.eml → lhost-postfix-44.eml} +0 -0
  388. data/set-of-emails/maildir/bsd/{email-postfix-45.eml → lhost-postfix-45.eml} +0 -0
  389. data/set-of-emails/maildir/bsd/{email-postfix-46.eml → lhost-postfix-46.eml} +0 -0
  390. data/set-of-emails/maildir/bsd/{email-postfix-47.eml → lhost-postfix-47.eml} +0 -0
  391. data/set-of-emails/maildir/bsd/{email-postfix-48.eml → lhost-postfix-48.eml} +0 -0
  392. data/set-of-emails/maildir/bsd/{email-postfix-49.eml → lhost-postfix-49.eml} +0 -0
  393. data/set-of-emails/maildir/bsd/{email-postfix-50.eml → lhost-postfix-50.eml} +0 -0
  394. data/set-of-emails/maildir/bsd/{email-postfix-51.eml → lhost-postfix-51.eml} +0 -0
  395. data/set-of-emails/maildir/bsd/{email-postfix-52.eml → lhost-postfix-52.eml} +0 -0
  396. data/set-of-emails/maildir/bsd/{email-postfix-53.eml → lhost-postfix-53.eml} +0 -0
  397. data/set-of-emails/maildir/bsd/{email-postfix-54.eml → lhost-postfix-54.eml} +0 -0
  398. data/set-of-emails/maildir/bsd/{email-postfix-55.eml → lhost-postfix-55.eml} +0 -0
  399. data/set-of-emails/maildir/bsd/{email-postfix-56.eml → lhost-postfix-56.eml} +0 -0
  400. data/set-of-emails/maildir/bsd/{email-postfix-57.eml → lhost-postfix-57.eml} +0 -0
  401. data/set-of-emails/maildir/bsd/{email-postfix-58.eml → lhost-postfix-58.eml} +0 -0
  402. data/set-of-emails/maildir/bsd/{email-postfix-59.eml → lhost-postfix-59.eml} +0 -0
  403. data/set-of-emails/maildir/bsd/{email-postfix-60.eml → lhost-postfix-60.eml} +0 -0
  404. data/set-of-emails/maildir/bsd/{email-postfix-61.eml → lhost-postfix-61.eml} +0 -0
  405. data/set-of-emails/maildir/bsd/{email-postfix-62.eml → lhost-postfix-62.eml} +0 -0
  406. data/set-of-emails/maildir/bsd/{email-postfix-63.eml → lhost-postfix-63.eml} +0 -0
  407. data/set-of-emails/maildir/bsd/lhost-postfix-64.eml +96 -0
  408. data/set-of-emails/maildir/bsd/lhost-postfix-65.eml +69 -0
  409. data/set-of-emails/maildir/bsd/lhost-postfix-66.eml +80 -0
  410. data/set-of-emails/maildir/bsd/lhost-postfix-67.eml +80 -0
  411. data/set-of-emails/maildir/bsd/lhost-postfix-68.eml +82 -0
  412. data/set-of-emails/maildir/bsd/lhost-postfix-69.eml +80 -0
  413. data/set-of-emails/maildir/bsd/lhost-postfix-70.eml +87 -0
  414. data/set-of-emails/maildir/bsd/lhost-postfix-71.eml +81 -0
  415. data/set-of-emails/maildir/bsd/lhost-postfix-72.eml +81 -0
  416. data/set-of-emails/maildir/bsd/lhost-postfix-73.eml +79 -0
  417. data/set-of-emails/maildir/bsd/lhost-postfix-74.eml +83 -0
  418. data/set-of-emails/maildir/bsd/{rfc3464-05.eml → lhost-powermta-01.eml} +19 -18
  419. data/set-of-emails/maildir/bsd/lhost-powermta-02.eml +58 -0
  420. data/set-of-emails/maildir/bsd/lhost-powermta-03.eml +71 -0
  421. data/set-of-emails/maildir/bsd/{email-qmail-01.eml → lhost-qmail-01.eml} +0 -0
  422. data/set-of-emails/maildir/bsd/{email-qmail-02.eml → lhost-qmail-02.eml} +0 -0
  423. data/set-of-emails/maildir/bsd/{email-qmail-03.eml → lhost-qmail-03.eml} +0 -0
  424. data/set-of-emails/maildir/bsd/{email-qmail-04.eml → lhost-qmail-04.eml} +0 -0
  425. data/set-of-emails/maildir/bsd/{email-qmail-05.eml → lhost-qmail-05.eml} +0 -0
  426. data/set-of-emails/maildir/bsd/{email-qmail-06.eml → lhost-qmail-06.eml} +0 -0
  427. data/set-of-emails/maildir/bsd/{email-qmail-07.eml → lhost-qmail-07.eml} +0 -0
  428. data/set-of-emails/maildir/bsd/{email-qmail-08.eml → lhost-qmail-08.eml} +0 -0
  429. data/set-of-emails/maildir/bsd/{email-qmail-09.eml → lhost-qmail-09.eml} +0 -0
  430. data/set-of-emails/maildir/bsd/{email-qmail-10.eml → lhost-qmail-10.eml} +0 -0
  431. data/set-of-emails/maildir/bsd/{email-receivingses-01.eml → lhost-receivingses-01.eml} +0 -0
  432. data/set-of-emails/maildir/bsd/{email-receivingses-02.eml → lhost-receivingses-02.eml} +0 -0
  433. data/set-of-emails/maildir/bsd/{email-receivingses-03.eml → lhost-receivingses-03.eml} +0 -0
  434. data/set-of-emails/maildir/bsd/{email-receivingses-04.eml → lhost-receivingses-04.eml} +0 -0
  435. data/set-of-emails/maildir/bsd/{email-receivingses-05.eml → lhost-receivingses-05.eml} +0 -0
  436. data/set-of-emails/maildir/bsd/{email-receivingses-06.eml → lhost-receivingses-06.eml} +0 -0
  437. data/set-of-emails/maildir/bsd/{email-receivingses-07.eml → lhost-receivingses-07.eml} +0 -0
  438. data/set-of-emails/maildir/bsd/{email-sendgrid-01.eml → lhost-sendgrid-01.eml} +0 -0
  439. data/set-of-emails/maildir/bsd/{email-sendgrid-02.eml → lhost-sendgrid-02.eml} +0 -0
  440. data/set-of-emails/maildir/bsd/{email-sendgrid-03.eml → lhost-sendgrid-03.eml} +0 -0
  441. data/set-of-emails/maildir/bsd/{email-sendmail-01.eml → lhost-sendmail-01.eml} +0 -0
  442. data/set-of-emails/maildir/bsd/{email-sendmail-02.eml → lhost-sendmail-02.eml} +0 -0
  443. data/set-of-emails/maildir/bsd/{email-sendmail-03.eml → lhost-sendmail-03.eml} +0 -0
  444. data/set-of-emails/maildir/bsd/{email-sendmail-04.eml → lhost-sendmail-04.eml} +0 -0
  445. data/set-of-emails/maildir/bsd/{email-sendmail-05.eml → lhost-sendmail-05.eml} +0 -0
  446. data/set-of-emails/maildir/bsd/{email-sendmail-06.eml → lhost-sendmail-06.eml} +0 -0
  447. data/set-of-emails/maildir/bsd/{email-sendmail-07.eml → lhost-sendmail-07.eml} +0 -0
  448. data/set-of-emails/maildir/bsd/{email-sendmail-08.eml → lhost-sendmail-08.eml} +0 -0
  449. data/set-of-emails/maildir/bsd/{email-sendmail-09.eml → lhost-sendmail-09.eml} +0 -0
  450. data/set-of-emails/maildir/bsd/{email-sendmail-10.eml → lhost-sendmail-10.eml} +0 -0
  451. data/set-of-emails/maildir/bsd/{email-sendmail-11.eml → lhost-sendmail-11.eml} +0 -0
  452. data/set-of-emails/maildir/bsd/{email-sendmail-12.eml → lhost-sendmail-12.eml} +0 -0
  453. data/set-of-emails/maildir/bsd/{email-sendmail-13.eml → lhost-sendmail-13.eml} +0 -0
  454. data/set-of-emails/maildir/bsd/{email-sendmail-14.eml → lhost-sendmail-14.eml} +0 -0
  455. data/set-of-emails/maildir/bsd/{email-sendmail-15.eml → lhost-sendmail-15.eml} +0 -0
  456. data/set-of-emails/maildir/bsd/{email-sendmail-16.eml → lhost-sendmail-16.eml} +0 -0
  457. data/set-of-emails/maildir/bsd/{email-sendmail-17.eml → lhost-sendmail-17.eml} +0 -0
  458. data/set-of-emails/maildir/bsd/{email-sendmail-18.eml → lhost-sendmail-18.eml} +0 -0
  459. data/set-of-emails/maildir/bsd/{email-sendmail-19.eml → lhost-sendmail-19.eml} +0 -0
  460. data/set-of-emails/maildir/bsd/{email-sendmail-20.eml → lhost-sendmail-20.eml} +0 -0
  461. data/set-of-emails/maildir/bsd/{email-sendmail-21.eml → lhost-sendmail-21.eml} +0 -0
  462. data/set-of-emails/maildir/bsd/{email-sendmail-22.eml → lhost-sendmail-22.eml} +0 -0
  463. data/set-of-emails/maildir/bsd/{email-sendmail-24.eml → lhost-sendmail-24.eml} +0 -0
  464. data/set-of-emails/maildir/bsd/{email-sendmail-25.eml → lhost-sendmail-25.eml} +0 -0
  465. data/set-of-emails/maildir/bsd/{email-sendmail-26.eml → lhost-sendmail-26.eml} +0 -0
  466. data/set-of-emails/maildir/bsd/{email-sendmail-27.eml → lhost-sendmail-27.eml} +0 -0
  467. data/set-of-emails/maildir/bsd/{email-sendmail-28.eml → lhost-sendmail-28.eml} +0 -0
  468. data/set-of-emails/maildir/bsd/{email-sendmail-29.eml → lhost-sendmail-29.eml} +0 -0
  469. data/set-of-emails/maildir/bsd/{email-sendmail-30.eml → lhost-sendmail-30.eml} +0 -0
  470. data/set-of-emails/maildir/bsd/{email-sendmail-31.eml → lhost-sendmail-31.eml} +0 -0
  471. data/set-of-emails/maildir/bsd/{email-sendmail-32.eml → lhost-sendmail-32.eml} +0 -0
  472. data/set-of-emails/maildir/bsd/{email-sendmail-33.eml → lhost-sendmail-33.eml} +0 -0
  473. data/set-of-emails/maildir/bsd/{email-sendmail-34.eml → lhost-sendmail-34.eml} +0 -0
  474. data/set-of-emails/maildir/bsd/{email-sendmail-35.eml → lhost-sendmail-35.eml} +0 -0
  475. data/set-of-emails/maildir/bsd/{email-sendmail-36.eml → lhost-sendmail-36.eml} +0 -0
  476. data/set-of-emails/maildir/bsd/{email-sendmail-37.eml → lhost-sendmail-37.eml} +0 -0
  477. data/set-of-emails/maildir/bsd/{email-sendmail-38.eml → lhost-sendmail-38.eml} +0 -0
  478. data/set-of-emails/maildir/bsd/{email-sendmail-39.eml → lhost-sendmail-39.eml} +0 -0
  479. data/set-of-emails/maildir/bsd/{email-sendmail-40.eml → lhost-sendmail-40.eml} +0 -0
  480. data/set-of-emails/maildir/bsd/{email-sendmail-41.eml → lhost-sendmail-41.eml} +0 -0
  481. data/set-of-emails/maildir/bsd/{email-sendmail-42.eml → lhost-sendmail-42.eml} +0 -0
  482. data/set-of-emails/maildir/bsd/{email-sendmail-43.eml → lhost-sendmail-43.eml} +0 -0
  483. data/set-of-emails/maildir/bsd/{email-sendmail-44.eml → lhost-sendmail-44.eml} +0 -0
  484. data/set-of-emails/maildir/bsd/{email-sendmail-45.eml → lhost-sendmail-45.eml} +0 -0
  485. data/set-of-emails/maildir/bsd/{email-sendmail-46.eml → lhost-sendmail-46.eml} +0 -0
  486. data/set-of-emails/maildir/bsd/{email-sendmail-47.eml → lhost-sendmail-47.eml} +0 -0
  487. data/set-of-emails/maildir/bsd/{email-sendmail-48.eml → lhost-sendmail-48.eml} +0 -0
  488. data/set-of-emails/maildir/bsd/{email-sendmail-49.eml → lhost-sendmail-49.eml} +0 -0
  489. data/set-of-emails/maildir/bsd/{email-sendmail-50.eml → lhost-sendmail-50.eml} +0 -0
  490. data/set-of-emails/maildir/bsd/{email-sendmail-51.eml → lhost-sendmail-51.eml} +0 -0
  491. data/set-of-emails/maildir/bsd/{email-sendmail-52.eml → lhost-sendmail-52.eml} +0 -0
  492. data/set-of-emails/maildir/bsd/{email-sendmail-53.eml → lhost-sendmail-53.eml} +0 -0
  493. data/set-of-emails/maildir/bsd/{email-sendmail-54.eml → lhost-sendmail-54.eml} +0 -0
  494. data/set-of-emails/maildir/bsd/{email-sendmail-55.eml → lhost-sendmail-55.eml} +0 -0
  495. data/set-of-emails/maildir/bsd/{email-sendmail-56.eml → lhost-sendmail-56.eml} +0 -0
  496. data/set-of-emails/maildir/bsd/lhost-sendmail-57.eml +59 -0
  497. data/set-of-emails/maildir/bsd/lhost-sendmail-58.eml +70 -0
  498. data/set-of-emails/maildir/bsd/lhost-sendmail-59.eml +68 -0
  499. data/set-of-emails/maildir/bsd/{email-surfcontrol-01.eml → lhost-surfcontrol-01.eml} +0 -0
  500. data/set-of-emails/maildir/bsd/{email-surfcontrol-02.eml → lhost-surfcontrol-02.eml} +0 -0
  501. data/set-of-emails/maildir/bsd/{email-surfcontrol-03.eml → lhost-surfcontrol-03.eml} +0 -0
  502. data/set-of-emails/maildir/bsd/{email-v5sendmail-01.eml → lhost-v5sendmail-01.eml} +0 -0
  503. data/set-of-emails/maildir/bsd/{email-v5sendmail-02.eml → lhost-v5sendmail-02.eml} +0 -0
  504. data/set-of-emails/maildir/bsd/{email-v5sendmail-03.eml → lhost-v5sendmail-03.eml} +0 -0
  505. data/set-of-emails/maildir/bsd/{email-v5sendmail-04.eml → lhost-v5sendmail-04.eml} +0 -0
  506. data/set-of-emails/maildir/bsd/{email-v5sendmail-05.eml → lhost-v5sendmail-05.eml} +0 -0
  507. data/set-of-emails/maildir/bsd/{email-v5sendmail-06.eml → lhost-v5sendmail-06.eml} +0 -0
  508. data/set-of-emails/maildir/bsd/{email-v5sendmail-07.eml → lhost-v5sendmail-07.eml} +0 -0
  509. data/set-of-emails/maildir/bsd/{email-verizon-01.eml → lhost-verizon-01.eml} +0 -0
  510. data/set-of-emails/maildir/bsd/{email-verizon-02.eml → lhost-verizon-02.eml} +0 -0
  511. data/set-of-emails/maildir/bsd/{email-x1-01.eml → lhost-x1-01.eml} +0 -0
  512. data/set-of-emails/maildir/bsd/{email-x1-02.eml → lhost-x1-02.eml} +0 -0
  513. data/set-of-emails/maildir/bsd/{email-x2-01.eml → lhost-x2-01.eml} +0 -0
  514. data/set-of-emails/maildir/bsd/{email-x2-02.eml → lhost-x2-02.eml} +0 -0
  515. data/set-of-emails/maildir/bsd/{email-x2-03.eml → lhost-x2-03.eml} +0 -0
  516. data/set-of-emails/maildir/bsd/{email-x2-04.eml → lhost-x2-04.eml} +0 -0
  517. data/set-of-emails/maildir/bsd/{email-x2-05.eml → lhost-x2-05.eml} +0 -0
  518. data/set-of-emails/maildir/bsd/{email-x3-01.eml → lhost-x3-01.eml} +0 -0
  519. data/set-of-emails/maildir/bsd/{email-x3-02.eml → lhost-x3-02.eml} +0 -0
  520. data/set-of-emails/maildir/bsd/{email-x3-03.eml → lhost-x3-03.eml} +0 -0
  521. data/set-of-emails/maildir/bsd/{email-x3-05.eml → lhost-x3-05.eml} +0 -0
  522. data/set-of-emails/maildir/bsd/lhost-x3-06.eml +53 -0
  523. data/set-of-emails/maildir/bsd/{email-x4-01.eml → lhost-x4-01.eml} +0 -0
  524. data/set-of-emails/maildir/bsd/{email-x4-08.eml → lhost-x4-08.eml} +0 -0
  525. data/set-of-emails/maildir/bsd/{email-x5-01.eml → lhost-x5-01.eml} +0 -0
  526. data/set-of-emails/maildir/bsd/lhost-x6-01.eml +71 -0
  527. data/set-of-emails/maildir/bsd/lhost-x6-02.eml +68 -0
  528. data/set-of-emails/maildir/bsd/{email-yahoo-01.eml → lhost-yahoo-01.eml} +0 -0
  529. data/set-of-emails/maildir/bsd/{email-yahoo-02.eml → lhost-yahoo-02.eml} +0 -0
  530. data/set-of-emails/maildir/bsd/{email-yahoo-03.eml → lhost-yahoo-03.eml} +0 -0
  531. data/set-of-emails/maildir/bsd/{email-yahoo-04.eml → lhost-yahoo-04.eml} +0 -0
  532. data/set-of-emails/maildir/bsd/{email-yahoo-05.eml → lhost-yahoo-05.eml} +0 -0
  533. data/set-of-emails/maildir/bsd/{email-yahoo-06.eml → lhost-yahoo-06.eml} +0 -0
  534. data/set-of-emails/maildir/bsd/{email-yahoo-07.eml → lhost-yahoo-07.eml} +0 -0
  535. data/set-of-emails/maildir/bsd/{email-yahoo-08.eml → lhost-yahoo-08.eml} +0 -0
  536. data/set-of-emails/maildir/bsd/{email-yahoo-09.eml → lhost-yahoo-09.eml} +0 -0
  537. data/set-of-emails/maildir/bsd/{email-yahoo-10.eml → lhost-yahoo-10.eml} +0 -0
  538. data/set-of-emails/maildir/bsd/{email-yahoo-11.eml → lhost-yahoo-11.eml} +0 -0
  539. data/set-of-emails/maildir/bsd/{email-yahoo-12.eml → lhost-yahoo-12.eml} +0 -0
  540. data/set-of-emails/maildir/bsd/{email-yahoo-13.eml → lhost-yahoo-13.eml} +0 -0
  541. data/set-of-emails/maildir/bsd/{email-yahoo-14.eml → lhost-yahoo-14.eml} +0 -0
  542. data/set-of-emails/maildir/bsd/{email-yandex-01.eml → lhost-yandex-01.eml} +0 -0
  543. data/set-of-emails/maildir/bsd/{email-yandex-02.eml → lhost-yandex-02.eml} +0 -0
  544. data/set-of-emails/maildir/bsd/{email-yandex-03.eml → lhost-yandex-03.eml} +0 -0
  545. data/set-of-emails/maildir/bsd/{email-zoho-01.eml → lhost-zoho-01.eml} +0 -0
  546. data/set-of-emails/maildir/bsd/{email-zoho-02.eml → lhost-zoho-02.eml} +0 -0
  547. data/set-of-emails/maildir/bsd/{email-zoho-03.eml → lhost-zoho-03.eml} +0 -0
  548. data/set-of-emails/maildir/bsd/{email-zoho-04.eml → lhost-zoho-04.eml} +0 -0
  549. data/set-of-emails/maildir/bsd/{email-zoho-05.eml → lhost-zoho-05.eml} +0 -0
  550. data/set-of-emails/maildir/bsd/rfc3834-03.eml +26 -0
  551. data/set-of-emails/maildir/bsd/{rfc3464-41.eml → rfc3834-04.eml} +0 -0
  552. data/set-of-emails/maildir/bsd/rhost-cox-01.eml +192 -0
  553. data/set-of-emails/maildir/bsd/rhost-franceptt-04.eml +66 -0
  554. data/set-of-emails/maildir/bsd/rhost-franceptt-05.eml +96 -0
  555. data/set-of-emails/maildir/bsd/rhost-franceptt-06.eml +100 -0
  556. data/set-of-emails/maildir/bsd/rhost-franceptt-07.eml +97 -0
  557. data/set-of-emails/maildir/bsd/rhost-franceptt-08.eml +78 -0
  558. data/set-of-emails/maildir/bsd/rhost-franceptt-10.eml +79 -0
  559. data/set-of-emails/maildir/bsd/rhost-franceptt-11.eml +96 -0
  560. data/set-of-emails/maildir/bsd/rhost-spectrum-01.eml +111 -0
  561. data/set-of-emails/maildir/dos/{email-activehunter-01.eml → lhost-activehunter-01.eml} +0 -0
  562. data/set-of-emails/maildir/dos/{email-amavis-01.eml → lhost-amavis-01.eml} +0 -0
  563. data/set-of-emails/maildir/dos/{email-amazonses-01.eml → lhost-amazonses-01.eml} +0 -0
  564. data/set-of-emails/maildir/dos/{email-amazonworkmail-01.eml → lhost-amazonworkmail-01.eml} +0 -0
  565. data/set-of-emails/maildir/dos/{email-aol-01.eml → lhost-aol-01.eml} +0 -0
  566. data/set-of-emails/maildir/dos/{email-apachejames-01.eml → lhost-apachejames-01.eml} +0 -0
  567. data/set-of-emails/maildir/dos/lhost-barracuda-01.eml +67 -0
  568. data/set-of-emails/maildir/dos/{email-bigfoot-01.eml → lhost-bigfoot-01.eml} +0 -0
  569. data/set-of-emails/maildir/dos/{email-biglobe-01.eml → lhost-biglobe-01.eml} +0 -0
  570. data/set-of-emails/maildir/dos/{email-courier-01.eml → lhost-courier-01.eml} +0 -0
  571. data/set-of-emails/maildir/dos/{email-domino-01.eml → lhost-domino-01.eml} +0 -0
  572. data/set-of-emails/maildir/dos/{email-einsundeins-01.eml → lhost-einsundeins-01.eml} +0 -0
  573. data/set-of-emails/maildir/dos/{email-exchange-01.eml → lhost-exchange-01.eml} +0 -0
  574. data/set-of-emails/maildir/dos/{email-exchange2003-01.eml → lhost-exchange2003-01.eml} +0 -0
  575. data/set-of-emails/maildir/dos/{email-exchange2007-01.eml → lhost-exchange2007-01.eml} +0 -0
  576. data/set-of-emails/maildir/dos/{email-exim-01.eml → lhost-exim-01.eml} +0 -0
  577. data/set-of-emails/maildir/dos/{email-ezweb-01.eml → lhost-ezweb-01.eml} +0 -0
  578. data/set-of-emails/maildir/dos/{email-facebook-01.eml → lhost-facebook-01.eml} +0 -0
  579. data/set-of-emails/maildir/dos/{email-google-01.eml → lhost-gmail-01.eml} +0 -0
  580. data/set-of-emails/maildir/dos/{email-gmx-01.eml → lhost-gmx-01.eml} +0 -0
  581. data/set-of-emails/maildir/dos/lhost-googlegroups-01.eml +116 -0
  582. data/set-of-emails/maildir/dos/{email-gsuite-01.eml → lhost-gsuite-01.eml} +0 -0
  583. data/set-of-emails/maildir/dos/{email-imailserver-01.eml → lhost-imailserver-01.eml} +0 -0
  584. data/set-of-emails/maildir/dos/{email-interscanmss-01.eml → lhost-interscanmss-01.eml} +0 -0
  585. data/set-of-emails/maildir/dos/{email-kddi-01.eml → lhost-kddi-01.eml} +0 -0
  586. data/set-of-emails/maildir/dos/{email-mailfoundry-01.eml → lhost-mailfoundry-01.eml} +0 -0
  587. data/set-of-emails/maildir/dos/{email-mailmarshalsmtp-01.eml → lhost-mailmarshalsmtp-01.eml} +0 -0
  588. data/set-of-emails/maildir/dos/{email-mailru-01.eml → lhost-mailru-01.eml} +0 -0
  589. data/set-of-emails/maildir/dos/{email-mcafee-01.eml → lhost-mcafee-01.eml} +0 -0
  590. data/set-of-emails/maildir/dos/{email-messagelabs-01.eml → lhost-messagelabs-01.eml} +0 -0
  591. data/set-of-emails/maildir/dos/{email-messagingserver-01.eml → lhost-messagingserver-01.eml} +0 -0
  592. data/set-of-emails/maildir/dos/{email-mfilter-01.eml → lhost-mfilter-01.eml} +0 -0
  593. data/set-of-emails/maildir/dos/{email-mxlogic-01.eml → lhost-mxlogic-01.eml} +0 -0
  594. data/set-of-emails/maildir/dos/{email-notes-01.eml → lhost-notes-01.eml} +0 -0
  595. data/set-of-emails/maildir/dos/{email-office365-01.eml → lhost-office365-01.eml} +0 -0
  596. data/set-of-emails/maildir/dos/{email-opensmtpd-01.eml → lhost-opensmtpd-01.eml} +0 -0
  597. data/set-of-emails/maildir/dos/{email-outlook-01.eml → lhost-outlook-01.eml} +0 -0
  598. data/set-of-emails/maildir/dos/{email-postfix-01.eml → lhost-postfix-01.eml} +0 -0
  599. data/set-of-emails/maildir/dos/lhost-powermta-01.eml +64 -0
  600. data/set-of-emails/maildir/dos/{email-qmail-01.eml → lhost-qmail-01.eml} +0 -0
  601. data/set-of-emails/maildir/dos/{email-receivingses-01.eml → lhost-receivingses-01.eml} +0 -0
  602. data/set-of-emails/maildir/dos/{email-sendgrid-01.eml → lhost-sendgrid-01.eml} +0 -0
  603. data/set-of-emails/maildir/dos/{email-sendmail-01.eml → lhost-sendmail-01.eml} +0 -0
  604. data/set-of-emails/maildir/dos/{email-surfcontrol-01.eml → lhost-surfcontrol-01.eml} +0 -0
  605. data/set-of-emails/maildir/dos/{email-v5sendmail-01.eml → lhost-v5sendmail-01.eml} +0 -0
  606. data/set-of-emails/maildir/dos/{email-verizon-01.eml → lhost-verizon-01.eml} +0 -0
  607. data/set-of-emails/maildir/dos/{email-x1-01.eml → lhost-x1-01.eml} +0 -0
  608. data/set-of-emails/maildir/dos/{email-x2-01.eml → lhost-x2-01.eml} +0 -0
  609. data/set-of-emails/maildir/dos/{email-x3-01.eml → lhost-x3-01.eml} +0 -0
  610. data/set-of-emails/maildir/dos/{email-x4-01.eml → lhost-x4-01.eml} +0 -0
  611. data/set-of-emails/maildir/dos/{email-x5-01.eml → lhost-x5-01.eml} +0 -0
  612. data/set-of-emails/maildir/dos/lhost-x6-01.eml +71 -0
  613. data/set-of-emails/maildir/dos/{email-yahoo-01.eml → lhost-yahoo-01.eml} +0 -0
  614. data/set-of-emails/maildir/dos/{email-yandex-01.eml → lhost-yandex-01.eml} +0 -0
  615. data/set-of-emails/maildir/dos/{email-zoho-01.eml → lhost-zoho-01.eml} +0 -0
  616. data/set-of-emails/maildir/dos/rhost-iua-01.eml +70 -0
  617. data/set-of-emails/maildir/mac/{email-activehunter-01.eml → lhost-activehunter-01.eml} +0 -0
  618. data/set-of-emails/maildir/mac/{email-amavis-01.eml → lhost-amavis-01.eml} +0 -0
  619. data/set-of-emails/maildir/mac/{email-amazonses-01.eml → lhost-amazonses-01.eml} +0 -0
  620. data/set-of-emails/maildir/mac/{email-amazonworkmail-01.eml → lhost-amazonworkmail-01.eml} +0 -0
  621. data/set-of-emails/maildir/mac/{email-aol-01.eml → lhost-aol-01.eml} +0 -0
  622. data/set-of-emails/maildir/mac/{email-apachejames-01.eml → lhost-apachejames-01.eml} +0 -0
  623. data/set-of-emails/maildir/mac/lhost-barracuda-01.eml +1 -4
  624. data/set-of-emails/maildir/mac/{email-bigfoot-01.eml → lhost-bigfoot-01.eml} +0 -0
  625. data/set-of-emails/maildir/mac/{email-biglobe-01.eml → lhost-biglobe-01.eml} +0 -0
  626. data/set-of-emails/maildir/mac/{email-courier-01.eml → lhost-courier-01.eml} +0 -0
  627. data/set-of-emails/maildir/mac/{email-domino-01.eml → lhost-domino-01.eml} +0 -0
  628. data/set-of-emails/maildir/mac/{email-einsundeins-01.eml → lhost-einsundeins-01.eml} +0 -0
  629. data/set-of-emails/maildir/mac/{email-exchange-01.eml → lhost-exchange-01.eml} +0 -0
  630. data/set-of-emails/maildir/mac/{email-exchange2003-01.eml → lhost-exchange2003-01.eml} +0 -0
  631. data/set-of-emails/maildir/mac/{email-exchange2007-01.eml → lhost-exchange2007-01.eml} +0 -0
  632. data/set-of-emails/maildir/mac/{email-exim-01.eml → lhost-exim-01.eml} +0 -0
  633. data/set-of-emails/maildir/mac/{email-ezweb-01.eml → lhost-ezweb-01.eml} +0 -0
  634. data/set-of-emails/maildir/mac/{email-facebook-01.eml → lhost-facebook-01.eml} +0 -0
  635. data/set-of-emails/maildir/mac/{email-google-01.eml → lhost-gmail-01.eml} +0 -0
  636. data/set-of-emails/maildir/mac/{email-gmx-01.eml → lhost-gmx-01.eml} +0 -0
  637. data/set-of-emails/maildir/mac/lhost-googlegroups-01.eml +1 -1
  638. data/set-of-emails/maildir/mac/{email-gsuite-01.eml → lhost-gsuite-01.eml} +0 -0
  639. data/set-of-emails/maildir/mac/{email-imailserver-01.eml → lhost-imailserver-01.eml} +0 -0
  640. data/set-of-emails/maildir/mac/{email-interscanmss-01.eml → lhost-interscanmss-01.eml} +0 -0
  641. data/set-of-emails/maildir/mac/{email-kddi-01.eml → lhost-kddi-01.eml} +0 -0
  642. data/set-of-emails/maildir/mac/{email-mailfoundry-01.eml → lhost-mailfoundry-01.eml} +0 -0
  643. data/set-of-emails/maildir/mac/{email-mailmarshalsmtp-01.eml → lhost-mailmarshalsmtp-01.eml} +0 -0
  644. data/set-of-emails/maildir/mac/{email-mailru-01.eml → lhost-mailru-01.eml} +0 -0
  645. data/set-of-emails/maildir/mac/{email-mcafee-01.eml → lhost-mcafee-01.eml} +0 -0
  646. data/set-of-emails/maildir/mac/{email-messagelabs-01.eml → lhost-messagelabs-01.eml} +0 -0
  647. data/set-of-emails/maildir/mac/{email-messagingserver-01.eml → lhost-messagingserver-01.eml} +0 -0
  648. data/set-of-emails/maildir/mac/{email-mfilter-01.eml → lhost-mfilter-01.eml} +0 -0
  649. data/set-of-emails/maildir/mac/{email-mxlogic-01.eml → lhost-mxlogic-01.eml} +0 -0
  650. data/set-of-emails/maildir/mac/{email-notes-01.eml → lhost-notes-01.eml} +0 -0
  651. data/set-of-emails/maildir/mac/{email-office365-01.eml → lhost-office365-01.eml} +0 -0
  652. data/set-of-emails/maildir/mac/{email-opensmtpd-01.eml → lhost-opensmtpd-01.eml} +0 -0
  653. data/set-of-emails/maildir/mac/{email-outlook-01.eml → lhost-outlook-01.eml} +0 -0
  654. data/set-of-emails/maildir/mac/{email-postfix-01.eml → lhost-postfix-01.eml} +0 -0
  655. data/set-of-emails/maildir/mac/lhost-powermta-01.eml +1 -4
  656. data/set-of-emails/maildir/mac/{email-qmail-01.eml → lhost-qmail-01.eml} +0 -0
  657. data/set-of-emails/maildir/mac/{email-receivingses-01.eml → lhost-receivingses-01.eml} +0 -0
  658. data/set-of-emails/maildir/mac/{email-sendgrid-01.eml → lhost-sendgrid-01.eml} +0 -0
  659. data/set-of-emails/maildir/mac/{email-sendmail-01.eml → lhost-sendmail-01.eml} +0 -0
  660. data/set-of-emails/maildir/mac/{email-surfcontrol-01.eml → lhost-surfcontrol-01.eml} +0 -0
  661. data/set-of-emails/maildir/mac/{email-v5sendmail-01.eml → lhost-v5sendmail-01.eml} +0 -0
  662. data/set-of-emails/maildir/mac/{email-verizon-01.eml → lhost-verizon-01.eml} +0 -0
  663. data/set-of-emails/maildir/mac/{email-x1-01.eml → lhost-x1-01.eml} +0 -0
  664. data/set-of-emails/maildir/mac/{email-x2-01.eml → lhost-x2-01.eml} +0 -0
  665. data/set-of-emails/maildir/mac/{email-x3-01.eml → lhost-x3-01.eml} +0 -0
  666. data/set-of-emails/maildir/mac/{email-x4-01.eml → lhost-x4-01.eml} +0 -0
  667. data/set-of-emails/maildir/mac/{email-x5-01.eml → lhost-x5-01.eml} +0 -0
  668. data/set-of-emails/maildir/mac/lhost-x6-01.eml +1 -3
  669. data/set-of-emails/maildir/mac/{email-yahoo-01.eml → lhost-yahoo-01.eml} +0 -0
  670. data/set-of-emails/maildir/mac/{email-yandex-01.eml → lhost-yandex-01.eml} +0 -0
  671. data/set-of-emails/maildir/mac/{email-zoho-01.eml → lhost-zoho-01.eml} +0 -0
  672. data/set-of-emails/maildir/mac/rhost-iua-01.eml +1 -4
  673. metadata +587 -521
  674. data/lib/sisimai/bite.rb +0 -42
  675. data/lib/sisimai/bite/email.rb +0 -18
  676. data/lib/sisimai/bite/json.rb +0 -16
  677. data/lib/sisimai/lhost/userdefined.rb +0 -115
  678. data/lib/sisimai/message/email.rb +0 -26
  679. data/lib/sisimai/message/json.rb +0 -24
  680. data/lib/sisimai/order/email.rb +0 -20
  681. data/lib/sisimai/order/json.rb +0 -16
@@ -8,18 +8,30 @@ module Sisimai::Lhost
8
8
  require 'sisimai/lhost'
9
9
 
10
10
  Indicators = Sisimai::Lhost.INDICATORS
11
+ ReBackbone = %r|^Content-Type:[ ]message/rfc822|.freeze
11
12
  StartingOf = {
12
- rfc822: ['Content-Type: message/rfc822'],
13
13
  error: ['Diagnostic information for administrators:'],
14
14
  eoerr: ['Original message headers:'],
15
15
  }.freeze
16
16
  MarkingsOf = {
17
+ eoe: %r/\A(?:Original[ ][Mm]essage[ ][Hh]eaders:?|Message[ ]Hops)/,
18
+ error: %r/\A(?:Diagnostic[ ]information[ ]for[ ]administrators:|Error[ ]Details)/,
17
19
  message: %r{\A(?:
18
20
  Delivery[ ]has[ ]failed[ ]to[ ]these[ ]recipients[ ]or[ ]groups:
21
+ |Original[ ]Message[ ]Details
19
22
  |.+[ ]rejected[ ]your[ ]message[ ]to[ ]the[ ]following[ ]e[-]?mail[ ]addresses:
20
23
  )
21
24
  }x,
22
25
  }.freeze
26
+ Headers365 = %w[
27
+ x-ms-exchange-message-is-ndr
28
+ x-microsoft-antispam-prvs
29
+ x-exchange-antispam-report-test
30
+ x-exchange-antispam-report-cfa-test
31
+ x-ms-exchange-crosstenant-originalarrivaltime
32
+ x-ms-exchange-crosstenant-fromentityheader
33
+ x-ms-exchange-transport-crosstenantheadersstamped
34
+ ]
23
35
  StatusList = {
24
36
  # https://support.office.com/en-us/article/Email-non-delivery-reports-in-Office-365-51daa6b9-2e35-49c4-a0c9-df85bf8533c3
25
37
  %r/\A4[.]4[.]7\z/ => 'expired',
@@ -28,6 +40,8 @@ module Sisimai::Lhost
28
40
  %r/\A4[.]7[.]26\z/ => 'securityerror',
29
41
  %r/\A4[.]7[.][56]\d\d\z/ => 'blocked',
30
42
  %r/\A4[.]7[.]8[5-9]\d\z/ => 'blocked',
43
+ %r/\A5[.]0[.]350\z/ => 'contenterror',
44
+ %r/\A5[.]1[.]10\z/ => 'userunknown',
31
45
  %r/\A5[.]4[.]1\z/ => 'norelaying',
32
46
  %r/\A5[.]4[.]312\z/ => 'networkerror',
33
47
  %r/\A5[.]4[.]316\z/ => 'expired',
@@ -37,6 +51,7 @@ module Sisimai::Lhost
37
51
  %r/\A5[.]7[.]1[23]\z/ => 'rejected',
38
52
  %r/\A5[.]7[.]124\z/ => 'rejected',
39
53
  %r/\A5[.]7[.]13[3-6]\z/ => 'rejected',
54
+ %r/\A5[.]7[.]23\z/ => 'blocked',
40
55
  %r/\A5[.]7[.]25\z/ => 'networkerror',
41
56
  %r/\A5[.]7[.]50[1-3]\z/ => 'spamdetected',
42
57
  %r/\A5[.]7[.]50[4-5]\z/ => 'filtered',
@@ -46,6 +61,7 @@ module Sisimai::Lhost
46
61
  %r/\A5[.]7[.]510\z/ => 'notaccept',
47
62
  %r/\A5[.]7[.]511\z/ => 'rejected',
48
63
  %r/\A5[.]7[.]512\z/ => 'securityerror',
64
+ %r/\A5[.]7[.]57\z/ => 'securityerror',
49
65
  %r/\A5[.]7[.]60[6-9]\z/ => 'blocked',
50
66
  %r/\A5[.]7[.]6[1-4]\d\z/ => 'blocked',
51
67
  %r/\A5[.]7[.]7[0-4]\d\z/ => 'toomanyconn',
@@ -54,10 +70,12 @@ module Sisimai::Lhost
54
70
  RCPT: %r/unknown recipient or mailbox unavailable ->.+[<]?.+[@].+[.][a-zA-Z]+[>]?/,
55
71
  }.freeze
56
72
 
57
- def description; return 'Microsoft Office 365: https://office.microsoft.com/'; end
58
- def smtpagent; return Sisimai::Lhost.smtpagent(self); end
59
-
60
- def headerlist
73
+ # Parse bounce messages from Microsoft Office 365
74
+ # @param [Hash] mhead Message headers of a bounce email
75
+ # @param [String] mbody Message body of a bounce email
76
+ # @return [Hash] Bounce data list and message/rfc822 part
77
+ # @return [Nil] it failed to parse or the arguments are missing
78
+ def make(mhead, mbody)
61
79
  # X-MS-Exchange-Message-Is-Ndr:
62
80
  # X-Microsoft-Antispam-PRVS: <....@...outlook.com>
63
81
  # X-Exchange-Antispam-Report-Test: UriScan:;
@@ -65,40 +83,14 @@ module Sisimai::Lhost
65
83
  # X-MS-Exchange-CrossTenant-OriginalArrivalTime: 29 Apr 2015 23:34:45.6789 (JST)
66
84
  # X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
67
85
  # X-MS-Exchange-Transport-CrossTenantHeadersStamped: ...
68
- return %w[
69
- content-language
70
- x-ms-exchange-message-is-ndr
71
- x-microsoft-antispam-prvs
72
- x-exchange-antispam-report-test
73
- x-exchange-antispam-report-cfa-test
74
- x-ms-exchange-crosstenant-originalarrivaltime
75
- x-ms-exchange-crosstenant-fromentityheader
76
- x-ms-exchange-transport-crosstenantheadersstamped
77
- ]
78
- end
79
-
80
- # Parse bounce messages from Microsoft Office 365
81
- # @param [Hash] mhead Message headers of a bounce email
82
- # @options mhead [String] from From header
83
- # @options mhead [String] date Date header
84
- # @options mhead [String] subject Subject header
85
- # @options mhead [Array] received Received headers
86
- # @options mhead [String] others Other required headers
87
- # @param [String] mbody Message body of a bounce email
88
- # @return [Hash, Nil] Bounce data list and message/rfc822
89
- # part or nil if it failed to parse or
90
- # the arguments are missing
91
- def make(mhead, mbody)
92
86
  tryto = %r/.+[.](?:outbound[.]protection|prod)[.]outlook[.]com\b/
93
87
  match = 0
94
88
  match += 1 if mhead['subject'].include?('Undeliverable:')
95
- match += 1 if mhead['x-ms-exchange-message-is-ndr']
96
- match += 1 if mhead['x-microsoft-antispam-prvs']
97
- match += 1 if mhead['x-exchange-antispam-report-test']
98
- match += 1 if mhead['x-exchange-antispam-report-cfa-test']
99
- match += 1 if mhead['x-ms-exchange-crosstenant-originalarrivaltime']
100
- match += 1 if mhead['x-ms-exchange-crosstenant-fromentityheader']
101
- match += 1 if mhead['x-ms-exchange-transport-crosstenantheadersstamped']
89
+ Headers365.each do |e|
90
+ next if mhead[e].nil?
91
+ next if mhead[e].empty?
92
+ match += 1
93
+ end
102
94
  match += 1 if mhead['received'].any? { |a| a =~ tryto }
103
95
  if mhead['message-id']
104
96
  # Message-ID: <00000000-0000-0000-0000-000000000000@*.*.prod.outlook.com>
@@ -109,11 +101,9 @@ module Sisimai::Lhost
109
101
  require 'sisimai/rfc1894'
110
102
  fieldtable = Sisimai::RFC1894.FIELDTABLE
111
103
  permessage = {} # (Hash) Store values of each Per-Message field
112
-
113
104
  dscontents = [Sisimai::Lhost.DELIVERYSTATUS]
114
- hasdivided = mbody.split("\n")
115
- rfc822list = [] # (Array) Each line in message/rfc822 part string
116
- blanklines = 0 # (Integer) The number of blank lines
105
+ emailsteak = Sisimai::RFC5322.fillet(mbody, ReBackbone)
106
+ bodyslices = emailsteak[0].split("\n")
117
107
  readcursor = 0 # (Integer) Points the current cursor position
118
108
  recipients = 0 # (Integer) The number of 'Final-Recipient' header
119
109
  connheader = {}
@@ -121,85 +111,71 @@ module Sisimai::Lhost
121
111
  htmlbegins = false # (Boolean) Flag for HTML part
122
112
  v = nil
123
113
 
124
- while e = hasdivided.shift do
114
+ while e = bodyslices.shift do
115
+ # Read error messages and delivery status lines from the head of the email
116
+ # to the previous line of the beginning of the original message.
125
117
  if readcursor == 0
126
118
  # Beginning of the bounce message or delivery status part
127
- if e =~ MarkingsOf[:message]
128
- readcursor |= Indicators[:deliverystatus]
129
- next
130
- end
119
+ readcursor |= Indicators[:deliverystatus] if e =~ MarkingsOf[:message]
120
+ next
131
121
  end
132
-
133
- if (readcursor & Indicators[:'message-rfc822']) == 0
134
- # Beginning of the original message part
135
- if e == StartingOf[:rfc822][0]
136
- readcursor |= Indicators[:'message-rfc822']
137
- next
122
+ next if (readcursor & Indicators[:deliverystatus]) == 0
123
+ next if e.empty?
124
+
125
+ # kijitora@example.com<mailto:kijitora@example.com>
126
+ # The email address wasn't found at the destination domain. It might
127
+ # be misspelled or it might not exist any longer. Try retyping the
128
+ # address and resending the message.
129
+ #
130
+ # Original Message Details
131
+ # Created Date: 4/29/2017 6:40:30 AM
132
+ # Sender Address: neko@example.jp
133
+ # Recipient Address: kijitora@example.org
134
+ # Subject: Nyaan#
135
+ v = dscontents[-1]
136
+
137
+ if cv = e.match(/\A.+[@].+[<]mailto:(.+[@].+)[>]\z/) ||
138
+ e.match(/\ARecipient[ ]Address:[ ]+(.+)\z/)
139
+ # kijitora@example.com<mailto:kijitora@example.com>
140
+ if v['recipient']
141
+ # There are multiple recipient addresses in the message body.
142
+ dscontents << Sisimai::Lhost.DELIVERYSTATUS
143
+ v = dscontents[-1]
138
144
  end
139
- end
145
+ v['recipient'] = cv[1]
146
+ recipients += 1
140
147
 
141
- if readcursor & Indicators[:'message-rfc822'] > 0
142
- # Inside of the original message part
143
- if e.empty?
144
- blanklines += 1
145
- break if blanklines > 1
146
- next
147
- end
148
- rfc822list << e
148
+ elsif cv = e.match(/\AGenerating server: (.+)\z/)
149
+ # Generating server: FFFFFFFFFFFF.e0.prod.outlook.com
150
+ connheader['lhost'] = cv[1].downcase
149
151
  else
150
- # Error message part
151
- next if (readcursor & Indicators[:deliverystatus]) == 0
152
- next if e.empty?
153
-
154
- # kijitora@example.com<mailto:kijitora@example.com>
155
- # The email address wasn't found at the destination domain. It might
156
- # be misspelled or it might not exist any longer. Try retyping the
157
- # address and resending the message.
158
- v = dscontents[-1]
159
-
160
- if cv = e.match(/\A.+[@].+[<]mailto:(.+[@].+)[>]\z/)
161
- # kijitora@example.com<mailto:kijitora@example.com>
162
- if v['recipient']
163
- # There are multiple recipient addresses in the message body.
164
- dscontents << Sisimai::Lhost.DELIVERYSTATUS
165
- v = dscontents[-1]
166
- end
167
- v['recipient'] = cv[1]
168
- recipients += 1
169
-
170
- elsif cv = e.match(/\AGenerating server: (.+)\z/)
171
- # Generating server: FFFFFFFFFFFF.e0.prod.outlook.com
172
- connheader['lhost'] = cv[1].downcase
152
+ if endoferror
153
+ # After "Original message headers:"
154
+ next unless f = Sisimai::RFC1894.match(e)
155
+ next unless o = Sisimai::RFC1894.field(e)
156
+ next unless fieldtable[o[0]]
157
+ next if o[0] =~ /\A(?:diagnostic-code|final-recipient)\z/
158
+ v[fieldtable[o[0]]] = o[2]
159
+
160
+ next unless f == 1
161
+ permessage[fieldtable[o[0]]] = o[2]
173
162
  else
174
- if endoferror
175
- # After "Original message headers:"
176
- next unless f = Sisimai::RFC1894.match(e)
177
- next unless o = Sisimai::RFC1894.field(e)
178
- next unless fieldtable.key?(o[0])
179
- next if o[0] =~ /\A(?:diagnostic-code|final-recipient)\z/
180
- v[fieldtable[o[0]]] = o[2]
181
-
182
- next unless f == 1
183
- permessage[fieldtable[o[0]]] = o[2]
163
+ if e =~ MarkingsOf[:error]
164
+ # Diagnostic information for administrators:
165
+ v['diagnosis'] = e
184
166
  else
185
- if e == StartingOf[:error][0]
186
- # Diagnostic information for administrators:
187
- v['diagnosis'] = e
188
- else
189
- # kijitora@example.com
190
- # Remote Server returned '550 5.1.10 RESOLVER.ADR.RecipientNotFound; Recipien=
191
- # t not found by SMTP address lookup'
192
- next unless v['diagnosis']
193
- if e == StartingOf[:eoerr][0]
194
- # Original message headers:
195
- endoferror = true
196
- next
197
- end
198
- v['diagnosis'] << ' ' << e
167
+ # kijitora@example.com
168
+ # Remote Server returned '550 5.1.10 RESOLVER.ADR.RecipientNotFound; Recipien=
169
+ # t not found by SMTP address lookup'
170
+ next unless v['diagnosis']
171
+ if e =~ MarkingsOf[:eoe]
172
+ # Original message headers:
173
+ endoferror = true
174
+ next
199
175
  end
176
+ v['diagnosis'] << ' ' << e
200
177
  end
201
178
  end
202
-
203
179
  end
204
180
  end
205
181
  return nil unless recipients > 0
@@ -208,10 +184,8 @@ module Sisimai::Lhost
208
184
  # Set default values if each value is empty.
209
185
  permessage.each_key { |a| e[a] ||= permessage[a] || '' }
210
186
 
211
- e['agent'] = self.smtpagent
212
187
  e['status'] ||= ''
213
188
  e['diagnosis'] = Sisimai::String.sweep(e['diagnosis']) || ''
214
-
215
189
  if e['status'].empty? || e['status'].end_with?('.0.0')
216
190
  # There is no value of Status header or the value is 5.0.0, 4.0.0
217
191
  e['status'] = Sisimai::SMTP::Status.find(e['diagnosis']) || ''
@@ -233,10 +207,9 @@ module Sisimai::Lhost
233
207
  end
234
208
  end
235
209
 
236
- rfc822part = Sisimai::RFC5322.weedout(rfc822list)
237
- return { 'ds' => dscontents, 'rfc822' => rfc822part }
210
+ return { 'ds' => dscontents, 'rfc822' => emailsteak[1] }
238
211
  end
239
-
212
+ def description; return 'Microsoft Office 365: https://office.microsoft.com/'; end
240
213
  end
241
214
  end
242
215
  end
@@ -7,6 +7,7 @@ module Sisimai::Lhost
7
7
  require 'sisimai/lhost'
8
8
 
9
9
  Indicators = Sisimai::Lhost.INDICATORS
10
+ ReBackbone = %r|^[ ]+Below is a copy of the original message:|.freeze
10
11
  StartingOf = {
11
12
  # http://www.openbsd.org/cgi-bin/man.cgi?query=smtpd&sektion=8
12
13
  # opensmtpd-5.4.2p1/smtpd/
@@ -34,7 +35,6 @@ module Sisimai::Lhost
34
35
  # bounce.c/338: " Your message was relayed to these recipients.\n\n";
35
36
  # bounce.c/339:
36
37
  message: [' This is the MAILER-DAEMON, please DO NOT REPLY to this '],
37
- rfc822: [' Below is a copy of the original message:'],
38
38
  }.freeze
39
39
  MessagesOf = {
40
40
  # smtpd/queue.c:221| envelope_set_errormsg(&evp, "Envelope expired");
@@ -65,108 +65,72 @@ module Sisimai::Lhost
65
65
  'securityerror' => ['Could not retrieve credentials'],
66
66
  }.freeze
67
67
 
68
- def description; return 'OpenSMTPD'; end
69
- def smtpagent; return Sisimai::Lhost.smtpagent(self); end
70
- def headerlist; return []; end
71
-
72
68
  # Parse bounce messages from OpenSMTPD
73
- # @param [Hash] mhead Message headers of a bounce email
74
- # @options mhead [String] from From header
75
- # @options mhead [String] date Date header
76
- # @options mhead [String] subject Subject header
77
- # @options mhead [Array] received Received headers
78
- # @options mhead [String] others Other required headers
79
- # @param [String] mbody Message body of a bounce email
80
- # @return [Hash, Nil] Bounce data list and message/rfc822
81
- # part or nil if it failed to parse or
82
- # the arguments are missing
69
+ # @param [Hash] mhead Message headers of a bounce email
70
+ # @param [String] mbody Message body of a bounce email
71
+ # @return [Hash] Bounce data list and message/rfc822 part
72
+ # @return [Nil] it failed to parse or the arguments are missing
83
73
  def make(mhead, mbody)
84
74
  return nil unless mhead['subject'].start_with?('Delivery status notification')
85
75
  return nil unless mhead['from'].start_with?('Mailer Daemon <')
86
76
  return nil unless mhead['received'].any? { |a| a.include?(' (OpenSMTPD) with ') }
87
77
 
88
78
  dscontents = [Sisimai::Lhost.DELIVERYSTATUS]
89
- hasdivided = mbody.split("\n")
90
- rfc822list = [] # (Array) Each line in message/rfc822 part string
91
- blanklines = 0 # (Integer) The number of blank lines
79
+ emailsteak = Sisimai::RFC5322.fillet(mbody, ReBackbone)
80
+ bodyslices = emailsteak[0].split("\n")
92
81
  readcursor = 0 # (Integer) Points the current cursor position
93
82
  recipients = 0 # (Integer) The number of 'Final-Recipient' header
94
83
  v = nil
95
84
 
96
- while e = hasdivided.shift do
85
+ while e = bodyslices.shift do
86
+ # Read error messages and delivery status lines from the head of the email
87
+ # to the previous line of the beginning of the original message.
97
88
  if readcursor == 0
98
89
  # Beginning of the bounce message or delivery status part
99
- if e.start_with?(StartingOf[:message][0])
100
- readcursor |= Indicators[:deliverystatus]
101
- next
102
- end
103
- end
104
-
105
- if (readcursor & Indicators[:'message-rfc822']) == 0
106
- # Beginning of the original message part
107
- if e.start_with?(StartingOf[:rfc822][0])
108
- readcursor |= Indicators[:'message-rfc822']
109
- next
110
- end
90
+ readcursor |= Indicators[:deliverystatus] if e.start_with?(StartingOf[:message][0])
91
+ next
111
92
  end
93
+ next if (readcursor & Indicators[:deliverystatus]) == 0
94
+ next if e.empty?
112
95
 
113
- if readcursor & Indicators[:'message-rfc822'] > 0
114
- # Inside of the original message part
115
- if e.empty?
116
- blanklines += 1
117
- break if blanklines > 1
118
- next
119
- end
120
- rfc822list << e
121
- else
122
- # Error message part
123
- next if (readcursor & Indicators[:deliverystatus]) == 0
124
- next if e.empty?
96
+ # Hi!
97
+ #
98
+ # This is the MAILER-DAEMON, please DO NOT REPLY to this e-mail.
99
+ #
100
+ # An error has occurred while attempting to deliver a message for
101
+ # the following list of recipients:
102
+ #
103
+ # kijitora@example.jp: 550 5.2.2 <kijitora@example>... Mailbox Full
104
+ #
105
+ # Below is a copy of the original message:
106
+ v = dscontents[-1]
125
107
 
126
- # Hi!
127
- #
128
- # This is the MAILER-DAEMON, please DO NOT REPLY to this e-mail.
129
- #
130
- # An error has occurred while attempting to deliver a message for
131
- # the following list of recipients:
132
- #
108
+ if cv = e.match(/\A([^ ]+?[@][^ ]+?):?[ ](.+)\z/)
133
109
  # kijitora@example.jp: 550 5.2.2 <kijitora@example>... Mailbox Full
134
- #
135
- # Below is a copy of the original message:
136
- v = dscontents[-1]
137
-
138
- if cv = e.match(/\A([^ ]+?[@][^ ]+?):?[ ](.+)\z/)
139
- # kijitora@example.jp: 550 5.2.2 <kijitora@example>... Mailbox Full
140
- if v['recipient']
141
- # There are multiple recipient addresses in the message body.
142
- dscontents << Sisimai::Lhost.DELIVERYSTATUS
143
- v = dscontents[-1]
144
- end
145
- v['recipient'] = cv[1]
146
- v['diagnosis'] = cv[2]
147
- recipients += 1
110
+ if v['recipient']
111
+ # There are multiple recipient addresses in the message body.
112
+ dscontents << Sisimai::Lhost.DELIVERYSTATUS
113
+ v = dscontents[-1]
148
114
  end
115
+ v['recipient'] = cv[1]
116
+ v['diagnosis'] = cv[2]
117
+ recipients += 1
149
118
  end
150
119
  end
151
120
  return nil unless recipients > 0
152
121
 
153
122
  dscontents.each do |e|
154
- e['agent'] = self.smtpagent
155
123
  e['diagnosis'] = Sisimai::String.sweep(e['diagnosis'])
156
-
157
124
  MessagesOf.each_key do |r|
158
125
  # Verify each regular expression of session errors
159
126
  next unless MessagesOf[r].any? { |a| e['diagnosis'].include?(a) }
160
127
  e['reason'] = r
161
128
  break
162
129
  end
163
- e.each_key { |a| e[a] ||= '' }
164
130
  end
165
-
166
- rfc822part = Sisimai::RFC5322.weedout(rfc822list)
167
- return { 'ds' => dscontents, 'rfc822' => rfc822part }
131
+ return { 'ds' => dscontents, 'rfc822' => emailsteak[1] }
168
132
  end
169
-
133
+ def description; return 'OpenSMTPD'; end
170
134
  end
171
135
  end
172
136
  end
@@ -8,35 +8,21 @@ module Sisimai::Lhost
8
8
  require 'sisimai/lhost'
9
9
 
10
10
  Indicators = Sisimai::Lhost.INDICATORS
11
- StartingOf = {
12
- message: ['This is an automatically generated Delivery Status Notification'],
13
- rfc822: ['Content-Type: message/rfc822'],
14
- }.freeze
11
+ ReBackbone = %r|^Content-Type: message/rfc822|.freeze
12
+ StartingOf = { message: ['This is an automatically generated Delivery Status Notification'] }.freeze
15
13
  MessagesOf = {
16
14
  'hostunknown' => ['The mail could not be delivered to the recipient because the domain is not reachable'],
17
15
  'userunknown' => ['Requested action not taken: mailbox unavailable'],
18
16
  }.freeze
19
17
 
20
- def description; return 'Microsoft Outlook.com: https://www.outlook.com/'; end
21
- def smtpagent; return Sisimai::Lhost.smtpagent(self); end
22
-
23
- # X-Message-Delivery: Vj0xLjE7RD0wO0dEPTA7U0NMPTk7bD0xO3VzPTE=
24
- # X-Message-Info: AuEzbeVr9u5fkDpn2vR5iCu5wb6HBeY4iruBjnutBzpStnUabbM...
25
- def headerlist; return %w[x-message-delivery x-message-info]; end
26
-
27
18
  # Parse bounce messages from Microsoft Outlook.com
28
- # @param [Hash] mhead Message headers of a bounce email
29
- # @options mhead [String] from From header
30
- # @options mhead [String] date Date header
31
- # @options mhead [String] subject Subject header
32
- # @options mhead [Array] received Received headers
33
- # @options mhead [String] others Other required headers
34
- # @param [String] mbody Message body of a bounce email
35
- # @return [Hash, Nil] Bounce data list and message/rfc822
36
- # part or nil if it failed to parse or
37
- # the arguments are missing
19
+ # @param [Hash] mhead Message headers of a bounce email
20
+ # @param [String] mbody Message body of a bounce email
21
+ # @return [Hash] Bounce data list and message/rfc822 part
22
+ # @return [Nil] it failed to parse or the arguments are missing
38
23
  def make(mhead, mbody)
39
- # :from => %r/postmaster[@]/,
24
+ # X-Message-Delivery: Vj0xLjE7RD0wO0dEPTA7U0NMPTk7bD0xO3VzPTE=
25
+ # X-Message-Info: AuEzbeVr9u5fkDpn2vR5iCu5wb6HBeY4iruBjnutBzpStnUabbM...
40
26
  match = 0
41
27
  match += 1 if mhead['subject'].start_with?('Delivery Status Notification')
42
28
  match += 1 if mhead['x-message-delivery']
@@ -49,89 +35,66 @@ module Sisimai::Lhost
49
35
  permessage = {} # (Hash) Store values of each Per-Message field
50
36
 
51
37
  dscontents = [Sisimai::Lhost.DELIVERYSTATUS]
52
- hasdivided = mbody.split("\n")
53
- havepassed = ['']
54
- rfc822list = [] # (Array) Each line in message/rfc822 part string
55
- blanklines = 0 # (Integer) The number of blank lines
38
+ emailsteak = Sisimai::RFC5322.fillet(mbody, ReBackbone)
39
+ bodyslices = emailsteak[0].split("\n")
40
+ readslices = ['']
56
41
  readcursor = 0 # (Integer) Points the current cursor position
57
42
  recipients = 0 # (Integer) The number of 'Final-Recipient' header
58
43
  v = nil
59
44
 
60
- while e = hasdivided.shift do
61
- # Save the current line for the next loop
62
- havepassed << e
63
- p = havepassed[-2]
45
+ while e = bodyslices.shift do
46
+ # Read error messages and delivery status lines from the head of the email
47
+ # to the previous line of the beginning of the original message.
48
+ readslices << e # Save the current line for the next loop
64
49
 
65
50
  if readcursor == 0
66
51
  # Beginning of the bounce message or message/delivery-status part
67
- if e.start_with?(StartingOf[:message][0])
68
- readcursor |= Indicators[:deliverystatus]
69
- next
70
- end
52
+ readcursor |= Indicators[:deliverystatus] if e.start_with?(StartingOf[:message][0])
53
+ next
71
54
  end
72
-
73
- if (readcursor & Indicators[:'message-rfc822']) == 0
74
- # Beginning of the original message part(message/rfc822)
75
- if e == StartingOf[:rfc822][0]
76
- readcursor |= Indicators[:'message-rfc822']
77
- next
78
- end
79
- end
80
-
81
- if readcursor & Indicators[:'message-rfc822'] > 0
82
- # message/rfc822 OR text/rfc822-headers part
83
- if e.empty?
84
- blanklines += 1
85
- break if blanklines > 1
86
- next
87
- end
88
- rfc822list << e
89
- else
90
- # message/delivery-status part
91
- next if (readcursor & Indicators[:deliverystatus]) == 0
92
- next if e.empty?
93
-
94
- if f = Sisimai::RFC1894.match(e)
95
- # "e" matched with any field defined in RFC3464
96
- next unless o = Sisimai::RFC1894.field(e)
97
- v = dscontents[-1]
98
-
99
- if o[-1] == 'addr'
55
+ next if (readcursor & Indicators[:deliverystatus]) == 0
56
+ next if e.empty?
57
+
58
+ if f = Sisimai::RFC1894.match(e)
59
+ # "e" matched with any field defined in RFC3464
60
+ next unless o = Sisimai::RFC1894.field(e)
61
+ v = dscontents[-1]
62
+
63
+ if o[-1] == 'addr'
64
+ # Final-Recipient: rfc822; kijitora@example.jp
65
+ # X-Actual-Recipient: rfc822; kijitora@example.co.jp
66
+ if o[0] == 'final-recipient'
100
67
  # Final-Recipient: rfc822; kijitora@example.jp
101
- # X-Actual-Recipient: rfc822; kijitora@example.co.jp
102
- if o[0] == 'final-recipient'
103
- # Final-Recipient: rfc822; kijitora@example.jp
104
- if v['recipient']
105
- # There are multiple recipient addresses in the message body.
106
- dscontents << Sisimai::Lhost.DELIVERYSTATUS
107
- v = dscontents[-1]
108
- end
109
- v['recipient'] = o[2]
110
- recipients += 1
111
- else
112
- # X-Actual-Recipient: rfc822; kijitora@example.co.jp
113
- v['alias'] = o[2]
68
+ if v['recipient']
69
+ # There are multiple recipient addresses in the message body.
70
+ dscontents << Sisimai::Lhost.DELIVERYSTATUS
71
+ v = dscontents[-1]
114
72
  end
115
- elsif o[-1] == 'code'
116
- # Diagnostic-Code: SMTP; 550 5.1.1 <userunknown@example.jp>... User Unknown
117
- v['spec'] = o[1]
118
- v['diagnosis'] = o[2]
73
+ v['recipient'] = o[2]
74
+ recipients += 1
119
75
  else
120
- # Other DSN fields defined in RFC3464
121
- next unless fieldtable.key?(o[0])
122
- v[fieldtable[o[0]]] = o[2]
123
-
124
- next unless f == 1
125
- permessage[fieldtable[o[0]]] = o[2]
76
+ # X-Actual-Recipient: rfc822; kijitora@example.co.jp
77
+ v['alias'] = o[2]
126
78
  end
79
+ elsif o[-1] == 'code'
80
+ # Diagnostic-Code: SMTP; 550 5.1.1 <userunknown@example.jp>... User Unknown
81
+ v['spec'] = o[1]
82
+ v['diagnosis'] = o[2]
127
83
  else
128
- # Continued line of the value of Diagnostic-Code field
129
- next unless p.start_with?('Diagnostic-Code:')
130
- next unless cv = e.match(/\A[ \t]+(.+)\z/)
131
- v['diagnosis'] << ' ' << cv[1]
132
- havepassed[-1] = 'Diagnostic-Code: ' << e
84
+ # Other DSN fields defined in RFC3464
85
+ next unless fieldtable[o[0]]
86
+ v[fieldtable[o[0]]] = o[2]
87
+
88
+ next unless f == 1
89
+ permessage[fieldtable[o[0]]] = o[2]
133
90
  end
134
- end # End of message/delivery-status
91
+ else
92
+ # Continued line of the value of Diagnostic-Code field
93
+ next unless readslices[-2].start_with?('Diagnostic-Code:')
94
+ next unless cv = e.match(/\A[ \t]+(.+)\z/)
95
+ v['diagnosis'] << ' ' << cv[1]
96
+ readslices[-1] = 'Diagnostic-Code: ' << e
97
+ end
135
98
  end
136
99
  return nil unless recipients > 0
137
100
 
@@ -140,9 +103,7 @@ module Sisimai::Lhost
140
103
  e['lhost'] ||= permessage['rhost']
141
104
  permessage.each_key { |a| e[a] ||= permessage[a] || '' }
142
105
 
143
- e['agent'] = self.smtpagent
144
106
  e['diagnosis'] = Sisimai::String.sweep(e['diagnosis']) || ''
145
-
146
107
  if e['diagnosis'].empty?
147
108
  # No message in 'diagnosis'
148
109
  if e['action'] == 'delayed'
@@ -163,10 +124,9 @@ module Sisimai::Lhost
163
124
  end
164
125
  end
165
126
 
166
- rfc822part = Sisimai::RFC5322.weedout(rfc822list)
167
- return { 'ds' => dscontents, 'rfc822' => rfc822part }
127
+ return { 'ds' => dscontents, 'rfc822' => emailsteak[1] }
168
128
  end
169
-
129
+ def description; return 'Microsoft Outlook.com: https://www.outlook.com/'; end
170
130
  end
171
131
  end
172
132
  end