sisimai 4.25.5 → 4.25.6

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 (624) hide show
  1. checksums.yaml +4 -4
  2. data/ANALYTICAL-PRECISION +60 -56
  3. data/Benchmarks.mk +4 -2
  4. data/ChangeLog.md +78 -0
  5. data/README-JA.md +9 -9
  6. data/README.md +10 -9
  7. data/lib/sisimai.rb +5 -11
  8. data/lib/sisimai/arf.rb +17 -23
  9. data/lib/sisimai/data.rb +4 -4
  10. data/lib/sisimai/lhost.rb +25 -33
  11. data/lib/sisimai/lhost/activehunter.rb +6 -21
  12. data/lib/sisimai/lhost/amavis.rb +78 -20
  13. data/lib/sisimai/lhost/amazonses.rb +10 -24
  14. data/lib/sisimai/lhost/amazonworkmail.rb +8 -24
  15. data/lib/sisimai/lhost/aol.rb +15 -29
  16. data/lib/sisimai/lhost/apachejames.rb +6 -21
  17. data/lib/sisimai/lhost/barracuda.rb +94 -0
  18. data/lib/sisimai/lhost/bigfoot.rb +5 -17
  19. data/lib/sisimai/lhost/biglobe.rb +5 -16
  20. data/lib/sisimai/lhost/courier.rb +6 -19
  21. data/lib/sisimai/lhost/domino.rb +5 -17
  22. data/lib/sisimai/lhost/einsundeins.rb +5 -16
  23. data/lib/sisimai/lhost/exchange2003.rb +10 -19
  24. data/lib/sisimai/lhost/exchange2007.rb +16 -19
  25. data/lib/sisimai/lhost/exim.rb +9 -25
  26. data/lib/sisimai/lhost/ezweb.rb +5 -17
  27. data/lib/sisimai/lhost/facebook.rb +5 -16
  28. data/lib/sisimai/lhost/fml.rb +6 -18
  29. data/lib/sisimai/lhost/{google.rb → gmail.rb} +9 -21
  30. data/lib/sisimai/lhost/gmx.rb +9 -23
  31. data/lib/sisimai/lhost/googlegroups.rb +77 -0
  32. data/lib/sisimai/lhost/gsuite.rb +5 -17
  33. data/lib/sisimai/lhost/imailserver.rb +12 -24
  34. data/lib/sisimai/lhost/interscanmss.rb +11 -22
  35. data/lib/sisimai/lhost/kddi.rb +5 -16
  36. data/lib/sisimai/lhost/mailfoundry.rb +6 -21
  37. data/lib/sisimai/lhost/mailmarshalsmtp.rb +6 -21
  38. data/lib/sisimai/lhost/mailru.rb +5 -16
  39. data/lib/sisimai/lhost/mcafee.rb +6 -18
  40. data/lib/sisimai/lhost/messagelabs.rb +10 -22
  41. data/lib/sisimai/lhost/messagingserver.rb +5 -18
  42. data/lib/sisimai/lhost/mfilter.rb +7 -19
  43. data/lib/sisimai/lhost/mxlogic.rb +8 -21
  44. data/lib/sisimai/lhost/notes.rb +6 -18
  45. data/lib/sisimai/lhost/office365.rb +24 -34
  46. data/lib/sisimai/lhost/opensmtpd.rb +5 -19
  47. data/lib/sisimai/lhost/outlook.rb +7 -21
  48. data/lib/sisimai/lhost/postfix.rb +6 -17
  49. data/lib/sisimai/lhost/powermta.rb +120 -0
  50. data/lib/sisimai/lhost/qmail.rb +6 -17
  51. data/lib/sisimai/lhost/receivingses.rb +7 -22
  52. data/lib/sisimai/lhost/sendgrid.rb +7 -20
  53. data/lib/sisimai/lhost/sendmail.rb +6 -22
  54. data/lib/sisimai/lhost/surfcontrol.rb +9 -25
  55. data/lib/sisimai/lhost/v5sendmail.rb +5 -18
  56. data/lib/sisimai/lhost/verizon.rb +5 -17
  57. data/lib/sisimai/lhost/x1.rb +7 -19
  58. data/lib/sisimai/lhost/x2.rb +8 -23
  59. data/lib/sisimai/lhost/x3.rb +7 -19
  60. data/lib/sisimai/lhost/x4.rb +7 -19
  61. data/lib/sisimai/lhost/x5.rb +8 -23
  62. data/lib/sisimai/lhost/x6.rb +74 -0
  63. data/lib/sisimai/lhost/yahoo.rb +11 -24
  64. data/lib/sisimai/lhost/yandex.rb +14 -26
  65. data/lib/sisimai/lhost/zoho.rb +8 -28
  66. data/lib/sisimai/mail.rb +35 -20
  67. data/lib/sisimai/mail/maildir.rb +27 -28
  68. data/lib/sisimai/mail/memory.rb +18 -16
  69. data/lib/sisimai/mail/stdin.rb +5 -5
  70. data/lib/sisimai/mda.rb +4 -10
  71. data/lib/sisimai/message.rb +97 -231
  72. data/lib/sisimai/mime.rb +26 -31
  73. data/lib/sisimai/order.rb +149 -183
  74. data/lib/sisimai/reason.rb +25 -14
  75. data/lib/sisimai/reason/rejected.rb +1 -0
  76. data/lib/sisimai/reason/userunknown.rb +12 -5
  77. data/lib/sisimai/rfc3464.rb +6 -23
  78. data/lib/sisimai/rfc3834.rb +5 -18
  79. data/lib/sisimai/rhost/exchangeonline.rb +25 -22
  80. data/lib/sisimai/smtp.rb +0 -13
  81. data/lib/sisimai/string.rb +3 -11
  82. data/lib/sisimai/version.rb +1 -1
  83. data/set-of-emails/maildir/bsd/arf-24.eml +50 -0
  84. data/set-of-emails/maildir/bsd/{email-activehunter-01.eml → lhost-activehunter-01.eml} +0 -0
  85. data/set-of-emails/maildir/bsd/{email-activehunter-02.eml → lhost-activehunter-02.eml} +0 -0
  86. data/set-of-emails/maildir/bsd/{email-amavis-01.eml → lhost-amavis-01.eml} +0 -0
  87. data/set-of-emails/maildir/bsd/{email-amavis-02.eml → lhost-amavis-02.eml} +0 -0
  88. data/set-of-emails/maildir/bsd/lhost-amavis-03.eml +90 -0
  89. data/set-of-emails/maildir/bsd/{email-amazonses-01.eml → lhost-amazonses-01.eml} +0 -0
  90. data/set-of-emails/maildir/bsd/{email-amazonses-02.eml → lhost-amazonses-02.eml} +0 -0
  91. data/set-of-emails/maildir/bsd/{email-amazonses-03.eml → lhost-amazonses-03.eml} +0 -0
  92. data/set-of-emails/maildir/bsd/{email-amazonses-05.eml → lhost-amazonses-05.eml} +0 -0
  93. data/set-of-emails/maildir/bsd/{email-amazonses-06.eml → lhost-amazonses-06.eml} +0 -0
  94. data/set-of-emails/maildir/bsd/{email-amazonses-07.eml → lhost-amazonses-07.eml} +0 -0
  95. data/set-of-emails/maildir/bsd/{email-amazonses-08.eml → lhost-amazonses-08.eml} +0 -0
  96. data/set-of-emails/maildir/bsd/{email-amazonses-09.eml → lhost-amazonses-09.eml} +0 -0
  97. data/set-of-emails/maildir/bsd/{email-amazonses-10.eml → lhost-amazonses-10.eml} +0 -0
  98. data/set-of-emails/maildir/bsd/{email-amazonses-11.eml → lhost-amazonses-11.eml} +0 -0
  99. data/set-of-emails/maildir/bsd/{email-amazonses-12.eml → lhost-amazonses-12.eml} +0 -0
  100. data/set-of-emails/maildir/bsd/{email-amazonses-13.eml → lhost-amazonses-13.eml} +0 -0
  101. data/set-of-emails/maildir/bsd/{email-amazonses-14.eml → lhost-amazonses-14.eml} +0 -0
  102. data/set-of-emails/maildir/bsd/{email-amazonses-15.eml → lhost-amazonses-15.eml} +0 -0
  103. data/set-of-emails/maildir/bsd/{email-amazonses-16.eml → lhost-amazonses-16.eml} +0 -0
  104. data/set-of-emails/maildir/bsd/{email-amazonses-17.eml → lhost-amazonses-17.eml} +0 -0
  105. data/set-of-emails/maildir/bsd/{email-amazonses-18.eml → lhost-amazonses-18.eml} +0 -0
  106. data/set-of-emails/maildir/bsd/{email-amazonses-19.eml → lhost-amazonses-19.eml} +0 -0
  107. data/set-of-emails/maildir/bsd/{email-amazonses-20.eml → lhost-amazonses-20.eml} +0 -0
  108. data/set-of-emails/maildir/bsd/{email-amazonses-21.eml → lhost-amazonses-21.eml} +0 -0
  109. data/set-of-emails/maildir/bsd/{email-amazonworkmail-01.eml → lhost-amazonworkmail-01.eml} +0 -0
  110. data/set-of-emails/maildir/bsd/{email-amazonworkmail-02.eml → lhost-amazonworkmail-02.eml} +0 -0
  111. data/set-of-emails/maildir/bsd/{email-amazonworkmail-03.eml → lhost-amazonworkmail-03.eml} +0 -0
  112. data/set-of-emails/maildir/bsd/{email-amazonworkmail-04.eml → lhost-amazonworkmail-04.eml} +0 -0
  113. data/set-of-emails/maildir/bsd/{email-amazonworkmail-05.eml → lhost-amazonworkmail-05.eml} +0 -0
  114. data/set-of-emails/maildir/bsd/{email-amazonworkmail-07.eml → lhost-amazonworkmail-07.eml} +0 -0
  115. data/set-of-emails/maildir/bsd/{email-amazonworkmail-08.eml → lhost-amazonworkmail-08.eml} +0 -0
  116. data/set-of-emails/maildir/bsd/{email-aol-01.eml → lhost-aol-01.eml} +0 -0
  117. data/set-of-emails/maildir/bsd/{email-aol-02.eml → lhost-aol-02.eml} +0 -0
  118. data/set-of-emails/maildir/bsd/{email-aol-03.eml → lhost-aol-03.eml} +0 -0
  119. data/set-of-emails/maildir/bsd/{email-aol-04.eml → lhost-aol-04.eml} +0 -0
  120. data/set-of-emails/maildir/bsd/{email-aol-05.eml → lhost-aol-05.eml} +0 -0
  121. data/set-of-emails/maildir/bsd/{email-aol-06.eml → lhost-aol-06.eml} +0 -0
  122. data/set-of-emails/maildir/bsd/{email-apachejames-01.eml → lhost-apachejames-01.eml} +0 -0
  123. data/set-of-emails/maildir/bsd/lhost-barracuda-01.eml +67 -0
  124. data/set-of-emails/maildir/bsd/lhost-barracuda-02.eml +71 -0
  125. data/set-of-emails/maildir/bsd/{email-bigfoot-02.eml → lhost-bigfoot-02.eml} +0 -0
  126. data/set-of-emails/maildir/bsd/{email-biglobe-01.eml → lhost-biglobe-01.eml} +0 -0
  127. data/set-of-emails/maildir/bsd/{email-courier-01.eml → lhost-courier-01.eml} +0 -0
  128. data/set-of-emails/maildir/bsd/{email-courier-02.eml → lhost-courier-02.eml} +0 -0
  129. data/set-of-emails/maildir/bsd/{email-courier-03.eml → lhost-courier-03.eml} +0 -0
  130. data/set-of-emails/maildir/bsd/{email-courier-04.eml → lhost-courier-04.eml} +0 -0
  131. data/set-of-emails/maildir/bsd/{email-domino-01.eml → lhost-domino-01.eml} +0 -0
  132. data/set-of-emails/maildir/bsd/{email-domino-02.eml → lhost-domino-02.eml} +0 -0
  133. data/set-of-emails/maildir/bsd/{email-domino-03.eml → lhost-domino-03.eml} +0 -0
  134. data/set-of-emails/maildir/bsd/{email-einsundeins-02.eml → lhost-einsundeins-02.eml} +0 -0
  135. data/set-of-emails/maildir/bsd/{email-einsundeins-03.eml → lhost-einsundeins-03.eml} +0 -0
  136. data/set-of-emails/maildir/bsd/{email-exchange2003-01.eml → lhost-exchange2003-01.eml} +0 -0
  137. data/set-of-emails/maildir/bsd/{email-exchange2003-02.eml → lhost-exchange2003-02.eml} +0 -0
  138. data/set-of-emails/maildir/bsd/{email-exchange2003-03.eml → lhost-exchange2003-03.eml} +0 -0
  139. data/set-of-emails/maildir/bsd/{email-exchange2003-04.eml → lhost-exchange2003-04.eml} +0 -0
  140. data/set-of-emails/maildir/bsd/{email-exchange2003-05.eml → lhost-exchange2003-05.eml} +0 -0
  141. data/set-of-emails/maildir/bsd/{email-exchange2003-07.eml → lhost-exchange2003-07.eml} +0 -0
  142. data/set-of-emails/maildir/bsd/{email-exchange2007-01.eml → lhost-exchange2007-01.eml} +0 -0
  143. data/set-of-emails/maildir/bsd/{email-exchange2007-02.eml → lhost-exchange2007-02.eml} +0 -0
  144. data/set-of-emails/maildir/bsd/{email-exchange2007-03.eml → lhost-exchange2007-03.eml} +0 -0
  145. data/set-of-emails/maildir/bsd/{email-exchange2007-04.eml → lhost-exchange2007-04.eml} +0 -0
  146. data/set-of-emails/maildir/bsd/{email-exchange2007-05.eml → lhost-exchange2007-05.eml} +0 -0
  147. data/set-of-emails/maildir/bsd/{email-exchange2007-06.eml → lhost-exchange2007-06.eml} +0 -0
  148. data/set-of-emails/maildir/bsd/lhost-exchange2007-07.eml +128 -0
  149. data/set-of-emails/maildir/bsd/{email-exim-01.eml → lhost-exim-01.eml} +0 -0
  150. data/set-of-emails/maildir/bsd/{email-exim-02.eml → lhost-exim-02.eml} +0 -0
  151. data/set-of-emails/maildir/bsd/{email-exim-03.eml → lhost-exim-03.eml} +0 -0
  152. data/set-of-emails/maildir/bsd/{email-exim-04.eml → lhost-exim-04.eml} +0 -0
  153. data/set-of-emails/maildir/bsd/{email-exim-05.eml → lhost-exim-05.eml} +0 -0
  154. data/set-of-emails/maildir/bsd/{email-exim-06.eml → lhost-exim-06.eml} +0 -0
  155. data/set-of-emails/maildir/bsd/{email-exim-07.eml → lhost-exim-07.eml} +0 -0
  156. data/set-of-emails/maildir/bsd/{email-exim-08.eml → lhost-exim-08.eml} +0 -0
  157. data/set-of-emails/maildir/bsd/{email-exim-29.eml → lhost-exim-29.eml} +0 -0
  158. data/set-of-emails/maildir/bsd/{email-exim-30.eml → lhost-exim-30.eml} +0 -0
  159. data/set-of-emails/maildir/bsd/{email-exim-31.eml → lhost-exim-31.eml} +0 -0
  160. data/set-of-emails/maildir/bsd/{email-exim-32.eml → lhost-exim-32.eml} +0 -0
  161. data/set-of-emails/maildir/bsd/{email-exim-33.eml → lhost-exim-33.eml} +0 -0
  162. data/set-of-emails/maildir/bsd/{email-exim-34.eml → lhost-exim-34.eml} +0 -0
  163. data/set-of-emails/maildir/bsd/{email-exim-35.eml → lhost-exim-35.eml} +0 -0
  164. data/set-of-emails/maildir/bsd/{email-exim-36.eml → lhost-exim-36.eml} +0 -0
  165. data/set-of-emails/maildir/bsd/{email-exim-37.eml → lhost-exim-37.eml} +0 -0
  166. data/set-of-emails/maildir/bsd/{email-exim-38.eml → lhost-exim-38.eml} +0 -0
  167. data/set-of-emails/maildir/bsd/{email-exim-39.eml → lhost-exim-39.eml} +0 -0
  168. data/set-of-emails/maildir/bsd/{email-exim-40.eml → lhost-exim-40.eml} +0 -0
  169. data/set-of-emails/maildir/bsd/{email-exim-41.eml → lhost-exim-41.eml} +0 -0
  170. data/set-of-emails/maildir/bsd/{email-exim-42.eml → lhost-exim-42.eml} +0 -0
  171. data/set-of-emails/maildir/bsd/{email-exim-43.eml → lhost-exim-43.eml} +0 -0
  172. data/set-of-emails/maildir/bsd/{email-exim-44.eml → lhost-exim-44.eml} +0 -0
  173. data/set-of-emails/maildir/bsd/{email-exim-45.eml → lhost-exim-45.eml} +0 -0
  174. data/set-of-emails/maildir/bsd/{email-exim-46.eml → lhost-exim-46.eml} +0 -0
  175. data/set-of-emails/maildir/bsd/{email-exim-47.eml → lhost-exim-47.eml} +0 -0
  176. data/set-of-emails/maildir/bsd/{email-exim-48.eml → lhost-exim-48.eml} +0 -0
  177. data/set-of-emails/maildir/bsd/{email-exim-49.eml → lhost-exim-49.eml} +0 -0
  178. data/set-of-emails/maildir/bsd/{email-exim-50.eml → lhost-exim-50.eml} +0 -0
  179. data/set-of-emails/maildir/bsd/{email-exim-51.eml → lhost-exim-51.eml} +0 -0
  180. data/set-of-emails/maildir/bsd/{email-exim-52.eml → lhost-exim-52.eml} +0 -0
  181. data/set-of-emails/maildir/bsd/{email-exim-53.eml → lhost-exim-53.eml} +0 -0
  182. data/set-of-emails/maildir/bsd/{email-exim-54.eml → lhost-exim-54.eml} +0 -0
  183. data/set-of-emails/maildir/bsd/{email-exim-55.eml → lhost-exim-55.eml} +0 -0
  184. data/set-of-emails/maildir/bsd/{email-exim-56.eml → lhost-exim-56.eml} +0 -0
  185. data/set-of-emails/maildir/bsd/{email-exim-57.eml → lhost-exim-57.eml} +0 -0
  186. data/set-of-emails/maildir/bsd/{email-exim-58.eml → lhost-exim-58.eml} +0 -0
  187. data/set-of-emails/maildir/bsd/{email-exim-59.eml → lhost-exim-59.eml} +0 -0
  188. data/set-of-emails/maildir/bsd/{email-exim-60.eml → lhost-exim-60.eml} +0 -0
  189. data/set-of-emails/maildir/bsd/{email-ezweb-01.eml → lhost-ezweb-01.eml} +0 -0
  190. data/set-of-emails/maildir/bsd/{email-ezweb-02.eml → lhost-ezweb-02.eml} +0 -0
  191. data/set-of-emails/maildir/bsd/{email-ezweb-03.eml → lhost-ezweb-03.eml} +0 -0
  192. data/set-of-emails/maildir/bsd/{email-ezweb-04.eml → lhost-ezweb-04.eml} +0 -0
  193. data/set-of-emails/maildir/bsd/{email-ezweb-05.eml → lhost-ezweb-05.eml} +0 -0
  194. data/set-of-emails/maildir/bsd/{email-ezweb-07.eml → lhost-ezweb-07.eml} +0 -0
  195. data/set-of-emails/maildir/bsd/{email-ezweb-08.eml → lhost-ezweb-08.eml} +0 -0
  196. data/set-of-emails/maildir/bsd/{email-facebook-03.eml → lhost-facebook-03.eml} +0 -0
  197. data/set-of-emails/maildir/bsd/{email-facebook-04.eml → lhost-facebook-04.eml} +0 -0
  198. data/set-of-emails/maildir/bsd/{email-fml-02.eml → lhost-fml-02.eml} +0 -0
  199. data/set-of-emails/maildir/bsd/{email-fml-03.eml → lhost-fml-03.eml} +0 -0
  200. data/set-of-emails/maildir/bsd/{email-google-01.eml → lhost-gmail-01.eml} +0 -0
  201. data/set-of-emails/maildir/bsd/{email-google-03.eml → lhost-gmail-03.eml} +0 -0
  202. data/set-of-emails/maildir/bsd/{email-google-04.eml → lhost-gmail-04.eml} +0 -0
  203. data/set-of-emails/maildir/bsd/{email-google-05.eml → lhost-gmail-05.eml} +0 -0
  204. data/set-of-emails/maildir/bsd/{email-google-06.eml → lhost-gmail-06.eml} +0 -0
  205. data/set-of-emails/maildir/bsd/{email-google-07.eml → lhost-gmail-07.eml} +0 -0
  206. data/set-of-emails/maildir/bsd/{email-google-08.eml → lhost-gmail-08.eml} +0 -0
  207. data/set-of-emails/maildir/bsd/{email-google-09.eml → lhost-gmail-09.eml} +0 -0
  208. data/set-of-emails/maildir/bsd/{email-google-10.eml → lhost-gmail-10.eml} +0 -0
  209. data/set-of-emails/maildir/bsd/{email-google-11.eml → lhost-gmail-11.eml} +0 -0
  210. data/set-of-emails/maildir/bsd/{email-google-15.eml → lhost-gmail-15.eml} +0 -0
  211. data/set-of-emails/maildir/bsd/{email-google-16.eml → lhost-gmail-16.eml} +0 -0
  212. data/set-of-emails/maildir/bsd/{email-google-17.eml → lhost-gmail-17.eml} +0 -0
  213. data/set-of-emails/maildir/bsd/{email-google-18.eml → lhost-gmail-18.eml} +0 -0
  214. data/set-of-emails/maildir/bsd/{email-google-19.eml → lhost-gmail-19.eml} +0 -0
  215. data/set-of-emails/maildir/bsd/{email-gmx-01.eml → lhost-gmx-01.eml} +0 -0
  216. data/set-of-emails/maildir/bsd/{email-gmx-02.eml → lhost-gmx-02.eml} +0 -0
  217. data/set-of-emails/maildir/bsd/{email-gmx-03.eml → lhost-gmx-03.eml} +0 -0
  218. data/set-of-emails/maildir/bsd/{email-gmx-04.eml → lhost-gmx-04.eml} +0 -0
  219. data/set-of-emails/maildir/bsd/lhost-googlegroups-01.eml +116 -0
  220. data/set-of-emails/maildir/bsd/lhost-googlegroups-02.eml +114 -0
  221. data/set-of-emails/maildir/bsd/lhost-googlegroups-03.eml +116 -0
  222. data/set-of-emails/maildir/bsd/lhost-googlegroups-04.eml +116 -0
  223. data/set-of-emails/maildir/bsd/lhost-googlegroups-05.eml +116 -0
  224. data/set-of-emails/maildir/bsd/lhost-googlegroups-06.eml +116 -0
  225. data/set-of-emails/maildir/bsd/lhost-googlegroups-07.eml +116 -0
  226. data/set-of-emails/maildir/bsd/lhost-googlegroups-08.eml +115 -0
  227. data/set-of-emails/maildir/bsd/lhost-googlegroups-09.eml +116 -0
  228. data/set-of-emails/maildir/bsd/lhost-googlegroups-10.eml +116 -0
  229. data/set-of-emails/maildir/bsd/lhost-googlegroups-11.eml +116 -0
  230. data/set-of-emails/maildir/bsd/lhost-googlegroups-12.eml +116 -0
  231. data/set-of-emails/maildir/bsd/lhost-googlegroups-13.eml +115 -0
  232. data/set-of-emails/maildir/bsd/lhost-googlegroups-14.eml +127 -0
  233. data/set-of-emails/maildir/bsd/{email-gsuite-01.eml → lhost-gsuite-01.eml} +0 -0
  234. data/set-of-emails/maildir/bsd/{email-gsuite-02.eml → lhost-gsuite-02.eml} +0 -0
  235. data/set-of-emails/maildir/bsd/{email-gsuite-03.eml → lhost-gsuite-03.eml} +0 -0
  236. data/set-of-emails/maildir/bsd/{email-gsuite-04.eml → lhost-gsuite-04.eml} +0 -0
  237. data/set-of-emails/maildir/bsd/{email-gsuite-05.eml → lhost-gsuite-05.eml} +0 -0
  238. data/set-of-emails/maildir/bsd/{email-gsuite-06.eml → lhost-gsuite-06.eml} +0 -0
  239. data/set-of-emails/maildir/bsd/{email-gsuite-07.eml → lhost-gsuite-07.eml} +0 -0
  240. data/set-of-emails/maildir/bsd/{email-gsuite-08.eml → lhost-gsuite-08.eml} +0 -0
  241. data/set-of-emails/maildir/bsd/{email-gsuite-09.eml → lhost-gsuite-09.eml} +0 -0
  242. data/set-of-emails/maildir/bsd/{email-gsuite-10.eml → lhost-gsuite-10.eml} +0 -0
  243. data/set-of-emails/maildir/bsd/{email-gsuite-11.eml → lhost-gsuite-11.eml} +0 -0
  244. data/set-of-emails/maildir/bsd/{email-gsuite-12.eml → lhost-gsuite-12.eml} +0 -0
  245. data/set-of-emails/maildir/bsd/{email-gsuite-13.eml → lhost-gsuite-13.eml} +0 -0
  246. data/set-of-emails/maildir/bsd/lhost-gsuite-14.eml +273 -0
  247. data/set-of-emails/maildir/bsd/{email-imailserver-01.eml → lhost-imailserver-01.eml} +0 -0
  248. data/set-of-emails/maildir/bsd/{email-imailserver-02.eml → lhost-imailserver-02.eml} +0 -0
  249. data/set-of-emails/maildir/bsd/{email-imailserver-03.eml → lhost-imailserver-03.eml} +0 -0
  250. data/set-of-emails/maildir/bsd/{email-imailserver-04.eml → lhost-imailserver-04.eml} +0 -0
  251. data/set-of-emails/maildir/bsd/{email-imailserver-06.eml → lhost-imailserver-06.eml} +0 -0
  252. data/set-of-emails/maildir/bsd/{email-interscanmss-01.eml → lhost-interscanmss-01.eml} +0 -0
  253. data/set-of-emails/maildir/bsd/lhost-interscanmss-02.eml +70 -0
  254. data/set-of-emails/maildir/bsd/lhost-interscanmss-03.eml +73 -0
  255. data/set-of-emails/maildir/bsd/{email-kddi-01.eml → lhost-kddi-01.eml} +0 -0
  256. data/set-of-emails/maildir/bsd/{email-kddi-02.eml → lhost-kddi-02.eml} +0 -0
  257. data/set-of-emails/maildir/bsd/{email-kddi-03.eml → lhost-kddi-03.eml} +0 -0
  258. data/set-of-emails/maildir/bsd/{email-mailfoundry-01.eml → lhost-mailfoundry-01.eml} +0 -0
  259. data/set-of-emails/maildir/bsd/{email-mailfoundry-02.eml → lhost-mailfoundry-02.eml} +0 -0
  260. data/set-of-emails/maildir/bsd/{email-mailmarshalsmtp-02.eml → lhost-mailmarshalsmtp-02.eml} +0 -0
  261. data/set-of-emails/maildir/bsd/{email-mailru-01.eml → lhost-mailru-01.eml} +0 -0
  262. data/set-of-emails/maildir/bsd/{email-mailru-02.eml → lhost-mailru-02.eml} +0 -0
  263. data/set-of-emails/maildir/bsd/{email-mailru-03.eml → lhost-mailru-03.eml} +0 -0
  264. data/set-of-emails/maildir/bsd/{email-mailru-04.eml → lhost-mailru-04.eml} +0 -0
  265. data/set-of-emails/maildir/bsd/{email-mailru-05.eml → lhost-mailru-05.eml} +0 -0
  266. data/set-of-emails/maildir/bsd/{email-mailru-06.eml → lhost-mailru-06.eml} +0 -0
  267. data/set-of-emails/maildir/bsd/{email-mailru-07.eml → lhost-mailru-07.eml} +0 -0
  268. data/set-of-emails/maildir/bsd/{email-mailru-08.eml → lhost-mailru-08.eml} +0 -0
  269. data/set-of-emails/maildir/bsd/{email-mailru-09.eml → lhost-mailru-09.eml} +0 -0
  270. data/set-of-emails/maildir/bsd/{email-mailru-10.eml → lhost-mailru-10.eml} +0 -0
  271. data/set-of-emails/maildir/bsd/{email-mcafee-01.eml → lhost-mcafee-01.eml} +0 -0
  272. data/set-of-emails/maildir/bsd/{email-mcafee-02.eml → lhost-mcafee-02.eml} +0 -0
  273. data/set-of-emails/maildir/bsd/{email-mcafee-03.eml → lhost-mcafee-03.eml} +0 -0
  274. data/set-of-emails/maildir/bsd/{email-mcafee-04.eml → lhost-mcafee-04.eml} +0 -0
  275. data/set-of-emails/maildir/bsd/{email-mcafee-05.eml → lhost-mcafee-05.eml} +0 -0
  276. data/set-of-emails/maildir/bsd/{email-messagelabs-01.eml → lhost-messagelabs-01.eml} +0 -0
  277. data/set-of-emails/maildir/bsd/{email-messagelabs-02.eml → lhost-messagelabs-02.eml} +0 -0
  278. data/set-of-emails/maildir/bsd/{email-messagelabs-03.eml → lhost-messagelabs-03.eml} +0 -0
  279. data/set-of-emails/maildir/bsd/{email-messagingserver-01.eml → lhost-messagingserver-01.eml} +0 -0
  280. data/set-of-emails/maildir/bsd/{email-messagingserver-02.eml → lhost-messagingserver-02.eml} +0 -0
  281. data/set-of-emails/maildir/bsd/{email-messagingserver-03.eml → lhost-messagingserver-03.eml} +0 -0
  282. data/set-of-emails/maildir/bsd/{email-messagingserver-04.eml → lhost-messagingserver-04.eml} +0 -0
  283. data/set-of-emails/maildir/bsd/{email-messagingserver-05.eml → lhost-messagingserver-05.eml} +0 -0
  284. data/set-of-emails/maildir/bsd/{email-messagingserver-06.eml → lhost-messagingserver-06.eml} +0 -0
  285. data/set-of-emails/maildir/bsd/{email-messagingserver-07.eml → lhost-messagingserver-07.eml} +0 -0
  286. data/set-of-emails/maildir/bsd/{email-messagingserver-08.eml → lhost-messagingserver-08.eml} +0 -0
  287. data/set-of-emails/maildir/bsd/{email-messagingserver-09.eml → lhost-messagingserver-09.eml} +0 -0
  288. data/set-of-emails/maildir/bsd/{email-messagingserver-10.eml → lhost-messagingserver-10.eml} +0 -0
  289. data/set-of-emails/maildir/bsd/{email-messagingserver-11.eml → lhost-messagingserver-11.eml} +0 -0
  290. data/set-of-emails/maildir/bsd/{email-messagingserver-12.eml → lhost-messagingserver-12.eml} +0 -0
  291. data/set-of-emails/maildir/bsd/{email-mfilter-01.eml → lhost-mfilter-01.eml} +0 -0
  292. data/set-of-emails/maildir/bsd/{email-mfilter-02.eml → lhost-mfilter-02.eml} +0 -0
  293. data/set-of-emails/maildir/bsd/{email-mfilter-03.eml → lhost-mfilter-03.eml} +0 -0
  294. data/set-of-emails/maildir/bsd/{email-mfilter-04.eml → lhost-mfilter-04.eml} +0 -0
  295. data/set-of-emails/maildir/bsd/{email-mxlogic-01.eml → lhost-mxlogic-01.eml} +0 -0
  296. data/set-of-emails/maildir/bsd/{email-mxlogic-02.eml → lhost-mxlogic-02.eml} +0 -0
  297. data/set-of-emails/maildir/bsd/{email-mxlogic-03.eml → lhost-mxlogic-03.eml} +0 -0
  298. data/set-of-emails/maildir/bsd/{email-notes-01.eml → lhost-notes-01.eml} +0 -0
  299. data/set-of-emails/maildir/bsd/{email-notes-02.eml → lhost-notes-02.eml} +0 -0
  300. data/set-of-emails/maildir/bsd/{email-notes-03.eml → lhost-notes-03.eml} +0 -0
  301. data/set-of-emails/maildir/bsd/{email-office365-01.eml → lhost-office365-01.eml} +0 -0
  302. data/set-of-emails/maildir/bsd/{email-office365-02.eml → lhost-office365-02.eml} +0 -0
  303. data/set-of-emails/maildir/bsd/{email-office365-03.eml → lhost-office365-03.eml} +0 -0
  304. data/set-of-emails/maildir/bsd/{email-office365-04.eml → lhost-office365-04.eml} +0 -0
  305. data/set-of-emails/maildir/bsd/{email-office365-05.eml → lhost-office365-05.eml} +0 -0
  306. data/set-of-emails/maildir/bsd/{email-office365-06.eml → lhost-office365-06.eml} +0 -0
  307. data/set-of-emails/maildir/bsd/{email-office365-07.eml → lhost-office365-07.eml} +0 -0
  308. data/set-of-emails/maildir/bsd/{email-office365-08.eml → lhost-office365-08.eml} +0 -0
  309. data/set-of-emails/maildir/bsd/{email-office365-09.eml → lhost-office365-09.eml} +0 -0
  310. data/set-of-emails/maildir/bsd/{email-office365-10.eml → lhost-office365-10.eml} +0 -0
  311. data/set-of-emails/maildir/bsd/{email-office365-11.eml → lhost-office365-11.eml} +0 -0
  312. data/set-of-emails/maildir/bsd/{email-office365-12.eml → lhost-office365-12.eml} +0 -0
  313. data/set-of-emails/maildir/bsd/lhost-office365-13.eml +259 -0
  314. data/set-of-emails/maildir/bsd/{email-opensmtpd-01.eml → lhost-opensmtpd-01.eml} +0 -0
  315. data/set-of-emails/maildir/bsd/{email-opensmtpd-02.eml → lhost-opensmtpd-02.eml} +0 -0
  316. data/set-of-emails/maildir/bsd/{email-opensmtpd-03.eml → lhost-opensmtpd-03.eml} +0 -0
  317. data/set-of-emails/maildir/bsd/{email-opensmtpd-04.eml → lhost-opensmtpd-04.eml} +0 -0
  318. data/set-of-emails/maildir/bsd/{email-opensmtpd-05.eml → lhost-opensmtpd-05.eml} +0 -0
  319. data/set-of-emails/maildir/bsd/{email-opensmtpd-06.eml → lhost-opensmtpd-06.eml} +0 -0
  320. data/set-of-emails/maildir/bsd/{email-outlook-01.eml → lhost-outlook-01.eml} +0 -0
  321. data/set-of-emails/maildir/bsd/{email-outlook-02.eml → lhost-outlook-02.eml} +0 -0
  322. data/set-of-emails/maildir/bsd/{email-outlook-03.eml → lhost-outlook-03.eml} +0 -0
  323. data/set-of-emails/maildir/bsd/{email-outlook-04.eml → lhost-outlook-04.eml} +0 -0
  324. data/set-of-emails/maildir/bsd/{email-outlook-06.eml → lhost-outlook-06.eml} +0 -0
  325. data/set-of-emails/maildir/bsd/{email-outlook-07.eml → lhost-outlook-07.eml} +0 -0
  326. data/set-of-emails/maildir/bsd/{email-outlook-08.eml → lhost-outlook-08.eml} +0 -0
  327. data/set-of-emails/maildir/bsd/{email-outlook-09.eml → lhost-outlook-09.eml} +0 -0
  328. data/set-of-emails/maildir/bsd/{email-postfix-01.eml → lhost-postfix-01.eml} +0 -0
  329. data/set-of-emails/maildir/bsd/{email-postfix-02.eml → lhost-postfix-02.eml} +0 -0
  330. data/set-of-emails/maildir/bsd/{email-postfix-03.eml → lhost-postfix-03.eml} +0 -0
  331. data/set-of-emails/maildir/bsd/{email-postfix-04.eml → lhost-postfix-04.eml} +0 -0
  332. data/set-of-emails/maildir/bsd/{email-postfix-05.eml → lhost-postfix-05.eml} +0 -0
  333. data/set-of-emails/maildir/bsd/{email-postfix-06.eml → lhost-postfix-06.eml} +0 -0
  334. data/set-of-emails/maildir/bsd/{email-postfix-07.eml → lhost-postfix-07.eml} +0 -0
  335. data/set-of-emails/maildir/bsd/{email-postfix-08.eml → lhost-postfix-08.eml} +0 -0
  336. data/set-of-emails/maildir/bsd/{email-postfix-09.eml → lhost-postfix-09.eml} +0 -0
  337. data/set-of-emails/maildir/bsd/{email-postfix-10.eml → lhost-postfix-10.eml} +0 -0
  338. data/set-of-emails/maildir/bsd/{email-postfix-11.eml → lhost-postfix-11.eml} +0 -0
  339. data/set-of-emails/maildir/bsd/{email-postfix-13.eml → lhost-postfix-13.eml} +0 -0
  340. data/set-of-emails/maildir/bsd/{email-postfix-14.eml → lhost-postfix-14.eml} +0 -0
  341. data/set-of-emails/maildir/bsd/{email-postfix-15.eml → lhost-postfix-15.eml} +0 -0
  342. data/set-of-emails/maildir/bsd/{email-postfix-16.eml → lhost-postfix-16.eml} +0 -0
  343. data/set-of-emails/maildir/bsd/{email-postfix-17.eml → lhost-postfix-17.eml} +0 -0
  344. data/set-of-emails/maildir/bsd/{email-postfix-28.eml → lhost-postfix-28.eml} +0 -0
  345. data/set-of-emails/maildir/bsd/{email-postfix-29.eml → lhost-postfix-29.eml} +0 -0
  346. data/set-of-emails/maildir/bsd/{email-postfix-30.eml → lhost-postfix-30.eml} +0 -0
  347. data/set-of-emails/maildir/bsd/{email-postfix-31.eml → lhost-postfix-31.eml} +0 -0
  348. data/set-of-emails/maildir/bsd/{email-postfix-32.eml → lhost-postfix-32.eml} +0 -0
  349. data/set-of-emails/maildir/bsd/{email-postfix-33.eml → lhost-postfix-33.eml} +0 -0
  350. data/set-of-emails/maildir/bsd/{email-postfix-34.eml → lhost-postfix-34.eml} +0 -0
  351. data/set-of-emails/maildir/bsd/{email-postfix-35.eml → lhost-postfix-35.eml} +0 -0
  352. data/set-of-emails/maildir/bsd/{email-postfix-36.eml → lhost-postfix-36.eml} +0 -0
  353. data/set-of-emails/maildir/bsd/{email-postfix-37.eml → lhost-postfix-37.eml} +0 -0
  354. data/set-of-emails/maildir/bsd/{email-postfix-38.eml → lhost-postfix-38.eml} +0 -0
  355. data/set-of-emails/maildir/bsd/{email-postfix-39.eml → lhost-postfix-39.eml} +0 -0
  356. data/set-of-emails/maildir/bsd/{email-postfix-40.eml → lhost-postfix-40.eml} +0 -0
  357. data/set-of-emails/maildir/bsd/{email-postfix-41.eml → lhost-postfix-41.eml} +0 -0
  358. data/set-of-emails/maildir/bsd/{email-postfix-42.eml → lhost-postfix-42.eml} +0 -0
  359. data/set-of-emails/maildir/bsd/{email-postfix-43.eml → lhost-postfix-43.eml} +0 -0
  360. data/set-of-emails/maildir/bsd/{email-postfix-44.eml → lhost-postfix-44.eml} +0 -0
  361. data/set-of-emails/maildir/bsd/{email-postfix-45.eml → lhost-postfix-45.eml} +0 -0
  362. data/set-of-emails/maildir/bsd/{email-postfix-46.eml → lhost-postfix-46.eml} +0 -0
  363. data/set-of-emails/maildir/bsd/{email-postfix-47.eml → lhost-postfix-47.eml} +0 -0
  364. data/set-of-emails/maildir/bsd/{email-postfix-48.eml → lhost-postfix-48.eml} +0 -0
  365. data/set-of-emails/maildir/bsd/{email-postfix-49.eml → lhost-postfix-49.eml} +0 -0
  366. data/set-of-emails/maildir/bsd/{email-postfix-50.eml → lhost-postfix-50.eml} +0 -0
  367. data/set-of-emails/maildir/bsd/{email-postfix-51.eml → lhost-postfix-51.eml} +0 -0
  368. data/set-of-emails/maildir/bsd/{email-postfix-52.eml → lhost-postfix-52.eml} +0 -0
  369. data/set-of-emails/maildir/bsd/{email-postfix-53.eml → lhost-postfix-53.eml} +0 -0
  370. data/set-of-emails/maildir/bsd/{email-postfix-54.eml → lhost-postfix-54.eml} +0 -0
  371. data/set-of-emails/maildir/bsd/{email-postfix-55.eml → lhost-postfix-55.eml} +0 -0
  372. data/set-of-emails/maildir/bsd/{email-postfix-56.eml → lhost-postfix-56.eml} +0 -0
  373. data/set-of-emails/maildir/bsd/{email-postfix-57.eml → lhost-postfix-57.eml} +0 -0
  374. data/set-of-emails/maildir/bsd/{email-postfix-58.eml → lhost-postfix-58.eml} +0 -0
  375. data/set-of-emails/maildir/bsd/{email-postfix-59.eml → lhost-postfix-59.eml} +0 -0
  376. data/set-of-emails/maildir/bsd/{email-postfix-60.eml → lhost-postfix-60.eml} +0 -0
  377. data/set-of-emails/maildir/bsd/{email-postfix-61.eml → lhost-postfix-61.eml} +0 -0
  378. data/set-of-emails/maildir/bsd/{email-postfix-62.eml → lhost-postfix-62.eml} +0 -0
  379. data/set-of-emails/maildir/bsd/{email-postfix-63.eml → lhost-postfix-63.eml} +0 -0
  380. data/set-of-emails/maildir/bsd/{email-postfix-64.eml → lhost-postfix-64.eml} +0 -0
  381. data/set-of-emails/maildir/bsd/lhost-postfix-65.eml +69 -0
  382. data/set-of-emails/maildir/bsd/{rfc3464-05.eml → lhost-powermta-01.eml} +19 -18
  383. data/set-of-emails/maildir/bsd/lhost-powermta-02.eml +58 -0
  384. data/set-of-emails/maildir/bsd/lhost-powermta-03.eml +71 -0
  385. data/set-of-emails/maildir/bsd/{email-qmail-01.eml → lhost-qmail-01.eml} +0 -0
  386. data/set-of-emails/maildir/bsd/{email-qmail-02.eml → lhost-qmail-02.eml} +0 -0
  387. data/set-of-emails/maildir/bsd/{email-qmail-03.eml → lhost-qmail-03.eml} +0 -0
  388. data/set-of-emails/maildir/bsd/{email-qmail-04.eml → lhost-qmail-04.eml} +0 -0
  389. data/set-of-emails/maildir/bsd/{email-qmail-05.eml → lhost-qmail-05.eml} +0 -0
  390. data/set-of-emails/maildir/bsd/{email-qmail-06.eml → lhost-qmail-06.eml} +0 -0
  391. data/set-of-emails/maildir/bsd/{email-qmail-07.eml → lhost-qmail-07.eml} +0 -0
  392. data/set-of-emails/maildir/bsd/{email-qmail-08.eml → lhost-qmail-08.eml} +0 -0
  393. data/set-of-emails/maildir/bsd/{email-qmail-09.eml → lhost-qmail-09.eml} +0 -0
  394. data/set-of-emails/maildir/bsd/{email-qmail-10.eml → lhost-qmail-10.eml} +0 -0
  395. data/set-of-emails/maildir/bsd/{email-receivingses-01.eml → lhost-receivingses-01.eml} +0 -0
  396. data/set-of-emails/maildir/bsd/{email-receivingses-02.eml → lhost-receivingses-02.eml} +0 -0
  397. data/set-of-emails/maildir/bsd/{email-receivingses-03.eml → lhost-receivingses-03.eml} +0 -0
  398. data/set-of-emails/maildir/bsd/{email-receivingses-04.eml → lhost-receivingses-04.eml} +0 -0
  399. data/set-of-emails/maildir/bsd/{email-receivingses-05.eml → lhost-receivingses-05.eml} +0 -0
  400. data/set-of-emails/maildir/bsd/{email-receivingses-06.eml → lhost-receivingses-06.eml} +0 -0
  401. data/set-of-emails/maildir/bsd/{email-receivingses-07.eml → lhost-receivingses-07.eml} +0 -0
  402. data/set-of-emails/maildir/bsd/{email-sendgrid-01.eml → lhost-sendgrid-01.eml} +0 -0
  403. data/set-of-emails/maildir/bsd/{email-sendgrid-02.eml → lhost-sendgrid-02.eml} +0 -0
  404. data/set-of-emails/maildir/bsd/{email-sendgrid-03.eml → lhost-sendgrid-03.eml} +0 -0
  405. data/set-of-emails/maildir/bsd/{email-sendmail-01.eml → lhost-sendmail-01.eml} +0 -0
  406. data/set-of-emails/maildir/bsd/{email-sendmail-02.eml → lhost-sendmail-02.eml} +0 -0
  407. data/set-of-emails/maildir/bsd/{email-sendmail-03.eml → lhost-sendmail-03.eml} +0 -0
  408. data/set-of-emails/maildir/bsd/{email-sendmail-04.eml → lhost-sendmail-04.eml} +0 -0
  409. data/set-of-emails/maildir/bsd/{email-sendmail-05.eml → lhost-sendmail-05.eml} +0 -0
  410. data/set-of-emails/maildir/bsd/{email-sendmail-06.eml → lhost-sendmail-06.eml} +0 -0
  411. data/set-of-emails/maildir/bsd/{email-sendmail-07.eml → lhost-sendmail-07.eml} +0 -0
  412. data/set-of-emails/maildir/bsd/{email-sendmail-08.eml → lhost-sendmail-08.eml} +0 -0
  413. data/set-of-emails/maildir/bsd/{email-sendmail-09.eml → lhost-sendmail-09.eml} +0 -0
  414. data/set-of-emails/maildir/bsd/{email-sendmail-10.eml → lhost-sendmail-10.eml} +0 -0
  415. data/set-of-emails/maildir/bsd/{email-sendmail-11.eml → lhost-sendmail-11.eml} +0 -0
  416. data/set-of-emails/maildir/bsd/{email-sendmail-12.eml → lhost-sendmail-12.eml} +0 -0
  417. data/set-of-emails/maildir/bsd/{email-sendmail-13.eml → lhost-sendmail-13.eml} +0 -0
  418. data/set-of-emails/maildir/bsd/{email-sendmail-14.eml → lhost-sendmail-14.eml} +0 -0
  419. data/set-of-emails/maildir/bsd/{email-sendmail-15.eml → lhost-sendmail-15.eml} +0 -0
  420. data/set-of-emails/maildir/bsd/{email-sendmail-16.eml → lhost-sendmail-16.eml} +0 -0
  421. data/set-of-emails/maildir/bsd/{email-sendmail-17.eml → lhost-sendmail-17.eml} +0 -0
  422. data/set-of-emails/maildir/bsd/{email-sendmail-18.eml → lhost-sendmail-18.eml} +0 -0
  423. data/set-of-emails/maildir/bsd/{email-sendmail-19.eml → lhost-sendmail-19.eml} +0 -0
  424. data/set-of-emails/maildir/bsd/{email-sendmail-20.eml → lhost-sendmail-20.eml} +0 -0
  425. data/set-of-emails/maildir/bsd/{email-sendmail-21.eml → lhost-sendmail-21.eml} +0 -0
  426. data/set-of-emails/maildir/bsd/{email-sendmail-22.eml → lhost-sendmail-22.eml} +0 -0
  427. data/set-of-emails/maildir/bsd/{email-sendmail-24.eml → lhost-sendmail-24.eml} +0 -0
  428. data/set-of-emails/maildir/bsd/{email-sendmail-25.eml → lhost-sendmail-25.eml} +0 -0
  429. data/set-of-emails/maildir/bsd/{email-sendmail-26.eml → lhost-sendmail-26.eml} +0 -0
  430. data/set-of-emails/maildir/bsd/{email-sendmail-27.eml → lhost-sendmail-27.eml} +0 -0
  431. data/set-of-emails/maildir/bsd/{email-sendmail-28.eml → lhost-sendmail-28.eml} +0 -0
  432. data/set-of-emails/maildir/bsd/{email-sendmail-29.eml → lhost-sendmail-29.eml} +0 -0
  433. data/set-of-emails/maildir/bsd/{email-sendmail-30.eml → lhost-sendmail-30.eml} +0 -0
  434. data/set-of-emails/maildir/bsd/{email-sendmail-31.eml → lhost-sendmail-31.eml} +0 -0
  435. data/set-of-emails/maildir/bsd/{email-sendmail-32.eml → lhost-sendmail-32.eml} +0 -0
  436. data/set-of-emails/maildir/bsd/{email-sendmail-33.eml → lhost-sendmail-33.eml} +0 -0
  437. data/set-of-emails/maildir/bsd/{email-sendmail-34.eml → lhost-sendmail-34.eml} +0 -0
  438. data/set-of-emails/maildir/bsd/{email-sendmail-35.eml → lhost-sendmail-35.eml} +0 -0
  439. data/set-of-emails/maildir/bsd/{email-sendmail-36.eml → lhost-sendmail-36.eml} +0 -0
  440. data/set-of-emails/maildir/bsd/{email-sendmail-37.eml → lhost-sendmail-37.eml} +0 -0
  441. data/set-of-emails/maildir/bsd/{email-sendmail-38.eml → lhost-sendmail-38.eml} +0 -0
  442. data/set-of-emails/maildir/bsd/{email-sendmail-39.eml → lhost-sendmail-39.eml} +0 -0
  443. data/set-of-emails/maildir/bsd/{email-sendmail-40.eml → lhost-sendmail-40.eml} +0 -0
  444. data/set-of-emails/maildir/bsd/{email-sendmail-41.eml → lhost-sendmail-41.eml} +0 -0
  445. data/set-of-emails/maildir/bsd/{email-sendmail-42.eml → lhost-sendmail-42.eml} +0 -0
  446. data/set-of-emails/maildir/bsd/{email-sendmail-43.eml → lhost-sendmail-43.eml} +0 -0
  447. data/set-of-emails/maildir/bsd/{email-sendmail-44.eml → lhost-sendmail-44.eml} +0 -0
  448. data/set-of-emails/maildir/bsd/{email-sendmail-45.eml → lhost-sendmail-45.eml} +0 -0
  449. data/set-of-emails/maildir/bsd/{email-sendmail-46.eml → lhost-sendmail-46.eml} +0 -0
  450. data/set-of-emails/maildir/bsd/{email-sendmail-47.eml → lhost-sendmail-47.eml} +0 -0
  451. data/set-of-emails/maildir/bsd/{email-sendmail-48.eml → lhost-sendmail-48.eml} +0 -0
  452. data/set-of-emails/maildir/bsd/{email-sendmail-49.eml → lhost-sendmail-49.eml} +0 -0
  453. data/set-of-emails/maildir/bsd/{email-sendmail-50.eml → lhost-sendmail-50.eml} +0 -0
  454. data/set-of-emails/maildir/bsd/{email-sendmail-51.eml → lhost-sendmail-51.eml} +0 -0
  455. data/set-of-emails/maildir/bsd/{email-sendmail-52.eml → lhost-sendmail-52.eml} +0 -0
  456. data/set-of-emails/maildir/bsd/{email-sendmail-53.eml → lhost-sendmail-53.eml} +0 -0
  457. data/set-of-emails/maildir/bsd/{email-sendmail-54.eml → lhost-sendmail-54.eml} +0 -0
  458. data/set-of-emails/maildir/bsd/{email-sendmail-55.eml → lhost-sendmail-55.eml} +0 -0
  459. data/set-of-emails/maildir/bsd/{email-sendmail-56.eml → lhost-sendmail-56.eml} +0 -0
  460. data/set-of-emails/maildir/bsd/{email-surfcontrol-01.eml → lhost-surfcontrol-01.eml} +0 -0
  461. data/set-of-emails/maildir/bsd/{email-surfcontrol-02.eml → lhost-surfcontrol-02.eml} +0 -0
  462. data/set-of-emails/maildir/bsd/{email-surfcontrol-03.eml → lhost-surfcontrol-03.eml} +0 -0
  463. data/set-of-emails/maildir/bsd/{email-v5sendmail-01.eml → lhost-v5sendmail-01.eml} +0 -0
  464. data/set-of-emails/maildir/bsd/{email-v5sendmail-02.eml → lhost-v5sendmail-02.eml} +0 -0
  465. data/set-of-emails/maildir/bsd/{email-v5sendmail-03.eml → lhost-v5sendmail-03.eml} +0 -0
  466. data/set-of-emails/maildir/bsd/{email-v5sendmail-04.eml → lhost-v5sendmail-04.eml} +0 -0
  467. data/set-of-emails/maildir/bsd/{email-v5sendmail-05.eml → lhost-v5sendmail-05.eml} +0 -0
  468. data/set-of-emails/maildir/bsd/{email-v5sendmail-06.eml → lhost-v5sendmail-06.eml} +0 -0
  469. data/set-of-emails/maildir/bsd/{email-v5sendmail-07.eml → lhost-v5sendmail-07.eml} +0 -0
  470. data/set-of-emails/maildir/bsd/{email-verizon-01.eml → lhost-verizon-01.eml} +0 -0
  471. data/set-of-emails/maildir/bsd/{email-verizon-02.eml → lhost-verizon-02.eml} +0 -0
  472. data/set-of-emails/maildir/bsd/{email-x1-01.eml → lhost-x1-01.eml} +0 -0
  473. data/set-of-emails/maildir/bsd/{email-x1-02.eml → lhost-x1-02.eml} +0 -0
  474. data/set-of-emails/maildir/bsd/{email-x2-01.eml → lhost-x2-01.eml} +0 -0
  475. data/set-of-emails/maildir/bsd/{email-x2-02.eml → lhost-x2-02.eml} +0 -0
  476. data/set-of-emails/maildir/bsd/{email-x2-03.eml → lhost-x2-03.eml} +0 -0
  477. data/set-of-emails/maildir/bsd/{email-x2-04.eml → lhost-x2-04.eml} +0 -0
  478. data/set-of-emails/maildir/bsd/{email-x2-05.eml → lhost-x2-05.eml} +0 -0
  479. data/set-of-emails/maildir/bsd/{email-x3-01.eml → lhost-x3-01.eml} +0 -0
  480. data/set-of-emails/maildir/bsd/{email-x3-02.eml → lhost-x3-02.eml} +0 -0
  481. data/set-of-emails/maildir/bsd/{email-x3-03.eml → lhost-x3-03.eml} +0 -0
  482. data/set-of-emails/maildir/bsd/{email-x3-05.eml → lhost-x3-05.eml} +0 -0
  483. data/set-of-emails/maildir/bsd/{email-x4-01.eml → lhost-x4-01.eml} +0 -0
  484. data/set-of-emails/maildir/bsd/{email-x4-08.eml → lhost-x4-08.eml} +0 -0
  485. data/set-of-emails/maildir/bsd/{email-x5-01.eml → lhost-x5-01.eml} +0 -0
  486. data/set-of-emails/maildir/bsd/lhost-x6-01.eml +71 -0
  487. data/set-of-emails/maildir/bsd/lhost-x6-02.eml +68 -0
  488. data/set-of-emails/maildir/bsd/{email-yahoo-01.eml → lhost-yahoo-01.eml} +0 -0
  489. data/set-of-emails/maildir/bsd/{email-yahoo-02.eml → lhost-yahoo-02.eml} +0 -0
  490. data/set-of-emails/maildir/bsd/{email-yahoo-03.eml → lhost-yahoo-03.eml} +0 -0
  491. data/set-of-emails/maildir/bsd/{email-yahoo-04.eml → lhost-yahoo-04.eml} +0 -0
  492. data/set-of-emails/maildir/bsd/{email-yahoo-05.eml → lhost-yahoo-05.eml} +0 -0
  493. data/set-of-emails/maildir/bsd/{email-yahoo-06.eml → lhost-yahoo-06.eml} +0 -0
  494. data/set-of-emails/maildir/bsd/{email-yahoo-07.eml → lhost-yahoo-07.eml} +0 -0
  495. data/set-of-emails/maildir/bsd/{email-yahoo-08.eml → lhost-yahoo-08.eml} +0 -0
  496. data/set-of-emails/maildir/bsd/{email-yahoo-09.eml → lhost-yahoo-09.eml} +0 -0
  497. data/set-of-emails/maildir/bsd/{email-yahoo-10.eml → lhost-yahoo-10.eml} +0 -0
  498. data/set-of-emails/maildir/bsd/{email-yahoo-11.eml → lhost-yahoo-11.eml} +0 -0
  499. data/set-of-emails/maildir/bsd/{email-yahoo-12.eml → lhost-yahoo-12.eml} +0 -0
  500. data/set-of-emails/maildir/bsd/{email-yahoo-13.eml → lhost-yahoo-13.eml} +0 -0
  501. data/set-of-emails/maildir/bsd/{email-yahoo-14.eml → lhost-yahoo-14.eml} +0 -0
  502. data/set-of-emails/maildir/bsd/{email-yandex-01.eml → lhost-yandex-01.eml} +0 -0
  503. data/set-of-emails/maildir/bsd/{email-yandex-02.eml → lhost-yandex-02.eml} +0 -0
  504. data/set-of-emails/maildir/bsd/{email-yandex-03.eml → lhost-yandex-03.eml} +0 -0
  505. data/set-of-emails/maildir/bsd/{email-zoho-01.eml → lhost-zoho-01.eml} +0 -0
  506. data/set-of-emails/maildir/bsd/{email-zoho-02.eml → lhost-zoho-02.eml} +0 -0
  507. data/set-of-emails/maildir/bsd/{email-zoho-03.eml → lhost-zoho-03.eml} +0 -0
  508. data/set-of-emails/maildir/bsd/{email-zoho-04.eml → lhost-zoho-04.eml} +0 -0
  509. data/set-of-emails/maildir/bsd/{email-zoho-05.eml → lhost-zoho-05.eml} +0 -0
  510. data/set-of-emails/maildir/bsd/{rfc3464-41.eml → rfc3834-04.eml} +0 -0
  511. data/set-of-emails/maildir/dos/{email-activehunter-01.eml → lhost-activehunter-01.eml} +0 -0
  512. data/set-of-emails/maildir/dos/{email-amavis-01.eml → lhost-amavis-01.eml} +0 -0
  513. data/set-of-emails/maildir/dos/{email-amazonses-01.eml → lhost-amazonses-01.eml} +0 -0
  514. data/set-of-emails/maildir/dos/{email-amazonworkmail-01.eml → lhost-amazonworkmail-01.eml} +0 -0
  515. data/set-of-emails/maildir/dos/{email-aol-01.eml → lhost-aol-01.eml} +0 -0
  516. data/set-of-emails/maildir/dos/{email-apachejames-01.eml → lhost-apachejames-01.eml} +0 -0
  517. data/set-of-emails/maildir/dos/lhost-barracuda-01.eml +67 -0
  518. data/set-of-emails/maildir/dos/{email-bigfoot-01.eml → lhost-bigfoot-01.eml} +0 -0
  519. data/set-of-emails/maildir/dos/{email-biglobe-01.eml → lhost-biglobe-01.eml} +0 -0
  520. data/set-of-emails/maildir/dos/{email-courier-01.eml → lhost-courier-01.eml} +0 -0
  521. data/set-of-emails/maildir/dos/{email-domino-01.eml → lhost-domino-01.eml} +0 -0
  522. data/set-of-emails/maildir/dos/{email-einsundeins-01.eml → lhost-einsundeins-01.eml} +0 -0
  523. data/set-of-emails/maildir/dos/{email-exchange-01.eml → lhost-exchange-01.eml} +0 -0
  524. data/set-of-emails/maildir/dos/{email-exchange2003-01.eml → lhost-exchange2003-01.eml} +0 -0
  525. data/set-of-emails/maildir/dos/{email-exchange2007-01.eml → lhost-exchange2007-01.eml} +0 -0
  526. data/set-of-emails/maildir/dos/{email-exim-01.eml → lhost-exim-01.eml} +0 -0
  527. data/set-of-emails/maildir/dos/{email-ezweb-01.eml → lhost-ezweb-01.eml} +0 -0
  528. data/set-of-emails/maildir/dos/{email-facebook-01.eml → lhost-facebook-01.eml} +0 -0
  529. data/set-of-emails/maildir/dos/{email-google-01.eml → lhost-gmail-01.eml} +0 -0
  530. data/set-of-emails/maildir/dos/{email-gmx-01.eml → lhost-gmx-01.eml} +0 -0
  531. data/set-of-emails/maildir/dos/lhost-googlegroups-01.eml +116 -0
  532. data/set-of-emails/maildir/dos/{email-gsuite-01.eml → lhost-gsuite-01.eml} +0 -0
  533. data/set-of-emails/maildir/dos/{email-imailserver-01.eml → lhost-imailserver-01.eml} +0 -0
  534. data/set-of-emails/maildir/dos/{email-interscanmss-01.eml → lhost-interscanmss-01.eml} +0 -0
  535. data/set-of-emails/maildir/dos/{email-kddi-01.eml → lhost-kddi-01.eml} +0 -0
  536. data/set-of-emails/maildir/dos/{email-mailfoundry-01.eml → lhost-mailfoundry-01.eml} +0 -0
  537. data/set-of-emails/maildir/dos/{email-mailmarshalsmtp-01.eml → lhost-mailmarshalsmtp-01.eml} +0 -0
  538. data/set-of-emails/maildir/dos/{email-mailru-01.eml → lhost-mailru-01.eml} +0 -0
  539. data/set-of-emails/maildir/dos/{email-mcafee-01.eml → lhost-mcafee-01.eml} +0 -0
  540. data/set-of-emails/maildir/dos/{email-messagelabs-01.eml → lhost-messagelabs-01.eml} +0 -0
  541. data/set-of-emails/maildir/dos/{email-messagingserver-01.eml → lhost-messagingserver-01.eml} +0 -0
  542. data/set-of-emails/maildir/dos/{email-mfilter-01.eml → lhost-mfilter-01.eml} +0 -0
  543. data/set-of-emails/maildir/dos/{email-mxlogic-01.eml → lhost-mxlogic-01.eml} +0 -0
  544. data/set-of-emails/maildir/dos/{email-notes-01.eml → lhost-notes-01.eml} +0 -0
  545. data/set-of-emails/maildir/dos/{email-office365-01.eml → lhost-office365-01.eml} +0 -0
  546. data/set-of-emails/maildir/dos/{email-opensmtpd-01.eml → lhost-opensmtpd-01.eml} +0 -0
  547. data/set-of-emails/maildir/dos/{email-outlook-01.eml → lhost-outlook-01.eml} +0 -0
  548. data/set-of-emails/maildir/dos/{email-postfix-01.eml → lhost-postfix-01.eml} +0 -0
  549. data/set-of-emails/maildir/dos/lhost-powermta-01.eml +64 -0
  550. data/set-of-emails/maildir/dos/{email-qmail-01.eml → lhost-qmail-01.eml} +0 -0
  551. data/set-of-emails/maildir/dos/{email-receivingses-01.eml → lhost-receivingses-01.eml} +0 -0
  552. data/set-of-emails/maildir/dos/{email-sendgrid-01.eml → lhost-sendgrid-01.eml} +0 -0
  553. data/set-of-emails/maildir/dos/{email-sendmail-01.eml → lhost-sendmail-01.eml} +0 -0
  554. data/set-of-emails/maildir/dos/{email-surfcontrol-01.eml → lhost-surfcontrol-01.eml} +0 -0
  555. data/set-of-emails/maildir/dos/{email-v5sendmail-01.eml → lhost-v5sendmail-01.eml} +0 -0
  556. data/set-of-emails/maildir/dos/{email-verizon-01.eml → lhost-verizon-01.eml} +0 -0
  557. data/set-of-emails/maildir/dos/{email-x1-01.eml → lhost-x1-01.eml} +0 -0
  558. data/set-of-emails/maildir/dos/{email-x2-01.eml → lhost-x2-01.eml} +0 -0
  559. data/set-of-emails/maildir/dos/{email-x3-01.eml → lhost-x3-01.eml} +0 -0
  560. data/set-of-emails/maildir/dos/{email-x4-01.eml → lhost-x4-01.eml} +0 -0
  561. data/set-of-emails/maildir/dos/{email-x5-01.eml → lhost-x5-01.eml} +0 -0
  562. data/set-of-emails/maildir/dos/lhost-x6-01.eml +71 -0
  563. data/set-of-emails/maildir/dos/{email-yahoo-01.eml → lhost-yahoo-01.eml} +0 -0
  564. data/set-of-emails/maildir/dos/{email-yandex-01.eml → lhost-yandex-01.eml} +0 -0
  565. data/set-of-emails/maildir/dos/{email-zoho-01.eml → lhost-zoho-01.eml} +0 -0
  566. data/set-of-emails/maildir/dos/rhost-iua-01.eml +70 -0
  567. data/set-of-emails/maildir/mac/{email-activehunter-01.eml → lhost-activehunter-01.eml} +0 -0
  568. data/set-of-emails/maildir/mac/{email-amavis-01.eml → lhost-amavis-01.eml} +0 -0
  569. data/set-of-emails/maildir/mac/{email-amazonses-01.eml → lhost-amazonses-01.eml} +0 -0
  570. data/set-of-emails/maildir/mac/{email-amazonworkmail-01.eml → lhost-amazonworkmail-01.eml} +0 -0
  571. data/set-of-emails/maildir/mac/{email-aol-01.eml → lhost-aol-01.eml} +0 -0
  572. data/set-of-emails/maildir/mac/{email-apachejames-01.eml → lhost-apachejames-01.eml} +0 -0
  573. data/set-of-emails/maildir/mac/lhost-barracuda-01.eml +1 -4
  574. data/set-of-emails/maildir/mac/{email-bigfoot-01.eml → lhost-bigfoot-01.eml} +0 -0
  575. data/set-of-emails/maildir/mac/{email-biglobe-01.eml → lhost-biglobe-01.eml} +0 -0
  576. data/set-of-emails/maildir/mac/{email-courier-01.eml → lhost-courier-01.eml} +0 -0
  577. data/set-of-emails/maildir/mac/{email-domino-01.eml → lhost-domino-01.eml} +0 -0
  578. data/set-of-emails/maildir/mac/{email-einsundeins-01.eml → lhost-einsundeins-01.eml} +0 -0
  579. data/set-of-emails/maildir/mac/{email-exchange-01.eml → lhost-exchange-01.eml} +0 -0
  580. data/set-of-emails/maildir/mac/{email-exchange2003-01.eml → lhost-exchange2003-01.eml} +0 -0
  581. data/set-of-emails/maildir/mac/{email-exchange2007-01.eml → lhost-exchange2007-01.eml} +0 -0
  582. data/set-of-emails/maildir/mac/{email-exim-01.eml → lhost-exim-01.eml} +0 -0
  583. data/set-of-emails/maildir/mac/{email-ezweb-01.eml → lhost-ezweb-01.eml} +0 -0
  584. data/set-of-emails/maildir/mac/{email-facebook-01.eml → lhost-facebook-01.eml} +0 -0
  585. data/set-of-emails/maildir/mac/{email-google-01.eml → lhost-gmail-01.eml} +0 -0
  586. data/set-of-emails/maildir/mac/{email-gmx-01.eml → lhost-gmx-01.eml} +0 -0
  587. data/set-of-emails/maildir/mac/lhost-googlegroups-01.eml +1 -1
  588. data/set-of-emails/maildir/mac/{email-gsuite-01.eml → lhost-gsuite-01.eml} +0 -0
  589. data/set-of-emails/maildir/mac/{email-imailserver-01.eml → lhost-imailserver-01.eml} +0 -0
  590. data/set-of-emails/maildir/mac/{email-interscanmss-01.eml → lhost-interscanmss-01.eml} +0 -0
  591. data/set-of-emails/maildir/mac/{email-kddi-01.eml → lhost-kddi-01.eml} +0 -0
  592. data/set-of-emails/maildir/mac/{email-mailfoundry-01.eml → lhost-mailfoundry-01.eml} +0 -0
  593. data/set-of-emails/maildir/mac/{email-mailmarshalsmtp-01.eml → lhost-mailmarshalsmtp-01.eml} +0 -0
  594. data/set-of-emails/maildir/mac/{email-mailru-01.eml → lhost-mailru-01.eml} +0 -0
  595. data/set-of-emails/maildir/mac/{email-mcafee-01.eml → lhost-mcafee-01.eml} +0 -0
  596. data/set-of-emails/maildir/mac/{email-messagelabs-01.eml → lhost-messagelabs-01.eml} +0 -0
  597. data/set-of-emails/maildir/mac/{email-messagingserver-01.eml → lhost-messagingserver-01.eml} +0 -0
  598. data/set-of-emails/maildir/mac/{email-mfilter-01.eml → lhost-mfilter-01.eml} +0 -0
  599. data/set-of-emails/maildir/mac/{email-mxlogic-01.eml → lhost-mxlogic-01.eml} +0 -0
  600. data/set-of-emails/maildir/mac/{email-notes-01.eml → lhost-notes-01.eml} +0 -0
  601. data/set-of-emails/maildir/mac/{email-office365-01.eml → lhost-office365-01.eml} +0 -0
  602. data/set-of-emails/maildir/mac/{email-opensmtpd-01.eml → lhost-opensmtpd-01.eml} +0 -0
  603. data/set-of-emails/maildir/mac/{email-outlook-01.eml → lhost-outlook-01.eml} +0 -0
  604. data/set-of-emails/maildir/mac/{email-postfix-01.eml → lhost-postfix-01.eml} +0 -0
  605. data/set-of-emails/maildir/mac/lhost-powermta-01.eml +1 -4
  606. data/set-of-emails/maildir/mac/{email-qmail-01.eml → lhost-qmail-01.eml} +0 -0
  607. data/set-of-emails/maildir/mac/{email-receivingses-01.eml → lhost-receivingses-01.eml} +0 -0
  608. data/set-of-emails/maildir/mac/{email-sendgrid-01.eml → lhost-sendgrid-01.eml} +0 -0
  609. data/set-of-emails/maildir/mac/{email-sendmail-01.eml → lhost-sendmail-01.eml} +0 -0
  610. data/set-of-emails/maildir/mac/{email-surfcontrol-01.eml → lhost-surfcontrol-01.eml} +0 -0
  611. data/set-of-emails/maildir/mac/{email-v5sendmail-01.eml → lhost-v5sendmail-01.eml} +0 -0
  612. data/set-of-emails/maildir/mac/{email-verizon-01.eml → lhost-verizon-01.eml} +0 -0
  613. data/set-of-emails/maildir/mac/{email-x1-01.eml → lhost-x1-01.eml} +0 -0
  614. data/set-of-emails/maildir/mac/{email-x2-01.eml → lhost-x2-01.eml} +0 -0
  615. data/set-of-emails/maildir/mac/{email-x3-01.eml → lhost-x3-01.eml} +0 -0
  616. data/set-of-emails/maildir/mac/{email-x4-01.eml → lhost-x4-01.eml} +0 -0
  617. data/set-of-emails/maildir/mac/{email-x5-01.eml → lhost-x5-01.eml} +0 -0
  618. data/set-of-emails/maildir/mac/lhost-x6-01.eml +1 -3
  619. data/set-of-emails/maildir/mac/{email-yahoo-01.eml → lhost-yahoo-01.eml} +0 -0
  620. data/set-of-emails/maildir/mac/{email-yandex-01.eml → lhost-yandex-01.eml} +0 -0
  621. data/set-of-emails/maildir/mac/{email-zoho-01.eml → lhost-zoho-01.eml} +0 -0
  622. data/set-of-emails/maildir/mac/rhost-iua-01.eml +1 -4
  623. metadata +547 -506
  624. data/lib/sisimai/lhost/userdefined.rb +0 -95
