sisimai 4.19.0-java → 4.20.0-java

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (503) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +1 -0
  3. data/ANALYTICAL-PRECISION +8 -6
  4. data/Changes +15 -0
  5. data/Developers.mk +13 -1
  6. data/Makefile +3 -3
  7. data/README-JA.md +35 -6
  8. data/README.md +44 -25
  9. data/Repository.mk +1 -1
  10. data/lib/sisimai.rb +92 -32
  11. data/lib/sisimai/address.rb +1 -1
  12. data/lib/sisimai/arf.rb +1 -1
  13. data/lib/sisimai/ced.rb +24 -0
  14. data/lib/sisimai/ced/us/amazonses.rb +270 -0
  15. data/lib/sisimai/ced/us/sendgrid.rb +86 -0
  16. data/lib/sisimai/data.rb +19 -4
  17. data/lib/sisimai/data/json.rb +4 -4
  18. data/lib/sisimai/data/yaml.rb +3 -2
  19. data/lib/sisimai/mail/maildir.rb +1 -1
  20. data/lib/sisimai/mail/mbox.rb +1 -1
  21. data/lib/sisimai/message.rb +43 -510
  22. data/lib/sisimai/message/email.rb +556 -0
  23. data/lib/sisimai/message/json.rb +201 -0
  24. data/lib/sisimai/msp.rb +4 -31
  25. data/lib/sisimai/msp/de/einsundeins.rb +1 -1
  26. data/lib/sisimai/msp/de/gmx.rb +1 -1
  27. data/lib/sisimai/msp/jp/biglobe.rb +1 -1
  28. data/lib/sisimai/msp/jp/ezweb.rb +1 -1
  29. data/lib/sisimai/msp/jp/kddi.rb +1 -1
  30. data/lib/sisimai/msp/ru/mailru.rb +1 -1
  31. data/lib/sisimai/msp/ru/yandex.rb +1 -1
  32. data/lib/sisimai/msp/uk/messagelabs.rb +1 -1
  33. data/lib/sisimai/msp/us/amazonses.rb +1 -1
  34. data/lib/sisimai/msp/us/amazonworkmail.rb +1 -1
  35. data/lib/sisimai/msp/us/aol.rb +1 -1
  36. data/lib/sisimai/msp/us/bigfoot.rb +1 -1
  37. data/lib/sisimai/msp/us/facebook.rb +1 -1
  38. data/lib/sisimai/msp/us/google.rb +1 -1
  39. data/lib/sisimai/msp/us/office365.rb +1 -1
  40. data/lib/sisimai/msp/us/outlook.rb +1 -1
  41. data/lib/sisimai/msp/us/receivingses.rb +1 -1
  42. data/lib/sisimai/msp/us/sendgrid.rb +1 -1
  43. data/lib/sisimai/msp/us/verizon.rb +1 -1
  44. data/lib/sisimai/msp/us/yahoo.rb +1 -1
  45. data/lib/sisimai/msp/us/zoho.rb +1 -1
  46. data/lib/sisimai/mta.rb +4 -32
  47. data/lib/sisimai/mta/activehunter.rb +1 -1
  48. data/lib/sisimai/mta/apachejames.rb +1 -1
  49. data/lib/sisimai/mta/courier.rb +1 -1
  50. data/lib/sisimai/mta/domino.rb +1 -1
  51. data/lib/sisimai/mta/exchange2003.rb +1 -1
  52. data/lib/sisimai/mta/exchange2007.rb +1 -1
  53. data/lib/sisimai/mta/exim.rb +1 -1
  54. data/lib/sisimai/mta/imailserver.rb +1 -1
  55. data/lib/sisimai/mta/interscanmss.rb +1 -1
  56. data/lib/sisimai/mta/mailfoundry.rb +1 -1
  57. data/lib/sisimai/mta/mailmarshalsmtp.rb +1 -1
  58. data/lib/sisimai/mta/mcafee.rb +1 -1
  59. data/lib/sisimai/mta/messagingserver.rb +1 -1
  60. data/lib/sisimai/mta/mfilter.rb +1 -1
  61. data/lib/sisimai/mta/mxlogic.rb +1 -1
  62. data/lib/sisimai/mta/notes.rb +1 -1
  63. data/lib/sisimai/mta/opensmtpd.rb +2 -2
  64. data/lib/sisimai/mta/postfix.rb +1 -1
  65. data/lib/sisimai/mta/qmail.rb +1 -1
  66. data/lib/sisimai/mta/sendmail.rb +2 -1
  67. data/lib/sisimai/mta/surfcontrol.rb +1 -1
  68. data/lib/sisimai/mta/userdefined.rb +1 -1
  69. data/lib/sisimai/mta/v5sendmail.rb +1 -1
  70. data/lib/sisimai/mta/x1.rb +1 -1
  71. data/lib/sisimai/mta/x2.rb +1 -1
  72. data/lib/sisimai/mta/x3.rb +1 -1
  73. data/lib/sisimai/mta/x4.rb +1 -1
  74. data/lib/sisimai/mta/x5.rb +1 -1
  75. data/lib/sisimai/order.rb +7 -216
  76. data/lib/sisimai/order/email.rb +231 -0
  77. data/lib/sisimai/order/json.rb +56 -0
  78. data/lib/sisimai/reason/hostunknown.rb +1 -0
  79. data/lib/sisimai/reason/norelaying.rb +2 -0
  80. data/lib/sisimai/reason/notaccept.rb +5 -1
  81. data/lib/sisimai/rfc3464.rb +1 -1
  82. data/lib/sisimai/skeleton.rb +43 -0
  83. data/lib/sisimai/smtp.rb +11 -48
  84. data/lib/sisimai/smtp/error.rb +3 -1
  85. data/lib/sisimai/string.rb +1 -0
  86. data/lib/sisimai/version.rb +1 -1
  87. data/set-of-emails/jsonapi/ced-us-amazonses-01.json +1 -0
  88. data/set-of-emails/jsonapi/ced-us-amazonses-02.json +11 -0
  89. data/set-of-emails/jsonapi/ced-us-amazonses-03.json +1 -0
  90. data/set-of-emails/jsonapi/ced-us-amazonses-04.json +1 -0
  91. data/set-of-emails/jsonapi/ced-us-amazonses-05.json +1 -0
  92. data/set-of-emails/jsonapi/ced-us-sendgrid-01.json +1 -0
  93. data/set-of-emails/jsonapi/ced-us-sendgrid-02.json +1 -0
  94. data/set-of-emails/jsonapi/ced-us-sendgrid-03.json +1 -0
  95. data/set-of-emails/jsonapi/ced-us-sendgrid-04.json +1 -0
  96. data/set-of-emails/jsonapi/ced-us-sendgrid-05.json +1 -0
  97. data/set-of-emails/jsonapi/ced-us-sendgrid-06.json +1 -0
  98. data/set-of-emails/jsonapi/ced-us-sendgrid-07.json +1 -0
  99. data/set-of-emails/jsonapi/ced-us-sendgrid-08.json +1 -0
  100. data/set-of-emails/jsonapi/ced-us-sendgrid-09.json +1 -0
  101. data/set-of-emails/jsonapi/ced-us-sendgrid-10.json +1 -0
  102. data/set-of-emails/jsonapi/ced-us-sendgrid-11.json +1 -0
  103. data/set-of-emails/maildir/bsd/README.md +50 -50
  104. data/set-of-emails/maildir/bsd/ced-us-amazonses-01.eml +47 -0
  105. data/set-of-emails/maildir/bsd/ced-us-amazonses-02.eml +51 -0
  106. data/set-of-emails/maildir/bsd/ced-us-amazonses-03.eml +47 -0
  107. data/set-of-emails/maildir/bsd/ced-us-amazonses-04.eml +46 -0
  108. data/set-of-emails/maildir/bsd/ced-us-amazonses-05.eml +46 -0
  109. data/set-of-emails/maildir/bsd/{de-einsundeins-01.eml → msp-de-einsundeins-01.eml} +0 -0
  110. data/set-of-emails/maildir/bsd/{de-gmx-01.eml → msp-de-gmx-01.eml} +0 -0
  111. data/set-of-emails/maildir/bsd/{de-gmx-02.eml → msp-de-gmx-02.eml} +0 -0
  112. data/set-of-emails/maildir/bsd/{de-gmx-03.eml → msp-de-gmx-03.eml} +0 -0
  113. data/set-of-emails/maildir/bsd/{de-gmx-04.eml → msp-de-gmx-04.eml} +0 -0
  114. data/set-of-emails/maildir/bsd/{jp-biglobe-01.eml → msp-jp-biglobe-01.eml} +0 -0
  115. data/set-of-emails/maildir/bsd/{jp-ezweb-01.eml → msp-jp-ezweb-01.eml} +0 -0
  116. data/set-of-emails/maildir/bsd/{jp-ezweb-02.eml → msp-jp-ezweb-02.eml} +0 -0
  117. data/set-of-emails/maildir/bsd/{jp-ezweb-03.eml → msp-jp-ezweb-03.eml} +0 -0
  118. data/set-of-emails/maildir/bsd/{jp-ezweb-04.eml → msp-jp-ezweb-04.eml} +0 -0
  119. data/set-of-emails/maildir/bsd/{jp-ezweb-05.eml → msp-jp-ezweb-05.eml} +0 -0
  120. data/set-of-emails/maildir/bsd/{jp-ezweb-06.eml → msp-jp-ezweb-06.eml} +0 -0
  121. data/set-of-emails/maildir/bsd/{jp-kddi-01.eml → msp-jp-kddi-01.eml} +0 -0
  122. data/set-of-emails/maildir/bsd/{jp-kddi-02.eml → msp-jp-kddi-02.eml} +0 -0
  123. data/set-of-emails/maildir/bsd/{jp-kddi-03.eml → msp-jp-kddi-03.eml} +0 -0
  124. data/set-of-emails/maildir/bsd/{ru-mailru-01.eml → msp-ru-mailru-01.eml} +0 -0
  125. data/set-of-emails/maildir/bsd/{ru-mailru-02.eml → msp-ru-mailru-02.eml} +0 -0
  126. data/set-of-emails/maildir/bsd/{ru-mailru-03.eml → msp-ru-mailru-03.eml} +0 -0
  127. data/set-of-emails/maildir/bsd/{ru-mailru-04.eml → msp-ru-mailru-04.eml} +0 -0
  128. data/set-of-emails/maildir/bsd/{ru-yandex-01.eml → msp-ru-yandex-01.eml} +0 -0
  129. data/set-of-emails/maildir/bsd/{ru-yandex-02.eml → msp-ru-yandex-02.eml} +0 -0
  130. data/set-of-emails/maildir/bsd/{ru-yandex-03.eml → msp-ru-yandex-03.eml} +0 -0
  131. data/set-of-emails/maildir/bsd/{uk-messagelabs-01.eml → msp-uk-messagelabs-01.eml} +0 -0
  132. data/set-of-emails/maildir/bsd/{us-amazonses-01.eml → msp-us-amazonses-01.eml} +0 -0
  133. data/set-of-emails/maildir/bsd/{us-amazonses-02.eml → msp-us-amazonses-02.eml} +0 -0
  134. data/set-of-emails/maildir/bsd/{us-amazonses-03.eml → msp-us-amazonses-03.eml} +0 -0
  135. data/set-of-emails/maildir/bsd/{us-amazonses-04.eml → msp-us-amazonses-04.eml} +0 -0
  136. data/set-of-emails/maildir/bsd/{us-amazonses-05.eml → msp-us-amazonses-05.eml} +0 -0
  137. data/set-of-emails/maildir/bsd/{us-amazonses-06.eml → msp-us-amazonses-06.eml} +0 -0
  138. data/set-of-emails/maildir/bsd/{us-amazonses-07.eml → msp-us-amazonses-07.eml} +0 -0
  139. data/set-of-emails/maildir/bsd/{us-amazonses-08.eml → msp-us-amazonses-08.eml} +0 -0
  140. data/set-of-emails/maildir/bsd/{us-amazonworkmail-01.eml → msp-us-amazonworkmail-01.eml} +0 -0
  141. data/set-of-emails/maildir/bsd/{us-amazonworkmail-02.eml → msp-us-amazonworkmail-02.eml} +0 -0
  142. data/set-of-emails/maildir/bsd/{us-amazonworkmail-03.eml → msp-us-amazonworkmail-03.eml} +0 -0
  143. data/set-of-emails/maildir/bsd/{us-amazonworkmail-04.eml → msp-us-amazonworkmail-04.eml} +0 -0
  144. data/set-of-emails/maildir/bsd/{us-amazonworkmail-05.eml → msp-us-amazonworkmail-05.eml} +0 -0
  145. data/set-of-emails/maildir/bsd/{us-amazonworkmail-06.eml → msp-us-amazonworkmail-06.eml} +0 -0
  146. data/set-of-emails/maildir/bsd/{us-amazonworkmail-07.eml → msp-us-amazonworkmail-07.eml} +0 -0
  147. data/set-of-emails/maildir/bsd/{us-aol-01.eml → msp-us-aol-01.eml} +0 -0
  148. data/set-of-emails/maildir/bsd/{us-aol-02.eml → msp-us-aol-02.eml} +0 -0
  149. data/set-of-emails/maildir/bsd/{us-aol-03.eml → msp-us-aol-03.eml} +0 -0
  150. data/set-of-emails/maildir/bsd/{us-aol-04.eml → msp-us-aol-04.eml} +0 -0
  151. data/set-of-emails/maildir/bsd/{us-bigfoot-01.eml → msp-us-bigfoot-01.eml} +0 -0
  152. data/set-of-emails/maildir/bsd/{us-facebook-01.eml → msp-us-facebook-01.eml} +0 -0
  153. data/set-of-emails/maildir/bsd/{us-facebook-02.eml → msp-us-facebook-02.eml} +0 -0
  154. data/set-of-emails/maildir/bsd/{us-google-01.eml → msp-us-google-01.eml} +0 -0
  155. data/set-of-emails/maildir/bsd/{us-google-02.eml → msp-us-google-02.eml} +0 -0
  156. data/set-of-emails/maildir/bsd/{us-google-03.eml → msp-us-google-03.eml} +0 -0
  157. data/set-of-emails/maildir/bsd/{us-google-04.eml → msp-us-google-04.eml} +0 -0
  158. data/set-of-emails/maildir/bsd/{us-google-05.eml → msp-us-google-05.eml} +0 -0
  159. data/set-of-emails/maildir/bsd/{us-google-06.eml → msp-us-google-06.eml} +0 -0
  160. data/set-of-emails/maildir/bsd/{us-google-07.eml → msp-us-google-07.eml} +0 -0
  161. data/set-of-emails/maildir/bsd/{us-google-08.eml → msp-us-google-08.eml} +0 -0
  162. data/set-of-emails/maildir/bsd/{us-google-09.eml → msp-us-google-09.eml} +0 -0
  163. data/set-of-emails/maildir/bsd/{us-google-10.eml → msp-us-google-10.eml} +0 -0
  164. data/set-of-emails/maildir/bsd/{us-google-11.eml → msp-us-google-11.eml} +0 -0
  165. data/set-of-emails/maildir/bsd/{us-google-12.eml → msp-us-google-12.eml} +0 -0
  166. data/set-of-emails/maildir/bsd/{us-google-13.eml → msp-us-google-13.eml} +0 -0
  167. data/set-of-emails/maildir/bsd/{us-google-14.eml → msp-us-google-14.eml} +0 -0
  168. data/set-of-emails/maildir/bsd/{us-google-15.eml → msp-us-google-15.eml} +0 -0
  169. data/set-of-emails/maildir/bsd/{us-google-16.eml → msp-us-google-16.eml} +0 -0
  170. data/set-of-emails/maildir/bsd/{us-google-17.eml → msp-us-google-17.eml} +0 -0
  171. data/set-of-emails/maildir/bsd/{us-office365-01.eml → msp-us-office365-01.eml} +0 -0
  172. data/set-of-emails/maildir/bsd/{us-office365-02.eml → msp-us-office365-02.eml} +0 -0
  173. data/set-of-emails/maildir/bsd/{us-outlook-01.eml → msp-us-outlook-01.eml} +0 -0
  174. data/set-of-emails/maildir/bsd/{us-outlook-02.eml → msp-us-outlook-02.eml} +0 -0
  175. data/set-of-emails/maildir/bsd/{us-outlook-03.eml → msp-us-outlook-03.eml} +0 -0
  176. data/set-of-emails/maildir/bsd/{us-outlook-04.eml → msp-us-outlook-04.eml} +0 -0
  177. data/set-of-emails/maildir/bsd/{us-outlook-05.eml → msp-us-outlook-05.eml} +0 -0
  178. data/set-of-emails/maildir/bsd/{us-outlook-06.eml → msp-us-outlook-06.eml} +0 -0
  179. data/set-of-emails/maildir/bsd/{us-outlook-07.eml → msp-us-outlook-07.eml} +0 -0
  180. data/set-of-emails/maildir/bsd/{us-receivingses-01.eml → msp-us-receivingses-01.eml} +0 -0
  181. data/set-of-emails/maildir/bsd/{us-receivingses-02.eml → msp-us-receivingses-02.eml} +0 -0
  182. data/set-of-emails/maildir/bsd/{us-receivingses-03.eml → msp-us-receivingses-03.eml} +0 -0
  183. data/set-of-emails/maildir/bsd/{us-receivingses-04.eml → msp-us-receivingses-04.eml} +0 -0
  184. data/set-of-emails/maildir/bsd/{us-receivingses-05.eml → msp-us-receivingses-05.eml} +0 -0
  185. data/set-of-emails/maildir/bsd/{us-receivingses-06.eml → msp-us-receivingses-06.eml} +0 -0
  186. data/set-of-emails/maildir/bsd/{us-receivingses-07.eml → msp-us-receivingses-07.eml} +0 -0
  187. data/set-of-emails/maildir/bsd/{us-sendgrid-01.eml → msp-us-sendgrid-01.eml} +0 -0
  188. data/set-of-emails/maildir/bsd/{us-sendgrid-02.eml → msp-us-sendgrid-02.eml} +0 -0
  189. data/set-of-emails/maildir/bsd/{us-sendgrid-03.eml → msp-us-sendgrid-03.eml} +0 -0
  190. data/set-of-emails/maildir/bsd/{us-verizon-01.eml → msp-us-verizon-01.eml} +0 -0
  191. data/set-of-emails/maildir/bsd/msp-us-verizon-02.eml +46 -0
  192. data/set-of-emails/maildir/bsd/{us-yahoo-01.eml → msp-us-yahoo-01.eml} +0 -0
  193. data/set-of-emails/maildir/bsd/{us-yahoo-02.eml → msp-us-yahoo-02.eml} +0 -0
  194. data/set-of-emails/maildir/bsd/{us-yahoo-03.eml → msp-us-yahoo-03.eml} +0 -0
  195. data/set-of-emails/maildir/bsd/{us-yahoo-04.eml → msp-us-yahoo-04.eml} +0 -0
  196. data/set-of-emails/maildir/bsd/{us-yahoo-05.eml → msp-us-yahoo-05.eml} +0 -0
  197. data/set-of-emails/maildir/bsd/{us-zoho-01.eml → msp-us-zoho-01.eml} +0 -0
  198. data/set-of-emails/maildir/bsd/{us-zoho-02.eml → msp-us-zoho-02.eml} +0 -0
  199. data/set-of-emails/maildir/bsd/{us-zoho-03.eml → msp-us-zoho-03.eml} +0 -0
  200. data/set-of-emails/maildir/bsd/{us-zoho-04.eml → msp-us-zoho-04.eml} +0 -0
  201. data/set-of-emails/maildir/bsd/{us-zoho-05.eml → msp-us-zoho-05.eml} +0 -0
  202. data/set-of-emails/maildir/bsd/mta-README.md +319 -0
  203. data/set-of-emails/maildir/bsd/{activehunter-01.eml → mta-activehunter-01.eml} +0 -0
  204. data/set-of-emails/maildir/bsd/{activehunter-02.eml → mta-activehunter-02.eml} +0 -0
  205. data/set-of-emails/maildir/bsd/{apachejames-01.eml → mta-apachejames-01.eml} +0 -0
  206. data/set-of-emails/maildir/bsd/{courier-01.eml → mta-courier-01.eml} +0 -0
  207. data/set-of-emails/maildir/bsd/{courier-02.eml → mta-courier-02.eml} +0 -0
  208. data/set-of-emails/maildir/bsd/{courier-03.eml → mta-courier-03.eml} +0 -0
  209. data/set-of-emails/maildir/bsd/{courier-04.eml → mta-courier-04.eml} +0 -0
  210. data/set-of-emails/maildir/bsd/{domino-01.eml → mta-domino-01.eml} +0 -0
  211. data/set-of-emails/maildir/bsd/{domino-02.eml → mta-domino-02.eml} +0 -0
  212. data/set-of-emails/maildir/bsd/{exchange2003-01.eml → mta-exchange2003-01.eml} +0 -0
  213. data/set-of-emails/maildir/bsd/{exchange2003-02.eml → mta-exchange2003-02.eml} +0 -0
  214. data/set-of-emails/maildir/bsd/{exchange2003-03.eml → mta-exchange2003-03.eml} +0 -0
  215. data/set-of-emails/maildir/bsd/{exchange2003-04.eml → mta-exchange2003-04.eml} +0 -0
  216. data/set-of-emails/maildir/bsd/{exchange2003-05.eml → mta-exchange2003-05.eml} +0 -0
  217. data/set-of-emails/maildir/bsd/{exchange2003-06.eml → mta-exchange2003-06.eml} +0 -0
  218. data/set-of-emails/maildir/bsd/{exchange2007-01.eml → mta-exchange2007-01.eml} +0 -0
  219. data/set-of-emails/maildir/bsd/{exchange2007-02.eml → mta-exchange2007-02.eml} +0 -0
  220. data/set-of-emails/maildir/bsd/{exchange2007-03.eml → mta-exchange2007-03.eml} +0 -0
  221. data/set-of-emails/maildir/bsd/{exim-01.eml → mta-exim-01.eml} +0 -0
  222. data/set-of-emails/maildir/bsd/{exim-02.eml → mta-exim-02.eml} +0 -0
  223. data/set-of-emails/maildir/bsd/{exim-03.eml → mta-exim-03.eml} +0 -0
  224. data/set-of-emails/maildir/bsd/{exim-04.eml → mta-exim-04.eml} +0 -0
  225. data/set-of-emails/maildir/bsd/{exim-05.eml → mta-exim-05.eml} +0 -0
  226. data/set-of-emails/maildir/bsd/{exim-06.eml → mta-exim-06.eml} +0 -0
  227. data/set-of-emails/maildir/bsd/{exim-07.eml → mta-exim-07.eml} +0 -0
  228. data/set-of-emails/maildir/bsd/{exim-08.eml → mta-exim-08.eml} +0 -0
  229. data/set-of-emails/maildir/bsd/{exim-09.eml → mta-exim-09.eml} +0 -0
  230. data/set-of-emails/maildir/bsd/{exim-10.eml → mta-exim-10.eml} +0 -0
  231. data/set-of-emails/maildir/bsd/{exim-11.eml → mta-exim-11.eml} +0 -0
  232. data/set-of-emails/maildir/bsd/{exim-12.eml → mta-exim-12.eml} +0 -0
  233. data/set-of-emails/maildir/bsd/{exim-13.eml → mta-exim-13.eml} +0 -0
  234. data/set-of-emails/maildir/bsd/{exim-14.eml → mta-exim-14.eml} +0 -0
  235. data/set-of-emails/maildir/bsd/{exim-15.eml → mta-exim-15.eml} +0 -0
  236. data/set-of-emails/maildir/bsd/{exim-16.eml → mta-exim-16.eml} +0 -0
  237. data/set-of-emails/maildir/bsd/{exim-17.eml → mta-exim-17.eml} +0 -0
  238. data/set-of-emails/maildir/bsd/{exim-18.eml → mta-exim-18.eml} +0 -0
  239. data/set-of-emails/maildir/bsd/{exim-19.eml → mta-exim-19.eml} +0 -0
  240. data/set-of-emails/maildir/bsd/{exim-20.eml → mta-exim-20.eml} +0 -0
  241. data/set-of-emails/maildir/bsd/{exim-21.eml → mta-exim-21.eml} +0 -0
  242. data/set-of-emails/maildir/bsd/{exim-22.eml → mta-exim-22.eml} +0 -0
  243. data/set-of-emails/maildir/bsd/{exim-23.eml → mta-exim-23.eml} +0 -0
  244. data/set-of-emails/maildir/bsd/{exim-24.eml → mta-exim-24.eml} +0 -0
  245. data/set-of-emails/maildir/bsd/{exim-25.eml → mta-exim-25.eml} +0 -0
  246. data/set-of-emails/maildir/bsd/{exim-26.eml → mta-exim-26.eml} +0 -0
  247. data/set-of-emails/maildir/bsd/{exim-27.eml → mta-exim-27.eml} +0 -0
  248. data/set-of-emails/maildir/bsd/{exim-28.eml → mta-exim-28.eml} +0 -0
  249. data/set-of-emails/maildir/bsd/{exim-29.eml → mta-exim-29.eml} +0 -0
  250. data/set-of-emails/maildir/bsd/{imailserver-01.eml → mta-imailserver-01.eml} +0 -0
  251. data/set-of-emails/maildir/bsd/{imailserver-02.eml → mta-imailserver-02.eml} +0 -0
  252. data/set-of-emails/maildir/bsd/{imailserver-03.eml → mta-imailserver-03.eml} +0 -0
  253. data/set-of-emails/maildir/bsd/{imailserver-04.eml → mta-imailserver-04.eml} +0 -0
  254. data/set-of-emails/maildir/bsd/{imailserver-05.eml → mta-imailserver-05.eml} +0 -0
  255. data/set-of-emails/maildir/bsd/{imailserver-06.eml → mta-imailserver-06.eml} +0 -0
  256. data/set-of-emails/maildir/bsd/{interscanmss-01.eml → mta-interscanmss-01.eml} +0 -0
  257. data/set-of-emails/maildir/bsd/{interscanmss-02.eml → mta-interscanmss-02.eml} +0 -0
  258. data/set-of-emails/maildir/bsd/{mailfoundry-01.eml → mta-mailfoundry-01.eml} +0 -0
  259. data/set-of-emails/maildir/bsd/{mailfoundry-02.eml → mta-mailfoundry-02.eml} +0 -0
  260. data/set-of-emails/maildir/bsd/{mailmarshalsmtp-01.eml → mta-mailmarshalsmtp-01.eml} +0 -0
  261. data/set-of-emails/maildir/bsd/{mcafee-01.eml → mta-mcafee-01.eml} +0 -0
  262. data/set-of-emails/maildir/bsd/{mcafee-02.eml → mta-mcafee-02.eml} +0 -0
  263. data/set-of-emails/maildir/bsd/{mcafee-03.eml → mta-mcafee-03.eml} +0 -0
  264. data/set-of-emails/maildir/bsd/{messagingserver-01.eml → mta-messagingserver-01.eml} +0 -0
  265. data/set-of-emails/maildir/bsd/{messagingserver-02.eml → mta-messagingserver-02.eml} +0 -0
  266. data/set-of-emails/maildir/bsd/{messagingserver-03.eml → mta-messagingserver-03.eml} +0 -0
  267. data/set-of-emails/maildir/bsd/{messagingserver-04.eml → mta-messagingserver-04.eml} +0 -0
  268. data/set-of-emails/maildir/bsd/{messagingserver-05.eml → mta-messagingserver-05.eml} +0 -0
  269. data/set-of-emails/maildir/bsd/{messagingserver-06.eml → mta-messagingserver-06.eml} +0 -0
  270. data/set-of-emails/maildir/bsd/{messagingserver-07.eml → mta-messagingserver-07.eml} +0 -0
  271. data/set-of-emails/maildir/bsd/{mfilter-01.eml → mta-mfilter-01.eml} +0 -0
  272. data/set-of-emails/maildir/bsd/{mfilter-02.eml → mta-mfilter-02.eml} +0 -0
  273. data/set-of-emails/maildir/bsd/{mfilter-03.eml → mta-mfilter-03.eml} +0 -0
  274. data/set-of-emails/maildir/bsd/{mxlogic-01.eml → mta-mxlogic-01.eml} +0 -0
  275. data/set-of-emails/maildir/bsd/{mxlogic-02.eml → mta-mxlogic-02.eml} +0 -0
  276. data/set-of-emails/maildir/bsd/{mxlogic-03.eml → mta-mxlogic-03.eml} +0 -0
  277. data/set-of-emails/maildir/bsd/{notes-01.eml → mta-notes-01.eml} +0 -0
  278. data/set-of-emails/maildir/bsd/{notes-02.eml → mta-notes-02.eml} +0 -0
  279. data/set-of-emails/maildir/bsd/{notes-03.eml → mta-notes-03.eml} +0 -0
  280. data/set-of-emails/maildir/bsd/{notes-04.eml → mta-notes-04.eml} +0 -0
  281. data/set-of-emails/maildir/bsd/{opensmtpd-01.eml → mta-opensmtpd-01.eml} +0 -0
  282. data/set-of-emails/maildir/bsd/{opensmtpd-02.eml → mta-opensmtpd-02.eml} +0 -0
  283. data/set-of-emails/maildir/bsd/{opensmtpd-03.eml → mta-opensmtpd-03.eml} +0 -0
  284. data/set-of-emails/maildir/bsd/{opensmtpd-04.eml → mta-opensmtpd-04.eml} +0 -0
  285. data/set-of-emails/maildir/bsd/{opensmtpd-05.eml → mta-opensmtpd-05.eml} +0 -0
  286. data/set-of-emails/maildir/bsd/mta-opensmtpd-06.eml +67 -0
  287. data/set-of-emails/maildir/bsd/{postfix-01.eml → mta-postfix-01.eml} +0 -0
  288. data/set-of-emails/maildir/bsd/{postfix-02.eml → mta-postfix-02.eml} +0 -0
  289. data/set-of-emails/maildir/bsd/{postfix-03.eml → mta-postfix-03.eml} +0 -0
  290. data/set-of-emails/maildir/bsd/{postfix-04.eml → mta-postfix-04.eml} +0 -0
  291. data/set-of-emails/maildir/bsd/{postfix-05.eml → mta-postfix-05.eml} +0 -0
  292. data/set-of-emails/maildir/bsd/{postfix-06.eml → mta-postfix-06.eml} +0 -0
  293. data/set-of-emails/maildir/bsd/{postfix-07.eml → mta-postfix-07.eml} +0 -0
  294. data/set-of-emails/maildir/bsd/{postfix-08.eml → mta-postfix-08.eml} +0 -0
  295. data/set-of-emails/maildir/bsd/{postfix-09.eml → mta-postfix-09.eml} +0 -0
  296. data/set-of-emails/maildir/bsd/{postfix-10.eml → mta-postfix-10.eml} +0 -0
  297. data/set-of-emails/maildir/bsd/{postfix-11.eml → mta-postfix-11.eml} +0 -0
  298. data/set-of-emails/maildir/bsd/{postfix-12.eml → mta-postfix-12.eml} +0 -0
  299. data/set-of-emails/maildir/bsd/{postfix-13.eml → mta-postfix-13.eml} +0 -0
  300. data/set-of-emails/maildir/bsd/{postfix-14.eml → mta-postfix-14.eml} +0 -0
  301. data/set-of-emails/maildir/bsd/{postfix-15.eml → mta-postfix-15.eml} +0 -0
  302. data/set-of-emails/maildir/bsd/{postfix-16.eml → mta-postfix-16.eml} +0 -0
  303. data/set-of-emails/maildir/bsd/{postfix-17.eml → mta-postfix-17.eml} +0 -0
  304. data/set-of-emails/maildir/bsd/{postfix-18.eml → mta-postfix-18.eml} +0 -0
  305. data/set-of-emails/maildir/bsd/{postfix-19.eml → mta-postfix-19.eml} +0 -0
  306. data/set-of-emails/maildir/bsd/{postfix-20.eml → mta-postfix-20.eml} +0 -0
  307. data/set-of-emails/maildir/bsd/{postfix-21.eml → mta-postfix-21.eml} +0 -0
  308. data/set-of-emails/maildir/bsd/{postfix-22.eml → mta-postfix-22.eml} +0 -0
  309. data/set-of-emails/maildir/bsd/{postfix-23.eml → mta-postfix-23.eml} +0 -0
  310. data/set-of-emails/maildir/bsd/{postfix-24.eml → mta-postfix-24.eml} +0 -0
  311. data/set-of-emails/maildir/bsd/{postfix-25.eml → mta-postfix-25.eml} +0 -0
  312. data/set-of-emails/maildir/bsd/{postfix-26.eml → mta-postfix-26.eml} +0 -0
  313. data/set-of-emails/maildir/bsd/{postfix-27.eml → mta-postfix-27.eml} +0 -0
  314. data/set-of-emails/maildir/bsd/{qmail-01.eml → mta-qmail-01.eml} +0 -0
  315. data/set-of-emails/maildir/bsd/{qmail-02.eml → mta-qmail-02.eml} +0 -0
  316. data/set-of-emails/maildir/bsd/{qmail-03.eml → mta-qmail-03.eml} +0 -0
  317. data/set-of-emails/maildir/bsd/{qmail-04.eml → mta-qmail-04.eml} +0 -0
  318. data/set-of-emails/maildir/bsd/{qmail-05.eml → mta-qmail-05.eml} +0 -0
  319. data/set-of-emails/maildir/bsd/{qmail-06.eml → mta-qmail-06.eml} +0 -0
  320. data/set-of-emails/maildir/bsd/{qmail-07.eml → mta-qmail-07.eml} +0 -0
  321. data/set-of-emails/maildir/bsd/{qmail-08.eml → mta-qmail-08.eml} +0 -0
  322. data/set-of-emails/maildir/bsd/{qmail-09.eml → mta-qmail-09.eml} +0 -0
  323. data/set-of-emails/maildir/bsd/{qmail-10.eml → mta-qmail-10.eml} +0 -0
  324. data/set-of-emails/maildir/bsd/{qmail-11.eml → mta-qmail-11.eml} +0 -0
  325. data/set-of-emails/maildir/bsd/{qmail-12.eml → mta-qmail-12.eml} +0 -0
  326. data/set-of-emails/maildir/bsd/{sendmail-01.eml → mta-sendmail-01.eml} +0 -0
  327. data/set-of-emails/maildir/bsd/{sendmail-02.eml → mta-sendmail-02.eml} +0 -0
  328. data/set-of-emails/maildir/bsd/{sendmail-03.eml → mta-sendmail-03.eml} +0 -0
  329. data/set-of-emails/maildir/bsd/{sendmail-04.eml → mta-sendmail-04.eml} +0 -0
  330. data/set-of-emails/maildir/bsd/{sendmail-05.eml → mta-sendmail-05.eml} +0 -0
  331. data/set-of-emails/maildir/bsd/{sendmail-06.eml → mta-sendmail-06.eml} +0 -0
  332. data/set-of-emails/maildir/bsd/{sendmail-07.eml → mta-sendmail-07.eml} +0 -0
  333. data/set-of-emails/maildir/bsd/{sendmail-08.eml → mta-sendmail-08.eml} +0 -0
  334. data/set-of-emails/maildir/bsd/{sendmail-09.eml → mta-sendmail-09.eml} +0 -0
  335. data/set-of-emails/maildir/bsd/{sendmail-10.eml → mta-sendmail-10.eml} +0 -0
  336. data/set-of-emails/maildir/bsd/{sendmail-11.eml → mta-sendmail-11.eml} +0 -0
  337. data/set-of-emails/maildir/bsd/{sendmail-12.eml → mta-sendmail-12.eml} +0 -0
  338. data/set-of-emails/maildir/bsd/{sendmail-13.eml → mta-sendmail-13.eml} +0 -0
  339. data/set-of-emails/maildir/bsd/{sendmail-14.eml → mta-sendmail-14.eml} +0 -0
  340. data/set-of-emails/maildir/bsd/{sendmail-15.eml → mta-sendmail-15.eml} +0 -0
  341. data/set-of-emails/maildir/bsd/{sendmail-16.eml → mta-sendmail-16.eml} +0 -0
  342. data/set-of-emails/maildir/bsd/{sendmail-17.eml → mta-sendmail-17.eml} +0 -0
  343. data/set-of-emails/maildir/bsd/{sendmail-18.eml → mta-sendmail-18.eml} +0 -0
  344. data/set-of-emails/maildir/bsd/{sendmail-19.eml → mta-sendmail-19.eml} +0 -0
  345. data/set-of-emails/maildir/bsd/{sendmail-20.eml → mta-sendmail-20.eml} +0 -0
  346. data/set-of-emails/maildir/bsd/{sendmail-21.eml → mta-sendmail-21.eml} +0 -0
  347. data/set-of-emails/maildir/bsd/{sendmail-22.eml → mta-sendmail-22.eml} +0 -0
  348. data/set-of-emails/maildir/bsd/{sendmail-23.eml → mta-sendmail-23.eml} +0 -0
  349. data/set-of-emails/maildir/bsd/{sendmail-24.eml → mta-sendmail-24.eml} +0 -0
  350. data/set-of-emails/maildir/bsd/{sendmail-25.eml → mta-sendmail-25.eml} +0 -0
  351. data/set-of-emails/maildir/bsd/{sendmail-26.eml → mta-sendmail-26.eml} +0 -0
  352. data/set-of-emails/maildir/bsd/{sendmail-27.eml → mta-sendmail-27.eml} +0 -0
  353. data/set-of-emails/maildir/bsd/{sendmail-28.eml → mta-sendmail-28.eml} +0 -0
  354. data/set-of-emails/maildir/bsd/{sendmail-29.eml → mta-sendmail-29.eml} +0 -0
  355. data/set-of-emails/maildir/bsd/{sendmail-30.eml → mta-sendmail-30.eml} +0 -0
  356. data/set-of-emails/maildir/bsd/{sendmail-31.eml → mta-sendmail-31.eml} +0 -0
  357. data/set-of-emails/maildir/bsd/{sendmail-32.eml → mta-sendmail-32.eml} +0 -0
  358. data/set-of-emails/maildir/bsd/{sendmail-33.eml → mta-sendmail-33.eml} +0 -0
  359. data/set-of-emails/maildir/bsd/{sendmail-34.eml → mta-sendmail-34.eml} +0 -0
  360. data/set-of-emails/maildir/bsd/{sendmail-35.eml → mta-sendmail-35.eml} +0 -0
  361. data/set-of-emails/maildir/bsd/{sendmail-36.eml → mta-sendmail-36.eml} +0 -0
  362. data/set-of-emails/maildir/bsd/{sendmail-37.eml → mta-sendmail-37.eml} +0 -0
  363. data/set-of-emails/maildir/bsd/{sendmail-38.eml → mta-sendmail-38.eml} +0 -0
  364. data/set-of-emails/maildir/bsd/{sendmail-39.eml → mta-sendmail-39.eml} +0 -0
  365. data/set-of-emails/maildir/bsd/{sendmail-40.eml → mta-sendmail-40.eml} +0 -0
  366. data/set-of-emails/maildir/bsd/{sendmail-41.eml → mta-sendmail-41.eml} +0 -0
  367. data/set-of-emails/maildir/bsd/mta-sendmail-42.eml +64 -0
  368. data/set-of-emails/maildir/bsd/{surfcontrol-01.eml → mta-surfcontrol-01.eml} +0 -0
  369. data/set-of-emails/maildir/bsd/{surfcontrol-02.eml → mta-surfcontrol-02.eml} +0 -0
  370. data/set-of-emails/maildir/bsd/{surfcontrol-03.eml → mta-surfcontrol-03.eml} +0 -0
  371. data/set-of-emails/maildir/bsd/{v5sendmail-01.eml → mta-v5sendmail-01.eml} +0 -0
  372. data/set-of-emails/maildir/bsd/{v5sendmail-02.eml → mta-v5sendmail-02.eml} +0 -0
  373. data/set-of-emails/maildir/bsd/{v5sendmail-03.eml → mta-v5sendmail-03.eml} +0 -0
  374. data/set-of-emails/maildir/bsd/{v5sendmail-04.eml → mta-v5sendmail-04.eml} +0 -0
  375. data/set-of-emails/maildir/bsd/{v5sendmail-05.eml → mta-v5sendmail-05.eml} +0 -0
  376. data/set-of-emails/maildir/bsd/{v5sendmail-06.eml → mta-v5sendmail-06.eml} +0 -0
  377. data/set-of-emails/maildir/bsd/{v5sendmail-07.eml → mta-v5sendmail-07.eml} +0 -0
  378. data/set-of-emails/maildir/bsd/{x1-01.eml → mta-x1-01.eml} +0 -0
  379. data/set-of-emails/maildir/bsd/{x1-02.eml → mta-x1-02.eml} +0 -0
  380. data/set-of-emails/maildir/bsd/{x2-01.eml → mta-x2-01.eml} +0 -0
  381. data/set-of-emails/maildir/bsd/{x2-02.eml → mta-x2-02.eml} +0 -0
  382. data/set-of-emails/maildir/bsd/{x2-03.eml → mta-x2-03.eml} +0 -0
  383. data/set-of-emails/maildir/bsd/{x2-04.eml → mta-x2-04.eml} +0 -0
  384. data/set-of-emails/maildir/bsd/{x2-05.eml → mta-x2-05.eml} +0 -0
  385. data/set-of-emails/maildir/bsd/{x3-01.eml → mta-x3-01.eml} +0 -0
  386. data/set-of-emails/maildir/bsd/{x3-02.eml → mta-x3-02.eml} +0 -0
  387. data/set-of-emails/maildir/bsd/{x3-03.eml → mta-x3-03.eml} +0 -0
  388. data/set-of-emails/maildir/bsd/{x3-04.eml → mta-x3-04.eml} +0 -0
  389. data/set-of-emails/maildir/bsd/{x4-01.eml → mta-x4-01.eml} +0 -0
  390. data/set-of-emails/maildir/bsd/{x4-02.eml → mta-x4-02.eml} +0 -0
  391. data/set-of-emails/maildir/bsd/{x4-03.eml → mta-x4-03.eml} +0 -0
  392. data/set-of-emails/maildir/bsd/{x4-04.eml → mta-x4-04.eml} +0 -0
  393. data/set-of-emails/maildir/bsd/{x4-05.eml → mta-x4-05.eml} +0 -0
  394. data/set-of-emails/maildir/bsd/{x4-06.eml → mta-x4-06.eml} +0 -0
  395. data/set-of-emails/maildir/bsd/{x4-07.eml → mta-x4-07.eml} +0 -0
  396. data/set-of-emails/maildir/bsd/{x5-01.eml → mta-x5-01.eml} +0 -0
  397. data/set-of-emails/maildir/bsd/{exchange-online-01.eml → rhost-exchange-online-01.eml} +0 -0
  398. data/set-of-emails/maildir/bsd/{google-apps-01.eml → rhost-google-apps-01.eml} +0 -0
  399. data/set-of-emails/maildir/dos/ced-us-amazonses-01.eml +47 -0
  400. data/set-of-emails/maildir/dos/{de-einsundeins-01.eml → msp-de-einsundeins-01.eml} +0 -0
  401. data/set-of-emails/maildir/dos/{de-gmx-01.eml → msp-de-gmx-01.eml} +0 -0
  402. data/set-of-emails/maildir/dos/{jp-biglobe-01.eml → msp-jp-biglobe-01.eml} +0 -0
  403. data/set-of-emails/maildir/dos/{jp-ezweb-01.eml → msp-jp-ezweb-01.eml} +0 -0
  404. data/set-of-emails/maildir/dos/{jp-kddi-01.eml → msp-jp-kddi-01.eml} +0 -0
  405. data/set-of-emails/maildir/dos/{ru-mailru-01.eml → msp-ru-mailru-01.eml} +0 -0
  406. data/set-of-emails/maildir/dos/{ru-yandex-01.eml → msp-ru-yandex-01.eml} +0 -0
  407. data/set-of-emails/maildir/dos/{uk-messagelabs-01.eml → msp-uk-messagelabs-01.eml} +0 -0
  408. data/set-of-emails/maildir/dos/{us-amazonses-01.eml → msp-us-amazonses-01.eml} +0 -0
  409. data/set-of-emails/maildir/dos/{us-amazonworkmail-01.eml → msp-us-amazonworkmail-01.eml} +0 -0
  410. data/set-of-emails/maildir/dos/{us-aol-01.eml → msp-us-aol-01.eml} +0 -0
  411. data/set-of-emails/maildir/dos/{us-bigfoot-01.eml → msp-us-bigfoot-01.eml} +0 -0
  412. data/set-of-emails/maildir/dos/{us-facebook-01.eml → msp-us-facebook-01.eml} +0 -0
  413. data/set-of-emails/maildir/dos/{us-google-01.eml → msp-us-google-01.eml} +0 -0
  414. data/set-of-emails/maildir/dos/{us-office365-01.eml → msp-us-office365-01.eml} +0 -0
  415. data/set-of-emails/maildir/dos/{us-outlook-01.eml → msp-us-outlook-01.eml} +0 -0
  416. data/set-of-emails/maildir/dos/{us-receivingses-01.eml → msp-us-receivingses-01.eml} +0 -0
  417. data/set-of-emails/maildir/dos/{us-sendgrid-01.eml → msp-us-sendgrid-01.eml} +0 -0
  418. data/set-of-emails/maildir/dos/{us-verizon-01.eml → msp-us-verizon-01.eml} +0 -0
  419. data/set-of-emails/maildir/dos/{us-yahoo-01.eml → msp-us-yahoo-01.eml} +0 -0
  420. data/set-of-emails/maildir/dos/{us-zoho-01.eml → msp-us-zoho-01.eml} +0 -0
  421. data/set-of-emails/maildir/dos/{activehunter-01.eml → mta-activehunter-01.eml} +0 -0
  422. data/set-of-emails/maildir/dos/{apachejames-01.eml → mta-apachejames-01.eml} +0 -0
  423. data/set-of-emails/maildir/dos/{courier-01.eml → mta-courier-01.eml} +0 -0
  424. data/set-of-emails/maildir/dos/{domino-01.eml → mta-domino-01.eml} +0 -0
  425. data/set-of-emails/maildir/dos/{exchange-01.eml → mta-exchange-01.eml} +0 -0
  426. data/set-of-emails/maildir/dos/{exchange2003-01.eml → mta-exchange2003-01.eml} +0 -0
  427. data/set-of-emails/maildir/dos/{exchange2007-01.eml → mta-exchange2007-01.eml} +0 -0
  428. data/set-of-emails/maildir/dos/{exim-01.eml → mta-exim-01.eml} +0 -0
  429. data/set-of-emails/maildir/dos/{imailserver-01.eml → mta-imailserver-01.eml} +0 -0
  430. data/set-of-emails/maildir/dos/{interscanmss-01.eml → mta-interscanmss-01.eml} +0 -0
  431. data/set-of-emails/maildir/dos/{mailfoundry-01.eml → mta-mailfoundry-01.eml} +0 -0
  432. data/set-of-emails/maildir/dos/{mailmarshalsmtp-01.eml → mta-mailmarshalsmtp-01.eml} +0 -0
  433. data/set-of-emails/maildir/dos/{mcafee-01.eml → mta-mcafee-01.eml} +0 -0
  434. data/set-of-emails/maildir/dos/{messagingserver-01.eml → mta-messagingserver-01.eml} +0 -0
  435. data/set-of-emails/maildir/dos/{mfilter-01.eml → mta-mfilter-01.eml} +0 -0
  436. data/set-of-emails/maildir/dos/{mxlogic-01.eml → mta-mxlogic-01.eml} +0 -0
  437. data/set-of-emails/maildir/dos/{notes-01.eml → mta-notes-01.eml} +0 -0
  438. data/set-of-emails/maildir/dos/{opensmtpd-01.eml → mta-opensmtpd-01.eml} +0 -0
  439. data/set-of-emails/maildir/dos/{postfix-01.eml → mta-postfix-01.eml} +0 -0
  440. data/set-of-emails/maildir/dos/{qmail-01.eml → mta-qmail-01.eml} +0 -0
  441. data/set-of-emails/maildir/dos/{sendmail-01.eml → mta-sendmail-01.eml} +0 -0
  442. data/set-of-emails/maildir/dos/{surfcontrol-01.eml → mta-surfcontrol-01.eml} +0 -0
  443. data/set-of-emails/maildir/dos/{v5sendmail-01.eml → mta-v5sendmail-01.eml} +0 -0
  444. data/set-of-emails/maildir/dos/{x1-01.eml → mta-x1-01.eml} +0 -0
  445. data/set-of-emails/maildir/dos/{x2-01.eml → mta-x2-01.eml} +0 -0
  446. data/set-of-emails/maildir/dos/{x3-01.eml → mta-x3-01.eml} +0 -0
  447. data/set-of-emails/maildir/dos/{x4-01.eml → mta-x4-01.eml} +0 -0
  448. data/set-of-emails/maildir/dos/{x5-01.eml → mta-x5-01.eml} +0 -0
  449. data/set-of-emails/maildir/dos/{exchange-online-01.eml → rhost-exchange-online-01.eml} +0 -0
  450. data/set-of-emails/maildir/dos/{google-apps-01.eml → rhost-google-apps-01.eml} +0 -0
  451. data/set-of-emails/maildir/mac/ced-us-amazonses-01.eml +1 -1
  452. data/set-of-emails/maildir/mac/{de-einsundeins-01.eml → msp-de-einsundeins-01.eml} +0 -0
  453. data/set-of-emails/maildir/mac/{de-gmx-01.eml → msp-de-gmx-01.eml} +0 -0
  454. data/set-of-emails/maildir/mac/{jp-biglobe-01.eml → msp-jp-biglobe-01.eml} +0 -0
  455. data/set-of-emails/maildir/mac/{jp-ezweb-01.eml → msp-jp-ezweb-01.eml} +0 -0
  456. data/set-of-emails/maildir/mac/{jp-kddi-01.eml → msp-jp-kddi-01.eml} +0 -0
  457. data/set-of-emails/maildir/mac/{ru-mailru-01.eml → msp-ru-mailru-01.eml} +0 -0
  458. data/set-of-emails/maildir/mac/{ru-yandex-01.eml → msp-ru-yandex-01.eml} +0 -0
  459. data/set-of-emails/maildir/mac/{uk-messagelabs-01.eml → msp-uk-messagelabs-01.eml} +0 -0
  460. data/set-of-emails/maildir/mac/{us-amazonses-01.eml → msp-us-amazonses-01.eml} +0 -0
  461. data/set-of-emails/maildir/mac/{us-amazonworkmail-01.eml → msp-us-amazonworkmail-01.eml} +0 -0
  462. data/set-of-emails/maildir/mac/{us-aol-01.eml → msp-us-aol-01.eml} +0 -0
  463. data/set-of-emails/maildir/mac/{us-bigfoot-01.eml → msp-us-bigfoot-01.eml} +0 -0
  464. data/set-of-emails/maildir/mac/{us-facebook-01.eml → msp-us-facebook-01.eml} +0 -0
  465. data/set-of-emails/maildir/mac/{us-google-01.eml → msp-us-google-01.eml} +0 -0
  466. data/set-of-emails/maildir/mac/{us-office365-01.eml → msp-us-office365-01.eml} +0 -0
  467. data/set-of-emails/maildir/mac/{us-outlook-01.eml → msp-us-outlook-01.eml} +0 -0
  468. data/set-of-emails/maildir/mac/{us-receivingses-01.eml → msp-us-receivingses-01.eml} +0 -0
  469. data/set-of-emails/maildir/mac/{us-sendgrid-01.eml → msp-us-sendgrid-01.eml} +0 -0
  470. data/set-of-emails/maildir/mac/{us-verizon-01.eml → msp-us-verizon-01.eml} +0 -0
  471. data/set-of-emails/maildir/mac/{us-yahoo-01.eml → msp-us-yahoo-01.eml} +0 -0
  472. data/set-of-emails/maildir/mac/{us-zoho-01.eml → msp-us-zoho-01.eml} +0 -0
  473. data/set-of-emails/maildir/mac/{activehunter-01.eml → mta-activehunter-01.eml} +0 -0
  474. data/set-of-emails/maildir/mac/{apachejames-01.eml → mta-apachejames-01.eml} +0 -0
  475. data/set-of-emails/maildir/mac/{courier-01.eml → mta-courier-01.eml} +0 -0
  476. data/set-of-emails/maildir/mac/{domino-01.eml → mta-domino-01.eml} +0 -0
  477. data/set-of-emails/maildir/mac/{exchange-01.eml → mta-exchange-01.eml} +0 -0
  478. data/set-of-emails/maildir/mac/{exchange2003-01.eml → mta-exchange2003-01.eml} +0 -0
  479. data/set-of-emails/maildir/mac/{exchange2007-01.eml → mta-exchange2007-01.eml} +0 -0
  480. data/set-of-emails/maildir/mac/{exim-01.eml → mta-exim-01.eml} +0 -0
  481. data/set-of-emails/maildir/mac/{imailserver-01.eml → mta-imailserver-01.eml} +0 -0
  482. data/set-of-emails/maildir/mac/{interscanmss-01.eml → mta-interscanmss-01.eml} +0 -0
  483. data/set-of-emails/maildir/mac/{mailfoundry-01.eml → mta-mailfoundry-01.eml} +0 -0
  484. data/set-of-emails/maildir/mac/{mailmarshalsmtp-01.eml → mta-mailmarshalsmtp-01.eml} +0 -0
  485. data/set-of-emails/maildir/mac/{mcafee-01.eml → mta-mcafee-01.eml} +0 -0
  486. data/set-of-emails/maildir/mac/{messagingserver-01.eml → mta-messagingserver-01.eml} +0 -0
  487. data/set-of-emails/maildir/mac/{mfilter-01.eml → mta-mfilter-01.eml} +0 -0
  488. data/set-of-emails/maildir/mac/{mxlogic-01.eml → mta-mxlogic-01.eml} +0 -0
  489. data/set-of-emails/maildir/mac/{notes-01.eml → mta-notes-01.eml} +0 -0
  490. data/set-of-emails/maildir/mac/{opensmtpd-01.eml → mta-opensmtpd-01.eml} +0 -0
  491. data/set-of-emails/maildir/mac/{postfix-01.eml → mta-postfix-01.eml} +0 -0
  492. data/set-of-emails/maildir/mac/{qmail-01.eml → mta-qmail-01.eml} +0 -0
  493. data/set-of-emails/maildir/mac/{sendmail-01.eml → mta-sendmail-01.eml} +0 -0
  494. data/set-of-emails/maildir/mac/{surfcontrol-01.eml → mta-surfcontrol-01.eml} +0 -0
  495. data/set-of-emails/maildir/mac/{v5sendmail-01.eml → mta-v5sendmail-01.eml} +0 -0
  496. data/set-of-emails/maildir/mac/{x1-01.eml → mta-x1-01.eml} +0 -0
  497. data/set-of-emails/maildir/mac/{x2-01.eml → mta-x2-01.eml} +0 -0
  498. data/set-of-emails/maildir/mac/{x3-01.eml → mta-x3-01.eml} +0 -0
  499. data/set-of-emails/maildir/mac/{x4-01.eml → mta-x4-01.eml} +0 -0
  500. data/set-of-emails/maildir/mac/{x5-01.eml → mta-x5-01.eml} +0 -0
  501. data/set-of-emails/maildir/mac/{exchange-online-01.eml → rhost-exchange-online-01.eml} +0 -0
  502. data/set-of-emails/maildir/mac/{google-apps-01.eml → rhost-google-apps-01.eml} +0 -0
  503. metadata +444 -408
