rack-mail_exception 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (321) hide show
  1. data/.document +5 -0
  2. data/.gitignore +22 -0
  3. data/LICENSE +20 -0
  4. data/README.rdoc +38 -0
  5. data/Rakefile +56 -0
  6. data/VERSION +1 -0
  7. data/lib/rack/mail_exception.rb +103 -0
  8. data/test/helper.rb +13 -0
  9. data/test/test_rack_mail_exception.rb +93 -0
  10. data/vendor/mail/.bundle/config +2 -0
  11. data/vendor/mail/CHANGELOG.rdoc +370 -0
  12. data/vendor/mail/Dependencies.txt +3 -0
  13. data/vendor/mail/Gemfile +17 -0
  14. data/vendor/mail/README.rdoc +572 -0
  15. data/vendor/mail/ROADMAP +92 -0
  16. data/vendor/mail/Rakefile +41 -0
  17. data/vendor/mail/TODO.rdoc +9 -0
  18. data/vendor/mail/lib/mail.rb +76 -0
  19. data/vendor/mail/lib/mail/attachments_list.rb +99 -0
  20. data/vendor/mail/lib/mail/body.rb +287 -0
  21. data/vendor/mail/lib/mail/configuration.rb +67 -0
  22. data/vendor/mail/lib/mail/core_extensions/blank.rb +26 -0
  23. data/vendor/mail/lib/mail/core_extensions/nil.rb +11 -0
  24. data/vendor/mail/lib/mail/core_extensions/string.rb +27 -0
  25. data/vendor/mail/lib/mail/elements.rb +14 -0
  26. data/vendor/mail/lib/mail/elements/address.rb +306 -0
  27. data/vendor/mail/lib/mail/elements/address_list.rb +74 -0
  28. data/vendor/mail/lib/mail/elements/content_disposition_element.rb +30 -0
  29. data/vendor/mail/lib/mail/elements/content_location_element.rb +25 -0
  30. data/vendor/mail/lib/mail/elements/content_transfer_encoding_element.rb +24 -0
  31. data/vendor/mail/lib/mail/elements/content_type_element.rb +35 -0
  32. data/vendor/mail/lib/mail/elements/date_time_element.rb +26 -0
  33. data/vendor/mail/lib/mail/elements/envelope_from_element.rb +34 -0
  34. data/vendor/mail/lib/mail/elements/message_ids_element.rb +29 -0
  35. data/vendor/mail/lib/mail/elements/mime_version_element.rb +26 -0
  36. data/vendor/mail/lib/mail/elements/phrase_list.rb +21 -0
  37. data/vendor/mail/lib/mail/elements/received_element.rb +30 -0
  38. data/vendor/mail/lib/mail/encodings.rb +258 -0
  39. data/vendor/mail/lib/mail/encodings/7bit.rb +31 -0
  40. data/vendor/mail/lib/mail/encodings/8bit.rb +31 -0
  41. data/vendor/mail/lib/mail/encodings/base64.rb +33 -0
  42. data/vendor/mail/lib/mail/encodings/binary.rb +31 -0
  43. data/vendor/mail/lib/mail/encodings/quoted_printable.rb +38 -0
  44. data/vendor/mail/lib/mail/encodings/transfer_encoding.rb +58 -0
  45. data/vendor/mail/lib/mail/envelope.rb +35 -0
  46. data/vendor/mail/lib/mail/field.rb +223 -0
  47. data/vendor/mail/lib/mail/field_list.rb +33 -0
  48. data/vendor/mail/lib/mail/fields.rb +35 -0
  49. data/vendor/mail/lib/mail/fields/bcc_field.rb +56 -0
  50. data/vendor/mail/lib/mail/fields/cc_field.rb +55 -0
  51. data/vendor/mail/lib/mail/fields/comments_field.rb +41 -0
  52. data/vendor/mail/lib/mail/fields/common/address_container.rb +16 -0
  53. data/vendor/mail/lib/mail/fields/common/common_address.rb +125 -0
  54. data/vendor/mail/lib/mail/fields/common/common_date.rb +42 -0
  55. data/vendor/mail/lib/mail/fields/common/common_field.rb +50 -0
  56. data/vendor/mail/lib/mail/fields/common/common_message_id.rb +43 -0
  57. data/vendor/mail/lib/mail/fields/common/parameter_hash.rb +52 -0
  58. data/vendor/mail/lib/mail/fields/content_description_field.rb +19 -0
  59. data/vendor/mail/lib/mail/fields/content_disposition_field.rb +69 -0
  60. data/vendor/mail/lib/mail/fields/content_id_field.rb +63 -0
  61. data/vendor/mail/lib/mail/fields/content_location_field.rb +42 -0
  62. data/vendor/mail/lib/mail/fields/content_transfer_encoding_field.rb +50 -0
  63. data/vendor/mail/lib/mail/fields/content_type_field.rb +185 -0
  64. data/vendor/mail/lib/mail/fields/date_field.rb +55 -0
  65. data/vendor/mail/lib/mail/fields/from_field.rb +55 -0
  66. data/vendor/mail/lib/mail/fields/in_reply_to_field.rb +55 -0
  67. data/vendor/mail/lib/mail/fields/keywords_field.rb +44 -0
  68. data/vendor/mail/lib/mail/fields/message_id_field.rb +83 -0
  69. data/vendor/mail/lib/mail/fields/mime_version_field.rb +53 -0
  70. data/vendor/mail/lib/mail/fields/optional_field.rb +13 -0
  71. data/vendor/mail/lib/mail/fields/received_field.rb +67 -0
  72. data/vendor/mail/lib/mail/fields/references_field.rb +55 -0
  73. data/vendor/mail/lib/mail/fields/reply_to_field.rb +55 -0
  74. data/vendor/mail/lib/mail/fields/resent_bcc_field.rb +55 -0
  75. data/vendor/mail/lib/mail/fields/resent_cc_field.rb +55 -0
  76. data/vendor/mail/lib/mail/fields/resent_date_field.rb +35 -0
  77. data/vendor/mail/lib/mail/fields/resent_from_field.rb +55 -0
  78. data/vendor/mail/lib/mail/fields/resent_message_id_field.rb +34 -0
  79. data/vendor/mail/lib/mail/fields/resent_sender_field.rb +62 -0
  80. data/vendor/mail/lib/mail/fields/resent_to_field.rb +55 -0
  81. data/vendor/mail/lib/mail/fields/return_path_field.rb +64 -0
  82. data/vendor/mail/lib/mail/fields/sender_field.rb +67 -0
  83. data/vendor/mail/lib/mail/fields/structured_field.rb +51 -0
  84. data/vendor/mail/lib/mail/fields/subject_field.rb +16 -0
  85. data/vendor/mail/lib/mail/fields/to_field.rb +55 -0
  86. data/vendor/mail/lib/mail/fields/unstructured_field.rb +166 -0
  87. data/vendor/mail/lib/mail/header.rb +262 -0
  88. data/vendor/mail/lib/mail/mail.rb +234 -0
  89. data/vendor/mail/lib/mail/message.rb +1867 -0
  90. data/vendor/mail/lib/mail/network.rb +9 -0
  91. data/vendor/mail/lib/mail/network/delivery_methods/file_delivery.rb +40 -0
  92. data/vendor/mail/lib/mail/network/delivery_methods/sendmail.rb +62 -0
  93. data/vendor/mail/lib/mail/network/delivery_methods/smtp.rb +110 -0
  94. data/vendor/mail/lib/mail/network/delivery_methods/test_mailer.rb +40 -0
  95. data/vendor/mail/lib/mail/network/retriever_methods/imap.rb +18 -0
  96. data/vendor/mail/lib/mail/network/retriever_methods/pop3.rb +149 -0
  97. data/vendor/mail/lib/mail/parsers/address_lists.rb +64 -0
  98. data/vendor/mail/lib/mail/parsers/address_lists.treetop +19 -0
  99. data/vendor/mail/lib/mail/parsers/content_disposition.rb +387 -0
  100. data/vendor/mail/lib/mail/parsers/content_disposition.treetop +46 -0
  101. data/vendor/mail/lib/mail/parsers/content_location.rb +139 -0
  102. data/vendor/mail/lib/mail/parsers/content_location.treetop +20 -0
  103. data/vendor/mail/lib/mail/parsers/content_transfer_encoding.rb +162 -0
  104. data/vendor/mail/lib/mail/parsers/content_transfer_encoding.treetop +20 -0
  105. data/vendor/mail/lib/mail/parsers/content_type.rb +539 -0
  106. data/vendor/mail/lib/mail/parsers/content_type.treetop +58 -0
  107. data/vendor/mail/lib/mail/parsers/date_time.rb +114 -0
  108. data/vendor/mail/lib/mail/parsers/date_time.treetop +11 -0
  109. data/vendor/mail/lib/mail/parsers/envelope_from.rb +194 -0
  110. data/vendor/mail/lib/mail/parsers/envelope_from.treetop +32 -0
  111. data/vendor/mail/lib/mail/parsers/message_ids.rb +45 -0
  112. data/vendor/mail/lib/mail/parsers/message_ids.treetop +15 -0
  113. data/vendor/mail/lib/mail/parsers/mime_version.rb +144 -0
  114. data/vendor/mail/lib/mail/parsers/mime_version.treetop +19 -0
  115. data/vendor/mail/lib/mail/parsers/phrase_lists.rb +45 -0
  116. data/vendor/mail/lib/mail/parsers/phrase_lists.treetop +15 -0
  117. data/vendor/mail/lib/mail/parsers/received.rb +71 -0
  118. data/vendor/mail/lib/mail/parsers/received.treetop +11 -0
  119. data/vendor/mail/lib/mail/parsers/rfc2045.rb +464 -0
  120. data/vendor/mail/lib/mail/parsers/rfc2045.treetop +36 -0
  121. data/vendor/mail/lib/mail/parsers/rfc2822.rb +5318 -0
  122. data/vendor/mail/lib/mail/parsers/rfc2822.treetop +410 -0
  123. data/vendor/mail/lib/mail/parsers/rfc2822_obsolete.rb +3757 -0
  124. data/vendor/mail/lib/mail/parsers/rfc2822_obsolete.treetop +241 -0
  125. data/vendor/mail/lib/mail/part.rb +102 -0
  126. data/vendor/mail/lib/mail/parts_list.rb +34 -0
  127. data/vendor/mail/lib/mail/patterns.rb +30 -0
  128. data/vendor/mail/lib/mail/utilities.rb +181 -0
  129. data/vendor/mail/lib/mail/version.rb +10 -0
  130. data/vendor/mail/lib/mail/version_specific/ruby_1_8.rb +97 -0
  131. data/vendor/mail/lib/mail/version_specific/ruby_1_9.rb +87 -0
  132. data/vendor/mail/lib/tasks/corpus.rake +125 -0
  133. data/vendor/mail/lib/tasks/treetop.rake +10 -0
  134. data/vendor/mail/mail.gemspec +20 -0
  135. data/vendor/mail/reference/US ASCII Table.txt +130 -0
  136. data/vendor/mail/reference/rfc1035 Domain Implementation and Specification.txt +3083 -0
  137. data/vendor/mail/reference/rfc1049 Content-Type Header Field for Internet Messages.txt +451 -0
  138. data/vendor/mail/reference/rfc1344 Implications of MIME for Internet Mail Gateways.txt +586 -0
  139. data/vendor/mail/reference/rfc1345 Character Mnemonics & Character Sets.txt +5761 -0
  140. data/vendor/mail/reference/rfc1524 A User Agent Configuration Mechanism For Multimedia Mail Format Information.txt +675 -0
  141. data/vendor/mail/reference/rfc1652 SMTP Service Extension for 8bit-MIMEtransport.txt +339 -0
  142. data/vendor/mail/reference/rfc1892 Multipart Report .txt +227 -0
  143. data/vendor/mail/reference/rfc1893 Mail System Status Codes.txt +843 -0
  144. data/vendor/mail/reference/rfc2045 Multipurpose Internet Mail Extensions (1).txt +1739 -0
  145. data/vendor/mail/reference/rfc2046 Multipurpose Internet Mail Extensions (2).txt +2467 -0
  146. data/vendor/mail/reference/rfc2047 Multipurpose Internet Mail Extensions (3).txt +843 -0
  147. data/vendor/mail/reference/rfc2048 Multipurpose Internet Mail Extensions (4).txt +1180 -0
  148. data/vendor/mail/reference/rfc2049 Multipurpose Internet Mail Extensions (5).txt +1347 -0
  149. data/vendor/mail/reference/rfc2111 Content-ID and Message-ID URLs.txt +283 -0
  150. data/vendor/mail/reference/rfc2183 Content-Disposition Header Field.txt +675 -0
  151. data/vendor/mail/reference/rfc2231 MIME Parameter Value and Encoded Word Extensions.txt +563 -0
  152. data/vendor/mail/reference/rfc2387 MIME Multipart-Related Content-type.txt +563 -0
  153. data/vendor/mail/reference/rfc2821 Simple Mail Transfer Protocol.txt +3711 -0
  154. data/vendor/mail/reference/rfc2822 Internet Message Format.txt +2859 -0
  155. data/vendor/mail/reference/rfc3462 Reporting of Mail System Administrative Messages.txt +396 -0
  156. data/vendor/mail/reference/rfc3696 Checking and Transformation of Names.txt +898 -0
  157. data/vendor/mail/reference/rfc4155 The application-mbox Media Type.txt +502 -0
  158. data/vendor/mail/reference/rfc4234 Augmented BNF for Syntax Specifications: ABNF.txt +899 -0
  159. data/vendor/mail/reference/rfc822 Standard for the Format of ARPA Internet Text Messages.txt +2900 -0
  160. data/vendor/mail/spec/environment.rb +15 -0
  161. data/vendor/mail/spec/features/making_a_new_message.feature +14 -0
  162. data/vendor/mail/spec/features/steps/env.rb +6 -0
  163. data/vendor/mail/spec/features/steps/making_a_new_message_steps.rb +11 -0
  164. data/vendor/mail/spec/fixtures/attachments/basic_email.eml +31 -0
  165. data/vendor/mail/spec/fixtures/attachments/test.gif +0 -0
  166. data/vendor/mail/spec/fixtures/attachments/test.jpg +0 -0
  167. data/vendor/mail/spec/fixtures/attachments/test.pdf +0 -0
  168. data/vendor/mail/spec/fixtures/attachments/test.png +0 -0
  169. data/vendor/mail/spec/fixtures/attachments/test.tiff +0 -0
  170. data/vendor/mail/spec/fixtures/attachments/test.zip +0 -0
  171. data/vendor/mail/spec/fixtures/attachments//343/201/246/343/201/231/343/201/250.txt +2 -0
  172. data/vendor/mail/spec/fixtures/emails/attachment_emails/attachment_content_disposition.eml +29 -0
  173. data/vendor/mail/spec/fixtures/emails/attachment_emails/attachment_content_location.eml +32 -0
  174. data/vendor/mail/spec/fixtures/emails/attachment_emails/attachment_message_rfc822.eml +92 -0
  175. data/vendor/mail/spec/fixtures/emails/attachment_emails/attachment_only_email.eml +17 -0
  176. data/vendor/mail/spec/fixtures/emails/attachment_emails/attachment_pdf.eml +70 -0
  177. data/vendor/mail/spec/fixtures/emails/attachment_emails/attachment_with_encoded_name.eml +47 -0
  178. data/vendor/mail/spec/fixtures/emails/attachment_emails/attachment_with_quoted_filename.eml +60 -0
  179. data/vendor/mail/spec/fixtures/emails/error_emails/cant_parse_from.eml +33 -0
  180. data/vendor/mail/spec/fixtures/emails/error_emails/content_transfer_encoding_7-bit.eml +231 -0
  181. data/vendor/mail/spec/fixtures/emails/error_emails/content_transfer_encoding_empty.eml +33 -0
  182. data/vendor/mail/spec/fixtures/emails/error_emails/content_transfer_encoding_plain.eml +148 -0
  183. data/vendor/mail/spec/fixtures/emails/error_emails/content_transfer_encoding_qp_with_space.eml +53 -0
  184. data/vendor/mail/spec/fixtures/emails/error_emails/content_transfer_encoding_spam.eml +44 -0
  185. data/vendor/mail/spec/fixtures/emails/error_emails/content_transfer_encoding_text-html.eml +50 -0
  186. data/vendor/mail/spec/fixtures/emails/error_emails/content_transfer_encoding_with_8bits.eml +770 -0
  187. data/vendor/mail/spec/fixtures/emails/error_emails/content_transfer_encoding_with_semi_colon.eml +269 -0
  188. data/vendor/mail/spec/fixtures/emails/error_emails/content_transfer_encoding_x_uuencode.eml +79 -0
  189. data/vendor/mail/spec/fixtures/emails/error_emails/empty_group_lists.eml +162 -0
  190. data/vendor/mail/spec/fixtures/emails/error_emails/header_fields_with_empty_values.eml +33 -0
  191. data/vendor/mail/spec/fixtures/emails/error_emails/missing_body.eml +16 -0
  192. data/vendor/mail/spec/fixtures/emails/error_emails/missing_content_disposition.eml +43 -0
  193. data/vendor/mail/spec/fixtures/emails/error_emails/multiple_content_types.eml +25 -0
  194. data/vendor/mail/spec/fixtures/emails/mime_emails/raw_email11.eml +34 -0
  195. data/vendor/mail/spec/fixtures/emails/mime_emails/raw_email12.eml +32 -0
  196. data/vendor/mail/spec/fixtures/emails/mime_emails/raw_email2.eml +114 -0
  197. data/vendor/mail/spec/fixtures/emails/mime_emails/raw_email4.eml +59 -0
  198. data/vendor/mail/spec/fixtures/emails/mime_emails/raw_email7.eml +66 -0
  199. data/vendor/mail/spec/fixtures/emails/mime_emails/raw_email_encoded_stack_level_too_deep.eml +53 -0
  200. data/vendor/mail/spec/fixtures/emails/mime_emails/raw_email_with_illegal_boundary.eml +58 -0
  201. data/vendor/mail/spec/fixtures/emails/mime_emails/raw_email_with_mimepart_without_content_type.eml +94 -0
  202. data/vendor/mail/spec/fixtures/emails/mime_emails/raw_email_with_multipart_mixed_quoted_boundary.eml +50 -0
  203. data/vendor/mail/spec/fixtures/emails/mime_emails/raw_email_with_nested_attachment.eml +100 -0
  204. data/vendor/mail/spec/fixtures/emails/mime_emails/raw_email_with_quoted_illegal_boundary.eml +58 -0
  205. data/vendor/mail/spec/fixtures/emails/mime_emails/sig_only_email.eml +29 -0
  206. data/vendor/mail/spec/fixtures/emails/mime_emails/two_from_in_message.eml +42 -0
  207. data/vendor/mail/spec/fixtures/emails/multi_charset/japanese.eml +9 -0
  208. data/vendor/mail/spec/fixtures/emails/multi_charset/japanese_attachment.eml +27 -0
  209. data/vendor/mail/spec/fixtures/emails/multi_charset/japanese_attachment_long_name.eml +44 -0
  210. data/vendor/mail/spec/fixtures/emails/multipart_report_emails/multi_address_bounce1.eml +179 -0
  211. data/vendor/mail/spec/fixtures/emails/multipart_report_emails/multi_address_bounce2.eml +179 -0
  212. data/vendor/mail/spec/fixtures/emails/multipart_report_emails/report_422.eml +98 -0
  213. data/vendor/mail/spec/fixtures/emails/multipart_report_emails/report_530.eml +97 -0
  214. data/vendor/mail/spec/fixtures/emails/plain_emails/basic_email.eml +31 -0
  215. data/vendor/mail/spec/fixtures/emails/plain_emails/raw_email.eml +14 -0
  216. data/vendor/mail/spec/fixtures/emails/plain_emails/raw_email10.eml +20 -0
  217. data/vendor/mail/spec/fixtures/emails/plain_emails/raw_email5.eml +19 -0
  218. data/vendor/mail/spec/fixtures/emails/plain_emails/raw_email6.eml +20 -0
  219. data/vendor/mail/spec/fixtures/emails/plain_emails/raw_email8.eml +47 -0
  220. data/vendor/mail/spec/fixtures/emails/plain_emails/raw_email_bad_time.eml +62 -0
  221. data/vendor/mail/spec/fixtures/emails/plain_emails/raw_email_double_at_in_header.eml +14 -0
  222. data/vendor/mail/spec/fixtures/emails/plain_emails/raw_email_incorrect_header.eml +28 -0
  223. data/vendor/mail/spec/fixtures/emails/plain_emails/raw_email_multiple_from.eml +30 -0
  224. data/vendor/mail/spec/fixtures/emails/plain_emails/raw_email_quoted_with_0d0a.eml +14 -0
  225. data/vendor/mail/spec/fixtures/emails/plain_emails/raw_email_reply.eml +32 -0
  226. data/vendor/mail/spec/fixtures/emails/plain_emails/raw_email_simple.eml +11 -0
  227. data/vendor/mail/spec/fixtures/emails/plain_emails/raw_email_string_in_date_field.eml +17 -0
  228. data/vendor/mail/spec/fixtures/emails/plain_emails/raw_email_trailing_dot.eml +21 -0
  229. data/vendor/mail/spec/fixtures/emails/plain_emails/raw_email_with_bad_date.eml +48 -0
  230. data/vendor/mail/spec/fixtures/emails/plain_emails/raw_email_with_partially_quoted_subject.eml +14 -0
  231. data/vendor/mail/spec/fixtures/emails/rfc2822/example01.eml +8 -0
  232. data/vendor/mail/spec/fixtures/emails/rfc2822/example02.eml +9 -0
  233. data/vendor/mail/spec/fixtures/emails/rfc2822/example03.eml +7 -0
  234. data/vendor/mail/spec/fixtures/emails/rfc2822/example04.eml +7 -0
  235. data/vendor/mail/spec/fixtures/emails/rfc2822/example05.eml +8 -0
  236. data/vendor/mail/spec/fixtures/emails/rfc2822/example06.eml +10 -0
  237. data/vendor/mail/spec/fixtures/emails/rfc2822/example07.eml +9 -0
  238. data/vendor/mail/spec/fixtures/emails/rfc2822/example08.eml +12 -0
  239. data/vendor/mail/spec/fixtures/emails/rfc2822/example09.eml +15 -0
  240. data/vendor/mail/spec/fixtures/emails/rfc2822/example10.eml +15 -0
  241. data/vendor/mail/spec/fixtures/emails/rfc2822/example11.eml +6 -0
  242. data/vendor/mail/spec/fixtures/emails/rfc2822/example12.eml +8 -0
  243. data/vendor/mail/spec/fixtures/emails/rfc2822/example13.eml +10 -0
  244. data/vendor/mail/spec/fixtures/emails/sample_output_multipart +0 -0
  245. data/vendor/mail/spec/mail/attachments_list_spec.rb +214 -0
  246. data/vendor/mail/spec/mail/body_spec.rb +385 -0
  247. data/vendor/mail/spec/mail/configuration_spec.rb +19 -0
  248. data/vendor/mail/spec/mail/core_extensions/string_spec.rb +62 -0
  249. data/vendor/mail/spec/mail/core_extensions_spec.rb +99 -0
  250. data/vendor/mail/spec/mail/elements/address_list_spec.rb +109 -0
  251. data/vendor/mail/spec/mail/elements/address_spec.rb +609 -0
  252. data/vendor/mail/spec/mail/elements/date_time_element_spec.rb +20 -0
  253. data/vendor/mail/spec/mail/elements/envelope_from_element_spec.rb +31 -0
  254. data/vendor/mail/spec/mail/elements/message_ids_element_spec.rb +43 -0
  255. data/vendor/mail/spec/mail/elements/phrase_list_spec.rb +22 -0
  256. data/vendor/mail/spec/mail/elements/received_element_spec.rb +34 -0
  257. data/vendor/mail/spec/mail/encoding_spec.rb +189 -0
  258. data/vendor/mail/spec/mail/encodings/base64_spec.rb +25 -0
  259. data/vendor/mail/spec/mail/encodings/quoted_printable_spec.rb +25 -0
  260. data/vendor/mail/spec/mail/encodings_spec.rb +664 -0
  261. data/vendor/mail/spec/mail/example_emails_spec.rb +303 -0
  262. data/vendor/mail/spec/mail/field_list_spec.rb +33 -0
  263. data/vendor/mail/spec/mail/field_spec.rb +198 -0
  264. data/vendor/mail/spec/mail/fields/bcc_field_spec.rb +89 -0
  265. data/vendor/mail/spec/mail/fields/cc_field_spec.rb +79 -0
  266. data/vendor/mail/spec/mail/fields/comments_field_spec.rb +25 -0
  267. data/vendor/mail/spec/mail/fields/common/address_container_spec.rb +18 -0
  268. data/vendor/mail/spec/mail/fields/common/common_address_spec.rb +132 -0
  269. data/vendor/mail/spec/mail/fields/common/common_date_spec.rb +25 -0
  270. data/vendor/mail/spec/mail/fields/common/common_field_spec.rb +69 -0
  271. data/vendor/mail/spec/mail/fields/common/common_message_id_spec.rb +30 -0
  272. data/vendor/mail/spec/mail/fields/common/parameter_hash_spec.rb +56 -0
  273. data/vendor/mail/spec/mail/fields/content_description_field_spec.rb +39 -0
  274. data/vendor/mail/spec/mail/fields/content_disposition_field_spec.rb +55 -0
  275. data/vendor/mail/spec/mail/fields/content_id_field_spec.rb +117 -0
  276. data/vendor/mail/spec/mail/fields/content_location_field_spec.rb +46 -0
  277. data/vendor/mail/spec/mail/fields/content_transfer_encoding_field_spec.rb +113 -0
  278. data/vendor/mail/spec/mail/fields/content_type_field_spec.rb +678 -0
  279. data/vendor/mail/spec/mail/fields/date_field_spec.rb +73 -0
  280. data/vendor/mail/spec/mail/fields/envelope_spec.rb +48 -0
  281. data/vendor/mail/spec/mail/fields/from_field_spec.rb +89 -0
  282. data/vendor/mail/spec/mail/fields/in_reply_to_field_spec.rb +62 -0
  283. data/vendor/mail/spec/mail/fields/keywords_field_spec.rb +66 -0
  284. data/vendor/mail/spec/mail/fields/message_id_field_spec.rb +147 -0
  285. data/vendor/mail/spec/mail/fields/mime_version_field_spec.rb +166 -0
  286. data/vendor/mail/spec/mail/fields/received_field_spec.rb +44 -0
  287. data/vendor/mail/spec/mail/fields/references_field_spec.rb +35 -0
  288. data/vendor/mail/spec/mail/fields/reply_to_field_spec.rb +67 -0
  289. data/vendor/mail/spec/mail/fields/resent_bcc_field_spec.rb +66 -0
  290. data/vendor/mail/spec/mail/fields/resent_cc_field_spec.rb +66 -0
  291. data/vendor/mail/spec/mail/fields/resent_date_field_spec.rb +39 -0
  292. data/vendor/mail/spec/mail/fields/resent_from_field_spec.rb +66 -0
  293. data/vendor/mail/spec/mail/fields/resent_message_id_field_spec.rb +24 -0
  294. data/vendor/mail/spec/mail/fields/resent_sender_field_spec.rb +58 -0
  295. data/vendor/mail/spec/mail/fields/resent_to_field_spec.rb +66 -0
  296. data/vendor/mail/spec/mail/fields/return_path_field_spec.rb +52 -0
  297. data/vendor/mail/spec/mail/fields/sender_field_spec.rb +58 -0
  298. data/vendor/mail/spec/mail/fields/structured_field_spec.rb +72 -0
  299. data/vendor/mail/spec/mail/fields/to_field_spec.rb +92 -0
  300. data/vendor/mail/spec/mail/fields/unstructured_field_spec.rb +134 -0
  301. data/vendor/mail/spec/mail/header_spec.rb +578 -0
  302. data/vendor/mail/spec/mail/mail_spec.rb +34 -0
  303. data/vendor/mail/spec/mail/message_spec.rb +1409 -0
  304. data/vendor/mail/spec/mail/mime_messages_spec.rb +435 -0
  305. data/vendor/mail/spec/mail/multipart_report_spec.rb +112 -0
  306. data/vendor/mail/spec/mail/network/delivery_methods/file_delivery_spec.rb +79 -0
  307. data/vendor/mail/spec/mail/network/delivery_methods/sendmail_spec.rb +125 -0
  308. data/vendor/mail/spec/mail/network/delivery_methods/smtp_spec.rb +133 -0
  309. data/vendor/mail/spec/mail/network/delivery_methods/test_mailer_spec.rb +57 -0
  310. data/vendor/mail/spec/mail/network/retriever_methods/pop3_spec.rb +180 -0
  311. data/vendor/mail/spec/mail/network_spec.rb +359 -0
  312. data/vendor/mail/spec/mail/parsers/address_lists_parser_spec.rb +15 -0
  313. data/vendor/mail/spec/mail/parsers/content_transfer_encoding_parser_spec.rb +72 -0
  314. data/vendor/mail/spec/mail/part_spec.rb +129 -0
  315. data/vendor/mail/spec/mail/parts_list_spec.rb +12 -0
  316. data/vendor/mail/spec/mail/round_tripping_spec.rb +44 -0
  317. data/vendor/mail/spec/mail/utilities_spec.rb +327 -0
  318. data/vendor/mail/spec/mail/version_specific/escape_paren_1_8_spec.rb +32 -0
  319. data/vendor/mail/spec/matchers/break_down_to.rb +35 -0
  320. data/vendor/mail/spec/spec_helper.rb +163 -0
  321. metadata +442 -0