@@ -1,6 +1,6 @@
1
1
  module Sisimai::Lhost
2
- # Sisimai::Lhost::X3 parses a bounce email which created by Unknown
3
- # MTA #3. Methods in the module are called from only Sisimai::Message.
2
+ # Sisimai::Lhost::X3 parses a bounce email which created by Unknown MTA #3.
3
+ # Methods in the module are called from only Sisimai::Message.
4
4
  module X3
5
5
  class << self
6
6
  # Imported from p5-Sisimail/lib/Sisimai/Lhost/X3.pm
@@ -10,21 +10,11 @@ module Sisimai::Lhost
10
10
  ReBackbone = %r|^Content-Type:[ ]message/rfc822|.freeze
11
11
  StartingOf = { message: [' This is an automatically generated Delivery Status Notification.'] }.freeze
12
12
 
13
- def description; return 'Unknown MTA #3'; end
14
- def smtpagent; return Sisimai::Lhost.smtpagent(self); end
15
- def headerlist; return []; end
16
-
17
13
  # Parse bounce messages from Unknown MTA #3
18
- # @param [Hash] mhead Message headers of a bounce email
19
- # @options mhead [String] from From header
20
- # @options mhead [String] date Date header
21
- # @options mhead [String] subject Subject header
22
- # @options mhead [Array] received Received headers
23
- # @options mhead [String] others Other required headers
24
- # @param [String] mbody Message body of a bounce email
25
- # @return [Hash, Nil] Bounce data list and message/rfc822
26
- # part or nil if it failed to parse or
27
- # the arguments are missing
14
+ # @param [Hash] mhead Message headers of a bounce email
15
+ # @param [String] mbody Message body of a bounce email
16
+ # @return [Hash] Bounce data list and message/rfc822 part
17
+ # @return [Nil] it failed to parse or the arguments are missing
28
18
  def make(mhead, mbody)