@@ -13,7 +13,7 @@ module Sisimai
13
13
  return nil unless %w|r s|.index(argv1.to_s)
14
14
 
15
15
  local = argv1 == :r ? 'recipient' : 'sender'
16
- return sprintf('undisclosed-%s-in-headers@dummy-domain.invalid', local)
16
+ return sprintf('undisclosed-%s-in-headers@libsisimai.org.invalid', local)
17
17
  end
18
18
 
19
19
  # Email address parser
data/lib/sisimai/arf.rb CHANGED
@@ -315,9 +315,9 @@ module Sisimai
315
315
  end
316
316
  end
317
317
 
318
- e['action'] = 'failed'
319
318
  e['reason'] = 'feedback'
320
319
  e['command'] = ''
320
+ e['action'] = ''
321
321
  e['status'] = ''
322
322
  e['alias'] = ''
323
323
  e['agent'] = self.smtpagent if e['agent'].empty?
@@ -0,0 +1,24 @@
1
+ module Sisimai
2
+ # Sisimai::CED - Base class for Sisimai::CED::*: Cloud Email Delivery Services
3
+ module CED
4
+ class << self
5
+ # Imported from p5-Sisimail/lib/Sisimai/CED.pm
6
+ require 'sisimai/skeleton'
7
+
8
+ def INDICATORS; return Sisimai::Skeleton.INDICATORS; end
9
+ def DELIVERYSTATUS; return Sisimai::Skeleton.DELIVERYSTATUS; end
10
+ def smtpagent(v = ''); return v.to_s.sub(/\ASisimai::/, ''); end
11
+ def description; return ''; end
12
+ def headerlist; return []; end
13
+ def pattern; return {}; end
14
+
15
+ # CED list
16
+ # @return [Array] CED list with order
17
+ def index
18
+ return ['US::AmazonSES', 'US::SendGrid']
19
+ end
20
+
21
+ end
22
+ end
23
+ end
24
+
@@ -0,0 +1,270 @@
1
+ module Sisimai
2
+ module CED::US
3
+ # Sisimai::CED::US::AmazonSES parses a bounce object(JSON) which created by
4
+ # Amazon Simple Email Service.
5
+ # Methods in the module are called from only Sisimai::Message.
6
+ module AmazonSES
7
+ # Imported from p5-Sisimail/lib/Sisimai/CED/US/AmazonSES.pm
8
+ class << self
9
+ require 'sisimai/ced'
10
+ require 'sisimai/rfc5322'
11
+
12
+ # http://aws.amazon.com/ses/
13
+ Re0 = {
14
+ :from => %r/\A[<]?no-reply[@]sns[.]amazonaws[.]com[>]?/,
15
+ :subject => %r/\AAWS Notification Message\z/,
16
+ }
17
+ MRI = RUBY_PLATFORM =~ /java/ ? false : true
18
+
19
+ # https://docs.aws.amazon.com/en_us/ses/latest/DeveloperGuide/notification-contents.html
20
+ BounceType = {
21
+ :Permanent => {
22
+ :General => '',
23
+ :NoEmail => '',
24
+ :Suppressed => '',
25
+ },
26
+ :Transient => {
27
+ :General => '',
28
+ :MailboxFull => 'mailboxfull',
29
+ :MessageTooLarge => 'mesgtoobig',
30
+ :ContentRejected => '',
31
+ :AttachmentRejected => '',
32
+ },
33
+ }
34
+ Indicators = Sisimai::CED.INDICATORS
35
+
36
+ # x-amz-sns-message-id: 02f86d9b-eecf-573d-b47d-3d1850750c30
37
+ # x-amz-sns-subscription-arn: arn:aws:sns:us-west-2:000000000000:SESEJB:ffffffff-2222-2222-2222-eeeeeeeeeeee
38
+ def headerlist; return ['x-amz-sns-message-id']; end
39
+ def pattern; return Re0; end
40
+ def smtpagent; return Sisimai::CED.smtpagent(self); end
41
+ def description; return 'Amazon SES(JSON): http://aws.amazon.com/ses/'; end
42
+
43
+ # Parse bounce messages from Amazon SES(JSON)
44
+ # @param [Hash] mhead Message header of a bounce email
45
+ # @options mhead [String] from From header
46
+ # @options mhead [String] date Date header
47
+ # @options mhead [String] subject Subject header
48
+ # @options mhead [Array] received Received headers
49
+ # @options mhead [String] others Other required headers
50
+ # @param [String] mbody Message body of a bounce email
51
+ # @return [Hash, Nil] Bounce data list and message/rfc822
52
+ # part or nil if it failed to parse or
53
+ # the arguments are missing
54
+ # @since v4.20.0
55
+ def scan(mhead, mbody)
56
+ return nil unless mhead
57
+ return nil unless mbody
58
+ return nil unless mhead['x-amz-sns-message-id']
59
+ return nil unless mhead['x-amz-sns-message-id'].size > 0
60
+
61
+ hasdivided = mbody.split("\n")
62
+ jsonstring = ''
63
+ jsonthings = nil
64
+ foldedline = false
65
+
66
+ hasdivided.each do |e|
67
+ # Find JSON string from the message body
68
+ next if e.size == 0
69
+ break if e =~ /\A[-]{2}\z/
70
+ break if e == '__END_OF_EMAIL_MESSAGE__'
71
+
72
+ # The line starts with " ", continued from !\n.
73
+ e = e.sub(/\A[ ]/, '') if foldedline
74
+ foldedline = false
75
+
76
+ if e =~ /[!]\z/
77
+ # ... long long line ...![\n]
78
+ e = e.sub(/!\z/, '')
79
+ foldedline = true
80
+ end
81
+ jsonstring += e
82
+ end
83
+
84
+ begin
85
+ if MRI
86
+ # Matz' Ruby Implementation
87
+ require 'oj'
88
+ jsonobject = Oj.load(jsonstring)
89
+ if jsonobject['Message']
90
+ # 'Message' => '{"notificationType":"Bounce",...
91
+ jsonthings = Oj.load(jsonobject['Message'])
92
+ end
93
+ else
94
+ # java-based ruby environment like JRuby.
95
+ require 'jrjackson'
96
+ jsonobject = JrJackson::Json.load(jsonstring)
97
+ if jsonobject['Message']
98
+ # 'Message' => '{"notificationType":"Bounce",...
99
+ jsonthings = JrJackson::Json.load(jsonobject['Message'])
100
+ end
101
+ end
102
+ jsonthings ||= jsonobject
103
+
104
+ rescue StandardError => ce
105
+ # Something wrong in decoding JSON
106
+ warn sprintf(' ***warning: Failed to decode JSON: %s', ce.to_s)
107
+ return nil
108
+ end
109
+
110
+ return adapt(jsonthings)
111
+ end
112
+
113
+ # @abstract Adapt Amazon SES bounce object for Sisimai::Message format
114
+ # @param [Hash] argvs bounce object(JSON) retrieved from Amazon SNS
115
+ # @return [Hash, Nil] Bounce data list and message/rfc822 part
116
+ # or Undef if it failed to parse or the
117
+ # arguments are missing
118
+ # @since v4.20.0
119
+ def adapt(argvs)
120
+ return nil unless argvs.is_a? Hash
121
+ return nil unless argvs.keys.size > 0
122
+ return nil unless argvs.key?('notificationType')
123
+
124
+ require 'sisimai/rfc5322'
125
+ dscontents = [Sisimai::CED.DELIVERYSTATUS];
126
+ rfc822head = {} # (Hash) Check flags for headers in RFC822 part
127
+ recipients = 0 # (Integer) The number of 'Final-Recipient' header
128
+ labeltable = {
129
+ :Bounce => 'bouncedRecipients',
130
+ :Complaint => 'complainedRecipients',
131
+ }
132
+ v = nil
133
+
134
+ if argvs['notificationType'] =~ /\A(?:Bounce|Complaint)\z/
135
+ # { "notificationType":"Bounce", "bounce": { "bounceType":"Permanent",...
136
+ o = argvs[ argvs['notificationType'].downcase ]
137
+ r = o[ labeltable[ argvs['notificationType'].to_sym ] ] || []
138
+
139
+ r.each do |e|
140
+ # 'bouncedRecipients' => [ { 'emailAddress' => 'bounce@si...' }, ... ]
141
+ # 'complainedRecipients' => [ { 'emailAddress' => 'complaint@si...' }, ... ]
142
+ next unless Sisimai::RFC5322.is_emailaddress(e['emailAddress'])
143
+
144
+ v = dscontents[-1]
145
+ if v['recipient']
146
+ # There are multiple recipient addresses in the message body.
147
+ dscontents << Sisimai::CED.DELIVERYSTATUS
148
+ v = dscontents[-1]
149
+ end
150
+ recipients += 1
151
+ v['recipient'] = e['emailAddress']
152
+
153
+ if argvs['notificationType'] == 'Bounce'
154
+ # 'bouncedRecipients => [ {
155
+ # 'emailAddress' => 'bounce@simulator.amazonses.com',
156
+ # 'action' => 'failed',
157
+ # 'status' => '5.1.1',
158
+ # 'diagnosticCode' => 'smtp; 550 5.1.1 user unknown'
159
+ # }, ... ]
160
+ v['action'] = e['action']
161
+ v['status'] = e['status']
162
+
163
+ if cv = e['diagnosticCode'].match(/\A(.+?);[ ]*(.+)\z/)
164
+ # Diagnostic-Code: SMTP; 550 5.1.1 <userunknown@example.jp>... User Unknown
165
+ v['spec'] = cv[1].upcase
166
+ v['diagnosis'] = cv[2]
167
+ else
168
+ v['diagnosis'] = e['diagnosticCode']
169
+ end
170
+
171
+ if cv = o['reportingMTA'].match(/\Adsn;[ ](.+)\z/)
172
+ # 'reportingMTA' => 'dsn; a27-23.smtp-out.us-west-2.amazonses.com',
173
+ v['lhost'] = cv[1]
174
+ end
175
+
176
+ if BounceType.key?(o['bounceType'].to_sym) &&
177
+ BounceType[o['bounceType'].to_sym].key?(o['bounceSubType'].to_sym)
178
+ # 'bounce' => {
179
+ # 'bounceType' => 'Permanent',
180
+ # 'bounceSubType' => 'General'
181
+ # },
182
+ v['reason'] = BounceType[o['bounceType'].to_sym][o['bounceSubType'].to_sym]
183
+ end
184
+
185
+ else
186
+ # 'complainedRecipients' => [ {
187
+ # 'emailAddress' => 'complaint@simulator.amazonses.com' }, ... ],
188
+ v['reason'] = 'feedback'
189
+ v['feedbacktype'] = o['complaintFeedbackType'] || ''
190
+ end
191
+
192
+ v['date'] = o['timestamp'] || argvs['mail']['timestamp']
193
+ v['date'] = v['date'].sub(/[.]\d+Z\z/, '')
194
+ end
195
+
196
+ elsif argvs['notificationType'] == 'Delivery'
197
+ # { "notificationType":"Delivery", "delivery": { ...
198
+ require 'sisimai/smtp/status'
199
+ require 'sisimai/smtp/reply'
200
+
201
+ o = argvs['delivery']
202
+ r = o['recipients'] || []
203
+
204
+ r.each do |e|
205
+ # 'delivery' => {
206
+ # 'timestamp' => '2016-11-23T12:01:03.512Z',
207
+ # 'processingTimeMillis' => 3982,
208
+ # 'reportingMTA' => 'a27-29.smtp-out.us-west-2.amazonses.com',
209
+ # 'recipients' => [
210
+ # 'success@simulator.amazonses.com'
211
+ # ],
212
+ # 'smtpResponse' => '250 2.6.0 Message received'
213
+ # },
214
+ next unless Sisimai::RFC5322.is_emailaddress(e)
215
+
216
+ v = dscontents[-1]
217
+ if v['recipient']
218
+ # There are multiple recipient addresses in the message body.
219
+ dscontents << Sisimai::CED.DELIVERYSTATUS
220
+ v = dscontents[-1]
221
+ end
222
+ recipients += 1
223
+ v['recipient'] = e
224
+ v['lhost'] = o['reportingMTA'] || ''
225
+ v['diagnosis'] = o['smtpResponse'] || ''
226
+ v['status'] = Sisimai::SMTP::Status.find(v['diagnosis'])
227
+ v['replycode'] = Sisimai::SMTP::Reply.find(v['diagnosis'])
228
+ v['reason'] = 'delivered'
229
+ v['action'] = 'deliverable'
230
+
231
+ v['date'] = o['timestamp'] || argvs['mail']['timestamp']
232
+ v['date'] = v['date'].sub(/[.]\d+Z\z/, '')
233
+ end
234
+
235
+ else
236
+ # The value of "notificationType" is not any of "Bounce", "Complaint",
237
+ # or "Delivery".
238
+ return nil
239
+ end
240
+ return nil if recipients == 0
241
+
242
+ dscontents.each do |e|
243
+ e['agent'] = Sisimai::CED::US::AmazonSES.smtpagent
244
+ end
245
+
246
+ if argvs['mail']['headers']
247
+ # "headersTruncated":false,
248
+ # "headers":[ { ...
249
+ argvs['mail']['headers'].each do |e|
250
+ # 'headers' => [ { 'name' => 'From', 'value' => 'neko@nyaan.jp' }, ... ],
251
+ next unless e['name'] =~ /\A(?:From|To|Subject|Message-ID|Date)\z/
252
+ rfc822head[ e['name'].downcase ] = e['value']
253
+ end
254
+ end
255
+
256
+ unless rfc822head['message-id']
257
+ # Try to get the value of "Message-Id".
258
+ if argvs['mail']['messageId']
259
+ # 'messageId' => '01010157e48f9b9b-891e9a0e-9c9d-4773-9bfe-608f2ef4756d-000000'
260
+ rfc822head['message-id'] = argvs['mail']['messageId']
261
+ end
262
+ end
263
+ return { 'ds' => dscontents, 'rfc822' => rfc822head }
264
+ end
265
+
266
+ end
267
+ end
268
+ end
269
+ end
270
+
@@ -0,0 +1,86 @@
1
+ module Sisimai
2
+ module CED::US
3
+ # Sisimai::CED::US::SendGrid parses a bounce object(JSON) which created by
4
+ # SendGrid. # Methods in the module are called from only Sisimai::Message.
5
+ module SendGrid
6
+ # Imported from p5-Sisimail/lib/Sisimai/CED/US/SendGrid.pm
7
+ class << self
8
+ require 'sisimai/ced'
9
+ require 'sisimai/rfc5322'
10
+
11
+ def headerlist; return []; end
12
+ def pattern; return {}; end
13
+ def smtpagent; return Sisimai::CED.smtpagent(self); end
14
+ def description; return 'SendGrid(JSON): http://sendgrid.com/'; end
15
+
16
+ # @abstract Adapt SendGrid bounce object for Sisimai::Message format
17
+ # @param [Hash] argvs bounce object(JSON) retrieved from SendGrid API
18
+ # @return [Hash, Nil] Bounce data list and message/rfc822 part
19
+ # or Undef if it failed to parse or the
20
+ # arguments are missing
21
+ # @since v4.20.0
22
+ def adapt(argvs)
23
+ return nil unless argvs.is_a? Hash
24
+ return nil unless argvs.keys.size > 0
25
+ return nil unless argvs.key?('email')
26
+
27
+ dscontents = [Sisimai::CED.DELIVERYSTATUS]
28
+ rfc822head = {} # (Hash) Check flags for headers in RFC822 part
29
+ recipients = 0 # (Integer) The number of 'Final-Recipient' header
30
+ v = dscontents[-1]
31
+
32
+ require 'sisimai/string'
33
+ require 'sisimai/address'
34
+ require 'sisimai/rfc5322'
35
+
36
+ if Sisimai::RFC5322.is_emailaddress(argvs['email'])
37
+ # {
38
+ # "status": "4.0.0",
39
+ # "created": "2011-09-16 22:02:19",
40
+ # "reason": "Unable to resolve MX host sendgrid.ne",
41
+ # "email": "esting@sendgrid.ne"
42
+ # },
43
+ recipients += 1
44
+ v['recipient'] = argvs['email']
45
+ v['date'] = argvs['created'] || ''
46
+
47
+ statuscode = argvs['status'] || ''
48
+ diagnostic = Sisimai::String.sweep(argvs['reason']) || ''
49
+
50
+ if statuscode =~ /\A[245]\d\d\z/
51
+ # "status": "550"
52
+ v['replycode'] = statuscode
53
+
54
+ elsif statuscode =~ /\A[245][.]\d[.]\d+\z/
55
+ # "status": "5.1.1"
56
+ v['status'] = statuscode
57
+ end
58
+
59
+ require 'sisimai/smtp/reply'
60
+ require 'sisimai/smtp/status'
61
+ v['status'] ||= Sisimai::SMTP::Status.find(diagnostic)
62
+ v['replycode'] ||= Sisimai::SMTP::Reply.find(diagnostic)
63
+ v['diagnosis'] = argvs['reason'] || ''
64
+ v['agent'] = Sisimai::CED::US::SendGrid.smtpagent
65
+
66
+ # Generate pseudo message/rfc822 part
67
+ rfc822head = {
68
+ 'to' => argvs['email'],
69
+ 'from' => Sisimai::Address.undisclosed('s'),
70
+ 'date' => v['date'],
71
+ }
72
+ else
73
+ # The value of $argvs->{'email'} does not seems to an email address
74
+ return nil
75
+ end
76
+
77
+ return nil if recipients == 0
78
+ return { 'ds' => dscontents, 'rfc822' => rfc822head }
79
+ end
80
+
81
+ end
82
+ end
83
+ end
84
+ end
85
+
86
+
data/lib/sisimai/data.rb CHANGED
@@ -48,6 +48,11 @@ module Sisimai
48
48
  addresser: RFC822Head[:addresser],
