rack-mail_exception 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (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,2900 @@
1
+
2
+
3
+
4
+
5
+
6
+
7
+ RFC # 822
8
+
9
+ Obsoletes: RFC #733 (NIC #41952)
10
+
11
+
12
+
13
+
14
+
15
+
16
+
17
+
18
+
19
+
20
+
21
+
22
+ STANDARD FOR THE FORMAT OF
23
+
24
+ ARPA INTERNET TEXT MESSAGES
25
+
26
+
27
+
28
+
29
+
30
+
31
+ August 13, 1982
32
+
33
+
34
+
35
+
36
+
37
+
38
+ Revised by
39
+
40
+ David H. Crocker
41
+
42
+
43
+ Dept. of Electrical Engineering
44
+ University of Delaware, Newark, DE 19711
45
+ Network: DCrocker @ UDel-Relay
46
+
47
+
48
+
49
+
50
+
51
+
52
+
53
+
54
+
55
+
56
+
57
+
58
+
59
+
60
+
61
+ Standard for ARPA Internet Text Messages
62
+
63
+
64
+ TABLE OF CONTENTS
65
+
66
+
67
+ PREFACE .................................................... ii
68
+
69
+ 1. INTRODUCTION ........................................... 1
70
+
71
+ 1.1. Scope ............................................ 1
72
+ 1.2. Communication Framework .......................... 2
73
+
74
+ 2. NOTATIONAL CONVENTIONS ................................. 3
75
+
76
+ 3. LEXICAL ANALYSIS OF MESSAGES ........................... 5
77
+
78
+ 3.1. General Description .............................. 5
79
+ 3.2. Header Field Definitions ......................... 9
80
+ 3.3. Lexical Tokens ................................... 10
81
+ 3.4. Clarifications ................................... 11
82
+
83
+ 4. MESSAGE SPECIFICATION .................................. 17
84
+
85
+ 4.1. Syntax ........................................... 17
86
+ 4.2. Forwarding ....................................... 19
87
+ 4.3. Trace Fields ..................................... 20
88
+ 4.4. Originator Fields ................................ 21
89
+ 4.5. Receiver Fields .................................. 23
90
+ 4.6. Reference Fields ................................. 23
91
+ 4.7. Other Fields ..................................... 24
92
+
93
+ 5. DATE AND TIME SPECIFICATION ............................ 26
94
+
95
+ 5.1. Syntax ........................................... 26
96
+ 5.2. Semantics ........................................ 26
97
+
98
+ 6. ADDRESS SPECIFICATION .................................. 27
99
+
100
+ 6.1. Syntax ........................................... 27
101
+ 6.2. Semantics ........................................ 27
102
+ 6.3. Reserved Address ................................. 33
103
+
104
+ 7. BIBLIOGRAPHY ........................................... 34
105
+
106
+
107
+ APPENDIX
108
+
109
+ A. EXAMPLES ............................................... 36
110
+ B. SIMPLE FIELD PARSING ................................... 40
111
+ C. DIFFERENCES FROM RFC #733 .............................. 41
112
+ D. ALPHABETICAL LISTING OF SYNTAX RULES ................... 44
113
+
114
+
115
+ August 13, 1982 - i - RFC #822
116
+
117
+
118
+
119
+
120
+ Standard for ARPA Internet Text Messages
121
+
122
+
123
+ PREFACE
124
+
125
+
126
+ By 1977, the Arpanet employed several informal standards for
127
+ the text messages (mail) sent among its host computers. It was
128
+ felt necessary to codify these practices and provide for those
129
+ features that seemed imminent. The result of that effort was
130
+ Request for Comments (RFC) #733, "Standard for the Format of ARPA
131
+ Network Text Message", by Crocker, Vittal, Pogran, and Henderson.
132
+ The specification attempted to avoid major changes in existing
133
+ software, while permitting several new features.
134
+
135
+ This document revises the specifications in RFC #733, in
136
+ order to serve the needs of the larger and more complex ARPA
137
+ Internet. Some of RFC #733's features failed to gain adequate
138
+ acceptance. In order to simplify the standard and the software
139
+ that follows it, these features have been removed. A different
140
+ addressing scheme is used, to handle the case of inter-network
141
+ mail; and the concept of re-transmission has been introduced.
142
+
143
+ This specification is intended for use in the ARPA Internet.
144
+ However, an attempt has been made to free it of any dependence on
145
+ that environment, so that it can be applied to other network text
146
+ message systems.
147
+
148
+ The specification of RFC #733 took place over the course of
149
+ one year, using the ARPANET mail environment, itself, to provide
150
+ an on-going forum for discussing the capabilities to be included.
151
+ More than twenty individuals, from across the country, partici-
152
+ pated in the original discussion. The development of this
153
+ revised specification has, similarly, utilized network mail-based
154
+ group discussion. Both specification efforts greatly benefited
155
+ from the comments and ideas of the participants.
156
+
157
+ The syntax of the standard, in RFC #733, was originally
158
+ specified in the Backus-Naur Form (BNF) meta-language. Ken L.
159
+ Harrenstien, of SRI International, was responsible for re-coding
160
+ the BNF into an augmented BNF that makes the representation
161
+ smaller and easier to understand.
162
+
163
+
164
+
165
+
166
+
167
+
168
+
169
+
170
+
171
+
172
+
173
+
174
+ August 13, 1982 - ii - RFC #822
175
+
176
+
177
+
178
+ Standard for ARPA Internet Text Messages
179
+
180
+
181
+ 1. INTRODUCTION
182
+
183
+ 1.1. SCOPE
184
+
185
+ This standard specifies a syntax for text messages that are
186
+ sent among computer users, within the framework of "electronic
187
+ mail". The standard supersedes the one specified in ARPANET
188
+ Request for Comments #733, "Standard for the Format of ARPA Net-
189
+ work Text Messages".
190
+
191
+ In this context, messages are viewed as having an envelope
192
+ and contents. The envelope contains whatever information is
193
+ needed to accomplish transmission and delivery. The contents
194
+ compose the object to be delivered to the recipient. This stan-
195
+ dard applies only to the format and some of the semantics of mes-
196
+ sage contents. It contains no specification of the information
197
+ in the envelope.
198
+
199
+ However, some message systems may use information from the
200
+ contents to create the envelope. It is intended that this stan-
201
+ dard facilitate the acquisition of such information by programs.
202
+
203
+ Some message systems may store messages in formats that
204
+ differ from the one specified in this standard. This specifica-
205
+ tion is intended strictly as a definition of what message content
206
+ format is to be passed BETWEEN hosts.
207
+
208
+ Note: This standard is NOT intended to dictate the internal for-
209
+ mats used by sites, the specific message system features
210
+ that they are expected to support, or any of the charac-
211
+ teristics of user interface programs that create or read
212
+ messages.
213
+
214
+ A distinction should be made between what the specification
215
+ REQUIRES and what it ALLOWS. Messages can be made complex and
216
+ rich with formally-structured components of information or can be
217
+ kept small and simple, with a minimum of such information. Also,
218
+ the standard simplifies the interpretation of differing visual
219
+ formats in messages; only the visual aspect of a message is
220
+ affected and not the interpretation of information within it.
221
+ Implementors may choose to retain such visual distinctions.
222
+
223
+ The formal definition is divided into four levels. The bot-
224
+ tom level describes the meta-notation used in this document. The
225
+ second level describes basic lexical analyzers that feed tokens
226
+ to higher-level parsers. Next is an overall specification for
227
+ messages; it permits distinguishing individual fields. Finally,
228
+ there is definition of the contents of several structured fields.
229
+
230
+
231
+
232
+ August 13, 1982 - 1 - RFC #822
233
+
234
+
235
+
236
+ Standard for ARPA Internet Text Messages
237
+
238
+
239
+ 1.2. COMMUNICATION FRAMEWORK
240
+
241
+ Messages consist of lines of text. No special provisions
242
+ are made for encoding drawings, facsimile, speech, or structured
243
+ text. No significant consideration has been given to questions
244
+ of data compression or to transmission and storage efficiency,
245
+ and the standard tends to be free with the number of bits con-
246
+ sumed. For example, field names are specified as free text,
247
+ rather than special terse codes.
248
+
249
+ A general "memo" framework is used. That is, a message con-
250
+ sists of some information in a rigid format, followed by the main
251
+ part of the message, with a format that is not specified in this
252
+ document. The syntax of several fields of the rigidly-formated
253
+ ("headers") section is defined in this specification; some of
254
+ these fields must be included in all messages.
255
+
256
+ The syntax that distinguishes between header fields is
257
+ specified separately from the internal syntax for particular
258
+ fields. This separation is intended to allow simple parsers to
259
+ operate on the general structure of messages, without concern for
260
+ the detailed structure of individual header fields. Appendix B
261
+ is provided to facilitate construction of these parsers.
262
+
263
+ In addition to the fields specified in this document, it is
264
+ expected that other fields will gain common use. As necessary,
265
+ the specifications for these "extension-fields" will be published
266
+ through the same mechanism used to publish this document. Users
267
+ may also wish to extend the set of fields that they use
268
+ privately. Such "user-defined fields" are permitted.
269
+
270
+ The framework severely constrains document tone and appear-
271
+ ance and is primarily useful for most intra-organization communi-
272
+ cations and well-structured inter-organization communication.
273
+ It also can be used for some types of inter-process communica-
274
+ tion, such as simple file transfer and remote job entry. A more
275
+ robust framework might allow for multi-font, multi-color, multi-
276
+ dimension encoding of information. A less robust one, as is
277
+ present in most single-machine message systems, would more
278
+ severely constrain the ability to add fields and the decision to
279
+ include specific fields. In contrast with paper-based communica-
280
+ tion, it is interesting to note that the RECEIVER of a message
281
+ can exercise an extraordinary amount of control over the
282
+ message's appearance. The amount of actual control available to
283
+ message receivers is contingent upon the capabilities of their
284
+ individual message systems.
285
+
286
+
287
+
288
+
289
+
290
+ August 13, 1982 - 2 - RFC #822
291
+
292
+
293
+
294
+ Standard for ARPA Internet Text Messages
295
+
296
+
297
+ 2. NOTATIONAL CONVENTIONS
298
+
299
+ This specification uses an augmented Backus-Naur Form (BNF)
300
+ notation. The differences from standard BNF involve naming rules
301
+ and indicating repetition and "local" alternatives.
302
+
303
+ 2.1. RULE NAMING
304
+
305
+ Angle brackets ("<", ">") are not used, in general. The
306
+ name of a rule is simply the name itself, rather than "<name>".
307
+ Quotation-marks enclose literal text (which may be upper and/or
308
+ lower case). Certain basic rules are in uppercase, such as
309
+ SPACE, TAB, CRLF, DIGIT, ALPHA, etc. Angle brackets are used in
310
+ rule definitions, and in the rest of this document, whenever
311
+ their presence will facilitate discerning the use of rule names.
312
+
313
+ 2.2. RULE1 / RULE2: ALTERNATIVES
314
+
315
+ Elements separated by slash ("/") are alternatives. There-
316
+ fore "foo / bar" will accept foo or bar.
317
+
318
+ 2.3. (RULE1 RULE2): LOCAL ALTERNATIVES
319
+
320
+ Elements enclosed in parentheses are treated as a single
321
+ element. Thus, "(elem (foo / bar) elem)" allows the token
322
+ sequences "elem foo elem" and "elem bar elem".
323
+
324
+ 2.4. *RULE: REPETITION
325
+
326
+ The character "*" preceding an element indicates repetition.
327
+ The full form is:
328
+
329
+ <l>*<m>element
330
+
331
+ indicating at least <l> and at most <m> occurrences of element.
332
+ Default values are 0 and infinity so that "*(element)" allows any
333
+ number, including zero; "1*element" requires at least one; and
334
+ "1*2element" allows one or two.
335
+
336
+ 2.5. [RULE]: OPTIONAL
337
+
338
+ Square brackets enclose optional elements; "[foo bar]" is
339
+ equivalent to "*1(foo bar)".
340
+
341
+ 2.6. NRULE: SPECIFIC REPETITION
342
+
343
+ "<n>(element)" is equivalent to "<n>*<n>(element)"; that is,
344
+ exactly <n> occurrences of (element). Thus 2DIGIT is a 2-digit
345
+ number, and 3ALPHA is a string of three alphabetic characters.
346
+
347
+
348
+ August 13, 1982 - 3 - RFC #822
349
+
350
+
351
+
352
+ Standard for ARPA Internet Text Messages
353
+
354
+
355
+ 2.7. #RULE: LISTS
356
+
357
+ A construct "#" is defined, similar to "*", as follows:
358
+
359
+ <l>#<m>element
360
+
361
+ indicating at least <l> and at most <m> elements, each separated
362
+ by one or more commas (","). This makes the usual form of lists
363
+ very easy; a rule such as '(element *("," element))' can be shown
364
+ as "1#element". Wherever this construct is used, null elements
365
+ are allowed, but do not contribute to the count of elements
366
+ present. That is, "(element),,(element)" is permitted, but
367
+ counts as only two elements. Therefore, where at least one ele-
368
+ ment is required, at least one non-null element must be present.
369
+ Default values are 0 and infinity so that "#(element)" allows any
370
+ number, including zero; "1#element" requires at least one; and
371
+ "1#2element" allows one or two.
372
+
373
+ 2.8. ; COMMENTS
374
+
375
+ A semi-colon, set off some distance to the right of rule
376
+ text, starts a comment that continues to the end of line. This
377
+ is a simple way of including useful notes in parallel with the
378
+ specifications.
379
+
380
+
381
+
382
+
383
+
384
+
385
+
386
+
387
+
388
+
389
+
390
+
391
+
392
+
393
+
394
+
395
+
396
+
397
+
398
+
399
+
400
+
401
+
402
+
403
+
404
+
405
+
406
+ August 13, 1982 - 4 - RFC #822
407
+
408
+
409
+
410
+ Standard for ARPA Internet Text Messages
411
+
412
+
413
+ 3. LEXICAL ANALYSIS OF MESSAGES
414
+
415
+ 3.1. GENERAL DESCRIPTION
416
+
417
+ A message consists of header fields and, optionally, a body.
418
+ The body is simply a sequence of lines containing ASCII charac-
419
+ ters. It is separated from the headers by a null line (i.e., a
420
+ line with nothing preceding the CRLF).
421
+
422
+ 3.1.1. LONG HEADER FIELDS
423
+
424
+ Each header field can be viewed as a single, logical line of
425
+ ASCII characters, comprising a field-name and a field-body.
426
+ For convenience, the field-body portion of this conceptual
427
+ entity can be split into a multiple-line representation; this
428
+ is called "folding". The general rule is that wherever there
429
+ may be linear-white-space (NOT simply LWSP-chars), a CRLF
430
+ immediately followed by AT LEAST one LWSP-char may instead be
431
+ inserted. Thus, the single line
432
+
433
+ To: "Joe & J. Harvey" <ddd @Org>, JJV @ BBN
434
+
435
+ can be represented as:
436
+
437
+ To: "Joe & J. Harvey" <ddd @ Org>,
438
+ JJV@BBN
439
+
440
+ and
441
+
442
+ To: "Joe & J. Harvey"
443
+ <ddd@ Org>, JJV
444
+ @BBN
445
+
446
+ and
447
+
448
+ To: "Joe &
449
+ J. Harvey" <ddd @ Org>, JJV @ BBN
450
+
451
+ The process of moving from this folded multiple-line
452
+ representation of a header field to its single line represen-
453
+ tation is called "unfolding". Unfolding is accomplished by
454
+ regarding CRLF immediately followed by a LWSP-char as
455
+ equivalent to the LWSP-char.
456
+
457
+ Note: While the standard permits folding wherever linear-
458
+ white-space is permitted, it is recommended that struc-
459
+ tured fields, such as those containing addresses, limit
460
+ folding to higher-level syntactic breaks. For address
461
+ fields, it is recommended that such folding occur
462
+
463
+
464
+ August 13, 1982 - 5 - RFC #822
465
+
466
+
467
+
468
+ Standard for ARPA Internet Text Messages
469
+
470
+
471
+ between addresses, after the separating comma.
472
+
473
+ 3.1.2. STRUCTURE OF HEADER FIELDS
474
+
475
+ Once a field has been unfolded, it may be viewed as being com-
476
+ posed of a field-name followed by a colon (":"), followed by a
477
+ field-body, and terminated by a carriage-return/line-feed.
478
+ The field-name must be composed of printable ASCII characters
479
+ (i.e., characters that have values between 33. and 126.,
480
+ decimal, except colon). The field-body may be composed of any
481
+ ASCII characters, except CR or LF. (While CR and/or LF may be
482
+ present in the actual text, they are removed by the action of
483
+ unfolding the field.)
484
+
485
+ Certain field-bodies of headers may be interpreted according
486
+ to an internal syntax that some systems may wish to parse.
487
+ These fields are called "structured fields". Examples
488
+ include fields containing dates and addresses. Other fields,
489
+ such as "Subject" and "Comments", are regarded simply as
490
+ strings of text.
491
+
492
+ Note: Any field which has a field-body that is defined as
493
+ other than simply <text> is to be treated as a struc-
494
+ tured field.
495
+
496
+ Field-names, unstructured field bodies and structured
497
+ field bodies each are scanned by their own, independent
498
+ "lexical" analyzers.
499
+
500
+ 3.1.3. UNSTRUCTURED FIELD BODIES
501
+
502
+ For some fields, such as "Subject" and "Comments", no struc-
503
+ turing is assumed, and they are treated simply as <text>s, as
504
+ in the message body. Rules of folding apply to these fields,
505
+ so that such field bodies which occupy several lines must
506
+ therefore have the second and successive lines indented by at
507
+ least one LWSP-char.
508
+
509
+ 3.1.4. STRUCTURED FIELD BODIES
510
+
511
+ To aid in the creation and reading of structured fields, the
512
+ free insertion of linear-white-space (which permits folding
513
+ by inclusion of CRLFs) is allowed between lexical tokens.
514
+ Rather than obscuring the syntax specifications for these
515
+ structured fields with explicit syntax for this linear-white-
516
+ space, the existence of another "lexical" analyzer is assumed.
517
+ This analyzer does not apply for unstructured field bodies
518
+ that are simply strings of text, as described above. The
519
+ analyzer provides an interpretation of the unfolded text
520
+
521
+
522
+ August 13, 1982 - 6 - RFC #822
523
+
524
+
525
+
526
+ Standard for ARPA Internet Text Messages
527
+
528
+
529
+ composing the body of the field as a sequence of lexical sym-
530
+ bols.
531
+
532
+ These symbols are:
533
+
534
+ - individual special characters
535
+ - quoted-strings
536
+ - domain-literals
537
+ - comments
538
+ - atoms
539
+
540
+ The first four of these symbols are self-delimiting. Atoms
541
+ are not; they are delimited by the self-delimiting symbols and
542
+ by linear-white-space. For the purposes of regenerating
543
+ sequences of atoms and quoted-strings, exactly one SPACE is
544
+ assumed to exist, and should be used, between them. (Also, in
545
+ the "Clarifications" section on "White Space", below, note the
546
+ rules about treatment of multiple contiguous LWSP-chars.)
547
+
548
+ So, for example, the folded body of an address field
549
+
550
+ ":sysmail"@ Some-Group. Some-Org,
551
+ Muhammed.(I am the greatest) Ali @(the)Vegas.WBA
552
+
553
+
554
+
555
+
556
+
557
+
558
+
559
+
560
+
561
+
562
+
563
+
564
+
565
+
566
+
567
+
568
+
569
+
570
+
571
+
572
+
573
+
574
+
575
+
576
+
577
+
578
+
579
+
580
+ August 13, 1982 - 7 - RFC #822
581
+
582
+
583
+
584
+ Standard for ARPA Internet Text Messages
585
+
586
+
587
+ is analyzed into the following lexical symbols and types:
588
+
589
+ :sysmail quoted string
590
+ @ special
591
+ Some-Group atom
592
+ . special
593
+ Some-Org atom
594
+ , special
595
+ Muhammed atom
596
+ . special
597
+ (I am the greatest) comment
598
+ Ali atom
599
+ @ atom
600
+ (the) comment
601
+ Vegas atom
602
+ . special
603
+ WBA atom
604
+
605
+ The canonical representations for the data in these addresses
606
+ are the following strings:
607
+
608
+ ":sysmail"@Some-Group.Some-Org
609
+
610
+ and
611
+
612
+ Muhammed.Ali@Vegas.WBA
613
+
614
+ Note: For purposes of display, and when passing such struc-
615
+ tured information to other systems, such as mail proto-
616
+ col services, there must be NO linear-white-space
617
+ between <word>s that are separated by period (".") or
618
+ at-sign ("@") and exactly one SPACE between all other
619
+ <word>s. Also, headers should be in a folded form.
620
+
621
+
622
+
623
+
624
+
625
+
626
+
627
+
628
+
629
+
630
+
631
+
632
+
633
+
634
+
635
+
636
+
637
+
638
+ August 13, 1982 - 8 - RFC #822
639
+
640
+
641
+
642
+ Standard for ARPA Internet Text Messages
643
+
644
+
645
+ 3.2. HEADER FIELD DEFINITIONS
646
+
647
+ These rules show a field meta-syntax, without regard for the
648
+ particular type or internal syntax. Their purpose is to permit
649
+ detection of fields; also, they present to higher-level parsers
650
+ an image of each field as fitting on one line.
651
+
652
+ field = field-name ":" [ field-body ] CRLF
653
+
654
+ field-name = 1*<any CHAR, excluding CTLs, SPACE, and ":">
655
+
656
+ field-body = field-body-contents
657
+ [CRLF LWSP-char field-body]
658
+
659
+ field-body-contents =
660
+ <the ASCII characters making up the field-body, as
661
+ defined in the following sections, and consisting
662
+ of combinations of atom, quoted-string, and
663
+ specials tokens, or else consisting of texts>
664
+
665
+
666
+
667
+
668
+
669
+
670
+
671
+
672
+
673
+
674
+
675
+
676
+
677
+
678
+
679
+
680
+
681
+
682
+
683
+
684
+
685
+
686
+
687
+
688
+
689
+
690
+
691
+
692
+
693
+
694
+
695
+
696
+ August 13, 1982 - 9 - RFC #822
697
+
698
+
699
+
700
+ Standard for ARPA Internet Text Messages
701
+
702
+
703
+ 3.3. LEXICAL TOKENS
704
+
705
+ The following rules are used to define an underlying lexical
706
+ analyzer, which feeds tokens to higher level parsers. See the
707
+ ANSI references, in the Bibliography.
708
+
709
+ ; ( Octal, Decimal.)
710
+ CHAR = <any ASCII character> ; ( 0-177, 0.-127.)
711
+ ALPHA = <any ASCII alphabetic character>
712
+ ; (101-132, 65.- 90.)
713
+ ; (141-172, 97.-122.)
714
+ DIGIT = <any ASCII decimal digit> ; ( 60- 71, 48.- 57.)
715
+ CTL = <any ASCII control ; ( 0- 37, 0.- 31.)
716
+ character and DEL> ; ( 177, 127.)
717
+ CR = <ASCII CR, carriage return> ; ( 15, 13.)
718
+ LF = <ASCII LF, linefeed> ; ( 12, 10.)
719
+ SPACE = <ASCII SP, space> ; ( 40, 32.)
720
+ HTAB = <ASCII HT, horizontal-tab> ; ( 11, 9.)
721
+ <"> = <ASCII quote mark> ; ( 42, 34.)
722
+ CRLF = CR LF
723
+
724
+ LWSP-char = SPACE / HTAB ; semantics = SPACE
725
+
726
+ linear-white-space = 1*([CRLF] LWSP-char) ; semantics = SPACE
727
+ ; CRLF => folding
728
+
729
+ specials = "(" / ")" / "<" / ">" / "@" ; Must be in quoted-
730
+ / "," / ";" / ":" / "\" / <"> ; string, to use
731
+ / "." / "[" / "]" ; within a word.
732
+
733
+ delimiters = specials / linear-white-space / comment
734
+
735
+ text = <any CHAR, including bare ; => atoms, specials,
736
+ CR & bare LF, but NOT ; comments and
737
+ including CRLF> ; quoted-strings are
738
+ ; NOT recognized.
739
+
740
+ atom = 1*<any CHAR except specials, SPACE and CTLs>
741
+
742
+ quoted-string = <"> *(qtext/quoted-pair) <">; Regular qtext or
743
+ ; quoted chars.
744
+
745
+ qtext = <any CHAR excepting <">, ; => may be folded
746
+ "\" & CR, and including
747
+ linear-white-space>
748
+
749
+ domain-literal = "[" *(dtext / quoted-pair) "]"
750
+
751
+
752
+
753
+
754
+ August 13, 1982 - 10 - RFC #822
755
+
756
+
757
+
758
+ Standard for ARPA Internet Text Messages
759
+
760
+
761
+ dtext = <any CHAR excluding "[", ; => may be folded
762
+ "]", "\" & CR, & including
763
+ linear-white-space>
764
+
765
+ comment = "(" *(ctext / quoted-pair / comment) ")"
766
+
767
+ ctext = <any CHAR excluding "(", ; => may be folded
768
+ ")", "\" & CR, & including
769
+ linear-white-space>
770
+
771
+ quoted-pair = "\" CHAR ; may quote any char
772
+
773
+ phrase = 1*word ; Sequence of words
774
+
775
+ word = atom / quoted-string
776
+
777
+
778
+ 3.4. CLARIFICATIONS
779
+
780
+ 3.4.1. QUOTING
781
+
782
+ Some characters are reserved for special interpretation, such
783
+ as delimiting lexical tokens. To permit use of these charac-
784
+ ters as uninterpreted data, a quoting mechanism is provided.
785
+ To quote a character, precede it with a backslash ("\").
786
+
787
+ This mechanism is not fully general. Characters may be quoted
788
+ only within a subset of the lexical constructs. In particu-
789
+ lar, quoting is limited to use within:
790
+
791
+ - quoted-string
792
+ - domain-literal
793
+ - comment
794
+
795
+ Within these constructs, quoting is REQUIRED for CR and "\"
796
+ and for the character(s) that delimit the token (e.g., "(" and
797
+ ")" for a comment). However, quoting is PERMITTED for any
798
+ character.
799
+
800
+ Note: In particular, quoting is NOT permitted within atoms.
801
+ For example when the local-part of an addr-spec must
802
+ contain a special character, a quoted string must be
803
+ used. Therefore, a specification such as:
804
+
805
+ Full\ Name@Domain
806
+
807
+ is not legal and must be specified as:
808
+
809
+ "Full Name"@Domain
810
+
811
+
812
+ August 13, 1982 - 11 - RFC #822
813
+
814
+
815
+
816
+ Standard for ARPA Internet Text Messages
817
+
818
+
819
+ 3.4.2. WHITE SPACE
820
+
821
+ Note: In structured field bodies, multiple linear space ASCII
822
+ characters (namely HTABs and SPACEs) are treated as
823
+ single spaces and may freely surround any symbol. In
824
+ all header fields, the only place in which at least one
825
+ LWSP-char is REQUIRED is at the beginning of continua-
826
+ tion lines in a folded field.
827
+
828
+ When passing text to processes that do not interpret text
829
+ according to this standard (e.g., mail protocol servers), then
830
+ NO linear-white-space characters should occur between a period
831
+ (".") or at-sign ("@") and a <word>. Exactly ONE SPACE should
832
+ be used in place of arbitrary linear-white-space and comment
833
+ sequences.
834
+
835
+ Note: Within systems conforming to this standard, wherever a
836
+ member of the list of delimiters is allowed, LWSP-chars
837
+ may also occur before and/or after it.
838
+
839
+ Writers of mail-sending (i.e., header-generating) programs
840
+ should realize that there is no network-wide definition of the
841
+ effect of ASCII HT (horizontal-tab) characters on the appear-
842
+ ance of text at another network host; therefore, the use of
843
+ tabs in message headers, though permitted, is discouraged.
844
+
845
+ 3.4.3. COMMENTS
846
+
847
+ A comment is a set of ASCII characters, which is enclosed in
848
+ matching parentheses and which is not within a quoted-string
849
+ The comment construct permits message originators to add text
850
+ which will be useful for human readers, but which will be
851
+ ignored by the formal semantics. Comments should be retained
852
+ while the message is subject to interpretation according to
853
+ this standard. However, comments must NOT be included in
854
+ other cases, such as during protocol exchanges with mail
855
+ servers.
856
+
857
+ Comments nest, so that if an unquoted left parenthesis occurs
858
+ in a comment string, there must also be a matching right
859
+ parenthesis. When a comment acts as the delimiter between a
860
+ sequence of two lexical symbols, such as two atoms, it is lex-
861
+ ically equivalent with a single SPACE, for the purposes of
862
+ regenerating the sequence, such as when passing the sequence
863
+ onto a mail protocol server. Comments are detected as such
864
+ only within field-bodies of structured fields.
865
+
866
+ If a comment is to be "folded" onto multiple lines, then the
867
+ syntax for folding must be adhered to. (See the "Lexical
868
+
869
+
870
+ August 13, 1982 - 12 - RFC #822
871
+
872
+
873
+
874
+ Standard for ARPA Internet Text Messages
875
+
876
+
877
+ Analysis of Messages" section on "Folding Long Header Fields"
878
+ above, and the section on "Case Independence" below.) Note
879
+ that the official semantics therefore do not "see" any
880
+ unquoted CRLFs that are in comments, although particular pars-
881
+ ing programs may wish to note their presence. For these pro-
882
+ grams, it would be reasonable to interpret a "CRLF LWSP-char"
883
+ as being a CRLF that is part of the comment; i.e., the CRLF is
884
+ kept and the LWSP-char is discarded. Quoted CRLFs (i.e., a
885
+ backslash followed by a CR followed by a LF) still must be
886
+ followed by at least one LWSP-char.
887
+
888
+ 3.4.4. DELIMITING AND QUOTING CHARACTERS
889
+
890
+ The quote character (backslash) and characters that delimit
891
+ syntactic units are not, generally, to be taken as data that
892
+ are part of the delimited or quoted unit(s). In particular,
893
+ the quotation-marks that define a quoted-string, the
894
+ parentheses that define a comment and the backslash that
895
+ quotes a following character are NOT part of the quoted-
896
+ string, comment or quoted character. A quotation-mark that is
897
+ to be part of a quoted-string, a parenthesis that is to be
898
+ part of a comment and a backslash that is to be part of either
899
+ must each be preceded by the quote-character backslash ("\").
900
+ Note that the syntax allows any character to be quoted within
901
+ a quoted-string or comment; however only certain characters
902
+ MUST be quoted to be included as data. These characters are
903
+ the ones that are not part of the alternate text group (i.e.,
904
+ ctext or qtext).
905
+
906
+ The one exception to this rule is that a single SPACE is
907
+ assumed to exist between contiguous words in a phrase, and
908
+ this interpretation is independent of the actual number of
909
+ LWSP-chars that the creator places between the words. To
910
+ include more than one SPACE, the creator must make the LWSP-
911
+ chars be part of a quoted-string.
912
+
913
+ Quotation marks that delimit a quoted string and backslashes
914
+ that quote the following character should NOT accompany the
915
+ quoted-string when the string is passed to processes that do
916
+ not interpret data according to this specification (e.g., mail
917
+ protocol servers).
918
+
919
+ 3.4.5. QUOTED-STRINGS
920
+
921
+ Where permitted (i.e., in words in structured fields) quoted-
922
+ strings are treated as a single symbol. That is, a quoted-
923
+ string is equivalent to an atom, syntactically. If a quoted-
924
+ string is to be "folded" onto multiple lines, then the syntax
925
+ for folding must be adhered to. (See the "Lexical Analysis of
926
+
927
+
928
+ August 13, 1982 - 13 - RFC #822
929
+
930
+
931
+
932
+ Standard for ARPA Internet Text Messages
933
+
934
+
935
+ Messages" section on "Folding Long Header Fields" above, and
936
+ the section on "Case Independence" below.) Therefore, the
937
+ official semantics do not "see" any bare CRLFs that are in
938
+ quoted-strings; however particular parsing programs may wish
939
+ to note their presence. For such programs, it would be rea-
940
+ sonable to interpret a "CRLF LWSP-char" as being a CRLF which
941
+ is part of the quoted-string; i.e., the CRLF is kept and the
942
+ LWSP-char is discarded. Quoted CRLFs (i.e., a backslash fol-
943
+ lowed by a CR followed by a LF) are also subject to rules of
944
+ folding, but the presence of the quoting character (backslash)
945
+ explicitly indicates that the CRLF is data to the quoted
946
+ string. Stripping off the first following LWSP-char is also
947
+ appropriate when parsing quoted CRLFs.
948
+
949
+ 3.4.6. BRACKETING CHARACTERS
950
+
951
+ There is one type of bracket which must occur in matched pairs
952
+ and may have pairs nested within each other:
953
+
954
+ o Parentheses ("(" and ")") are used to indicate com-
955
+ ments.
956
+
957
+ There are three types of brackets which must occur in matched
958
+ pairs, and which may NOT be nested:
959
+
960
+ o Colon/semi-colon (":" and ";") are used in address
961
+ specifications to indicate that the included list of
962
+ addresses are to be treated as a group.
963
+
964
+ o Angle brackets ("<" and ">") are generally used to
965
+ indicate the presence of a one machine-usable refer-
966
+ ence (e.g., delimiting mailboxes), possibly including
967
+ source-routing to the machine.
968
+
969
+ o Square brackets ("[" and "]") are used to indicate the
970
+ presence of a domain-literal, which the appropriate
971
+ name-domain is to use directly, bypassing normal
972
+ name-resolution mechanisms.
973
+
974
+ 3.4.7. CASE INDEPENDENCE
975
+
976
+ Except as noted, alphabetic strings may be represented in any
977
+ combination of upper and lower case. The only syntactic units
978
+
979
+
980
+
981
+
982
+
983
+
984
+
985
+
986
+ August 13, 1982 - 14 - RFC #822
987
+
988
+
989
+
990
+ Standard for ARPA Internet Text Messages
991
+
992
+
993
+ which requires preservation of case information are:
994
+
995
+ - text
996
+ - qtext
997
+ - dtext
998
+ - ctext
999
+ - quoted-pair
1000
+ - local-part, except "Postmaster"
1001
+
1002
+ When matching any other syntactic unit, case is to be ignored.
1003
+ For example, the field-names "From", "FROM", "from", and even
1004
+ "FroM" are semantically equal and should all be treated ident-
1005
+ ically.
1006
+
1007
+ When generating these units, any mix of upper and lower case
1008
+ alphabetic characters may be used. The case shown in this
1009
+ specification is suggested for message-creating processes.
1010
+
1011
+ Note: The reserved local-part address unit, "Postmaster", is
1012
+ an exception. When the value "Postmaster" is being
1013
+ interpreted, it must be accepted in any mixture of
1014
+ case, including "POSTMASTER", and "postmaster".
1015
+
1016
+ 3.4.8. FOLDING LONG HEADER FIELDS
1017
+
1018
+ Each header field may be represented on exactly one line con-
1019
+ sisting of the name of the field and its body, and terminated
1020
+ by a CRLF; this is what the parser sees. For readability, the
1021
+ field-body portion of long header fields may be "folded" onto
1022
+ multiple lines of the actual field. "Long" is commonly inter-
1023
+ preted to mean greater than 65 or 72 characters. The former
1024
+ length serves as a limit, when the message is to be viewed on
1025
+ most simple terminals which use simple display software; how-
1026
+ ever, the limit is not imposed by this standard.
1027
+
1028
+ Note: Some display software often can selectively fold lines,
1029
+ to suit the display terminal. In such cases, sender-
1030
+ provided folding can interfere with the display
1031
+ software.
1032
+
1033
+ 3.4.9. BACKSPACE CHARACTERS
1034
+
1035
+ ASCII BS characters (Backspace, decimal 8) may be included in
1036
+ texts and quoted-strings to effect overstriking. However, any
1037
+ use of backspaces which effects an overstrike to the left of
1038
+ the beginning of the text or quoted-string is prohibited.
1039
+
1040
+
1041
+
1042
+
1043
+
1044
+ August 13, 1982 - 15 - RFC #822
1045
+
1046
+
1047
+
1048
+ Standard for ARPA Internet Text Messages
1049
+
1050
+
1051
+ 3.4.10. NETWORK-SPECIFIC TRANSFORMATIONS
1052
+
1053
+ During transmission through heterogeneous networks, it may be
1054
+ necessary to force data to conform to a network's local con-
1055
+ ventions. For example, it may be required that a CR be fol-
1056
+ lowed either by LF, making a CRLF, or by <null>, if the CR is
1057
+ to stand alone). Such transformations are reversed, when the
1058
+ message exits that network.
1059
+
1060
+ When crossing network boundaries, the message should be
1061
+ treated as passing through two modules. It will enter the
1062
+ first module containing whatever network-specific transforma-
1063
+ tions that were necessary to permit migration through the
1064
+ "current" network. It then passes through the modules:
1065
+
1066
+ o Transformation Reversal
1067
+
1068
+ The "current" network's idiosyncracies are removed and
1069
+ the message is returned to the canonical form speci-
1070
+ fied in this standard.
1071
+
1072
+ o Transformation
1073
+
1074
+ The "next" network's local idiosyncracies are imposed
1075
+ on the message.
1076
+
1077
+ ------------------
1078
+ From ==> | Remove Net-A |
1079
+ Net-A | idiosyncracies |
1080
+ ------------------
1081
+ ||
1082
+ \/
1083
+ Conformance
1084
+ with standard
1085
+ ||
1086
+ \/
1087
+ ------------------
1088
+ | Impose Net-B | ==> To
1089
+ | idiosyncracies | Net-B
1090
+ ------------------
1091
+
1092
+
1093
+
1094
+
1095
+
1096
+
1097
+
1098
+
1099
+
1100
+
1101
+
1102
+ August 13, 1982 - 16 - RFC #822
1103
+
1104
+
1105
+
1106
+ Standard for ARPA Internet Text Messages
1107
+
1108
+
1109
+ 4. MESSAGE SPECIFICATION
1110
+
1111
+ 4.1. SYNTAX
1112
+
1113
+ Note: Due to an artifact of the notational conventions, the syn-
1114
+ tax indicates that, when present, some fields, must be in
1115
+ a particular order. Header fields are NOT required to
1116
+ occur in any particular order, except that the message
1117
+ body must occur AFTER the headers. It is recommended
1118
+ that, if present, headers be sent in the order "Return-
1119
+ Path", "Received", "Date", "From", "Subject", "Sender",
1120
+ "To", "cc", etc.
1121
+
1122
+ This specification permits multiple occurrences of most
1123
+ fields. Except as noted, their interpretation is not
1124
+ specified here, and their use is discouraged.
1125
+
1126
+ The following syntax for the bodies of various fields should
1127
+ be thought of as describing each field body as a single long
1128
+ string (or line). The "Lexical Analysis of Message" section on
1129
+ "Long Header Fields", above, indicates how such long strings can
1130
+ be represented on more than one line in the actual transmitted
1131
+ message.
1132
+
1133
+ message = fields *( CRLF *text ) ; Everything after
1134
+ ; first null line
1135
+ ; is message body
1136
+
1137
+ fields = dates ; Creation time,
1138
+ source ; author id & one
1139
+ 1*destination ; address required
1140
+ *optional-field ; others optional
1141
+
1142
+ source = [ trace ] ; net traversals
1143
+ originator ; original mail
1144
+ [ resent ] ; forwarded
1145
+
1146
+ trace = return ; path to sender
1147
+ 1*received ; receipt tags
1148
+
1149
+ return = "Return-path" ":" route-addr ; return address
1150
+
1151
+ received = "Received" ":" ; one per relay
1152
+ ["from" domain] ; sending host
1153
+ ["by" domain] ; receiving host
1154
+ ["via" atom] ; physical path
1155
+ *("with" atom) ; link/mail protocol
1156
+ ["id" msg-id] ; receiver msg id
1157
+ ["for" addr-spec] ; initial form
1158
+
1159
+
1160
+ August 13, 1982 - 17 - RFC #822
1161
+
1162
+
1163
+
1164
+ Standard for ARPA Internet Text Messages
1165
+
1166
+
1167
+ ";" date-time ; time received
1168
+
1169
+ originator = authentic ; authenticated addr
1170
+ [ "Reply-To" ":" 1#address] )
1171
+
1172
+ authentic = "From" ":" mailbox ; Single author
1173
+ / ( "Sender" ":" mailbox ; Actual submittor
1174
+ "From" ":" 1#mailbox) ; Multiple authors
1175
+ ; or not sender
1176
+
1177
+ resent = resent-authentic
1178
+ [ "Resent-Reply-To" ":" 1#address] )
1179
+
1180
+ resent-authentic =
1181
+ = "Resent-From" ":" mailbox
1182
+ / ( "Resent-Sender" ":" mailbox
1183
+ "Resent-From" ":" 1#mailbox )
1184
+
1185
+ dates = orig-date ; Original
1186
+ [ resent-date ] ; Forwarded
1187
+
1188
+ orig-date = "Date" ":" date-time
1189
+
1190
+ resent-date = "Resent-Date" ":" date-time
1191
+
1192
+ destination = "To" ":" 1#address ; Primary
1193
+ / "Resent-To" ":" 1#address
1194
+ / "cc" ":" 1#address ; Secondary
1195
+ / "Resent-cc" ":" 1#address
1196
+ / "bcc" ":" #address ; Blind carbon
1197
+ / "Resent-bcc" ":" #address
1198
+
1199
+ optional-field =
1200
+ / "Message-ID" ":" msg-id
1201
+ / "Resent-Message-ID" ":" msg-id
1202
+ / "In-Reply-To" ":" *(phrase / msg-id)
1203
+ / "References" ":" *(phrase / msg-id)
1204
+ / "Keywords" ":" #phrase
1205
+ / "Subject" ":" *text
1206
+ / "Comments" ":" *text
1207
+ / "Encrypted" ":" 1#2word
1208
+ / extension-field ; To be defined
1209
+ / user-defined-field ; May be pre-empted
1210
+
1211
+ msg-id = "<" addr-spec ">" ; Unique message id
1212
+
1213
+
1214
+
1215
+
1216
+
1217
+
1218
+ August 13, 1982 - 18 - RFC #822
1219
+
1220
+
1221
+
1222
+ Standard for ARPA Internet Text Messages
1223
+
1224
+
1225
+ extension-field =
1226
+ <Any field which is defined in a document
1227
+ published as a formal extension to this
1228
+ specification; none will have names beginning
1229
+ with the string "X-">
1230
+
1231
+ user-defined-field =
1232
+ <Any field which has not been defined
1233
+ in this specification or published as an
1234
+ extension to this specification; names for
1235
+ such fields must be unique and may be
1236
+ pre-empted by published extensions>
1237
+
1238
+ 4.2. FORWARDING
1239
+
1240
+ Some systems permit mail recipients to forward a message,
1241
+ retaining the original headers, by adding some new fields. This
1242
+ standard supports such a service, through the "Resent-" prefix to
1243
+ field names.
1244
+
1245
+ Whenever the string "Resent-" begins a field name, the field
1246
+ has the same semantics as a field whose name does not have the
1247
+ prefix. However, the message is assumed to have been forwarded
1248
+ by an original recipient who attached the "Resent-" field. This
1249
+ new field is treated as being more recent than the equivalent,
1250
+ original field. For example, the "Resent-From", indicates the
1251
+ person that forwarded the message, whereas the "From" field indi-
1252
+ cates the original author.
1253
+
1254
+ Use of such precedence information depends upon partici-
1255
+ pants' communication needs. For example, this standard does not
1256
+ dictate when a "Resent-From:" address should receive replies, in
1257
+ lieu of sending them to the "From:" address.
1258
+
1259
+ Note: In general, the "Resent-" fields should be treated as con-
1260
+ taining a set of information that is independent of the
1261
+ set of original fields. Information for one set should
1262
+ not automatically be taken from the other. The interpre-
1263
+ tation of multiple "Resent-" fields, of the same type, is
1264
+ undefined.
1265
+
1266
+ In the remainder of this specification, occurrence of legal
1267
+ "Resent-" fields are treated identically with the occurrence of
1268
+
1269
+
1270
+
1271
+
1272
+
1273
+
1274
+
1275
+
1276
+ August 13, 1982 - 19 - RFC #822
1277
+
1278
+
1279
+
1280
+ Standard for ARPA Internet Text Messages
1281
+
1282
+
1283
+ fields whose names do not contain this prefix.
1284
+
1285
+ 4.3. TRACE FIELDS
1286
+
1287
+ Trace information is used to provide an audit trail of mes-
1288
+ sage handling. In addition, it indicates a route back to the
1289
+ sender of the message.
1290
+
1291
+ The list of known "via" and "with" values are registered
1292
+ with the Network Information Center, SRI International, Menlo
1293
+ Park, California.
1294
+
1295
+ 4.3.1. RETURN-PATH
1296
+
1297
+ This field is added by the final transport system that
1298
+ delivers the message to its recipient. The field is intended
1299
+ to contain definitive information about the address and route
1300
+ back to the message's originator.
1301
+
1302
+ Note: The "Reply-To" field is added by the originator and
1303
+ serves to direct replies, whereas the "Return-Path"
1304
+ field is used to identify a path back to the origina-
1305
+ tor.
1306
+
1307
+ While the syntax indicates that a route specification is
1308
+ optional, every attempt should be made to provide that infor-
1309
+ mation in this field.
1310
+
1311
+ 4.3.2. RECEIVED
1312
+
1313
+ A copy of this field is added by each transport service that
1314
+ relays the message. The information in the field can be quite
1315
+ useful for tracing transport problems.
1316
+
1317
+ The names of the sending and receiving hosts and time-of-
1318
+ receipt may be specified. The "via" parameter may be used, to
1319
+ indicate what physical mechanism the message was sent over,
1320
+ such as Arpanet or Phonenet, and the "with" parameter may be
1321
+ used to indicate the mail-, or connection-, level protocol
1322
+ that was used, such as the SMTP mail protocol, or X.25 tran-
1323
+ sport protocol.
1324
+
1325
+ Note: Several "with" parameters may be included, to fully
1326
+ specify the set of protocols that were used.
1327
+
1328
+ Some transport services queue mail; the internal message iden-
1329
+ tifier that is assigned to the message may be noted, using the
1330
+ "id" parameter. When the sending host uses a destination
1331
+ address specification that the receiving host reinterprets, by
1332
+
1333
+
1334
+ August 13, 1982 - 20 - RFC #822
1335
+
1336
+
1337
+
1338
+ Standard for ARPA Internet Text Messages
1339
+
1340
+
1341
+ expansion or transformation, the receiving host may wish to
1342
+ record the original specification, using the "for" parameter.
1343
+ For example, when a copy of mail is sent to the member of a
1344
+ distribution list, this parameter may be used to record the
1345
+ original address that was used to specify the list.
1346
+
1347
+ 4.4. ORIGINATOR FIELDS
1348
+
1349
+ The standard allows only a subset of the combinations possi-
1350
+ ble with the From, Sender, Reply-To, Resent-From, Resent-Sender,
1351
+ and Resent-Reply-To fields. The limitation is intentional.
1352
+
1353
+ 4.4.1. FROM / RESENT-FROM
1354
+
1355
+ This field contains the identity of the person(s) who wished
1356
+ this message to be sent. The message-creation process should
1357
+ default this field to be a single, authenticated machine
1358
+ address, indicating the AGENT (person, system or process)
1359
+ entering the message. If this is not done, the "Sender" field
1360
+ MUST be present. If the "From" field IS defaulted this way,
1361
+ the "Sender" field is optional and is redundant with the
1362
+ "From" field. In all cases, addresses in the "From" field
1363
+ must be machine-usable (addr-specs) and may not contain named
1364
+ lists (groups).
1365
+
1366
+ 4.4.2. SENDER / RESENT-SENDER
1367
+
1368
+ This field contains the authenticated identity of the AGENT
1369
+ (person, system or process) that sends the message. It is
1370
+ intended for use when the sender is not the author of the mes-
1371
+ sage, or to indicate who among a group of authors actually
1372
+ sent the message. If the contents of the "Sender" field would
1373
+ be completely redundant with the "From" field, then the
1374
+ "Sender" field need not be present and its use is discouraged
1375
+ (though still legal). In particular, the "Sender" field MUST
1376
+ be present if it is NOT the same as the "From" Field.
1377
+
1378
+ The Sender mailbox specification includes a word sequence
1379
+ which must correspond to a specific agent (i.e., a human user
1380
+ or a computer program) rather than a standard address. This
1381
+ indicates the expectation that the field will identify the
1382
+ single AGENT (person, system, or process) responsible for
1383
+ sending the mail and not simply include the name of a mailbox
1384
+ from which the mail was sent. For example in the case of a
1385
+ shared login name, the name, by itself, would not be adequate.
1386
+ The local-part address unit, which refers to this agent, is
1387
+ expected to be a computer system term, and not (for example) a
1388
+ generalized person reference which can be used outside the
1389
+ network text message context.
1390
+
1391
+
1392
+ August 13, 1982 - 21 - RFC #822
1393
+
1394
+
1395
+
1396
+ Standard for ARPA Internet Text Messages
1397
+
1398
+
1399
+ Since the critical function served by the "Sender" field is
1400
+ identification of the agent responsible for sending mail and
1401
+ since computer programs cannot be held accountable for their
1402
+ behavior, it is strongly recommended that when a computer pro-
1403
+ gram generates a message, the HUMAN who is responsible for
1404
+ that program be referenced as part of the "Sender" field mail-
1405
+ box specification.
1406
+
1407
+ 4.4.3. REPLY-TO / RESENT-REPLY-TO
1408
+
1409
+ This field provides a general mechanism for indicating any
1410
+ mailbox(es) to which responses are to be sent. Three typical
1411
+ uses for this feature can be distinguished. In the first
1412
+ case, the author(s) may not have regular machine-based mail-
1413
+ boxes and therefore wish(es) to indicate an alternate machine
1414
+ address. In the second case, an author may wish additional
1415
+ persons to be made aware of, or responsible for, replies. A
1416
+ somewhat different use may be of some help to "text message
1417
+ teleconferencing" groups equipped with automatic distribution
1418
+ services: include the address of that service in the "Reply-
1419
+ To" field of all messages submitted to the teleconference;
1420
+ then participants can "reply" to conference submissions to
1421
+ guarantee the correct distribution of any submission of their
1422
+ own.
1423
+
1424
+ Note: The "Return-Path" field is added by the mail transport
1425
+ service, at the time of final deliver. It is intended
1426
+ to identify a path back to the orginator of the mes-
1427
+ sage. The "Reply-To" field is added by the message
1428
+ originator and is intended to direct replies.
1429
+
1430
+ 4.4.4. AUTOMATIC USE OF FROM / SENDER / REPLY-TO
1431
+
1432
+ For systems which automatically generate address lists for
1433
+ replies to messages, the following recommendations are made:
1434
+
1435
+ o The "Sender" field mailbox should be sent notices of
1436
+ any problems in transport or delivery of the original
1437
+ messages. If there is no "Sender" field, then the
1438
+ "From" field mailbox should be used.
1439
+
1440
+ o The "Sender" field mailbox should NEVER be used
1441
+ automatically, in a recipient's reply message.
1442
+
1443
+ o If the "Reply-To" field exists, then the reply should
1444
+ go to the addresses indicated in that field and not to
1445
+ the address(es) indicated in the "From" field.
1446
+
1447
+
1448
+
1449
+
1450
+ August 13, 1982 - 22 - RFC #822
1451
+
1452
+
1453
+
1454
+ Standard for ARPA Internet Text Messages
1455
+
1456
+
1457
+ o If there is a "From" field, but no "Reply-To" field,
1458
+ the reply should be sent to the address(es) indicated
1459
+ in the "From" field.
1460
+
1461
+ Sometimes, a recipient may actually wish to communicate with
1462
+ the person that initiated the message transfer. In such
1463
+ cases, it is reasonable to use the "Sender" address.
1464
+
1465
+ This recommendation is intended only for automated use of
1466
+ originator-fields and is not intended to suggest that replies
1467
+ may not also be sent to other recipients of messages. It is
1468
+ up to the respective mail-handling programs to decide what
1469
+ additional facilities will be provided.
1470
+
1471
+ Examples are provided in Appendix A.
1472
+
1473
+ 4.5. RECEIVER FIELDS
1474
+
1475
+ 4.5.1. TO / RESENT-TO
1476
+
1477
+ This field contains the identity of the primary recipients of
1478
+ the message.
1479
+
1480
+ 4.5.2. CC / RESENT-CC
1481
+
1482
+ This field contains the identity of the secondary (informa-
1483
+ tional) recipients of the message.
1484
+
1485
+ 4.5.3. BCC / RESENT-BCC
1486
+
1487
+ This field contains the identity of additional recipients of
1488
+ the message. The contents of this field are not included in
1489
+ copies of the message sent to the primary and secondary reci-
1490
+ pients. Some systems may choose to include the text of the
1491
+ "Bcc" field only in the author(s)'s copy, while others may
1492
+ also include it in the text sent to all those indicated in the
1493
+ "Bcc" list.
1494
+
1495
+ 4.6. REFERENCE FIELDS
1496
+
1497
+ 4.6.1. MESSAGE-ID / RESENT-MESSAGE-ID
1498
+
1499
+ This field contains a unique identifier (the local-part
1500
+ address unit) which refers to THIS version of THIS message.
1501
+ The uniqueness of the message identifier is guaranteed by the
1502
+ host which generates it. This identifier is intended to be
1503
+ machine readable and not necessarily meaningful to humans. A
1504
+ message identifier pertains to exactly one instantiation of a
1505
+ particular message; subsequent revisions to the message should
1506
+
1507
+
1508
+ August 13, 1982 - 23 - RFC #822
1509
+
1510
+
1511
+
1512
+ Standard for ARPA Internet Text Messages
1513
+
1514
+
1515
+ each receive new message identifiers.
1516
+
1517
+ 4.6.2. IN-REPLY-TO
1518
+
1519
+ The contents of this field identify previous correspon-
1520
+ dence which this message answers. Note that if message iden-
1521
+ tifiers are used in this field, they must use the msg-id
1522
+ specification format.
1523
+
1524
+ 4.6.3. REFERENCES
1525
+
1526
+ The contents of this field identify other correspondence
1527
+ which this message references. Note that if message identif-
1528
+ iers are used, they must use the msg-id specification format.
1529
+
1530
+ 4.6.4. KEYWORDS
1531
+
1532
+ This field contains keywords or phrases, separated by
1533
+ commas.
1534
+
1535
+ 4.7. OTHER FIELDS
1536
+
1537
+ 4.7.1. SUBJECT
1538
+
1539
+ This is intended to provide a summary, or indicate the
1540
+ nature, of the message.
1541
+
1542
+ 4.7.2. COMMENTS
1543
+
1544
+ Permits adding text comments onto the message without
1545
+ disturbing the contents of the message's body.
1546
+
1547
+ 4.7.3. ENCRYPTED
1548
+
1549
+ Sometimes, data encryption is used to increase the
1550
+ privacy of message contents. If the body of a message has
1551
+ been encrypted, to keep its contents private, the "Encrypted"
1552
+ field can be used to note the fact and to indicate the nature
1553
+ of the encryption. The first <word> parameter indicates the
1554
+ software used to encrypt the body, and the second, optional
1555
+ <word> is intended to aid the recipient in selecting the
1556
+ proper decryption key. This code word may be viewed as an
1557
+ index to a table of keys held by the recipient.
1558
+
1559
+ Note: Unfortunately, headers must contain envelope, as well
1560
+ as contents, information. Consequently, it is neces-
1561
+ sary that they remain unencrypted, so that mail tran-
1562
+ sport services may access them. Since names,
1563
+ addresses, and "Subject" field contents may contain
1564
+
1565
+
1566
+ August 13, 1982 - 24 - RFC #822
1567
+
1568
+
1569
+
1570
+ Standard for ARPA Internet Text Messages
1571
+
1572
+
1573
+ sensitive information, this requirement limits total
1574
+ message privacy.
1575
+
1576
+ Names of encryption software are registered with the Net-
1577
+ work Information Center, SRI International, Menlo Park, Cali-
1578
+ fornia.
1579
+
1580
+ 4.7.4. EXTENSION-FIELD
1581
+
1582
+ A limited number of common fields have been defined in
1583
+ this document. As network mail requirements dictate, addi-
1584
+ tional fields may be standardized. To provide user-defined
1585
+ fields with a measure of safety, in name selection, such
1586
+ extension-fields will never have names that begin with the
1587
+ string "X-".
1588
+
1589
+ Names of Extension-fields are registered with the Network
1590
+ Information Center, SRI International, Menlo Park, California.
1591
+
1592
+ 4.7.5. USER-DEFINED-FIELD
1593
+
1594
+ Individual users of network mail are free to define and
1595
+ use additional header fields. Such fields must have names
1596
+ which are not already used in the current specification or in
1597
+ any definitions of extension-fields, and the overall syntax of
1598
+ these user-defined-fields must conform to this specification's
1599
+ rules for delimiting and folding fields. Due to the
1600
+ extension-field publishing process, the name of a user-
1601
+ defined-field may be pre-empted
1602
+
1603
+ Note: The prefatory string "X-" will never be used in the
1604
+ names of Extension-fields. This provides user-defined
1605
+ fields with a protected set of names.
1606
+
1607
+
1608
+
1609
+
1610
+
1611
+
1612
+
1613
+
1614
+
1615
+
1616
+
1617
+
1618
+
1619
+
1620
+
1621
+
1622
+
1623
+
1624
+ August 13, 1982 - 25 - RFC #822
1625
+
1626
+
1627
+
1628
+ Standard for ARPA Internet Text Messages
1629
+
1630
+
1631
+ 5. DATE AND TIME SPECIFICATION
1632
+
1633
+ 5.1. SYNTAX
1634
+
1635
+ date-time = [ day "," ] date time ; dd mm yy
1636
+ ; hh:mm:ss zzz
1637
+
1638
+ day = "Mon" / "Tue" / "Wed" / "Thu"
1639
+ / "Fri" / "Sat" / "Sun"
1640
+
1641
+ date = 1*2DIGIT month 2DIGIT ; day month year
1642
+ ; e.g. 20 Jun 82
1643
+
1644
+ month = "Jan" / "Feb" / "Mar" / "Apr"
1645
+ / "May" / "Jun" / "Jul" / "Aug"
1646
+ / "Sep" / "Oct" / "Nov" / "Dec"
1647
+
1648
+ time = hour zone ; ANSI and Military
1649
+
1650
+ hour = 2DIGIT ":" 2DIGIT [":" 2DIGIT]
1651
+ ; 00:00:00 - 23:59:59
1652
+
1653
+ zone = "UT" / "GMT" ; Universal Time
1654
+ ; North American : UT
1655
+ / "EST" / "EDT" ; Eastern: - 5/ - 4
1656
+ / "CST" / "CDT" ; Central: - 6/ - 5
1657
+ / "MST" / "MDT" ; Mountain: - 7/ - 6
1658
+ / "PST" / "PDT" ; Pacific: - 8/ - 7
1659
+ / 1ALPHA ; Military: Z = UT;
1660
+ ; A:-1; (J not used)
1661
+ ; M:-12; N:+1; Y:+12
1662
+ / ( ("+" / "-") 4DIGIT ) ; Local differential
1663
+ ; hours+min. (HHMM)
1664
+
1665
+ 5.2. SEMANTICS
1666
+
1667
+ If included, day-of-week must be the day implied by the date
1668
+ specification.
1669
+
1670
+ Time zone may be indicated in several ways. "UT" is Univer-
1671
+ sal Time (formerly called "Greenwich Mean Time"); "GMT" is per-
1672
+ mitted as a reference to Universal Time. The military standard
1673
+ uses a single character for each zone. "Z" is Universal Time.
1674
+ "A" indicates one hour earlier, and "M" indicates 12 hours ear-
1675
+ lier; "N" is one hour later, and "Y" is 12 hours later. The
1676
+ letter "J" is not used. The other remaining two forms are taken
1677
+ from ANSI standard X3.51-1975. One allows explicit indication of
1678
+ the amount of offset from UT; the other uses common 3-character
1679
+ strings for indicating time zones in North America.
1680
+
1681
+
1682
+ August 13, 1982 - 26 - RFC #822
1683
+
1684
+
1685
+
1686
+ Standard for ARPA Internet Text Messages
1687
+
1688
+
1689
+ 6. ADDRESS SPECIFICATION
1690
+
1691
+ 6.1. SYNTAX
1692
+
1693
+ address = mailbox ; one addressee
1694
+ / group ; named list
1695
+
1696
+ group = phrase ":" [#mailbox] ";"
1697
+
1698
+ mailbox = addr-spec ; simple address
1699
+ / phrase route-addr ; name & addr-spec
1700
+
1701
+ route-addr = "<" [route] addr-spec ">"
1702
+
1703
+ route = 1#("@" domain) ":" ; path-relative
1704
+
1705
+ addr-spec = local-part "@" domain ; global address
1706
+
1707
+ local-part = word *("." word) ; uninterpreted
1708
+ ; case-preserved
1709
+
1710
+ domain = sub-domain *("." sub-domain)
1711
+
1712
+ sub-domain = domain-ref / domain-literal
1713
+
1714
+ domain-ref = atom ; symbolic reference
1715
+
1716
+ 6.2. SEMANTICS
1717
+
1718
+ A mailbox receives mail. It is a conceptual entity which
1719
+ does not necessarily pertain to file storage. For example, some
1720
+ sites may choose to print mail on their line printer and deliver
1721
+ the output to the addressee's desk.
1722
+
1723
+ A mailbox specification comprises a person, system or pro-
1724
+ cess name reference, a domain-dependent string, and a name-domain
1725
+ reference. The name reference is optional and is usually used to
1726
+ indicate the human name of a recipient. The name-domain refer-
1727
+ ence specifies a sequence of sub-domains. The domain-dependent
1728
+ string is uninterpreted, except by the final sub-domain; the rest
1729
+ of the mail service merely transmits it as a literal string.
1730
+
1731
+ 6.2.1. DOMAINS
1732
+
1733
+ A name-domain is a set of registered (mail) names. A name-
1734
+ domain specification resolves to a subordinate name-domain
1735
+ specification or to a terminal domain-dependent string.
1736
+ Hence, domain specification is extensible, permitting any
1737
+ number of registration levels.
1738
+
1739
+
1740
+ August 13, 1982 - 27 - RFC #822
1741
+
1742
+
1743
+
1744
+ Standard for ARPA Internet Text Messages
1745
+
1746
+
1747
+ Name-domains model a global, logical, hierarchical addressing
1748
+ scheme. The model is logical, in that an address specifica-
1749
+ tion is related to name registration and is not necessarily
1750
+ tied to transmission path. The model's hierarchy is a
1751
+ directed graph, called an in-tree, such that there is a single
1752
+ path from the root of the tree to any node in the hierarchy.
1753
+ If more than one path actually exists, they are considered to
1754
+ be different addresses.
1755
+
1756
+ The root node is common to all addresses; consequently, it is
1757
+ not referenced. Its children constitute "top-level" name-
1758
+ domains. Usually, a service has access to its own full domain
1759
+ specification and to the names of all top-level name-domains.
1760
+
1761
+ The "top" of the domain addressing hierarchy -- a child of the
1762
+ root -- is indicated by the right-most field, in a domain
1763
+ specification. Its child is specified to the left, its child
1764
+ to the left, and so on.
1765
+
1766
+ Some groups provide formal registration services; these con-
1767
+ stitute name-domains that are independent logically of
1768
+ specific machines. In addition, networks and machines impli-
1769
+ citly compose name-domains, since their membership usually is
1770
+ registered in name tables.
1771
+
1772
+ In the case of formal registration, an organization implements
1773
+ a (distributed) data base which provides an address-to-route
1774
+ mapping service for addresses of the form:
1775
+
1776
+ person@registry.organization
1777
+
1778
+ Note that "organization" is a logical entity, separate from
1779
+ any particular communication network.
1780
+
1781
+ A mechanism for accessing "organization" is universally avail-
1782
+ able. That mechanism, in turn, seeks an instantiation of the
1783
+ registry; its location is not indicated in the address specif-
1784
+ ication. It is assumed that the system which operates under
1785
+ the name "organization" knows how to find a subordinate regis-
1786
+ try. The registry will then use the "person" string to deter-
1787
+ mine where to send the mail specification.
1788
+
1789
+ The latter, network-oriented case permits simple, direct,
1790
+ attachment-related address specification, such as:
1791
+
1792
+ user@host.network
1793
+
1794
+ Once the network is accessed, it is expected that a message
1795
+ will go directly to the host and that the host will resolve
1796
+
1797
+
1798
+ August 13, 1982 - 28 - RFC #822
1799
+
1800
+
1801
+
1802
+ Standard for ARPA Internet Text Messages
1803
+
1804
+
1805
+ the user name, placing the message in the user's mailbox.
1806
+
1807
+ 6.2.2. ABBREVIATED DOMAIN SPECIFICATION
1808
+
1809
+ Since any number of levels is possible within the domain
1810
+ hierarchy, specification of a fully qualified address can
1811
+ become inconvenient. This standard permits abbreviated domain
1812
+ specification, in a special case:
1813
+
1814
+ For the address of the sender, call the left-most
1815
+ sub-domain Level N. In a header address, if all of
1816
+ the sub-domains above (i.e., to the right of) Level N
1817
+ are the same as those of the sender, then they do not
1818
+ have to appear in the specification. Otherwise, the
1819
+ address must be fully qualified.
1820
+
1821
+ This feature is subject to approval by local sub-
1822
+ domains. Individual sub-domains may require their
1823
+ member systems, which originate mail, to provide full
1824
+ domain specification only. When permitted, abbrevia-
1825
+ tions may be present only while the message stays
1826
+ within the sub-domain of the sender.
1827
+
1828
+ Use of this mechanism requires the sender's sub-domain
1829
+ to reserve the names of all top-level domains, so that
1830
+ full specifications can be distinguished from abbrevi-
1831
+ ated specifications.
1832
+
1833
+ For example, if a sender's address is:
1834
+
1835
+ sender@registry-A.registry-1.organization-X
1836
+
1837
+ and one recipient's address is:
1838
+
1839
+ recipient@registry-B.registry-1.organization-X
1840
+
1841
+ and another's is:
1842
+
1843
+ recipient@registry-C.registry-2.organization-X
1844
+
1845
+ then ".registry-1.organization-X" need not be specified in the
1846
+ the message, but "registry-C.registry-2" DOES have to be
1847
+ specified. That is, the first two addresses may be abbrevi-
1848
+ ated, but the third address must be fully specified.
1849
+
1850
+ When a message crosses a domain boundary, all addresses must
1851
+ be specified in the full format, ending with the top-level
1852
+ name-domain in the right-most field. It is the responsibility
1853
+ of mail forwarding services to ensure that addresses conform
1854
+
1855
+
1856
+ August 13, 1982 - 29 - RFC #822
1857
+
1858
+
1859
+
1860
+ Standard for ARPA Internet Text Messages
1861
+
1862
+
1863
+ with this requirement. In the case of abbreviated addresses,
1864
+ the relaying service must make the necessary expansions. It
1865
+ should be noted that it often is difficult for such a service
1866
+ to locate all occurrences of address abbreviations. For exam-
1867
+ ple, it will not be possible to find such abbreviations within
1868
+ the body of the message. The "Return-Path" field can aid
1869
+ recipients in recovering from these errors.
1870
+
1871
+ Note: When passing any portion of an addr-spec onto a process
1872
+ which does not interpret data according to this stan-
1873
+ dard (e.g., mail protocol servers). There must be NO
1874
+ LWSP-chars preceding or following the at-sign or any
1875
+ delimiting period ("."), such as shown in the above
1876
+ examples, and only ONE SPACE between contiguous
1877
+ <word>s.
1878
+
1879
+ 6.2.3. DOMAIN TERMS
1880
+
1881
+ A domain-ref must be THE official name of a registry, network,
1882
+ or host. It is a symbolic reference, within a name sub-
1883
+ domain. At times, it is necessary to bypass standard mechan-
1884
+ isms for resolving such references, using more primitive
1885
+ information, such as a network host address rather than its
1886
+ associated host name.
1887
+
1888
+ To permit such references, this standard provides the domain-
1889
+ literal construct. Its contents must conform with the needs
1890
+ of the sub-domain in which it is interpreted.
1891
+
1892
+ Domain-literals which refer to domains within the ARPA Inter-
1893
+ net specify 32-bit Internet addresses, in four 8-bit fields
1894
+ noted in decimal, as described in Request for Comments #820,
1895
+ "Assigned Numbers." For example:
1896
+
1897
+ [10.0.3.19]
1898
+
1899
+ Note: THE USE OF DOMAIN-LITERALS IS STRONGLY DISCOURAGED. It
1900
+ is permitted only as a means of bypassing temporary
1901
+ system limitations, such as name tables which are not
1902
+ complete.
1903
+
1904
+ The names of "top-level" domains, and the names of domains
1905
+ under in the ARPA Internet, are registered with the Network
1906
+ Information Center, SRI International, Menlo Park, California.
1907
+
1908
+ 6.2.4. DOMAIN-DEPENDENT LOCAL STRING
1909
+
1910
+ The local-part of an addr-spec in a mailbox specification
1911
+ (i.e., the host's name for the mailbox) is understood to be
1912
+
1913
+
1914
+ August 13, 1982 - 30 - RFC #822
1915
+
1916
+
1917
+
1918
+ Standard for ARPA Internet Text Messages
1919
+
1920
+
1921
+ whatever the receiving mail protocol server allows. For exam-
1922
+ ple, some systems do not understand mailbox references of the
1923
+ form "P. D. Q. Bach", but others do.
1924
+
1925
+ This specification treats periods (".") as lexical separators.
1926
+ Hence, their presence in local-parts which are not quoted-
1927
+ strings, is detected. However, such occurrences carry NO
1928
+ semantics. That is, if a local-part has periods within it, an
1929
+ address parser will divide the local-part into several tokens,
1930
+ but the sequence of tokens will be treated as one uninter-
1931
+ preted unit. The sequence will be re-assembled, when the
1932
+ address is passed outside of the system such as to a mail pro-
1933
+ tocol service.
1934
+
1935
+ For example, the address:
1936
+
1937
+ First.Last@Registry.Org
1938
+
1939
+ is legal and does not require the local-part to be surrounded
1940
+ with quotation-marks. (However, "First Last" DOES require
1941
+ quoting.) The local-part of the address, when passed outside
1942
+ of the mail system, within the Registry.Org domain, is
1943
+ "First.Last", again without quotation marks.
1944
+
1945
+ 6.2.5. BALANCING LOCAL-PART AND DOMAIN
1946
+
1947
+ In some cases, the boundary between local-part and domain can
1948
+ be flexible. The local-part may be a simple string, which is
1949
+ used for the final determination of the recipient's mailbox.
1950
+ All other levels of reference are, therefore, part of the
1951
+ domain.
1952
+
1953
+ For some systems, in the case of abbreviated reference to the
1954
+ local and subordinate sub-domains, it may be possible to
1955
+ specify only one reference within the domain part and place
1956
+ the other, subordinate name-domain references within the
1957
+ local-part. This would appear as:
1958
+
1959
+ mailbox.sub1.sub2@this-domain
1960
+
1961
+ Such a specification would be acceptable to address parsers
1962
+ which conform to RFC #733, but do not support this newer
1963
+ Internet standard. While contrary to the intent of this stan-
1964
+ dard, the form is legal.
1965
+
1966
+ Also, some sub-domains have a specification syntax which does
1967
+ not conform to this standard. For example:
1968
+
1969
+ sub-net.mailbox@sub-domain.domain
1970
+
1971
+
1972
+ August 13, 1982 - 31 - RFC #822
1973
+
1974
+
1975
+
1976
+ Standard for ARPA Internet Text Messages
1977
+
1978
+
1979
+ uses a different parsing sequence for local-part than for
1980
+ domain.
1981
+
1982
+ Note: As a rule, the domain specification should contain
1983
+ fields which are encoded according to the syntax of
1984
+ this standard and which contain generally-standardized
1985
+ information. The local-part specification should con-
1986
+ tain only that portion of the address which deviates
1987
+ from the form or intention of the domain field.
1988
+
1989
+ 6.2.6. MULTIPLE MAILBOXES
1990
+
1991
+ An individual may have several mailboxes and wish to receive
1992
+ mail at whatever mailbox is convenient for the sender to
1993
+ access. This standard does not provide a means of specifying
1994
+ "any member of" a list of mailboxes.
1995
+
1996
+ A set of individuals may wish to receive mail as a single unit
1997
+ (i.e., a distribution list). The <group> construct permits
1998
+ specification of such a list. Recipient mailboxes are speci-
1999
+ fied within the bracketed part (":" - ";"). A copy of the
2000
+ transmitted message is to be sent to each mailbox listed.
2001
+ This standard does not permit recursive specification of
2002
+ groups within groups.
2003
+
2004
+ While a list must be named, it is not required that the con-
2005
+ tents of the list be included. In this case, the <address>
2006
+ serves only as an indication of group distribution and would
2007
+ appear in the form:
2008
+
2009
+ name:;
2010
+
2011
+ Some mail services may provide a group-list distribution
2012
+ facility, accepting a single mailbox reference, expanding it
2013
+ to the full distribution list, and relaying the mail to the
2014
+ list's members. This standard provides no additional syntax
2015
+ for indicating such a service. Using the <group> address
2016
+ alternative, while listing one mailbox in it, can mean either
2017
+ that the mailbox reference will be expanded to a list or that
2018
+ there is a group with one member.
2019
+
2020
+ 6.2.7. EXPLICIT PATH SPECIFICATION
2021
+
2022
+ At times, a message originator may wish to indicate the
2023
+ transmission path that a message should follow. This is
2024
+ called source routing. The normal addressing scheme, used in
2025
+ an addr-spec, is carefully separated from such information;
2026
+ the <route> portion of a route-addr is provided for such occa-
2027
+ sions. It specifies the sequence of hosts and/or transmission
2028
+
2029
+
2030
+ August 13, 1982 - 32 - RFC #822
2031
+
2032
+
2033
+
2034
+ Standard for ARPA Internet Text Messages
2035
+
2036
+
2037
+ services that are to be traversed. Both domain-refs and
2038
+ domain-literals may be used.
2039
+
2040
+ Note: The use of source routing is discouraged. Unless the
2041
+ sender has special need of path restriction, the choice
2042
+ of transmission route should be left to the mail tran-
2043
+ sport service.
2044
+
2045
+ 6.3. RESERVED ADDRESS
2046
+
2047
+ It often is necessary to send mail to a site, without know-
2048
+ ing any of its valid addresses. For example, there may be mail
2049
+ system dysfunctions, or a user may wish to find out a person's
2050
+ correct address, at that site.
2051
+
2052
+ This standard specifies a single, reserved mailbox address
2053
+ (local-part) which is to be valid at each site. Mail sent to
2054
+ that address is to be routed to a person responsible for the
2055
+ site's mail system or to a person with responsibility for general
2056
+ site operation. The name of the reserved local-part address is:
2057
+
2058
+ Postmaster
2059
+
2060
+ so that "Postmaster@domain" is required to be valid.
2061
+
2062
+ Note: This reserved local-part must be matched without sensi-
2063
+ tivity to alphabetic case, so that "POSTMASTER", "postmas-
2064
+ ter", and even "poStmASteR" is to be accepted.
2065
+
2066
+
2067
+
2068
+
2069
+
2070
+
2071
+
2072
+
2073
+
2074
+
2075
+
2076
+
2077
+
2078
+
2079
+
2080
+
2081
+
2082
+
2083
+
2084
+
2085
+
2086
+
2087
+
2088
+ August 13, 1982 - 33 - RFC #822
2089
+
2090
+
2091
+
2092
+ Standard for ARPA Internet Text Messages
2093
+
2094
+
2095
+ 7. BIBLIOGRAPHY
2096
+
2097
+
2098
+ ANSI. "USA Standard Code for Information Interchange," X3.4.
2099
+ American National Standards Institute: New York (1968). Also
2100
+ in: Feinler, E. and J. Postel, eds., "ARPANET Protocol Hand-
2101
+ book", NIC 7104.
2102
+
2103
+ ANSI. "Representations of Universal Time, Local Time Differen-
2104
+ tials, and United States Time Zone References for Information
2105
+ Interchange," X3.51-1975. American National Standards Insti-
2106
+ tute: New York (1975).
2107
+
2108
+ Bemer, R.W., "Time and the Computer." In: Interface Age (Feb.
2109
+ 1979).
2110
+
2111
+ Bennett, C.J. "JNT Mail Protocol". Joint Network Team, Ruther-
2112
+ ford and Appleton Laboratory: Didcot, England.
2113
+
2114
+ Bhushan, A.K., Pogran, K.T., Tomlinson, R.S., and White, J.E.
2115
+ "Standardizing Network Mail Headers," ARPANET Request for
2116
+ Comments No. 561, Network Information Center No. 18516; SRI
2117
+ International: Menlo Park (September 1973).
2118
+
2119
+ Birrell, A.D., Levin, R., Needham, R.M., and Schroeder, M.D.
2120
+ "Grapevine: An Exercise in Distributed Computing," Communica-
2121
+ tions of the ACM 25, 4 (April 1982), 260-274.
2122
+
2123
+ Crocker, D.H., Vittal, J.J., Pogran, K.T., Henderson, D.A.
2124
+ "Standard for the Format of ARPA Network Text Message,"
2125
+ ARPANET Request for Comments No. 733, Network Information
2126
+ Center No. 41952. SRI International: Menlo Park (November
2127
+ 1977).
2128
+
2129
+ Feinler, E.J. and Postel, J.B. ARPANET Protocol Handbook, Net-
2130
+ work Information Center No. 7104 (NTIS AD A003890). SRI
2131
+ International: Menlo Park (April 1976).
2132
+
2133
+ Harary, F. "Graph Theory". Addison-Wesley: Reading, Mass.
2134
+ (1969).
2135
+
2136
+ Levin, R. and Schroeder, M. "Transport of Electronic Messages
2137
+ through a Network," TeleInformatics 79, pp. 29-33. North
2138
+ Holland (1979). Also as Xerox Palo Alto Research Center
2139
+ Technical Report CSL-79-4.
2140
+
2141
+ Myer, T.H. and Henderson, D.A. "Message Transmission Protocol,"
2142
+ ARPANET Request for Comments, No. 680, Network Information
2143
+ Center No. 32116. SRI International: Menlo Park (1975).
2144
+
2145
+
2146
+ August 13, 1982 - 34 - RFC #822
2147
+
2148
+
2149
+
2150
+ Standard for ARPA Internet Text Messages
2151
+
2152
+
2153
+ NBS. "Specification of Message Format for Computer Based Message
2154
+ Systems, Recommended Federal Information Processing Standard."
2155
+ National Bureau of Standards: Gaithersburg, Maryland
2156
+ (October 1981).
2157
+
2158
+ NIC. Internet Protocol Transition Workbook. Network Information
2159
+ Center, SRI-International, Menlo Park, California (March
2160
+ 1982).
2161
+
2162
+ Oppen, D.C. and Dalal, Y.K. "The Clearinghouse: A Decentralized
2163
+ Agent for Locating Named Objects in a Distributed Environ-
2164
+ ment," OPD-T8103. Xerox Office Products Division: Palo Alto,
2165
+ CA. (October 1981).
2166
+
2167
+ Postel, J.B. "Assigned Numbers," ARPANET Request for Comments,
2168
+ No. 820. SRI International: Menlo Park (August 1982).
2169
+
2170
+ Postel, J.B. "Simple Mail Transfer Protocol," ARPANET Request
2171
+ for Comments, No. 821. SRI International: Menlo Park (August
2172
+ 1982).
2173
+
2174
+ Shoch, J.F. "Internetwork naming, addressing and routing," in
2175
+ Proc. 17th IEEE Computer Society International Conference, pp.
2176
+ 72-79, Sept. 1978, IEEE Cat. No. 78 CH 1388-8C.
2177
+
2178
+ Su, Z. and Postel, J. "The Domain Naming Convention for Internet
2179
+ User Applications," ARPANET Request for Comments, No. 819.
2180
+ SRI International: Menlo Park (August 1982).
2181
+
2182
+
2183
+
2184
+
2185
+
2186
+
2187
+
2188
+
2189
+
2190
+
2191
+
2192
+
2193
+
2194
+
2195
+
2196
+
2197
+
2198
+
2199
+
2200
+
2201
+
2202
+
2203
+
2204
+ August 13, 1982 - 35 - RFC #822
2205
+
2206
+
2207
+
2208
+ Standard for ARPA Internet Text Messages
2209
+
2210
+
2211
+ APPENDIX
2212
+
2213
+
2214
+ A. EXAMPLES
2215
+
2216
+ A.1. ADDRESSES
2217
+
2218
+ A.1.1. Alfred Neuman <Neuman@BBN-TENEXA>
2219
+
2220
+ A.1.2. Neuman@BBN-TENEXA
2221
+
2222
+ These two "Alfred Neuman" examples have identical seman-
2223
+ tics, as far as the operation of the local host's mail sending
2224
+ (distribution) program (also sometimes called its "mailer")
2225
+ and the remote host's mail protocol server are concerned. In
2226
+ the first example, the "Alfred Neuman" is ignored by the
2227
+ mailer, as "Neuman@BBN-TENEXA" completely specifies the reci-
2228
+ pient. The second example contains no superfluous informa-
2229
+ tion, and, again, "Neuman@BBN-TENEXA" is the intended reci-
2230
+ pient.
2231
+
2232
+ Note: When the message crosses name-domain boundaries, then
2233
+ these specifications must be changed, so as to indicate
2234
+ the remainder of the hierarchy, starting with the top
2235
+ level.
2236
+
2237
+ A.1.3. "George, Ted" <Shared@Group.Arpanet>
2238
+
2239
+ This form might be used to indicate that a single mailbox
2240
+ is shared by several users. The quoted string is ignored by
2241
+ the originating host's mailer, because "Shared@Group.Arpanet"
2242
+ completely specifies the destination mailbox.
2243
+
2244
+ A.1.4. Wilt . (the Stilt) Chamberlain@NBA.US
2245
+
2246
+ The "(the Stilt)" is a comment, which is NOT included in
2247
+ the destination mailbox address handed to the originating
2248
+ system's mailer. The local-part of the address is the string
2249
+ "Wilt.Chamberlain", with NO space between the first and second
2250
+ words.
2251
+
2252
+ A.1.5. Address Lists
2253
+
2254
+ Gourmets: Pompous Person <WhoZiWhatZit@Cordon-Bleu>,
2255
+ Childs@WGBH.Boston, Galloping Gourmet@
2256
+ ANT.Down-Under (Australian National Television),
2257
+ Cheapie@Discount-Liquors;,
2258
+ Cruisers: Port@Portugal, Jones@SEA;,
2259
+ Another@Somewhere.SomeOrg
2260
+
2261
+
2262
+ August 13, 1982 - 36 - RFC #822
2263
+
2264
+
2265
+
2266
+ Standard for ARPA Internet Text Messages
2267
+
2268
+
2269
+ This group list example points out the use of comments and the
2270
+ mixing of addresses and groups.
2271
+
2272
+ A.2. ORIGINATOR ITEMS
2273
+
2274
+ A.2.1. Author-sent
2275
+
2276
+ George Jones logs into his host as "Jones". He sends
2277
+ mail himself.
2278
+
2279
+ From: Jones@Group.Org
2280
+
2281
+ or
2282
+
2283
+ From: George Jones <Jones@Group.Org>
2284
+
2285
+ A.2.2. Secretary-sent
2286
+
2287
+ George Jones logs in as Jones on his host. His secre-
2288
+ tary, who logs in as Secy sends mail for him. Replies to the
2289
+ mail should go to George.
2290
+
2291
+ From: George Jones <Jones@Group>
2292
+ Sender: Secy@Other-Group
2293
+
2294
+ A.2.3. Secretary-sent, for user of shared directory
2295
+
2296
+ George Jones' secretary sends mail for George. Replies
2297
+ should go to George.
2298
+
2299
+ From: George Jones<Shared@Group.Org>
2300
+ Sender: Secy@Other-Group
2301
+
2302
+ Note that there need not be a space between "Jones" and the
2303
+ "<", but adding a space enhances readability (as is the case
2304
+ in other examples.
2305
+
2306
+ A.2.4. Committee activity, with one author
2307
+
2308
+ George is a member of a committee. He wishes to have any
2309
+ replies to his message go to all committee members.
2310
+
2311
+ From: George Jones <Jones@Host.Net>
2312
+ Sender: Jones@Host
2313
+ Reply-To: The Committee: Jones@Host.Net,
2314
+ Smith@Other.Org,
2315
+ Doe@Somewhere-Else;
2316
+
2317
+ Note that if George had not included himself in the
2318
+
2319
+
2320
+ August 13, 1982 - 37 - RFC #822
2321
+
2322
+
2323
+
2324
+ Standard for ARPA Internet Text Messages
2325
+
2326
+
2327
+ enumeration of The Committee, he would not have gotten an
2328
+ implicit reply; the presence of the "Reply-to" field SUPER-
2329
+ SEDES the sending of a reply to the person named in the "From"
2330
+ field.
2331
+
2332
+ A.2.5. Secretary acting as full agent of author
2333
+
2334
+ George Jones asks his secretary (Secy@Host) to send a
2335
+ message for him in his capacity as Group. He wants his secre-
2336
+ tary to handle all replies.
2337
+
2338
+ From: George Jones <Group@Host>
2339
+ Sender: Secy@Host
2340
+ Reply-To: Secy@Host
2341
+
2342
+ A.2.6. Agent for user without online mailbox
2343
+
2344
+ A friend of George's, Sarah, is visiting. George's
2345
+ secretary sends some mail to a friend of Sarah in computer-
2346
+ land. Replies should go to George, whose mailbox is Jones at
2347
+ Registry.
2348
+
2349
+ From: Sarah Friendly <Secy@Registry>
2350
+ Sender: Secy-Name <Secy@Registry>
2351
+ Reply-To: Jones@Registry.
2352
+
2353
+ A.2.7. Agent for member of a committee
2354
+
2355
+ George's secretary sends out a message which was authored
2356
+ jointly by all the members of a committee. Note that the name
2357
+ of the committee cannot be specified, since <group> names are
2358
+ not permitted in the From field.
2359
+
2360
+ From: Jones@Host,
2361
+ Smith@Other-Host,
2362
+ Doe@Somewhere-Else
2363
+ Sender: Secy@SHost
2364
+
2365
+
2366
+
2367
+
2368
+
2369
+
2370
+
2371
+
2372
+
2373
+
2374
+
2375
+
2376
+
2377
+
2378
+ August 13, 1982 - 38 - RFC #822
2379
+
2380
+
2381
+
2382
+ Standard for ARPA Internet Text Messages
2383
+
2384
+
2385
+ A.3. COMPLETE HEADERS
2386
+
2387
+ A.3.1. Minimum required
2388
+
2389
+ Date: 26 Aug 76 1429 EDT Date: 26 Aug 76 1429 EDT
2390
+ From: Jones@Registry.Org or From: Jones@Registry.Org
2391
+ Bcc: To: Smith@Registry.Org
2392
+
2393
+ Note that the "Bcc" field may be empty, while the "To" field
2394
+ is required to have at least one address.
2395
+
2396
+ A.3.2. Using some of the additional fields
2397
+
2398
+ Date: 26 Aug 76 1430 EDT
2399
+ From: George Jones<Group@Host>
2400
+ Sender: Secy@SHOST
2401
+ To: "Al Neuman"@Mad-Host,
2402
+ Sam.Irving@Other-Host
2403
+ Message-ID: <some.string@SHOST>
2404
+
2405
+ A.3.3. About as complex as you're going to get
2406
+
2407
+ Date : 27 Aug 76 0932 PDT
2408
+ From : Ken Davis <KDavis@This-Host.This-net>
2409
+ Subject : Re: The Syntax in the RFC
2410
+ Sender : KSecy@Other-Host
2411
+ Reply-To : Sam.Irving@Reg.Organization
2412
+ To : George Jones <Group@Some-Reg.An-Org>,
2413
+ Al.Neuman@MAD.Publisher
2414
+ cc : Important folk:
2415
+ Tom Softwood <Balsa@Tree.Root>,
2416
+ "Sam Irving"@Other-Host;,
2417
+ Standard Distribution:
2418
+ /main/davis/people/standard@Other-Host,
2419
+ "<Jones>standard.dist.3"@Tops-20-Host>;
2420
+ Comment : Sam is away on business. He asked me to handle
2421
+ his mail for him. He'll be able to provide a
2422
+ more accurate explanation when he returns
2423
+ next week.
2424
+ In-Reply-To: <some.string@DBM.Group>, George's message
2425
+ X-Special-action: This is a sample of user-defined field-
2426
+ names. There could also be a field-name
2427
+ "Special-action", but its name might later be
2428
+ preempted
2429
+ Message-ID: <4231.629.XYzi-What@Other-Host>
2430
+
2431
+
2432
+
2433
+
2434
+
2435
+
2436
+ August 13, 1982 - 39 - RFC #822
2437
+
2438
+
2439
+
2440
+ Standard for ARPA Internet Text Messages
2441
+
2442
+
2443
+ B. SIMPLE FIELD PARSING
2444
+
2445
+ Some mail-reading software systems may wish to perform only
2446
+ minimal processing, ignoring the internal syntax of structured
2447
+ field-bodies and treating them the same as unstructured-field-
2448
+ bodies. Such software will need only to distinguish:
2449
+
2450
+ o Header fields from the message body,
2451
+
2452
+ o Beginnings of fields from lines which continue fields,
2453
+
2454
+ o Field-names from field-contents.
2455
+
2456
+ The abbreviated set of syntactic rules which follows will
2457
+ suffice for this purpose. It describes a limited view of mes-
2458
+ sages and is a subset of the syntactic rules provided in the main
2459
+ part of this specification. One small exception is that the con-
2460
+ tents of field-bodies consist only of text:
2461
+
2462
+ B.1. SYNTAX
2463
+
2464
+
2465
+ message = *field *(CRLF *text)
2466
+
2467
+ field = field-name ":" [field-body] CRLF
2468
+
2469
+ field-name = 1*<any CHAR, excluding CTLs, SPACE, and ":">
2470
+
2471
+ field-body = *text [CRLF LWSP-char field-body]
2472
+
2473
+
2474
+ B.2. SEMANTICS
2475
+
2476
+ Headers occur before the message body and are terminated by
2477
+ a null line (i.e., two contiguous CRLFs).
2478
+
2479
+ A line which continues a header field begins with a SPACE or
2480
+ HTAB character, while a line beginning a field starts with a
2481
+ printable character which is not a colon.
2482
+
2483
+ A field-name consists of one or more printable characters
2484
+ (excluding colon, space, and control-characters). A field-name
2485
+ MUST be contained on one line. Upper and lower case are not dis-
2486
+ tinguished when comparing field-names.
2487
+
2488
+
2489
+
2490
+
2491
+
2492
+
2493
+
2494
+ August 13, 1982 - 40 - RFC #822
2495
+
2496
+
2497
+
2498
+ Standard for ARPA Internet Text Messages
2499
+
2500
+
2501
+ C. DIFFERENCES FROM RFC #733
2502
+
2503
+ The following summarizes the differences between this stan-
2504
+ dard and the one specified in Arpanet Request for Comments #733,
2505
+ "Standard for the Format of ARPA Network Text Messages". The
2506
+ differences are listed in the order of their occurrence in the
2507
+ current specification.
2508
+
2509
+ C.1. FIELD DEFINITIONS
2510
+
2511
+ C.1.1. FIELD NAMES
2512
+
2513
+ These now must be a sequence of printable characters. They
2514
+ may not contain any LWSP-chars.
2515
+
2516
+ C.2. LEXICAL TOKENS
2517
+
2518
+ C.2.1. SPECIALS
2519
+
2520
+ The characters period ("."), left-square bracket ("["), and
2521
+ right-square bracket ("]") have been added. For presentation
2522
+ purposes, and when passing a specification to a system that
2523
+ does not conform to this standard, periods are to be contigu-
2524
+ ous with their surrounding lexical tokens. No linear-white-
2525
+ space is permitted between them. The presence of one LWSP-
2526
+ char between other tokens is still directed.
2527
+
2528
+ C.2.2. ATOM
2529
+
2530
+ Atoms may not contain SPACE.
2531
+
2532
+ C.2.3. SPECIAL TEXT
2533
+
2534
+ ctext and qtext have had backslash ("\") added to the list of
2535
+ prohibited characters.
2536
+
2537
+ C.2.4. DOMAINS
2538
+
2539
+ The lexical tokens <domain-literal> and <dtext> have been
2540
+ added.
2541
+
2542
+ C.3. MESSAGE SPECIFICATION
2543
+
2544
+ C.3.1. TRACE
2545
+
2546
+ The "Return-path:" and "Received:" fields have been specified.
2547
+
2548
+
2549
+
2550
+
2551
+
2552
+ August 13, 1982 - 41 - RFC #822
2553
+
2554
+
2555
+
2556
+ Standard for ARPA Internet Text Messages
2557
+
2558
+
2559
+ C.3.2. FROM
2560
+
2561
+ The "From" field must contain machine-usable addresses (addr-
2562
+ spec). Multiple addresses may be specified, but named-lists
2563
+ (groups) may not.
2564
+
2565
+ C.3.3. RESENT
2566
+
2567
+ The meta-construct of prefacing field names with the string
2568
+ "Resent-" has been added, to indicate that a message has been
2569
+ forwarded by an intermediate recipient.
2570
+
2571
+ C.3.4. DESTINATION
2572
+
2573
+ A message must contain at least one destination address field.
2574
+ "To" and "CC" are required to contain at least one address.
2575
+
2576
+ C.3.5. IN-REPLY-TO
2577
+
2578
+ The field-body is no longer a comma-separated list, although a
2579
+ sequence is still permitted.
2580
+
2581
+ C.3.6. REFERENCE
2582
+
2583
+ The field-body is no longer a comma-separated list, although a
2584
+ sequence is still permitted.
2585
+
2586
+ C.3.7. ENCRYPTED
2587
+
2588
+ A field has been specified that permits senders to indicate
2589
+ that the body of a message has been encrypted.
2590
+
2591
+ C.3.8. EXTENSION-FIELD
2592
+
2593
+ Extension fields are prohibited from beginning with the char-
2594
+ acters "X-".
2595
+
2596
+ C.4. DATE AND TIME SPECIFICATION
2597
+
2598
+ C.4.1. SIMPLIFICATION
2599
+
2600
+ Fewer optional forms are permitted and the list of three-
2601
+ letter time zones has been shortened.
2602
+
2603
+ C.5. ADDRESS SPECIFICATION
2604
+
2605
+
2606
+
2607
+
2608
+
2609
+
2610
+ August 13, 1982 - 42 - RFC #822
2611
+
2612
+
2613
+
2614
+ Standard for ARPA Internet Text Messages
2615
+
2616
+
2617
+ C.5.1. ADDRESS
2618
+
2619
+ The use of quoted-string, and the ":"-atom-":" construct, have
2620
+ been removed. An address now is either a single mailbox
2621
+ reference or is a named list of addresses. The latter indi-
2622
+ cates a group distribution.
2623
+
2624
+ C.5.2. GROUPS
2625
+
2626
+ Group lists are now required to to have a name. Group lists
2627
+ may not be nested.
2628
+
2629
+ C.5.3. MAILBOX
2630
+
2631
+ A mailbox specification may indicate a person's name, as
2632
+ before. Such a named list no longer may specify multiple
2633
+ mailboxes and may not be nested.
2634
+
2635
+ C.5.4. ROUTE ADDRESSING
2636
+
2637
+ Addresses now are taken to be absolute, global specifications,
2638
+ independent of transmission paths. The <route> construct has
2639
+ been provided, to permit explicit specification of transmis-
2640
+ sion path. RFC #733's use of multiple at-signs ("@") was
2641
+ intended as a general syntax for indicating routing and/or
2642
+ hierarchical addressing. The current standard separates these
2643
+ specifications and only one at-sign is permitted.
2644
+
2645
+ C.5.5. AT-SIGN
2646
+
2647
+ The string " at " no longer is used as an address delimiter.
2648
+ Only at-sign ("@") serves the function.
2649
+
2650
+ C.5.6. DOMAINS
2651
+
2652
+ Hierarchical, logical name-domains have been added.
2653
+
2654
+ C.6. RESERVED ADDRESS
2655
+
2656
+ The local-part "Postmaster" has been reserved, so that users can
2657
+ be guaranteed at least one valid address at a site.
2658
+
2659
+
2660
+
2661
+
2662
+
2663
+
2664
+
2665
+
2666
+
2667
+
2668
+ August 13, 1982 - 43 - RFC #822
2669
+
2670
+
2671
+
2672
+ Standard for ARPA Internet Text Messages
2673
+
2674
+
2675
+ D. ALPHABETICAL LISTING OF SYNTAX RULES
2676
+
2677
+ address = mailbox ; one addressee
2678
+ / group ; named list
2679
+ addr-spec = local-part "@" domain ; global address
2680
+ ALPHA = <any ASCII alphabetic character>
2681
+ ; (101-132, 65.- 90.)
2682
+ ; (141-172, 97.-122.)
2683
+ atom = 1*<any CHAR except specials, SPACE and CTLs>
2684
+ authentic = "From" ":" mailbox ; Single author
2685
+ / ( "Sender" ":" mailbox ; Actual submittor
2686
+ "From" ":" 1#mailbox) ; Multiple authors
2687
+ ; or not sender
2688
+ CHAR = <any ASCII character> ; ( 0-177, 0.-127.)
2689
+ comment = "(" *(ctext / quoted-pair / comment) ")"
2690
+ CR = <ASCII CR, carriage return> ; ( 15, 13.)
2691
+ CRLF = CR LF
2692
+ ctext = <any CHAR excluding "(", ; => may be folded
2693
+ ")", "\" & CR, & including
2694
+ linear-white-space>
2695
+ CTL = <any ASCII control ; ( 0- 37, 0.- 31.)
2696
+ character and DEL> ; ( 177, 127.)
2697
+ date = 1*2DIGIT month 2DIGIT ; day month year
2698
+ ; e.g. 20 Jun 82
2699
+ dates = orig-date ; Original
2700
+ [ resent-date ] ; Forwarded
2701
+ date-time = [ day "," ] date time ; dd mm yy
2702
+ ; hh:mm:ss zzz
2703
+ day = "Mon" / "Tue" / "Wed" / "Thu"
2704
+ / "Fri" / "Sat" / "Sun"
2705
+ delimiters = specials / linear-white-space / comment
2706
+ destination = "To" ":" 1#address ; Primary
2707
+ / "Resent-To" ":" 1#address
2708
+ / "cc" ":" 1#address ; Secondary
2709
+ / "Resent-cc" ":" 1#address
2710
+ / "bcc" ":" #address ; Blind carbon
2711
+ / "Resent-bcc" ":" #address
2712
+ DIGIT = <any ASCII decimal digit> ; ( 60- 71, 48.- 57.)
2713
+ domain = sub-domain *("." sub-domain)
2714
+ domain-literal = "[" *(dtext / quoted-pair) "]"
2715
+ domain-ref = atom ; symbolic reference
2716
+ dtext = <any CHAR excluding "[", ; => may be folded
2717
+ "]", "\" & CR, & including
2718
+ linear-white-space>
2719
+ extension-field =
2720
+ <Any field which is defined in a document
2721
+ published as a formal extension to this
2722
+ specification; none will have names beginning
2723
+ with the string "X-">
2724
+
2725
+
2726
+ August 13, 1982 - 44 - RFC #822
2727
+
2728
+
2729
+
2730
+ Standard for ARPA Internet Text Messages
2731
+
2732
+
2733
+ field = field-name ":" [ field-body ] CRLF
2734
+ fields = dates ; Creation time,
2735
+ source ; author id & one
2736
+ 1*destination ; address required
2737
+ *optional-field ; others optional
2738
+ field-body = field-body-contents
2739
+ [CRLF LWSP-char field-body]
2740
+ field-body-contents =
2741
+ <the ASCII characters making up the field-body, as
2742
+ defined in the following sections, and consisting
2743
+ of combinations of atom, quoted-string, and
2744
+ specials tokens, or else consisting of texts>
2745
+ field-name = 1*<any CHAR, excluding CTLs, SPACE, and ":">
2746
+ group = phrase ":" [#mailbox] ";"
2747
+ hour = 2DIGIT ":" 2DIGIT [":" 2DIGIT]
2748
+ ; 00:00:00 - 23:59:59
2749
+ HTAB = <ASCII HT, horizontal-tab> ; ( 11, 9.)
2750
+ LF = <ASCII LF, linefeed> ; ( 12, 10.)
2751
+ linear-white-space = 1*([CRLF] LWSP-char) ; semantics = SPACE
2752
+ ; CRLF => folding
2753
+ local-part = word *("." word) ; uninterpreted
2754
+ ; case-preserved
2755
+ LWSP-char = SPACE / HTAB ; semantics = SPACE
2756
+ mailbox = addr-spec ; simple address
2757
+ / phrase route-addr ; name & addr-spec
2758
+ message = fields *( CRLF *text ) ; Everything after
2759
+ ; first null line
2760
+ ; is message body
2761
+ month = "Jan" / "Feb" / "Mar" / "Apr"
2762
+ / "May" / "Jun" / "Jul" / "Aug"
2763
+ / "Sep" / "Oct" / "Nov" / "Dec"
2764
+ msg-id = "<" addr-spec ">" ; Unique message id
2765
+ optional-field =
2766
+ / "Message-ID" ":" msg-id
2767
+ / "Resent-Message-ID" ":" msg-id
2768
+ / "In-Reply-To" ":" *(phrase / msg-id)
2769
+ / "References" ":" *(phrase / msg-id)
2770
+ / "Keywords" ":" #phrase
2771
+ / "Subject" ":" *text
2772
+ / "Comments" ":" *text
2773
+ / "Encrypted" ":" 1#2word
2774
+ / extension-field ; To be defined
2775
+ / user-defined-field ; May be pre-empted
2776
+ orig-date = "Date" ":" date-time
2777
+ originator = authentic ; authenticated addr
2778
+ [ "Reply-To" ":" 1#address] )
2779
+ phrase = 1*word ; Sequence of words
2780
+
2781
+
2782
+
2783
+
2784
+ August 13, 1982 - 45 - RFC #822
2785
+
2786
+
2787
+
2788
+ Standard for ARPA Internet Text Messages
2789
+
2790
+
2791
+ qtext = <any CHAR excepting <">, ; => may be folded
2792
+ "\" & CR, and including
2793
+ linear-white-space>
2794
+ quoted-pair = "\" CHAR ; may quote any char
2795
+ quoted-string = <"> *(qtext/quoted-pair) <">; Regular qtext or
2796
+ ; quoted chars.
2797
+ received = "Received" ":" ; one per relay
2798
+ ["from" domain] ; sending host
2799
+ ["by" domain] ; receiving host
2800
+ ["via" atom] ; physical path
2801
+ *("with" atom) ; link/mail protocol
2802
+ ["id" msg-id] ; receiver msg id
2803
+ ["for" addr-spec] ; initial form
2804
+ ";" date-time ; time received
2805
+
2806
+ resent = resent-authentic
2807
+ [ "Resent-Reply-To" ":" 1#address] )
2808
+ resent-authentic =
2809
+ = "Resent-From" ":" mailbox
2810
+ / ( "Resent-Sender" ":" mailbox
2811
+ "Resent-From" ":" 1#mailbox )
2812
+ resent-date = "Resent-Date" ":" date-time
2813
+ return = "Return-path" ":" route-addr ; return address
2814
+ route = 1#("@" domain) ":" ; path-relative
2815
+ route-addr = "<" [route] addr-spec ">"
2816
+ source = [ trace ] ; net traversals
2817
+ originator ; original mail
2818
+ [ resent ] ; forwarded
2819
+ SPACE = <ASCII SP, space> ; ( 40, 32.)
2820
+ specials = "(" / ")" / "<" / ">" / "@" ; Must be in quoted-
2821
+ / "," / ";" / ":" / "\" / <"> ; string, to use
2822
+ / "." / "[" / "]" ; within a word.
2823
+ sub-domain = domain-ref / domain-literal
2824
+ text = <any CHAR, including bare ; => atoms, specials,
2825
+ CR & bare LF, but NOT ; comments and
2826
+ including CRLF> ; quoted-strings are
2827
+ ; NOT recognized.
2828
+ time = hour zone ; ANSI and Military
2829
+ trace = return ; path to sender
2830
+ 1*received ; receipt tags
2831
+ user-defined-field =
2832
+ <Any field which has not been defined
2833
+ in this specification or published as an
2834
+ extension to this specification; names for
2835
+ such fields must be unique and may be
2836
+ pre-empted by published extensions>
2837
+ word = atom / quoted-string
2838
+
2839
+
2840
+
2841
+
2842
+ August 13, 1982 - 46 - RFC #822
2843
+
2844
+
2845
+
2846
+ Standard for ARPA Internet Text Messages
2847
+
2848
+
2849
+ zone = "UT" / "GMT" ; Universal Time
2850
+ ; North American : UT
2851
+ / "EST" / "EDT" ; Eastern: - 5/ - 4
2852
+ / "CST" / "CDT" ; Central: - 6/ - 5
2853
+ / "MST" / "MDT" ; Mountain: - 7/ - 6
2854
+ / "PST" / "PDT" ; Pacific: - 8/ - 7
2855
+ / 1ALPHA ; Military: Z = UT;
2856
+ <"> = <ASCII quote mark> ; ( 42, 34.)
2857
+
2858
+
2859
+
2860
+
2861
+
2862
+
2863
+
2864
+
2865
+
2866
+
2867
+
2868
+
2869
+
2870
+
2871
+
2872
+
2873
+
2874
+
2875
+
2876
+
2877
+
2878
+
2879
+
2880
+
2881
+
2882
+
2883
+
2884
+
2885
+
2886
+
2887
+
2888
+
2889
+
2890
+
2891
+
2892
+
2893
+
2894
+
2895
+
2896
+
2897
+
2898
+
2899
+
2900
+ August 13, 1982 - 47 - RFC #822