29
19
  return nil unless mhead['subject'].start_with?('Delivery status notification')
30
20
  return nil unless mhead['from'].start_with?('Mail Delivery System')
@@ -89,15 +79,13 @@ module Sisimai::Lhost
89
79
  return nil unless recipients > 0
90
80
 
91
81
  dscontents.each do |e|
92
- e['agent'] = self.smtpagent
93
82
  e['diagnosis'] = Sisimai::String.sweep(e['diagnosis'])
94
83
  e['status'] = Sisimai::SMTP::Status.find(e['diagnosis']) || ''
95
- e.each_key { |a| e[a] ||= '' }
96
84
  end
97
85
 
98
86
  return { 'ds' => dscontents, 'rfc822' => emailsteak[1] }
99
87
  end
100
-
88
+ def description; return 'Unknown MTA #3'; end
101
89
  end
102
90
  end
103
91
  end
@@ -1,6 +1,6 @@
1
1
  module Sisimai::Lhost
2
- # Sisimai::Lhost::X4 parses a bounce email which created by some qmail
3
- # clone. Methods in the module are called from only Sisimai::Message.
2
+ # Sisimai::Lhost::X4 parses a bounce email which created by some qmail clone.
3
+ # Methods in the module are called from only Sisimai::Message.
4
4
  module X4