49
49
  recipient: RFC822Head[:recipient],
50
50
  }
51
+ ActionList = %r/\A(?:failed|delayed|delivered|relayed|expanded)\z/
52
+ ActionHead = {
53
+ %r/\Afailure\z/ => 'failed',
54
+ %r/\Aexpired\z/ => 'delayed',
55
+ }
51
56
 
52
57
  # Constructor of Sisimai::Data
53
58
  # @param [Hash] argvs Data
@@ -239,12 +244,12 @@ module Sisimai
239
244
  next unless p['timestamp']
240
245
 
241
246
  # OTHER_TEXT_HEADERS:
242
- if mailheader['received'].size > 0
247
+ recvheader = mailheader['received'] || []
248
+ if recvheader.size > 0
243
249
  # Get localhost and remote host name from Received header.
244
- r0 = mailheader['received']
245
250
  %w|lhost rhost|.each { |a| e[a] ||= '' }
246
- e['lhost'] = Sisimai::RFC5322.received(r0[0]).shift if e['lhost'].empty?
247
- e['rhost'] = Sisimai::RFC5322.received(r0[-1]).pop if e['rhost'].empty?
251
+ e['lhost'] = Sisimai::RFC5322.received(recvheader[0]).shift if e['lhost'].empty?
252
+ e['rhost'] = Sisimai::RFC5322.received(recvheader[-1]).pop if e['rhost'].empty?
248
253
  end
249
254
 
250
255
  # Remove square brackets and curly brackets from the host variable
@@ -314,6 +319,16 @@ module Sisimai
314
319
  # Action: expanded (to multi-recipient alias)
315
320
  p['action'] = cv[1]
316
321
  end
322
+
323
+ unless p['action'] =~ ActionList
324
+ # The value of "action" is not in the following values:
325
+ # "failed" / "delayed" / "delivered" / "relayed" / "expanded"
326
+ ActionHead.each_key do |q|
327
+ next unless p['action'] =~ q
328
+ p['action'] = ActionHead[q]
329
+ break
330
+ end
331
+ end
317
332
  else
318
333
  if p['reason'] == 'expired'
319
334
  # Action: delayed