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,1347 @@
1
+
2
+
3
+
4
+
5
+
6
+
7
+ Network Working Group N. Freed
8
+ Request for Comments: 2049 Innosoft
9
+ Obsoletes: 1521, 1522, 1590 N. Borenstein
10
+ Category: Standards Track First Virtual
11
+ November 1996
12
+
13
+
14
+ Multipurpose Internet Mail Extensions
15
+ (MIME) Part Five:
16
+ Conformance Criteria and Examples
17
+
18
+ Status of this Memo
19
+
20
+ This document specifies an Internet standards track protocol for the
21
+ Internet community, and requests discussion and suggestions for
22
+ improvements. Please refer to the current edition of the "Internet
23
+ Official Protocol Standards" (STD 1) for the standardization state
24
+ and status of this protocol. Distribution of this memo is unlimited.
25
+
26
+ Abstract
27
+
28
+ STD 11, RFC 822, defines a message representation protocol specifying
29
+ considerable detail about US-ASCII message headers, and leaves the
30
+ message content, or message body, as flat US-ASCII text. This set of
31
+ documents, collectively called the Multipurpose Internet Mail
32
+ Extensions, or MIME, redefines the format of messages to allow for
33
+
34
+ (1) textual message bodies in character sets other than
35
+ US-ASCII,
36
+
37
+ (2) an extensible set of different formats for non-textual
38
+ message bodies,
39
+
40
+ (3) multi-part message bodies, and
41
+
42
+ (4) textual header information in character sets other than
43
+ US-ASCII.
44
+
45
+ These documents are based on earlier work documented in RFC 934, STD
46
+ 11, and RFC 1049, but extends and revises them. Because RFC 822 said
47
+ so little about message bodies, these documents are largely
48
+ orthogonal to (rather than a revision of) RFC 822.
49
+
50
+ The initial document in this set, RFC 2045, specifies the various
51
+ headers used to describe the structure of MIME messages. The second
52
+ document defines the general structure of the MIME media typing
53
+ system and defines an initial set of media types. The third
54
+ document, RFC 2047, describes extensions to RFC 822 to allow non-US-
55
+
56
+
57
+
58
+ Freed & Borenstein Standards Track [Page 1]
59
+
60
+ RFC 2049 MIME Conformance November 1996
61
+
62
+
63
+ ASCII text data in Internet mail header fields. The fourth document,
64
+ RFC 2048, specifies various IANA registration procedures for MIME-
65
+ related facilities. This fifth and final document describes MIME
66
+ conformance criteria as well as providing some illustrative examples
67
+ of MIME message formats, acknowledgements, and the bibliography.
68
+
69
+ These documents are revisions of RFCs 1521, 1522, and 1590, which
70
+ themselves were revisions of RFCs 1341 and 1342. Appendix B of this
71
+ document describes differences and changes from previous versions.
72
+
73
+ Table of Contents
74
+
75
+ 1. Introduction .......................................... 2
76
+ 2. MIME Conformance ...................................... 2
77
+ 3. Guidelines for Sending Email Data ..................... 6
78
+ 4. Canonical Encoding Model .............................. 9
79
+ 5. Summary ............................................... 12
80
+ 6. Security Considerations ............................... 12
81
+ 7. Authors' Addresses .................................... 12
82
+ 8. Acknowledgements ...................................... 13
83
+ A. A Complex Multipart Example ........................... 15
84
+ B. Changes from RFC 1521, 1522, and 1590 ................. 16
85
+ C. References ............................................ 20
86
+
87
+ 1. Introduction
88
+
89
+ The first and second documents in this set define MIME header fields
90
+ and the initial set of MIME media types. The third document
91
+ describes extensions to RFC822 formats to allow for character sets
92
+ other than US-ASCII. This document describes what portions of MIME
93
+ must be supported by a conformant MIME implementation. It also
94
+ describes various pitfalls of contemporary messaging systems as well
95
+ as the canonical encoding model MIME is based on.
96
+
97
+ 2. MIME Conformance
98
+
99
+ The mechanisms described in these documents are open-ended. It is
100
+ definitely not expected that all implementations will support all
101
+ available media types, nor that they will all share the same
102
+ extensions. In order to promote interoperability, however, it is
103
+ useful to define the concept of "MIME-conformance" to define a
104
+ certain level of implementation that allows the useful interworking
105
+ of messages with content that differs from US-ASCII text. In this
106
+ section, we specify the requirements for such conformance.
107
+
108
+
109
+
110
+
111
+
112
+
113
+
114
+ Freed & Borenstein Standards Track [Page 2]
115
+
116
+ RFC 2049 MIME Conformance November 1996
117
+
118
+
119
+ A mail user agent that is MIME-conformant MUST:
120
+
121
+ (1) Always generate a "MIME-Version: 1.0" header field in
122
+ any message it creates.
123
+
124
+ (2) Recognize the Content-Transfer-Encoding header field
125
+ and decode all received data encoded by either quoted-
126
+ printable or base64 implementations. The identity
127
+ transformations 7bit, 8bit, and binary must also be
128
+ recognized.
129
+
130
+ Any non-7bit data that is sent without encoding must be
131
+ properly labelled with a content-transfer-encoding of
132
+ 8bit or binary, as appropriate. If the underlying
133
+ transport does not support 8bit or binary (as SMTP
134
+ [RFC-821] does not), the sender is required to both
135
+ encode and label data using an appropriate Content-
136
+ Transfer-Encoding such as quoted-printable or base64.
137
+
138
+ (3) Must treat any unrecognized Content-Transfer-Encoding
139
+ as if it had a Content-Type of "application/octet-
140
+ stream", regardless of whether or not the actual
141
+ Content-Type is recognized.
142
+
143
+ (4) Recognize and interpret the Content-Type header field,
144
+ and avoid showing users raw data with a Content-Type
145
+ field other than text. Implementations must be able
146
+ to send at least text/plain messages, with the
147
+ character set specified with the charset parameter if
148
+ it is not US-ASCII.
149
+
150
+ (5) Ignore any content type parameters whose names they do
151
+ not recognize.
152
+
153
+ (6) Explicitly handle the following media type values, to
154
+ at least the following extents:
155
+
156
+ Text:
157
+
158
+ -- Recognize and display "text" mail with the
159
+ character set "US-ASCII."
160
+
161
+ -- Recognize other character sets at least to the
162
+ extent of being able to inform the user about what
163
+ character set the message uses.
164
+
165
+
166
+
167
+
168
+
169
+
170
+ Freed & Borenstein Standards Track [Page 3]
171
+
172
+ RFC 2049 MIME Conformance November 1996
173
+
174
+
175
+ -- Recognize the "ISO-8859-*" character sets to the
176
+ extent of being able to display those characters that
177
+ are common to ISO-8859-* and US-ASCII, namely all
178
+ characters represented by octet values 1-127.
179
+
180
+ -- For unrecognized subtypes in a known character
181
+ set, show or offer to show the user the "raw" version
182
+ of the data after conversion of the content from
183
+ canonical form to local form.
184
+
185
+ -- Treat material in an unknown character set as if
186
+ it were "application/octet-stream".
187
+
188
+ Image, audio, and video:
189
+
190
+ -- At a minumum provide facilities to treat any
191
+ unrecognized subtypes as if they were
192
+ "application/octet-stream".
193
+
194
+ Application:
195
+
196
+ -- Offer the ability to remove either of the quoted-
197
+ printable or base64 encodings defined in this
198
+ document if they were used and put the resulting
199
+ information in a user file.
200
+
201
+ Multipart:
202
+
203
+ -- Recognize the mixed subtype. Display all relevant
204
+ information on the message level and the body part
205
+ header level and then display or offer to display
206
+ each of the body parts individually.
207
+
208
+ -- Recognize the "alternative" subtype, and avoid
209
+ showing the user redundant parts of
210
+ multipart/alternative mail.
211
+
212
+ -- Recognize the "multipart/digest" subtype,
213
+ specifically using "message/rfc822" rather than
214
+ "text/plain" as the default media type for body parts
215
+ inside "multipart/digest" entities.
216
+
217
+ -- Treat any unrecognized subtypes as if they were
218
+ "mixed".
219
+
220
+
221
+
222
+
223
+
224
+
225
+
226
+ Freed & Borenstein Standards Track [Page 4]
227
+
228
+ RFC 2049 MIME Conformance November 1996
229
+
230
+
231
+ Message:
232
+
233
+ -- Recognize and display at least the RFC822 message
234
+ encapsulation (message/rfc822) in such a way as to
235
+ preserve any recursive structure, that is, displaying
236
+ or offering to display the encapsulated data in
237
+ accordance with its media type.
238
+
239
+ -- Treat any unrecognized subtypes as if they were
240
+ "application/octet-stream".
241
+
242
+ (7) Upon encountering any unrecognized Content-Type field,
243
+ an implementation must treat it as if it had a media
244
+ type of "application/octet-stream" with no parameter
245
+ sub-arguments. How such data are handled is up to an
246
+ implementation, but likely options for handling such
247
+ unrecognized data include offering the user to write it
248
+ into a file (decoded from its mail transport format) or
249
+ offering the user to name a program to which the
250
+ decoded data should be passed as input.
251
+
252
+ (8) Conformant user agents are required, if they provide
253
+ non-standard support for non-MIME messages employing
254
+ character sets other than US-ASCII, to do so on
255
+ received messages only. Conforming user agents must not
256
+ send non-MIME messages containing anything other than
257
+ US-ASCII text.
258
+
259
+ In particular, the use of non-US-ASCII text in mail
260
+ messages without a MIME-Version field is strongly
261
+ discouraged as it impedes interoperability when sending
262
+ messages between regions with different localization
263
+ conventions. Conforming user agents MUST include proper
264
+ MIME labelling when sending anything other than plain
265
+ text in the US-ASCII character set.
266
+
267
+ In addition, non-MIME user agents should be upgraded if
268
+ at all possible to include appropriate MIME header
269
+ information in the messages they send even if nothing
270
+ else in MIME is supported. This upgrade will have
271
+ little, if any, effect on non-MIME recipients and will
272
+ aid MIME in correctly displaying such messages. It
273
+ also provides a smooth transition path to eventual
274
+ adoption of other MIME capabilities.
275
+
276
+ (9) Conforming user agents must ensure that any string of
277
+ non-white-space printable US-ASCII characters within a
278
+ "*text" or "*ctext" that begins with "=?" and ends with
279
+
280
+
281
+
282
+ Freed & Borenstein Standards Track [Page 5]
283
+
284
+ RFC 2049 MIME Conformance November 1996
285
+
286
+
287
+ "?=" be a valid encoded-word. ("begins" means: At the
288
+ start of the field-body or immediately following
289
+ linear-white-space; "ends" means: At the end of the
290
+ field-body or immediately preceding linear-white-
291
+ space.) In addition, any "word" within a "phrase" that
292
+ begins with "=?" and ends with "?=" must be a valid
293
+ encoded-word.
294
+
295
+ (10) Conforming user agents must be able to distinguish
296
+ encoded-words from "text", "ctext", or "word"s,
297
+ according to the rules in section 4, anytime they
298
+ appear in appropriate places in message headers. It
299
+ must support both the "B" and "Q" encodings for any
300
+ character set which it supports. The program must be
301
+ able to display the unencoded text if the character set
302
+ is "US-ASCII". For the ISO-8859-* character sets, the
303
+ mail reading program must at least be able to display
304
+ the characters which are also in the US-ASCII set.
305
+
306
+ A user agent that meets the above conditions is said to be MIME-
307
+ conformant. The meaning of this phrase is that it is assumed to be
308
+ "safe" to send virtually any kind of properly-marked data to users of
309
+ such mail systems, because such systems will at least be able to
310
+ treat the data as undifferentiated binary, and will not simply splash
311
+ it onto the screen of unsuspecting users.
312
+
313
+ There is another sense in which it is always "safe" to send data in a
314
+ format that is MIME-conformant, which is that such data will not
315
+ break or be broken by any known systems that are conformant with RFC
316
+ 821 and RFC 822. User agents that are MIME-conformant have the
317
+ additional guarantee that the user will not be shown data that were
318
+ never intended to be viewed as text.
319
+
320
+ 3. Guidelines for Sending Email Data
321
+
322
+ Internet email is not a perfect, homogeneous system. Mail may become
323
+ corrupted at several stages in its travel to a final destination.
324
+ Specifically, email sent throughout the Internet may travel across
325
+ many networking technologies. Many networking and mail technologies
326
+ do not support the full functionality possible in the SMTP transport
327
+ environment. Mail traversing these systems is likely to be modified
328
+ in order that it can be transported.
329
+
330
+ There exist many widely-deployed non-conformant MTAs in the Internet.
331
+ These MTAs, speaking the SMTP protocol, alter messages on the fly to
332
+ take advantage of the internal data structure of the hosts they are
333
+ implemented on, or are just plain broken.
334
+
335
+
336
+
337
+
338
+ Freed & Borenstein Standards Track [Page 6]
339
+
340
+ RFC 2049 MIME Conformance November 1996
341
+
342
+
343
+ The following guidelines may be useful to anyone devising a data
344
+ format (media type) that is supposed to survive the widest range of
345
+ networking technologies and known broken MTAs unscathed. Note that
346
+ anything encoded in the base64 encoding will satisfy these rules, but
347
+ that some well-known mechanisms, notably the UNIX uuencode facility,
348
+ will not. Note also that anything encoded in the Quoted-Printable
349
+ encoding will survive most gateways intact, but possibly not some
350
+ gateways to systems that use the EBCDIC character set.
351
+
352
+ (1) Under some circumstances the encoding used for data may
353
+ change as part of normal gateway or user agent
354
+ operation. In particular, conversion from base64 to
355
+ quoted-printable and vice versa may be necessary. This
356
+ may result in the confusion of CRLF sequences with line
357
+ breaks in text bodies. As such, the persistence of
358
+ CRLF as something other than a line break must not be
359
+ relied on.
360
+
361
+ (2) Many systems may elect to represent and store text data
362
+ using local newline conventions. Local newline
363
+ conventions may not match the RFC822 CRLF convention --
364
+ systems are known that use plain CR, plain LF, CRLF, or
365
+ counted records. The result is that isolated CR and LF
366
+ characters are not well tolerated in general; they may
367
+ be lost or converted to delimiters on some systems, and
368
+ hence must not be relied on.
369
+
370
+ (3) The transmission of NULs (US-ASCII value 0) is
371
+ problematic in Internet mail. (This is largely the
372
+ result of NULs being used as a termination character by
373
+ many of the standard runtime library routines in the C
374
+ programming language.) The practice of using NULs as
375
+ termination characters is so entrenched now that
376
+ messages should not rely on them being preserved.
377
+
378
+ (4) TAB (HT) characters may be misinterpreted or may be
379
+ automatically converted to variable numbers of spaces.
380
+ This is unavoidable in some environments, notably those
381
+ not based on the US-ASCII character set. Such
382
+ conversion is STRONGLY DISCOURAGED, but it may occur,
383
+ and mail formats must not rely on the persistence of
384
+ TAB (HT) characters.
385
+
386
+ (5) Lines longer than 76 characters may be wrapped or
387
+ truncated in some environments. Line wrapping or line
388
+ truncation imposed by mail transports is STRONGLY
389
+ DISCOURAGED, but unavoidable in some cases.
390
+ Applications which require long lines must somehow
391
+
392
+
393
+
394
+ Freed & Borenstein Standards Track [Page 7]
395
+
396
+ RFC 2049 MIME Conformance November 1996
397
+
398
+
399
+ differentiate between soft and hard line breaks. (A
400
+ simple way to do this is to use the quoted-printable
401
+ encoding.)
402
+
403
+ (6) Trailing "white space" characters (SPACE, TAB (HT)) on
404
+ a line may be discarded by some transport agents, while
405
+ other transport agents may pad lines with these
406
+ characters so that all lines in a mail file are of
407
+ equal length. The persistence of trailing white space,
408
+ therefore, must not be relied on.
409
+
410
+ (7) Many mail domains use variations on the US-ASCII
411
+ character set, or use character sets such as EBCDIC
412
+ which contain most but not all of the US-ASCII
413
+ characters. The correct translation of characters not
414
+ in the "invariant" set cannot be depended on across
415
+ character converting gateways. For example, this
416
+ situation is a problem when sending uuencoded
417
+ information across BITNET, an EBCDIC system. Similar
418
+ problems can occur without crossing a gateway, since
419
+ many Internet hosts use character sets other than US-
420
+ ASCII internally. The definition of Printable Strings
421
+ in X.400 adds further restrictions in certain special
422
+ cases. In particular, the only characters that are
423
+ known to be consistent across all gateways are the 73
424
+ characters that correspond to the upper and lower case
425
+ letters A-Z and a-z, the 10 digits 0-9, and the
426
+ following eleven special characters:
427
+
428
+ "'" (US-ASCII decimal value 39)
429
+ "(" (US-ASCII decimal value 40)
430
+ ")" (US-ASCII decimal value 41)
431
+ "+" (US-ASCII decimal value 43)
432
+ "," (US-ASCII decimal value 44)
433
+ "-" (US-ASCII decimal value 45)
434
+ "." (US-ASCII decimal value 46)
435
+ "/" (US-ASCII decimal value 47)
436
+ ":" (US-ASCII decimal value 58)
437
+ "=" (US-ASCII decimal value 61)
438
+ "?" (US-ASCII decimal value 63)
439
+
440
+ A maximally portable mail representation will confine
441
+ itself to relatively short lines of text in which the
442
+ only meaningful characters are taken from this set of
443
+ 73 characters. The base64 encoding follows this rule.
444
+
445
+ (8) Some mail transport agents will corrupt data that
446
+ includes certain literal strings. In particular, a
447
+
448
+
449
+
450
+ Freed & Borenstein Standards Track [Page 8]
451
+
452
+ RFC 2049 MIME Conformance November 1996
453
+
454
+
455
+ period (".") alone on a line is known to be corrupted
456
+ by some (incorrect) SMTP implementations, and a line
457
+ that starts with the five characters "From " (the fifth
458
+ character is a SPACE) are commonly corrupted as well.
459
+ A careful composition agent can prevent these
460
+ corruptions by encoding the data (e.g., in the quoted-
461
+ printable encoding using "=46rom " in place of "From "
462
+ at the start of a line, and "=2E" in place of "." alone
463
+ on a line).
464
+
465
+ Please note that the above list is NOT a list of recommended
466
+ practices for MTAs. RFC 821 MTAs are prohibited from altering the
467
+ character of white space or wrapping long lines. These BAD and
468
+ invalid practices are known to occur on established networks, and
469
+ implementations should be robust in dealing with the bad effects they
470
+ can cause.
471
+
472
+ 4. Canonical Encoding Model
473
+
474
+ There was some confusion, in earlier versions of these documents,
475
+ regarding the model for when email data was to be converted to
476
+ canonical form and encoded, and in particular how this process would
477
+ affect the treatment of CRLFs, given that the representation of
478
+ newlines varies greatly from system to system. For this reason, a
479
+ canonical model for encoding is presented below.
480
+
481
+ The process of composing a MIME entity can be modeled as being done
482
+ in a number of steps. Note that these steps are roughly similar to
483
+ those steps used in PEM [RFC-1421] and are performed for each
484
+ "innermost level" body:
485
+
486
+ (1) Creation of local form.
487
+
488
+ The body to be transmitted is created in the system's
489
+ native format. The native character set is used and,
490
+ where appropriate, local end of line conventions are
491
+ used as well. The body may be a UNIX-style text file,
492
+ or a Sun raster image, or a VMS indexed file, or audio
493
+ data in a system-dependent format stored only in
494
+ memory, or anything else that corresponds to the local
495
+ model for the representation of some form of
496
+ information. Fundamentally, the data is created in the
497
+ "native" form that corresponds to the type specified by
498
+ the media type.
499
+
500
+
501
+
502
+
503
+
504
+
505
+
506
+ Freed & Borenstein Standards Track [Page 9]
507
+
508
+ RFC 2049 MIME Conformance November 1996
509
+
510
+
511
+ (2) Conversion to canonical form.
512
+
513
+ The entire body, including "out-of-band" information
514
+ such as record lengths and possibly file attribute
515
+ information, is converted to a universal canonical
516
+ form. The specific media type of the body as well as
517
+ its associated attributes dictate the nature of the
518
+ canonical form that is used. Conversion to the proper
519
+ canonical form may involve character set conversion,
520
+ transformation of audio data, compression, or various
521
+ other operations specific to the various media types.
522
+ If character set conversion is involved, however, care
523
+ must be taken to understand the semantics of the media
524
+ type, which may have strong implications for any
525
+ character set conversion, e.g. with regard to
526
+ syntactically meaningful characters in a text subtype
527
+ other than "plain".
528
+
529
+ For example, in the case of text/plain data, the text
530
+ must be converted to a supported character set and
531
+ lines must be delimited with CRLF delimiters in
532
+ accordance with RFC 822. Note that the restriction on
533
+ line lengths implied by RFC 822 is eliminated if the
534
+ next step employs either quoted-printable or base64
535
+ encoding.
536
+
537
+ (3) Apply transfer encoding.
538
+
539
+ A Content-Transfer-Encoding appropriate for this body
540
+ is applied. Note that there is no fixed relationship
541
+ between the media type and the transfer encoding. In
542
+ particular, it may be appropriate to base the choice of
543
+ base64 or quoted-printable on character frequency
544
+ counts which are specific to a given instance of a
545
+ body.
546
+
547
+ (4) Insertion into entity.
548
+
549
+ The encoded body is inserted into a MIME entity with
550
+ appropriate headers. The entity is then inserted into
551
+ the body of a higher-level entity (message or
552
+ multipart) as needed.
553
+
554
+ Conversion from entity form to local form is accomplished by
555
+ reversing these steps. Note that reversal of these steps may produce
556
+ differing results since there is no guarantee that the original and
557
+ final local forms are the same.
558
+
559
+
560
+
561
+
562
+ Freed & Borenstein Standards Track [Page 10]
563
+
564
+ RFC 2049 MIME Conformance November 1996
565
+
566
+
567
+ It is vital to note that these steps are only a model; they are
568
+ specifically NOT a blueprint for how an actual system would be built.
569
+ In particular, the model fails to account for two common designs:
570
+
571
+ (1) In many cases the conversion to a canonical form prior
572
+ to encoding will be subsumed into the encoder itself,
573
+ which understands local formats directly. For example,
574
+ the local newline convention for text bodies might be
575
+ carried through to the encoder itself along with
576
+ knowledge of what that format is.
577
+
578
+ (2) The output of the encoders may have to pass through one
579
+ or more additional steps prior to being transmitted as
580
+ a message. As such, the output of the encoder may not
581
+ be conformant with the formats specified by RFC 822.
582
+ In particular, once again it may be appropriate for the
583
+ converter's output to be expressed using local newline
584
+ conventions rather than using the standard RFC 822 CRLF
585
+ delimiters.
586
+
587
+ Other implementation variations are conceivable as well. The vital
588
+ aspect of this discussion is that, in spite of any optimizations,
589
+ collapsings of required steps, or insertion of additional processing,
590
+ the resulting messages must be consistent with those produced by the
591
+ model described here. For example, a message with the following
592
+ header fields:
593
+
594
+ Content-type: text/foo; charset=bar
595
+ Content-Transfer-Encoding: base64
596
+
597
+ must be first represented in the text/foo form, then (if necessary)
598
+ represented in the "bar" character set, and finally transformed via
599
+ the base64 algorithm into a mail-safe form.
600
+
601
+ NOTE: Some confusion has been caused by systems that represent
602
+ messages in a format which uses local newline conventions which
603
+ differ from the RFC822 CRLF convention. It is important to note that
604
+ these formats are not canonical RFC822/MIME. These formats are
605
+ instead *encodings* of RFC822, where CRLF sequences in the canonical
606
+ representation of the message are encoded as the local newline
607
+ convention. Note that formats which encode CRLF sequences as, for
608
+ example, LF are not capable of representing MIME messages containing
609
+ binary data which contains LF octets not part of CRLF line separation
610
+ sequences.
611
+
612
+
613
+
614
+
615
+
616
+
617
+
618
+ Freed & Borenstein Standards Track [Page 11]
619
+
620
+ RFC 2049 MIME Conformance November 1996
621
+
622
+
623
+ 5. Summary
624
+
625
+ This document defines what is meant by MIME Conformance. It also
626
+ details various problems known to exist in the Internet email system
627
+ and how to use MIME to overcome them. Finally, it describes MIME's
628
+ canonical encoding model.
629
+
630
+ 6. Security Considerations
631
+
632
+ Security issues are discussed in the second document in this set, RFC
633
+ 2046.
634
+
635
+ 7. Authors' Addresses
636
+
637
+ For more information, the authors of this document are best contacted
638
+ via Internet mail:
639
+
640
+ Ned Freed
641
+ Innosoft International, Inc.
642
+ 1050 East Garvey Avenue South
643
+ West Covina, CA 91790
644
+ USA
645
+
646
+ Phone: +1 818 919 3600
647
+ Fax: +1 818 919 3614
648
+ EMail: ned@innosoft.com
649
+
650
+ Nathaniel S. Borenstein
651
+ First Virtual Holdings
652
+ 25 Washington Avenue
653
+ Morristown, NJ 07960
654
+ USA
655
+
656
+ Phone: +1 201 540 8967
657
+ Fax: +1 201 993 3032
658
+ EMail: nsb@nsb.fv.com
659
+
660
+ MIME is a result of the work of the Internet Engineering Task Force
661
+ Working Group on RFC 822 Extensions. The chairman of that group,
662
+ Greg Vaudreuil, may be reached at:
663
+
664
+ Gregory M. Vaudreuil
665
+ Octel Network Services
666
+ 17080 Dallas Parkway
667
+ Dallas, TX 75248-1905
668
+ USA
669
+
670
+ EMail: Greg.Vaudreuil@Octel.Com
671
+
672
+
673
+
674
+ Freed & Borenstein Standards Track [Page 12]
675
+
676
+ RFC 2049 MIME Conformance November 1996
677
+
678
+
679
+ 8. Acknowledgements
680
+
681
+ This document is the result of the collective effort of a large
682
+ number of people, at several IETF meetings, on the IETF-SMTP and
683
+ IETF-822 mailing lists, and elsewhere. Although any enumeration
684
+ seems doomed to suffer from egregious omissions, the following are
685
+ among the many contributors to this effort:
686
+
687
+ Harald Tveit Alvestrand Marc Andreessen
688
+ Randall Atkinson Bob Braden
689
+ Philippe Brandon Brian Capouch
690
+ Kevin Carosso Uhhyung Choi
691
+ Peter Clitherow Dave Collier-Brown
692
+ Cristian Constantinof John Coonrod
693
+ Mark Crispin Dave Crocker
694
+ Stephen Crocker Terry Crowley
695
+ Walt Daniels Jim Davis
696
+ Frank Dawson Axel Deininger
697
+ Hitoshi Doi Kevin Donnelly
698
+ Steve Dorner Keith Edwards
699
+ Chris Eich Dana S. Emery
700
+ Johnny Eriksson Craig Everhart
701
+ Patrik Faltstrom Erik E. Fair
702
+ Roger Fajman Alain Fontaine
703
+ Martin Forssen James M. Galvin
704
+ Stephen Gildea Philip Gladstone
705
+ Thomas Gordon Keld Simonsen
706
+ Terry Gray Phill Gross
707
+ James Hamilton David Herron
708
+ Mark Horton Bruce Howard
709
+ Bill Janssen Olle Jarnefors
710
+ Risto Kankkunen Phil Karn
711
+ Alan Katz Tim Kehres
712
+ Neil Katin Steve Kille
713
+ Kyuho Kim Anders Klemets
714
+ John Klensin Valdis Kletniek
715
+ Jim Knowles Stev Knowles
716
+ Bob Kummerfeld Pekka Kytolaakso
717
+ Stellan Lagerstrom Vincent Lau
718
+ Timo Lehtinen Donald Lindsay
719
+ Warner Losh Carlyn Lowery
720
+ Laurence Lundblade Charles Lynn
721
+ John R. MacMillan Larry Masinter
722
+ Rick McGowan Michael J. McInerny
723
+ Leo Mclaughlin Goli Montaser-Kohsari
724
+ Tom Moore John Gardiner Myers
725
+ Erik Naggum Mark Needleman
726
+ Chris Newman John Noerenberg
727
+
728
+
729
+
730
+ Freed & Borenstein Standards Track [Page 13]
731
+
732
+ RFC 2049 MIME Conformance November 1996
733
+
734
+
735
+ Mats Ohrman Julian Onions
736
+ Michael Patton David J. Pepper
737
+ Erik van der Poel Blake C. Ramsdell
738
+ Christer Romson Luc Rooijakkers
739
+ Marshall T. Rose Jonathan Rosenberg
740
+ Guido van Rossum Jan Rynning
741
+ Harri Salminen Michael Sanderson
742
+ Yutaka Sato Markku Savela
743
+ Richard Alan Schafer Masahiro Sekiguchi
744
+ Mark Sherman Bob Smart
745
+ Peter Speck Henry Spencer
746
+ Einar Stefferud Michael Stein
747
+ Klaus Steinberger Peter Svanberg
748
+ James Thompson Steve Uhler
749
+ Stuart Vance Peter Vanderbilt
750
+ Greg Vaudreuil Ed Vielmetti
751
+ Larry W. Virden Ryan Waldron
752
+ Rhys Weatherly Jay Weber
753
+ Dave Wecker Wally Wedel
754
+ Sven-Ove Westberg Brian Wideen
755
+ John Wobus Glenn Wright
756
+ Rayan Zachariassen David Zimmerman
757
+
758
+ The authors apologize for any omissions from this list, which are
759
+ certainly unintentional.
760
+
761
+
762
+
763
+
764
+
765
+
766
+
767
+
768
+
769
+
770
+
771
+
772
+
773
+
774
+
775
+
776
+
777
+
778
+
779
+
780
+
781
+
782
+
783
+
784
+
785
+
786
+ Freed & Borenstein Standards Track [Page 14]
787
+
788
+ RFC 2049 MIME Conformance November 1996
789
+
790
+
791
+ Appendix A -- A Complex Multipart Example
792
+
793
+ What follows is the outline of a complex multipart message. This
794
+ message contains five parts that are to be displayed serially: two
795
+ introductory plain text objects, an embedded multipart message, a
796
+ text/enriched object, and a closing encapsulated text message in a
797
+ non-ASCII character set. The embedded multipart message itself
798
+ contains two objects to be displayed in parallel, a picture and an
799
+ audio fragment.
800
+
801
+ MIME-Version: 1.0
802
+ From: Nathaniel Borenstein <nsb@nsb.fv.com>
803
+ To: Ned Freed <ned@innosoft.com>
804
+ Date: Fri, 07 Oct 1994 16:15:05 -0700 (PDT)
805
+ Subject: A multipart example
806
+ Content-Type: multipart/mixed;
807
+ boundary=unique-boundary-1
808
+
809
+ This is the preamble area of a multipart message.
810
+ Mail readers that understand multipart format
811
+ should ignore this preamble.
812
+
813
+ If you are reading this text, you might want to
814
+ consider changing to a mail reader that understands
815
+ how to properly display multipart messages.
816
+
817
+ --unique-boundary-1
818
+
819
+ ... Some text appears here ...
820
+
821
+ [Note that the blank between the boundary and the start
822
+ of the text in this part means no header fields were
823
+ given and this is text in the US-ASCII character set.
824
+ It could have been done with explicit typing as in the
825
+ next part.]
826
+
827
+ --unique-boundary-1
828
+ Content-type: text/plain; charset=US-ASCII
829
+
830
+ This could have been part of the previous part, but
831
+ illustrates explicit versus implicit typing of body
832
+ parts.
833
+
834
+ --unique-boundary-1
835
+ Content-Type: multipart/parallel; boundary=unique-boundary-2
836
+
837
+ --unique-boundary-2
838
+ Content-Type: audio/basic
839
+
840
+
841
+
842
+ Freed & Borenstein Standards Track [Page 15]
843
+
844
+ RFC 2049 MIME Conformance November 1996
845
+
846
+
847
+ Content-Transfer-Encoding: base64
848
+
849
+ ... base64-encoded 8000 Hz single-channel
850
+ mu-law-format audio data goes here ...
851
+
852
+ --unique-boundary-2
853
+ Content-Type: image/jpeg
854
+ Content-Transfer-Encoding: base64
855
+
856
+ ... base64-encoded image data goes here ...
857
+
858
+ --unique-boundary-2--
859
+
860
+ --unique-boundary-1
861
+ Content-type: text/enriched
862
+
863
+ This is <bold><italic>enriched.</italic></bold>
864
+ <smaller>as defined in RFC 1896</smaller>
865
+
866
+ Isn't it
867
+ <bigger><bigger>cool?</bigger></bigger>
868
+
869
+ --unique-boundary-1
870
+ Content-Type: message/rfc822
871
+
872
+ From: (mailbox in US-ASCII)
873
+ To: (address in US-ASCII)
874
+ Subject: (subject in US-ASCII)
875
+ Content-Type: Text/plain; charset=ISO-8859-1
876
+ Content-Transfer-Encoding: Quoted-printable
877
+
878
+ ... Additional text in ISO-8859-1 goes here ...
879
+
880
+ --unique-boundary-1--
881
+
882
+ Appendix B -- Changes from RFC 1521, 1522, and 1590
883
+
884
+ These documents are a revision of RFC 1521, 1522, and 1590. For the
885
+ convenience of those familiar with the earlier documents, the changes
886
+ from those documents are summarized in this appendix. For further
887
+ history, note that Appendix H in RFC 1521 specified how that document
888
+ differed from its predecessor, RFC 1341.
889
+
890
+ (1) This document has been completely reformatted and split
891
+ into multiple documents. This was done to improve the
892
+ quality of the plain text version of this document,
893
+ which is required to be the reference copy.
894
+
895
+
896
+
897
+
898
+ Freed & Borenstein Standards Track [Page 16]
899
+
900
+ RFC 2049 MIME Conformance November 1996
901
+
902
+
903
+ (2) BNF describing the overall structure of MIME object
904
+ headers has been added. This is a documentation change
905
+ only -- the underlying syntax has not changed in any
906
+ way.
907
+
908
+ (3) The specific BNF for the seven media types in MIME has
909
+ been removed. This BNF was incorrect, incomplete, amd
910
+ inconsistent with the type-indendependent BNF. And
911
+ since the type-independent BNF already fully specifies
912
+ the syntax of the various MIME headers, the type-
913
+ specific BNF was, in the final analysis, completely
914
+ unnecessary and caused more problems than it solved.
915
+
916
+ (4) The more specific "US-ASCII" character set name has
917
+ replaced the use of the informal term ASCII in many
918
+ parts of these documents.
919
+
920
+ (5) The informal concept of a primary subtype has been
921
+ removed.
922
+
923
+ (6) The term "object" was being used inconsistently. The
924
+ definition of this term has been clarified, along with
925
+ the related terms "body", "body part", and "entity",
926
+ and usage has been corrected where appropriate.
927
+
928
+ (7) The BNF for the multipart media type has been
929
+ rearranged to make it clear that the CRLF preceeding
930
+ the boundary marker is actually part of the marker
931
+ itself rather than the preceeding body part.
932
+
933
+ (8) The prose and BNF describing the multipart media type
934
+ have been changed to make it clear that the body parts
935
+ within a multipart object MUST NOT contain any lines
936
+ beginning with the boundary parameter string.
937
+
938
+ (9) In the rules on reassembling "message/partial" MIME
939
+ entities, "Subject" is added to the list of headers to
940
+ take from the inner message, and the example is
941
+ modified to clarify this point.
942
+
943
+ (10) "Message/partial" fragmenters are restricted to
944
+ splitting MIME objects only at line boundaries.
945
+
946
+ (11) In the discussion of the application/postscript type,
947
+ an additional paragraph has been added warning about
948
+ possible interoperability problems caused by embedding
949
+ of binary data inside a PostScript MIME entity.
950
+
951
+
952
+
953
+
954
+ Freed & Borenstein Standards Track [Page 17]
955
+
956
+ RFC 2049 MIME Conformance November 1996
957
+
958
+
959
+ (12) Added a clarifying note to the basic syntax rules for
960
+ the Content-Type header field to make it clear that the
961
+ following two forms:
962
+
963
+ Content-type: text/plain; charset=us-ascii (comment)
964
+
965
+ Content-type: text/plain; charset="us-ascii"
966
+
967
+ are completely equivalent.
968
+
969
+ (13) The following sentence has been removed from the
970
+ discussion of the MIME-Version header: "However,
971
+ conformant software is encouraged to check the version
972
+ number and at least warn the user if an unrecognized
973
+ MIME-version is encountered."
974
+
975
+ (14) A typo was fixed that said "application/external-body"
976
+ instead of "message/external-body".
977
+
978
+ (15) The definition of a character set has been reorganized
979
+ to make the requirements clearer.
980
+
981
+ (16) The definition of the "image/gif" media type has been
982
+ moved to a separate document. This change was made
983
+ because of potential conflicts with IETF rules
984
+ governing the standardization of patented technology.
985
+
986
+ (17) The definitions of "7bit" and "8bit" have been
987
+ tightened so that use of bare CR, LF can only be used
988
+ as end-of-line sequences. The document also no longer
989
+ requires that NUL characters be preserved, which brings
990
+ MIME into alignment with real-world implementations.
991
+
992
+ (18) The definition of canonical text in MIME has been
993
+ tightened so that line breaks must be represented by a
994
+ CRLF sequence. CR and LF characters are not allowed
995
+ outside of this usage. The definition of quoted-
996
+ printable encoding has been altered accordingly.
997
+
998
+ (19) The definition of the quoted-printable encoding now
999
+ includes a number of suggestions for how quoted-
1000
+ printable encoders might best handle improperly encoded
1001
+ material.
1002
+
1003
+ (20) Prose was added to clarify the use of the "7bit",
1004
+ "8bit", and "binary" transfer-encodings on multipart or
1005
+ message entities encapsulating "8bit" or "binary" data.
1006
+
1007
+
1008
+
1009
+
1010
+ Freed & Borenstein Standards Track [Page 18]
1011
+
1012
+ RFC 2049 MIME Conformance November 1996
1013
+
1014
+
1015
+ (21) In the section on MIME Conformance, "multipart/digest"
1016
+ support was added to the list of requirements for
1017
+ minimal MIME conformance. Also, the requirement for
1018
+ "message/rfc822" support were strengthened to clarify
1019
+ the importance of recognizing recursive structure.
1020
+
1021
+ (22) The various restrictions on subtypes of "message" are
1022
+ now specified entirely on a subtype by subtype basis.
1023
+
1024
+ (23) The definition of "message/rfc822" was changed to
1025
+ indicate that at least one of the "From", "Subject", or
1026
+ "Date" headers must be present.
1027
+
1028
+ (24) The required handling of unrecognized subtypes as
1029
+ "application/octet-stream" has been made more explicit
1030
+ in both the type definitions sections and the
1031
+ conformance guidelines.
1032
+
1033
+ (25) Examples using text/richtext were changed to
1034
+ text/enriched.
1035
+
1036
+ (26) The BNF definition of subtype has been changed to make
1037
+ it clear that either an IANA registered subtype or a
1038
+ nonstandard "X-" subtype must be used in a Content-Type
1039
+ header field.
1040
+
1041
+ (27) MIME media types that are simply registered for use and
1042
+ those that are standardized by the IETF are now
1043
+ distinguished in the MIME BNF.
1044
+
1045
+ (28) All of the various MIME registration procedures have
1046
+ been extensively revised. IANA registration procedures
1047
+ for character sets have been moved to a separate
1048
+ document that is no included in this set of documents.
1049
+
1050
+ (29) The use of escape and shift mechanisms in the US-ASCII
1051
+ and ISO-8859-X character sets these documents define
1052
+ have been clarified: Such mechanisms should never be
1053
+ used in conjunction with these character sets and their
1054
+ effect if they are used is undefined.
1055
+
1056
+ (30) The definition of the AFS access-type for
1057
+ message/external-body has been removed.
1058
+
1059
+ (31) The handling of the combination of
1060
+ multipart/alternative and message/external-body is now
1061
+ specifically addressed.
1062
+
1063
+
1064
+
1065
+
1066
+ Freed & Borenstein Standards Track [Page 19]
1067
+
1068
+ RFC 2049 MIME Conformance November 1996
1069
+
1070
+
1071
+ (32) Security issues specific to message/external-body are
1072
+ now discussed in some detail.
1073
+
1074
+ Appendix C -- References
1075
+
1076
+ [ATK]
1077
+ Borenstein, Nathaniel S., Multimedia Applications
1078
+ Development with the Andrew Toolkit, Prentice-Hall, 1990.
1079
+
1080
+ [ISO-2022]
1081
+ International Standard -- Information Processing --
1082
+ Character Code Structure and Extension Techniques,
1083
+ ISO/IEC 2022:1994, 4th ed.
1084
+
1085
+ [ISO-8859]
1086
+ International Standard -- Information Processing -- 8-bit
1087
+ Single-Byte Coded Graphic Character Sets
1088
+ - Part 1: Latin Alphabet No. 1, ISO 8859-1:1987, 1st ed.
1089
+ - Part 2: Latin Alphabet No. 2, ISO 8859-2:1987, 1st ed.
1090
+ - Part 3: Latin Alphabet No. 3, ISO 8859-3:1988, 1st ed.
1091
+ - Part 4: Latin Alphabet No. 4, ISO 8859-4:1988, 1st ed.
1092
+ - Part 5: Latin/Cyrillic Alphabet, ISO 8859-5:1988, 1st
1093
+ ed.
1094
+ - Part 6: Latin/Arabic Alphabet, ISO 8859-6:1987, 1st ed.
1095
+ - Part 7: Latin/Greek Alphabet, ISO 8859-7:1987, 1st ed.
1096
+ - Part 8: Latin/Hebrew Alphabet, ISO 8859-8:1988, 1st ed.
1097
+ - Part 9: Latin Alphabet No. 5, ISO/IEC 8859-9:1989, 1st
1098
+ ed.
1099
+ International Standard -- Information Technology -- 8-bit
1100
+ Single-Byte Coded Graphic Character Sets
1101
+ - Part 10: Latin Alphabet No. 6, ISO/IEC 8859-10:1992,
1102
+ 1st ed.
1103
+
1104
+ [ISO-646]
1105
+ International Standard -- Information Technology -- ISO
1106
+ 7-bit Coded Character Set for Information Interchange,
1107
+ ISO 646:1991, 3rd ed..
1108
+
1109
+ [JPEG]
1110
+ JPEG Draft Standard ISO 10918-1 CD.
1111
+
1112
+ [MPEG]
1113
+ Video Coding Draft Standard ISO 11172 CD, ISO
1114
+ IEC/JTC1/SC2/WG11 (Motion Picture Experts Group), May,
1115
+ 1991.
1116
+
1117
+
1118
+
1119
+
1120
+
1121
+
1122
+ Freed & Borenstein Standards Track [Page 20]
1123
+
1124
+ RFC 2049 MIME Conformance November 1996
1125
+
1126
+
1127
+ [PCM]
1128
+ CCITT, Fascicle III.4 - Recommendation G.711, "Pulse Code
1129
+ Modulation (PCM) of Voice Frequencies", Geneva, 1972.
1130
+
1131
+ [POSTSCRIPT]
1132
+ Adobe Systems, Inc., PostScript Language Reference
1133
+ Manual, Addison-Wesley, 1985.
1134
+
1135
+ [POSTSCRIPT2]
1136
+ Adobe Systems, Inc., PostScript Language Reference
1137
+ Manual, Addison-Wesley, Second Ed., 1990.
1138
+
1139
+ [RFC-783]
1140
+ Sollins, K.R., "TFTP Protocol (revision 2)", RFC-783,
1141
+ MIT, June 1981.
1142
+
1143
+ [RFC-821]
1144
+ Postel, J.B., "Simple Mail Transfer Protocol", STD 10,
1145
+ RFC 821, USC/Information Sciences Institute, August 1982.
1146
+
1147
+ [RFC-822]
1148
+ Crocker, D., "Standard for the Format of ARPA Internet
1149
+ Text Messages", STD 11, RFC 822, UDEL, August 1982.
1150
+
1151
+ [RFC-934]
1152
+ Rose, M. and E. Stefferud, "Proposed Standard for Message
1153
+ Encapsulation", RFC 934, Delaware and NMA, January 1985.
1154
+
1155
+ [RFC-959]
1156
+ Postel, J. and J. Reynolds, "File Transfer Protocol", STD
1157
+ 9, RFC 959, USC/Information Sciences Institute, October
1158
+ 1985.
1159
+
1160
+ [RFC-1049]
1161
+ Sirbu, M., "Content-Type Header Field for Internet
1162
+ Messages", RFC 1049, CMU, March 1988.
1163
+
1164
+ [RFC-1154]
1165
+ Robinson, D., and R. Ullmann, "Encoding Header Field for
1166
+ Internet Messages", RFC 1154, Prime Computer, Inc., April
1167
+ 1990.
1168
+
1169
+ [RFC-1341]
1170
+ Borenstein, N., and N. Freed, "MIME (Multipurpose
1171
+ Internet Mail Extensions): Mechanisms for Specifying and
1172
+ Describing the Format of Internet Message Bodies", RFC
1173
+ 1341, Bellcore, Innosoft, June 1992.
1174
+
1175
+
1176
+
1177
+
1178
+ Freed & Borenstein Standards Track [Page 21]
1179
+
1180
+ RFC 2049 MIME Conformance November 1996
1181
+
1182
+
1183
+ [RFC-1342]
1184
+ Moore, K., "Representation of Non-Ascii Text in Internet
1185
+ Message Headers", RFC 1342, University of Tennessee, June
1186
+ 1992.
1187
+
1188
+ [RFC-1344]
1189
+ Borenstein, N., "Implications of MIME for Internet Mail
1190
+ Gateways", RFC 1344, Bellcore, June 1992.
1191
+
1192
+ [RFC-1345]
1193
+ Simonsen, K., "Character Mnemonics & Character Sets", RFC
1194
+ 1345, Rationel Almen Planlaegning, June 1992.
1195
+
1196
+ [RFC-1421]
1197
+ Linn, J., "Privacy Enhancement for Internet Electronic
1198
+ Mail: Part I -- Message Encryption and Authentication
1199
+ Procedures", RFC 1421, IAB IRTF PSRG, IETF PEM WG,
1200
+ February 1993.
1201
+
1202
+ [RFC-1422]
1203
+ Kent, S., "Privacy Enhancement for Internet Electronic
1204
+ Mail: Part II -- Certificate-Based Key Management", RFC
1205
+ 1422, IAB IRTF PSRG, IETF PEM WG, February 1993.
1206
+
1207
+ [RFC-1423]
1208
+ Balenson, D., "Privacy Enhancement for Internet
1209
+ Electronic Mail: Part III -- Algorithms, Modes, and
1210
+ Identifiers", IAB IRTF PSRG, IETF PEM WG, February 1993.
1211
+
1212
+ [RFC-1424]
1213
+ Kaliski, B., "Privacy Enhancement for Internet Electronic
1214
+ Mail: Part IV -- Key Certification and Related
1215
+ Services", IAB IRTF PSRG, IETF PEM WG, February 1993.
1216
+
1217
+ [RFC-1521]
1218
+ Borenstein, N., and Freed, N., "MIME (Multipurpose
1219
+ Internet Mail Extensions): Mechanisms for Specifying and
1220
+ Describing the Format of Internet Message Bodies", RFC
1221
+ 1521, Bellcore, Innosoft, September, 1993.
1222
+
1223
+ [RFC-1522]
1224
+ Moore, K., "Representation of Non-ASCII Text in Internet
1225
+ Message Headers", RFC 1522, University of Tennessee,
1226
+ September 1993.
1227
+
1228
+
1229
+
1230
+
1231
+
1232
+
1233
+
1234
+ Freed & Borenstein Standards Track [Page 22]
1235
+
1236
+ RFC 2049 MIME Conformance November 1996
1237
+
1238
+
1239
+ [RFC-1524]
1240
+ Borenstein, N., "A User Agent Configuration Mechanism for
1241
+ Multimedia Mail Format Information", RFC 1524, Bellcore,
1242
+ September 1993.
1243
+
1244
+ [RFC-1543]
1245
+ Postel, J., "Instructions to RFC Authors", RFC 1543,
1246
+ USC/Information Sciences Institute, October 1993.
1247
+
1248
+ [RFC-1556]
1249
+ Nussbacher, H., "Handling of Bi-directional Texts in
1250
+ MIME", RFC 1556, Israeli Inter-University Computer
1251
+ Center, December 1993.
1252
+
1253
+ [RFC-1590]
1254
+ Postel, J., "Media Type Registration Procedure", RFC
1255
+ 1590, USC/Information Sciences Institute, March 1994.
1256
+
1257
+ [RFC-1602]
1258
+ Internet Architecture Board, Internet Engineering
1259
+ Steering Group, Huitema, C., Gross, P., "The Internet
1260
+ Standards Process -- Revision 2", March 1994.
1261
+
1262
+ [RFC-1652]
1263
+ Klensin, J., (WG Chair), Freed, N., (Editor), Rose, M.,
1264
+ Stefferud, E., and Crocker, D., "SMTP Service Extension
1265
+ for 8bit-MIME transport", RFC 1652, United Nations
1266
+ University, Innosoft, Dover Beach Consulting, Inc.,
1267
+ Network Management Associates, Inc., The Branch Office,
1268
+ March 1994.
1269
+
1270
+ [RFC-1700]
1271
+ Reynolds, J. and J. Postel, "Assigned Numbers", STD 2,
1272
+ RFC 1700, USC/Information Sciences Institute, October
1273
+ 1994.
1274
+
1275
+ [RFC-1741]
1276
+ Faltstrom, P., Crocker, D., and Fair, E., "MIME Content
1277
+ Type for BinHex Encoded Files", December 1994.
1278
+
1279
+ [RFC-1896]
1280
+ Resnick, P., and A. Walker, "The text/enriched MIME
1281
+ Content-type", RFC 1896, February, 1996.
1282
+
1283
+
1284
+
1285
+
1286
+
1287
+
1288
+
1289
+
1290
+ Freed & Borenstein Standards Track [Page 23]
1291
+
1292
+ RFC 2049 MIME Conformance November 1996
1293
+
1294
+
1295
+ [RFC-2045]
1296
+ Freed, N., and and N. Borenstein, "Multipurpose Internet Mail
1297
+ Extensions (MIME) Part One: Format of Internet Message
1298
+ Bodies", RFC 2045, Innosoft, First Virtual Holdings,
1299
+ November 1996.
1300
+
1301
+ [RFC-2046]
1302
+ Freed, N., and N. Borenstein, "Multipurpose Internet Mail
1303
+ Extensions (MIME) Part Two: Media Types", RFC 2046,
1304
+ Innosoft, First Virtual Holdings, November 1996.
1305
+
1306
+ [RFC-2047]
1307
+ Moore, K., "Multipurpose Internet Mail Extensions (MIME)
1308
+ Part Three: Representation of Non-ASCII Text in Internet
1309
+ Message Headers", RFC 2047, University of
1310
+ Tennessee, November 1996.
1311
+
1312
+ [RFC-2048]
1313
+ Freed, N., Klensin, J., and J. Postel, "Multipurpose
1314
+ Internet Mail Extensions (MIME) Part Four: MIME
1315
+ Registration Procedures", RFC 2048, Innosoft, MCI,
1316
+ ISI, November 1996.
1317
+
1318
+ [RFC-2049]
1319
+ Freed, N. and N. Borenstein, "Multipurpose Internet Mail
1320
+ Extensions (MIME) Part Five: Conformance Criteria and
1321
+ Examples", RFC 2049 (this document), Innosoft, First
1322
+ Virtual Holdings, November 1996.
1323
+
1324
+ [US-ASCII]
1325
+ Coded Character Set -- 7-Bit American Standard Code for
1326
+ Information Interchange, ANSI X3.4-1986.
1327
+
1328
+ [X400]
1329
+ Schicker, Pietro, "Message Handling Systems, X.400",
1330
+ Message Handling Systems and Distributed Applications, E.
1331
+ Stefferud, O-j. Jacobsen, and P. Schicker, eds., North-
1332
+ Holland, 1989, pp. 3-41.
1333
+
1334
+
1335
+
1336
+
1337
+
1338
+
1339
+
1340
+
1341
+
1342
+
1343
+
1344
+
1345
+
1346
+ Freed & Borenstein Standards Track [Page 24]
1347
+