5
5
  class << self
6
6
  # Imported from p5-Sisimail/lib/Sisimai/Lhost/X4.pm
@@ -117,21 +117,11 @@ module Sisimai::Lhost
117
117
  ],
118
118
  }.freeze
119
119
 
120
- def description; return 'Unknown MTA #4'; end
121
- def smtpagent; return Sisimai::Lhost.smtpagent(self); end
122
- def headerlist; return []; end
123
-
124
120
  # Parse bounce messages from Unknown MTA #4
125
- # @param [Hash] mhead Message headers of a bounce email
126
- # @options mhead [String] from From header
127
- # @options mhead [String] date Date header
128
- # @options mhead [String] subject Subject header
129
- # @options mhead [Array] received Received headers
130
- # @options mhead [String] others Other required headers
131
- # @param [String] mbody Message body of a bounce email
132
- # @return [Hash, Nil] Bounce data list and message/rfc822
133
- # part or nil if it failed to parse or
134
- # the arguments are missing
121
+ # @param [Hash] mhead Message headers of a bounce email
122
+ # @param [String] mbody Message body of a bounce email
123
+ # @return [Hash] Bounce data list and message/rfc822 part
124
+ # @return [Nil] it failed to parse or the arguments are missing
135
125
  def make(mhead, mbody)