@@ -0,0 +1,563 @@
1
+
2
+
3
+
4
+
5
+
6
+ Network Working Group E. Levinson
7
+ Request for Comments: 2387 August 1998
8
+ Obsoletes: 2112
9
+ Category: Standards Track
10
+
11
+
12
+ The MIME Multipart/Related Content-type
13
+
14
+ Status of this Memo
15
+
16
+ This document specifies an Internet standards track protocol for the
17
+ Internet community, and requests discussion and suggestions for
18
+ improvements. Please refer to the current edition of the "Internet
19
+ Official Protocol Standards" (STD 1) for the standardization state
20
+ and status of this protocol. Distribution of this memo is unlimited.
21
+
22
+ Copyright Notice
23
+
24
+ Copyright (C) The Internet Society (1998). All Rights Reserved.
25
+
26
+ Abstract
27
+
28
+ The Multipart/Related content-type provides a common mechanism for
29
+ representing objects that are aggregates of related MIME body parts.
30
+ This document defines the Multipart/Related content-type and provides
31
+ examples of its use.
32
+
33
+ 1. Introduction
34
+
35
+ Several applications of MIME, including MIME-PEM, and MIME-Macintosh
36
+ and other proposals, require multiple body parts that make sense only
37
+ in the aggregate. The present approach to these compound objects has
38
+ been to define specific multipart subtypes for each new object. In
39
+ keeping with the MIME philosophy of having one mechanism to achieve
40
+ the same goal for different purposes, this document describes a
41
+ single mechanism for such aggregate or compound objects.
42
+
43
+ The Multipart/Related content-type addresses the MIME representation
44
+ of compound objects. The object is categorized by a "type"
45
+ parameter. Additional parameters are provided to indicate a specific
46
+ starting body part or root and auxiliary information which may be
47
+ required when unpacking or processing the object.
48
+
49
+ Multipart/Related MIME entities may contain Content-Disposition
50
+ headers that provide suggestions for the storage and display of a
51
+ body part. Multipart/Related processing takes precedence over
52
+ Content-Disposition; the interaction between them is discussed in
53
+ section 4.
54
+
55
+
56
+
57
+ Levinson Standards Track [Page 1]
58
+
59
+ RFC 2387 Multipart/Related August 1998
60
+
61
+
62
+ Responsibility for the display or processing of a Multipart/Related's
63
+ constituent entities rests with the application that handles the
64
+ compound object.
65
+
66
+ 2. Multipart/Related Registration Information
67
+
68
+ The following form is copied from RFC 1590, Appendix A.
69
+
70
+ To: IANA@isi.edu
71
+ Subject: Registration of new Media Type content-type/subtype
72
+
73
+ Media Type name: Multipart
74
+
75
+ Media subtype name: Related
76
+
77
+ Required parameters: Type, a media type/subtype.
78
+
79
+ Optional parameters: Start
80
+ Start-info
81
+
82
+ Encoding considerations: Multipart content-types cannot have
83
+ encodings.
84
+
85
+ Security considerations: Depends solely on the referenced type.
86
+
87
+ Published specification: RFC-REL (this document).
88
+
89
+ Person & email address to contact for further information:
90
+ Edward Levinson
91
+ 47 Clive Street
92
+ Metuchen, NJ 08840-1060
93
+ +1 908 494 1606
94
+ XIson@cnj.digex.net
95
+
96
+ 3. Intended usage
97
+
98
+ The Multipart/Related media type is intended for compound objects
99
+ consisting of several inter-related body parts. For a
100
+ Multipart/Related object, proper display cannot be achieved by
101
+ individually displaying the constituent body parts. The content-type
102
+ of the Multipart/Related object is specified by the type parameter.
103
+ The "start" parameter, if given, points, via a content-ID, to the
104
+ body part that contains the object root. The default root is the
105
+ first body part within the Multipart/Related body.
106
+
107
+ The relationships among the body parts of a compound object
108
+ distinguishes it from other object types. These relationships are
109
+ often represented by links internal to the object's components that
110
+
111
+
112
+
113
+ Levinson Standards Track [Page 2]
114
+
115
+ RFC 2387 Multipart/Related August 1998
116
+
117
+
118
+ reference the other components. Within a single operating
119
+ environment the links are often file names, such links may be
120
+ represented within a MIME message using content-IDs or the value of
121
+ some other "Content-" headers.
122
+
123
+ 3.1. The Type Parameter
124
+
125
+ The type parameter must be specified and its value is the MIME media
126
+ type of the "root" body part. It permits a MIME user agent to
127
+ determine the content-type without reference to the enclosed body
128
+ part. If the value of the type parameter and the root body part's
129
+ content-type differ then the User Agent's behavior is undefined.
130
+
131
+ 3.2. The Start Parameter
132
+
133
+ The start parameter, if given, is the content-ID of the compound
134
+ object's "root". If not present the "root" is the first body part in
135
+ the Multipart/Related entity. The "root" is the element the
136
+ applications processes first.
137
+
138
+ 3.3. The Start-Info Parameter
139
+
140
+ Additional information can be provided to an application by the
141
+ start-info parameter. It contains either a string or points, via a
142
+ content-ID, to another MIME entity in the message. A typical use
143
+ might be to provide additional command line parameters or a MIME
144
+ entity giving auxiliary information for processing the compound
145
+ object.
146
+
147
+ Applications that use Multipart/Related must specify the
148
+ interpretation of start-info. User Agents shall provide the
149
+ parameter's value to the processing application. Processes can
150
+ distinguish a start-info reference from a token or quoted-string by
151
+ examining the first non-white-space character, "<" indicates a
152
+ reference.
153
+
154
+ 3.4. Syntax
155
+
156
+ related-param := [ ";" "start" "=" cid ]
157
+ [ ";" "start-info" "="
158
+ ( cid-list / value ) ]
159
+ [ ";" "type" "=" type "/" subtype ]
160
+ ; order independent
161
+
162
+ cid-list := cid cid-list
163
+
164
+ cid := msg-id ; c.f. [822]
165
+
166
+
167
+
168
+
169
+ Levinson Standards Track [Page 3]
170
+
171
+ RFC 2387 Multipart/Related August 1998
172
+
173
+
174
+ value := token / quoted-string ; c.f. [MIME]
175
+ ; value cannot begin with "<"
176
+
177
+ Note that the parameter values will usually require quoting. Msg-id
178
+ contains the special characters "<", ">", "@", and perhaps other
179
+ special characters. If msg-id contains quoted-strings, those quote
180
+ marks must be escaped. Similarly, the type parameter contains the
181
+ special character "/".
182
+
183
+ 4. Handling Content-Disposition Headers
184
+
185
+ Content-Disposition Headers [DISP] suggest presentation styles for
186
+ MIME body parts. [DISP] describes two presentation styles, called
187
+ the disposition type, INLINE and ATTACHMENT. These, used within a
188
+ multipart entity, allow the sender to suggest presentation
189
+ information. [DISP] also provides for an optional storage (file)
190
+ name. Content-Disposition headers could appear in one or more body
191
+ parts contained within a Multipart/Related entity.
192
+
193
+ Using Content-Disposition headers in addition to Multipart/Related
194
+ provides presentation information to User Agents that do not
195
+ recognize Multipart/Related. They will treat the multipart as
196
+ Multipart/Mixed and they may find the Content-Disposition information
197
+ useful.
198
+
199
+ With Multipart/Related however, the application processing the
200
+ compound object determines the presentation style for all the
201
+ contained parts. In that context the Content-Disposition header
202
+ information is redundant or even misleading. Hence, User Agents that
203
+ understand Multipart/Related shall ignore the disposition type within
204
+ a Multipart/Related body part.
205
+
206
+ It may be possible for a User Agent capable of handling both
207
+ Multipart/Related and Content-Disposition headers to provide the
208
+ invoked application the Content-Disposition header's optional
209
+ filename parameter to the Multipart/Related. The use of that
210
+ information will depend on the specific application and should be
211
+ specified when describing the handling of the corresponding compound
212
+ object. Such descriptions would be appropriate in an RFC registering
213
+ that object's media type.
214
+
215
+ 5. Examples
216
+
217
+ 5.1 Application/X-FixedRecord
218
+
219
+ The X-FixedRecord content-type consists of one or more octet-streams
220
+ and a list of the lengths of each record. The root, which lists the
221
+ record lengths of each record within the streams. The record length
222
+
223
+
224
+
225
+ Levinson Standards Track [Page 4]
226
+
227
+ RFC 2387 Multipart/Related August 1998
228
+
229
+
230
+ list, type Application/X-FixedRecord, consists of a set of INTEGERs
231
+ in ASCII format, one per line. Each INTEGER gives the number of
232
+ octets from the octet-stream body part that constitute the next
233
+ "record".
234
+
235
+ The example below, uses a single data block.
236
+
237
+ Content-Type: Multipart/Related; boundary=example-1
238
+ start="<950120.aaCC@XIson.com>";
239
+ type="Application/X-FixedRecord"
240
+ start-info="-o ps"
241
+
242
+ --example-1
243
+ Content-Type: Application/X-FixedRecord
244
+ Content-ID: <950120.aaCC@XIson.com>
245
+
246
+ 25
247
+ 10
248
+ 34
249
+ 10
250
+ 25
251
+ 21
252
+ 26
253
+ 10
254
+ --example-1
255
+ Content-Type: Application/octet-stream
256
+ Content-Description: The fixed length records
257
+ Content-Transfer-Encoding: base64
258
+ Content-ID: <950120.aaCB@XIson.com>
259
+
260
+ T2xkIE1hY0RvbmFsZCBoYWQgYSBmYXJtCkUgSS
261
+ BFIEkgTwpBbmQgb24gaGlzIGZhcm0gaGUgaGFk
262
+ IHNvbWUgZHVja3MKRSBJIEUgSSBPCldpdGggYS
263
+ BxdWFjayBxdWFjayBoZXJlLAphIHF1YWNrIHF1
264
+ YWNrIHRoZXJlLApldmVyeSB3aGVyZSBhIHF1YW
265
+ NrIHF1YWNrCkUgSSBFIEkgTwo=
266
+
267
+ --example-1--
268
+
269
+
270
+
271
+
272
+
273
+
274
+
275
+
276
+
277
+
278
+
279
+
280
+
281
+ Levinson Standards Track [Page 5]
282
+
283
+ RFC 2387 Multipart/Related August 1998
284
+
285
+
286
+ 5.2 Text/X-Okie
287
+
288
+ The Text/X-Okie is an invented markup language permitting the
289
+ inclusion of images with text. A feature of this example is the
290
+ inclusion of two additional body parts, both picture. They are
291
+ referred to internally by the encapsulated document via each
292
+ picture's body part content-ID. Usage of "cid:", as in this example,
293
+ may be useful for a variety of compound objects. It is not, however,
294
+ a part of the Multipart/Related specification.
295
+
296
+ Content-Type: Multipart/Related; boundary=example-2;
297
+ start="<950118.AEBH@XIson.com>"
298
+ type="Text/x-Okie"
299
+
300
+ --example-2
301
+ Content-Type: Text/x-Okie; charset=iso-8859-1;
302
+ declaration="<950118.AEB0@XIson.com>"
303
+ Content-ID: <950118.AEBH@XIson.com>
304
+ Content-Description: Document
305
+
306
+ {doc}
307
+ This picture was taken by an automatic camera mounted ...
308
+ {image file=cid:950118.AECB@XIson.com}
309
+ {para}
310
+ Now this is an enlargement of the area ...
311
+ {image file=cid:950118:AFDH@XIson.com}
312
+ {/doc}
313
+ --example-2
314
+ Content-Type: image/jpeg
315
+ Content-ID: <950118.AFDH@XIson.com>
316
+ Content-Transfer-Encoding: BASE64
317
+ Content-Description: Picture A
318
+
319
+ [encoded jpeg image]
320
+ --example-2
321
+ Content-Type: image/jpeg
322
+ Content-ID: <950118.AECB@XIson.com>
323
+ Content-Transfer-Encoding: BASE64
324
+ Content-Description: Picture B
325
+
326
+ [encoded jpeg image]
327
+ --example-2--
328
+
329
+ 5.3 Content-Disposition
330
+
331
+ In the above example each image body part could also have a Content-
332
+ Disposition header. For example,
333
+
334
+
335
+
336
+
337
+ Levinson Standards Track [Page 6]
338
+
339
+ RFC 2387 Multipart/Related August 1998
340
+
341
+
342
+ --example-2
343
+ Content-Type: image/jpeg
344
+ Content-ID: <950118.AECB@XIson.com>
345
+ Content-Transfer-Encoding: BASE64
346
+ Content-Description: Picture B
347
+ Content-Disposition: INLINE
348
+
349
+ [encoded jpeg image]
350
+ --example-2--
351
+
352
+ User Agents that recognize Multipart/Related will ignore the
353
+ Content-Disposition header's disposition type. Other User Agents
354
+ will process the Multipart/Related as Multipart/Mixed and may make
355
+ use of that header's information.
356
+
357
+ 6. User Agent Requirements
358
+
359
+ User agents that do not recognize Multipart/Related shall, in
360
+ accordance with [MIME], treat the entire entity as Multipart/Mixed.
361
+ MIME User Agents that do recognize Multipart/Related entities but are
362
+ unable to process the given type should give the user the option of
363
+ suppressing the entire Multipart/Related body part shall be.
364
+
365
+ Existing MIME-capable mail user agents (MUAs) handle the existing
366
+ media types in a straightforward manner. For discrete media types
367
+ (e.g. text, image, etc.) the body of the entity can be directly
368
+ passed to a display process. Similarly the existing composite
369
+ subtypes can be reduced to handing one or more discrete types.
370
+ Handling Multipart/Related differs in that processing cannot be
371
+ reduced to handling the individual entities.
372
+
373
+ The following sections discuss what information the processing
374
+ application requires.
375
+
376
+ It is possible that an application specific "receiving agent" will
377
+ manipulate the entities for display prior to invoking actual
378
+ application process. Okie, above, is an example of this; it may need
379
+ a receiving agent to parse the document and substitute local file
380
+ names for the originator's file names. Other applications may just
381
+ require a table showing the correspondence between the local file
382
+ names and the originator's. The receiving agent takes responsibility
383
+ for such processing.
384
+
385
+ 6.1 Data Requirements
386
+
387
+ MIME-capable mail user agents (MUAs) are required to provide the
388
+ application:
389
+
390
+
391
+
392
+
393
+ Levinson Standards Track [Page 7]
394
+
395
+ RFC 2387 Multipart/Related August 1998
396
+
397
+
398
+ (a) the bodies of the MIME entities and the entity Content-* headers,
399
+
400
+ (b) the parameters of the Multipart/Related Content-type header, and
401
+
402
+ (c) the correspondence between each body's local file name, that
403
+ body's header data, and, if present, the body part's content-ID.
404
+
405
+ 6.2 Storing Multipart/Related Entities
406
+
407
+ The Multipart/Related media type will be used for objects that have
408
+ internal linkages between the body parts. When the objects are
409
+ stored the linkages may require processing by the application or its
410
+ receiving agent.
411
+
412
+ 6.3 Recursion
413
+
414
+ MIME is a recursive structure. Hence one must expect a
415
+ Multipart/Related entity to contain other Multipart/Related entities.
416
+ When a Multipart/Related entity is being processed for display or
417
+ storage, any enclosed Multipart/Related entities shall be processed
418
+ as though they were being stored.
419
+
420
+ 6.4 Configuration Considerations
421
+
422
+ It is suggested that MUAs that use configuration mechanisms, see
423
+ [CFG] for an example, refer to Multipart/Related as Multi-
424
+ part/Related/<type>, were <type> is the value of the "type"
425
+ parameter.
426
+
427
+ 7. Security Considerations
428
+
429
+ Security considerations relevant to Multipart/Related are identical
430
+ to those of the underlying content-type.
431
+
432
+ 8. Acknowledgments
433
+
434
+ This proposal is the result of conversations the author has had with
435
+ many people. In particular, Harald A. Alvestrand, James Clark,
436
+ Charles Goldfarb, Gary Houston, Ned Freed, Ray Moody, and Don
437
+ Stinchfield, provided both encouragement and invaluable help. The
438
+ author, however, take full responsibility for all errors contained in
439
+ this document.
440
+
441
+
442
+
443
+
444
+
445
+
446
+
447
+
448
+
449
+ Levinson Standards Track [Page 8]
450
+
451
+ RFC 2387 Multipart/Related August 1998
452
+
453
+
454
+ 9. References
455
+
456
+ [822] Crocker, D., "Standard for the Format of ARPA Internet
457
+ Text Messages", STD 11, RFC 822, August 1982.
458
+
459
+ [CID] Levinson, E., and J. Clark, "Message/External-Body
460
+ Content-ID Access Type", RFC 1873, December 1995,
461
+ Levinson, E., "Message/External-Body Content-ID Access
462
+ Type", Work in Progress.
463
+
464
+ [CFG] Borenstein, N., "A User Agent Configuration Mechanism For
465
+ Multimedia Mail Format Information", RFC 1524, September
466
+ 1993.
467
+
468
+ [DISP] Troost, R., and S. Dorner, "Communicating Presentation
469
+ Information in Internet Messages: The Content-
470
+ Disposition Header", RFC 1806, June 1995.
471
+
472
+ [MIME] Borenstein, N., and Freed, N., "Multipurpose Internet
473
+ Mail Extensions (MIME) Part One: Format of Internet
474
+ Message Bodies", RFC 2045, November 1996.
475
+
476
+ 9. Author's Address
477
+
478
+ Edward Levinson
479
+ 47 Clive Street
480
+ Metuchen, NJ 08840-1060
481
+ USA
482
+
483
+ Phone: +1 908 494 1606
484
+ EMail: XIson@cnj.digex.com
485
+
486
+ 10. Changes from previous draft (RFC 2112)
487
+
488
+ Corrected cid urls to conform to RFC 2111; the angle brackets were
489
+ removed.
490
+
491
+
492
+
493
+
494
+
495
+
496
+
497
+
498
+
499
+
500
+
501
+
502
+
503
+
504
+
505
+ Levinson Standards Track [Page 9]
506
+
507
+ RFC 2387 Multipart/Related August 1998
508
+
509
+
510
+ 11. Full Copyright Statement
511
+
512
+ Copyright (C) The Internet Society (1998). All Rights Reserved.
513
+
514
+ This document and translations of it may be copied and furnished to
515
+ others, and derivative works that comment on or otherwise explain it
516
+ or assist in its implementation may be prepared, copied, published
517
+ and distributed, in whole or in part, without restriction of any
518
+ kind, provided that the above copyright notice and this paragraph are
519
+ included on all such copies and derivative works. However, this
520
+ document itself may not be modified in any way, such as by removing
521
+ the copyright notice or references to the Internet Society or other
522
+ Internet organizations, except as needed for the purpose of
523
+ developing Internet standards in which case the procedures for
524
+ copyrights defined in the Internet Standards process must be
525
+ followed, or as required to translate it into languages other than
526
+ English.
527
+
528
+ The limited permissions granted above are perpetual and will not be
529
+ revoked by the Internet Society or its successors or assigns.
530
+
531
+ This document and the information contained herein is provided on an
532
+ "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING
533
+ TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING
534
+ BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION
535
+ HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF
536
+ MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
537
+
538
+
539
+
540
+
541
+
542
+
543
+
544
+
545
+
546
+
547
+
548
+
549
+
550
+
551
+
552
+
553
+
554
+
555
+
556
+
557
+
558
+
559
+
560
+
561
+ Levinson Standards Track [Page 10]
562
+
563
+