136
126
  # Pre process email headers and the body part of the message which generated
137
127
  # by qmail, see https://cr.yp.to/qmail.html
@@ -192,7 +182,6 @@ module Sisimai::Lhost
192
182
  return nil unless recipients > 0
193
183
 
194
184
  dscontents.each do |e|
195
- e['agent'] = self.smtpagent
196
185
  e['diagnosis'] = Sisimai::String.sweep(e['diagnosis'])
197
186
 
198
187
  unless e['command']
@@ -254,12 +243,11 @@ module Sisimai::Lhost
254
243
  end
255
244
  end
256
245
  end
257
- e.each_key { |a| e[a] ||= '' }
258
246
  end
259
247
 
260
248
  return { 'ds' => dscontents, 'rfc822' => emailsteak[1] }
261
249
  end
262
-
250
+ def description; return 'Unknown MTA #4'; end
263
251
  end
264
252
  end
265
253
  end
@@ -1,6 +1,6 @@
1
1
  module Sisimai::Lhost
2
- # Sisimai::Lhost::X5 parses a bounce email which created by Unknown
3
- # MTA #5. Methods in the module are called from only Sisimai::Message.
2
+ # Sisimai::Lhost::X5 parses a bounce email which created by Unknown MTA #5.
3
+ # Methods in the module are called from only Sisimai::Message.
4
4
  module X5
5
5
  class << self
6
6
  # Imported from p5-Sisimail/lib/Sisimai/Lhost/X5.pm
@@ -10,21 +10,11 @@ module Sisimai::Lhost
10
10
  ReBackbone = %r|^Content-Type:[ ]message/rfc822|.freeze
11
11
  StartingOf = { message: ['Content-Type: message/delivery-status'] }.freeze
12
12
 
13
- def description; return 'Unknown MTA #5'; end
14
- def smtpagent; return Sisimai::Lhost.smtpagent(self); end
15
- def headerlist; return []; end
16
-
17
13
  # Parse bounce messages from Unknown MTA #5
18
- # @param [Hash] mhead Message headers of a bounce email
19
- # @options mhead [String] from From header
20
- # @options mhead [String] date Date header
21
- # @options mhead [String] subject Subject header
22
- # @options mhead [Array] received Received headers
23
- # @options mhead [String] others Other required headers
24
- # @param [String] mbody Message body of a bounce email
25
- # @return [Hash, Nil] Bounce data list and message/rfc822
26
- # part or nil if it failed to parse or
27
- # the arguments are missing
14
+ # @param [Hash] mhead Message headers of a bounce email
15
+ # @param [String] mbody Message body of a bounce email
16
+ # @return [Hash] Bounce data list and message/rfc822 part
17
+ # @return [Nil] it failed to parse or the arguments are missing
28
18
  def make(mhead, mbody)
29
19
  match = 0
30
20
  match += 1 if mhead['to'].to_s.include?('NotificationRecipients')
@@ -110,15 +100,10 @@ module Sisimai::Lhost
110
100
  end
111
101
  return nil unless recipients > 0
112
102
 
113
- dscontents.each do |e|
114
- e['agent'] = self.smtpagent
115
- e['diagnosis'] ||= Sisimai::String.sweep(e['diagnosis'])
116
- e.each_key { |a| e[a] ||= '' }
117
- end
118
-
103
+ dscontents.each { |e| e['diagnosis'] ||= Sisimai::String.sweep(e['diagnosis']) }
119
104
  return { 'ds' => dscontents, 'rfc822' => emailsteak[1] }
120
105
  end
121
-
106
+ def description; return 'Unknown MTA #5'; end
122
107
  end
123
108
  end
124
109
  end
@@ -0,0 +1,74 @@
1
+ module Sisimai::Lhost
2
+ # Sisimai::Lhost::X6 parses a bounce email which created by Unknown MTA #6.
3
+ # Methods in the module are called from only Sisimai::Message.
4
+ module X6
5
+ class << self
6
+ # Imported from p5-Sisimail/lib/Sisimai/Lhost/X6.pm
7
+ require 'sisimai/lhost'
8
+
9
+ Indicators = Sisimai::Lhost.INDICATORS
10
+ ReBackbone = %r/^The attachment contains the original mail headers.+$/.freeze
11
+ MarkingsOf = { message: %r/\A\d+[ ]*error[(]s[)]:/ }.freeze
12
+
13
+ # Parse bounce messages from Unknown MTA #6
14
+ # @param [Hash] mhead Message headers of a bounce email
15
+ # @param [String] mbody Message body of a bounce email
16
+ # @return [Hash] Bounce data list and message/rfc822 part
17
+ # @return [Nil] it failed to parse or the arguments are missing
18
+ # @since v4.25.6
19
+ def make(mhead, mbody)
20
+ return nil unless mhead['subject'].start_with?('There was an error sending your mail')
21
+
22
+ dscontents = [Sisimai::Lhost.DELIVERYSTATUS]
23
+ emailsteak = Sisimai::RFC5322.fillet(mbody, ReBackbone)
24
+ bodyslices = emailsteak[0].split("\n")
25
+ readcursor = 0 # (Integer) Points the current cursor position
26
+ recipients = 0 # (Integer) The number of 'Final-Recipient' header
27
+ v = nil
28
+
29
+ while e = bodyslices.shift do
30
+ # Read error messages and delivery status lines from the head of the email
31
+ # to the previous line of the beginning of the original message.
32
+ if readcursor == 0
33
+ # Beginning of the bounce message or delivery status part
34
+ readcursor |= Indicators[:deliverystatus] if e =~ MarkingsOf[:message]
35
+ next
36
+ end
37
+ next if (readcursor & Indicators[:deliverystatus]) == 0
38
+ next if e.empty?
39
+
40
+ # 1 error(s):
41
+ #
42
+ # SMTP Server <mta2.example.jp> rejected recipient <kijitora@examplejp>
43
+ # (Error following RCPT command). It responded as follows: [550 5.1.1 User unknown]v = dscontents[-1]
44
+ v = dscontents[-1]
45
+ if cv = e.match(/<([^ @]+[@][^ @]+)>/) || e.match(/errors:[ ]*([^ ]+[@][^ ]+)/)
46
+ # SMTP Server <mta2.example.jp> rejected recipient <kijitora@examplejp>
47
+ # The following recipients returned permanent errors: neko@example.jp.
48
+ if v['recipient']
49
+ # There are multiple recipient addresses in the message body.
50
+ dscontents << Sisimai::Lhost.DELIVERYSTATUS
51
+ v = dscontents[-1]
52
+ end
53
+ v['recipient'] = Sisimai::Address.s3s4(cv[1])
54
+ v['diagnosis'] = e
55
+ recipients += 1
56
+ end
57
+ end
58
+ return nil unless recipients > 0
59
+
60
+ dscontents.each do |e|
61
+ if cv = e['diagnosis'].match(/\b(HELO|EHLO|MAIL|RCPT|DATA)\b/)
62
+ # ...(Error following RCPT command).
63
+ e['command'] = cv[1]
64
+ end
65
+ e['diagnosis'] = Sisimai::String.sweep(e['diagnosis'])
66
+ end
67
+
68
+ return { 'ds' => dscontents, 'rfc822' => emailsteak[1] }
69
+ end
70
+ def description; return 'Unknown MTA #6'; end
71
+ end
72
+ end
73
+ end
74
+
@@ -1,6 +1,6 @@
1
1
  module Sisimai::Lhost
2
- # Sisimai::Lhost::Yahoo parses a bounce email which created by Yahoo!
3
- # MAIL. Methods in the module are called from only Sisimai::Message.
2
+ # Sisimai::Lhost::Yahoo parses a bounce email which created by Yahoo! MAIL.
3
+ # Methods in the module are called from only Sisimai::Message.
4
4
  module Yahoo
5
5
  class << self
6
6
  # Imported from p5-Sisimail/lib/Sisimai/Lhost/Yahoo.pm
@@ -10,28 +10,16 @@ module Sisimai::Lhost
10
10
  ReBackbone = %r|^--- Below this line is a copy of the message[.]|.freeze
11
11
  StartingOf = { message: ['Sorry, we were unable to deliver your message'] }.freeze
12
12
 
13
- def description; return 'Yahoo! MAIL: https://www.yahoo.com'; end
14
- def smtpagent; return Sisimai::Lhost.smtpagent(self); end
15
-
16
- # X-YMailISG: YtyUVyYWLDsbDh...
17
- # X-YMail-JAS: Pb65aU4VM1mei...
18
- # X-YMail-OSG: bTIbpDEVM1lHz...
19
- # X-Originating-IP: [192.0.2.9]
20
- def headerlist; return %w[x-ymailisg]; end
21
-
22
13
  # Parse bounce messages from Yahoo! MAIL
23
- # @param [Hash] mhead Message headers of a bounce email
24
- # @options mhead [String] from From header
25
- # @options mhead [String] date Date header
26
- # @options mhead [String] subject Subject header
27
- # @options mhead [Array] received Received headers
28
- # @options mhead [String] others Other required headers
29
- # @param [String] mbody Message body of a bounce email
30
- # @return [Hash, Nil] Bounce data list and message/rfc822
31
- # part or nil if it failed to parse or
32
- # the arguments are missing
14
+ # @param [Hash] mhead Message headers of a bounce email
15
+ # @param [String] mbody Message body of a bounce email
16
+ # @return [Hash] Bounce data list and message/rfc822 part
17
+ # @return [Nil] it failed to parse or the arguments are missing
33
18
  def make(mhead, mbody)
34
- # :subject => %r/\AFailure Notice\z/,
19
+ # X-YMailISG: YtyUVyYWLDsbDh...
20
+ # X-YMail-JAS: Pb65aU4VM1mei...
21
+ # X-YMail-OSG: bTIbpDEVM1lHz...
22
+ # X-Originating-IP: [192.0.2.9]
35
23
  return nil unless mhead['x-ymailisg']
36
24
 
37
25
  dscontents = [Sisimai::Lhost.DELIVERYSTATUS]
@@ -101,13 +89,12 @@ module Sisimai::Lhost
101
89
 
102
90
  dscontents.each do |e|
103
91
  e['diagnosis'] = Sisimai::String.sweep(e['diagnosis'].gsub(/\\n/, ' '))
104
- e['agent'] = self.smtpagent
105
92
  e['command'] ||= 'RCPT' if e['diagnosis'] =~ /[<].+[@].+[>]/
106
93
  end
107
94
 
108
95
  return { 'ds' => dscontents, 'rfc822' => emailsteak[1] }
109
96
  end
110
-
97
+ def description; return 'Yahoo! MAIL: https://www.yahoo.com'; end
111
98
  end
112
99
  end
113
100
  end
@@ -1,6 +1,6 @@
1
1
  module Sisimai::Lhost
2
- # Sisimai::Lhost::Yandex parses a bounce email which created by
3
- # Yandex.Mail. Methods in the module are called from only Sisimai::Message.
2
+ # Sisimai::Lhost::Yandex parses a bounce email which created by Yandex.Mail.
3
+ # Methods in the module are called from only Sisimai::Message.
4
4
  module Yandex
5
5
  class << self
6
6
  # Imported from p5-Sisimail/lib/Sisimai/Lhost/Yandex.pm
@@ -10,30 +10,19 @@ module Sisimai::Lhost
10
10
  ReBackbone = %r|^Content-Type:[ ]message/rfc822|.freeze
11
11
  StartingOf = { message: ['This is the mail system at host yandex.ru.'] }.freeze
12
12
 
13
- def description; return 'Yandex.Mail: https://www.yandex.ru'; end
14
- def smtpagent; return Sisimai::Lhost.smtpagent(self); end
15
-
16
- # X-Yandex-Front: mxback1h.mail.yandex.net
17
- # X-Yandex-TimeMark: 1417885948
18
- # X-Yandex-Uniq: 92309766-f1c8-4bd4-92bc-657c75766587
19
- # X-Yandex-Spam: 1
20
- # X-Yandex-Forward: 10104c00ad0726da5f37374723b1e0c8
21
- # X-Yandex-Queue-ID: 367D79E130D
22
- # X-Yandex-Sender: rfc822; shironeko@yandex.example.com
23
- def headerlist; return %w[x-yandex-uniq]; end
24
-
25
13
  # Parse bounce messages from Yandex.Mail
26
- # @param [Hash] mhead Message headers of a bounce email
27
- # @options mhead [String] from From header
28
- # @options mhead [String] date Date header
29
- # @options mhead [String] subject Subject header
30
- # @options mhead [Array] received Received headers
31
- # @options mhead [String] others Other required headers
32
- # @param [String] mbody Message body of a bounce email
33
- # @return [Hash, Nil] Bounce data list and message/rfc822
34
- # part or nil if it failed to parse or
35
- # the arguments are missing
14
+ # @param [Hash] mhead Message headers of a bounce email
15
+ # @param [String] mbody Message body of a bounce email
16
+ # @return [Hash] Bounce data list and message/rfc822 part
17
+ # @return [Nil] it failed to parse or the arguments are missing
36
18
  def make(mhead, mbody)
19
+ # X-Yandex-Front: mxback1h.mail.yandex.net
20
+ # X-Yandex-TimeMark: 1417885948
21
+ # X-Yandex-Uniq: 92309766-f1c8-4bd4-92bc-657c75766587
22
+ # X-Yandex-Spam: 1
23
+ # X-Yandex-Forward: 10104c00ad0726da5f37374723b1e0c8
24
+ # X-Yandex-Queue-ID: 367D79E130D
25
+ # X-Yandex-Sender: rfc822; shironeko@yandex.example.com
37
26
  return nil unless mhead['x-yandex-uniq']
38
27
  return nil unless mhead['from'] == 'mailer-daemon@yandex.ru'
39
28
 
@@ -123,12 +112,11 @@ module Sisimai::Lhost
123
112
 
124
113
  e['command'] = commandset.shift || ''
125
114
  e['diagnosis'] = Sisimai::String.sweep(e['diagnosis'].tr("\n", ' '))
126
- e['agent'] = self.smtpagent
127
115
  end
128
116
 
129
117
  return { 'ds' => dscontents, 'rfc822' => emailsteak[1] }
130
118
  end
131
-
119
+ def description; return 'Yandex.Mail: https://www.yandex.ru'; end
132
120
  end
133
121
  end
134
122
  end
@@ -11,33 +11,15 @@ module Sisimai::Lhost
11
11
  StartingOf = { message: ['This message was created automatically by mail delivery'] }.freeze
12
12
  MessagesOf = { 'expired' => ['Host not reachable'] }.freeze
13
13
 
14
- def description; return 'Zoho Mail: https://www.zoho.com'; end
15
- def smtpagent; return Sisimai::Lhost.smtpagent(self); end
16
-
17
- # X-ZohoMail: Si CHF_MF_NL SS_10 UW48 UB48 FMWL UW48 UB48 SGR3_1_09124_42
18
- # X-Zoho-Virus-Status: 2
19
- # X-Mailer: Zoho Mail
20
- def headerlist; return %w[x-zohomail]; end
21
-
22
14
  # Parse bounce messages from Zoho Mail
23
- # @param [Hash] mhead Message headers of a bounce email
24
- # @options mhead [String] from From header
25
- # @options mhead [String] date Date header
26
- # @options mhead [String] subject Subject header
27
- # @options mhead [Array] received Received headers
28
- # @options mhead [String] others Other required headers
29
- # @param [String] mbody Message body of a bounce email
30
- # @return [Hash, Nil] Bounce data list and message/rfc822
31
- # part or nil if it failed to parse or
32
- # the arguments are missing
15
+ # @param [Hash] mhead Message headers of a bounce email
16
+ # @param [String] mbody Message body of a bounce email
17
+ # @return [Hash] Bounce data list and message/rfc822 part
18
+ # @return [Nil] it failed to parse or the arguments are missing
33
19
  def make(mhead, mbody)
34
- # :'from' => %r/mailer-daemon[@]mail[.]zoho[.]com\z/,
35
- # :'subject' => %r{\A(?:
36
- # Undelivered[ ]Mail[ ]Returned[ ]to[ ]Sender
37
- # |Mail[ ]Delivery[ ]Status[ ]Notification
38
- # )
39
- # }x,
40
- # :'x-mailer' => %r/\AZoho Mail\z/,
20
+ # X-ZohoMail: Si CHF_MF_NL SS_10 UW48 UB48 FMWL UW48 UB48 SGR3_1_09124_42
21
+ # X-Zoho-Virus-Status: 2
22
+ # X-Mailer: Zoho Mail
41
23
  return nil unless mhead['x-zohomail']
42
24
 
43
25
  dscontents = [Sisimai::Lhost.DELIVERYSTATUS]
@@ -109,9 +91,7 @@ module Sisimai::Lhost
109
91
  return nil unless recipients > 0
110
92
 
111
93
  dscontents.each do |e|
112
- e['agent'] = self.smtpagent
113
94
  e['diagnosis'] = Sisimai::String.sweep(e['diagnosis'].tr("\n", ' '))
114
-
115
95
  MessagesOf.each_key do |r|
116
96
  # Verify each regular expression of session errors
117
97
  next unless MessagesOf[r].any? { |a| e['diagnosis'].include?(a) }
@@ -122,7 +102,7 @@ module Sisimai::Lhost
122
102
 
123
103
  return { 'ds' => dscontents, 'rfc822' => emailsteak[1] }
124
104
  end
125
-
105
+ def description; return 'Zoho Mail: https://www.zoho.com'; end
126
106
  end
127
107
  end
128
108
  end
data/lib/sisimai/mail.rb CHANGED
@@ -1,27 +1,30 @@
1
1
  module Sisimai
2
- # Sisimai::Mail is a handler of UNIX mbox or Maildir for reading each mail. It is
3
- # wrapper class of Sisimai::Mail::Mbox and Sisimai::Mail::Maildir classes.
2
+ # Sisimai::Mail is a handler of UNIX mbox or Maildir for reading each mail.
3
+ # It is a wrapper class of Sisimai::Mail::Mbox, Sisimai::Mail::Maildir, and
4
+ # Sisimai::Mail::Memory classes.
4
5
  class Mail
5
6
  # Imported from p5-Sisimail/lib/Sisimai/Mail.pm
7
+ Until = 'v4.25.10'
8
+
6
9
  # :path [String] path to mbox or Maildir/
7
- # :type [String] Data type: mailbox, maildir, or stdin
8
- # :mail [Sisimai::Mail::[Mbox,Maildir,Memory,STDIN]] Object
9
- attr_reader :path, :type
10
- attr_accessor :mail
10
+ # :kind [String] Data type: mailbox, maildir, or stdin
11
+ # :data [Sisimai::Mail::[Mbox,Maildir,Memory,STDIN]] Object
12
+ attr_reader :path, :kind
13
+ attr_accessor :data
11
14
 
12
15
  # Constructor of Sisimai::Mail
13
16
  # @param [String] argv1 Path to mbox or Maildir/
14
17
  # @return [Sisimai::Mail, Nil] Object or nil if the argument was wrong
15
18
  def initialize(argv1)
16
19
  classname = nil
17
- parameter = { 'path' => argv1, 'type' => nil, 'mail' => nil }
20
+ parameter = { 'path' => argv1, 'kind' => nil, 'data' => nil }
18
21
 
19
22
  if argv1.is_a?(::String)
20
23
  # Path to mail or '<STDIN>' ?
21
24
  if argv1 == '<STDIN>'
22
25
  # Sisimai::Mail.new('<STDIN>')
23
26
  classname = self.class.to_s << '::STDIN'
24
- parameter['type'] = 'stdin'
27
+ parameter['kind'] = 'stdin'
25
28
  parameter['path'] = $stdin
26
29
  else
27
30
  # The argumenet is a mailbox or a Maildir/.
@@ -30,17 +33,17 @@ module Sisimai
30
33
  if mediatype == 'file'
31
34
  # The argument is a file, it is an mbox or email file in Maildir/
32
35
  classname = self.class.to_s << '::Mbox'
33
- parameter['type'] = 'mailbox'
36
+ parameter['kind'] = 'mailbox'
34
37
 
35
38
  elsif mediatype == 'directory'
36
39
  # The agument is not a file, it is a Maildir/
37
40
  classname = self.class.to_s << '::Maildir'
38
- parameter['type'] = 'maildir'
41
+ parameter['kind'] = 'maildir'
39
42
 
40
43
  elsif mediatype == 'memory'
41
44
  # The argument is an email string
42
45
  classname = self.class.to_s << '::Memory'
43
- parameter['type'] = 'memory'
46
+ parameter['kind'] = 'memory'
44
47
  parameter['path'] = 'MEMORY'
45
48
  end
46
49
  end
@@ -48,33 +51,45 @@ module Sisimai
48
51
  # Read from STDIN
49
52
  # The argument neither a mailbox nor a Maildir/.
50
53
  classname = self.class.to_s << '::STDIN'
51
- parameter['type'] = 'stdin'
54
+ parameter['kind'] = 'stdin'
52
55
  end
53
56
  return nil unless classname
54
57
 
55
58
  classpath = classname.gsub('::', '/').downcase
56
59
  require classpath
57
- parameter['mail'] = Module.const_get(classname).new(argv1)
60
+ parameter['data'] = Module.const_get(classname).new(argv1)
58
61
 
59
62
  @path = parameter['path']
60
- @type = parameter['type']
61
- @mail = parameter['mail']
63
+ @kind = parameter['kind']
64
+ @data = parameter['data']
65
+ end
66
+
67
+ def mail
68
+ warn " ***warning: Sisimai::Mail.mail will be removed at #{Until}. Use Sisimai::Mail.data instead"
69
+ return data
62
70
  end
63
71
 
64
- # Mbox/Maildir reader, works as an iterator.
72
+ def type
73
+ warn " ***warning: Sisimai::Mail.type will be removed at #{Until}. Use Sisimai::Mail.kind instead"
74
+ return kind
75
+ end
76
+
77
+ # Alias method of Sisimai::Mail.data.read()
65
78
  # @return [String] Contents of mbox/Maildir
66
79
  def read
67
- return nil unless mail
68
- return mail.read
80
+ return nil unless data
81
+ return data.read
69
82
  end
70
83
 
71
84
  # Close the handle
72
85
  # @return [True,False] true: Successfully closed the handle
73
86
  # false: Mail handle is not defined
74
87
  def close
75
- return false unless mail.handle
76
- mail.handle = nil
88
+ warn " ***warning: Sisimai::Mail.close will be removed at #{Until}. The handle automatically closes at the EOF"
89
+ return false unless data.handle
90
+ data.handle = nil
77
91
  return true
78
92
  end
79
93
  end
80
94
  end
95
+