Richard Mlynarik wrote @file{cl-indent.el}, a package for indenting
Common Lisp code; @file{ebuff-menu.el}, an electric browser for
buffer listings; @file{ehelp.el}, bindings for browsing help screens;
-and @file{rfc822.el}, a parser for E-mail addresses in the RFC-822 format,
-used in mail messages and news articles.
+and @file{rfc822.el}, a parser for E-mail addresses in the format
+used in mail messages and news articles (Internet RFC 822 and its successors).
@item
Gerd Möllmann was the Emacs maintainer from the beginning of Emacs 21
The format of this list is the same as what @code{decode-time} accepts
(@pxref{Time Conversion}), and is described in more detail there. Any
element that cannot be determined from the input will be set to
-@code{nil}. The argument @var{string} should resemble an RFC 2822 or
+@code{nil}. The argument @var{string} should resemble an RFC 822 (or later) or
ISO 8601 string, like ``Fri, 25 Mar 2016 16:24:56 +0100'' or
``1998-09-12T12:21:54-0200'', but this function will attempt to parse
less well-formed time strings as well.
A description of the part (@code{Content-Description}).
@item creation-date
-RFC822 date when the part was created (@code{Content-Disposition}).
+Date when the part was created (@code{Content-Disposition}).
+This uses the format of RFC 822 or its successors.
@item modification-date
-RFC822 date when the part was modified (@code{Content-Disposition}).
+RFC 822 (or later) date when the part was modified
+(@code{Content-Disposition}).
@item read-date
-RFC822 date when the part was read (@code{Content-Disposition}).
+RFC 822 (or later) date when the part was read (@code{Content-Disposition}).
@item recipients
Who to encrypt/sign the part to. This field is used to override any
@samp{localfile}, and @samp{mailserver}. (@code{Content-Type}.)
@item expiration
-The RFC822 date after which the file may no longer be fetched.
+RFC 822 (or later) date after which the file may no longer be fetched.
(@code{Content-Type}.)
@item size
@menu
* rfc2045:: Encoding @code{Content-Type} headers.
* rfc2231:: Parsing @code{Content-Type} headers.
-* ietf-drums:: Handling mail headers defined by RFC822bis.
+* ietf-drums:: Handling mail headers defined by RFC 2822.
* rfc2047:: En/decoding encoded words in headers.
* time-date:: Functions for parsing dates and manipulating time.
* qp:: Quoted-Printable en/decoding.
@node ietf-drums
@section ietf-drums
-@dfn{drums} is an IETF working group that is working on the replacement
-for RFC822.
+@dfn{drums} was an IETF working group that worked on Internet RFC 2822,
+the first successor to RFC 822 and a predecessor of the current email standard.
The functions provided by this library include:
@table @var
@item date
-An RFC822 (or similar) date string. For instance: @code{"Sat Sep 12
+An RFC 822 (or similar) date string. For instance: @code{"Sat Sep 12
12:21:54 1998 +0200"}.
@item time
The Emacs @acronym{MIME} library implements handling of various elements
according to a (somewhat) large number of RFCs, drafts and standards
documents. This chapter lists the relevant ones. They can all be
-fetched from @uref{http://quimby.gnus.org/notes/}.
+fetched from @uref{https://www.rfc-editor.org}.
@table @dfn
-@item RFC822
-@itemx STD11
-Standard for the Format of ARPA Internet Text Messages.
+@item RFC 5322
+Internet Message Format
-@item RFC1036
-Standard for Interchange of USENET Messages
+@item RFC 5536
+Netnews Article Format
-@item RFC2045
+@item RFC 2045
Format of Internet Message Bodies
-@item RFC2046
+@item RFC 2046
Media Types
-@item RFC2047
+@item RFC 2047
Message Header Extensions for Non-@acronym{ASCII} Text
-@item RFC2048
-Registration Procedures
+@item RFC 6838
+Media Type Specifications and Registration Procedures
+
+@item RFC 4289
+Registration Procedures (obsoleting RFC 2048)
-@item RFC2049
+@item RFC 2049
Conformance Criteria and Examples
-@item RFC2231
+@item RFC 2231
@acronym{MIME} Parameter Value and Encoded Word Extensions: Character Sets,
Languages, and Continuations
-@item RFC1843
+@item RFC 1843
HZ---A Data Format for Exchanging Files of Arbitrarily Mixed Chinese and
@acronym{ASCII} characters
-@item draft-ietf-drums-msg-fmt-05.txt
-Draft for the successor of RFC822
-
-@item RFC2112
+@item RFC 2387
The @acronym{MIME} Multipart/Related Content-type
-@item RFC1892
-The Multipart/Report Content Type for the Reporting of Mail System
+@item RFC 6522
+@itemx STD 73
+The Multipart/Report Media Type for the Reporting of Mail System
Administrative Messages
-@item RFC2183
+@item RFC 2183
Communicating Presentation Information in Internet Messages: The
Content-Disposition Header Field
-@item RFC2646
-Documentation of the text/plain format parameter for flowed text.
+@item RFC 3676
+The Text/Plain Format and DelSp Parameters
@end table
There are no Gnus dependencies in this file.
@item ietf-drums.el
-Functions for parsing RFC822bis headers.
+Functions for parsing RFC 2822 headers.
@c As of 2005-10-21...
There are no Gnus dependencies in this file.
body can be divided into a signature part and a text part. The variable
that says what is to be considered a signature is
@code{gnus-signature-separator}. This is normally the standard
-@samp{^-- $} as mandated by son-of-RFC 1036. However, many people use
+@samp{^-- $} as mandated by RFC 5536. However, many people use
non-standard signature separators, so this variable can also be a list
of regular expressions to be tested, one by one. (Searches are done
from the end of the body towards the beginning.) One likely value is:
really stupid things with mail. ``Hey, RFC 822 doesn't explicitly
prohibit us from adding the string @code{wE aRe ElItE!!!!!1!!} to the
end of all lines passing through our server, so let's do that!!!!1!''
-Yes, but RFC 822 wasn't designed to be read by morons. Things that were
-considered to be self-evident were not discussed. So. Here we are.
+Yes, but RFC 822 and its successors weren't designed to be read by
+morons. Things that were considered to be self-evident were not
+discussed. So. Here we are.
Case in point: The German version of Microsoft Exchange adds @samp{AW:
} to the subjects of replies instead of @samp{Re: }. I could pretend to
@cindex forwarded messages
@item rfc822-forward
-A message forwarded according to RFC822.
+A message forwarded according to RFC 822 or its successors.
@item outlook
The Outlook mail box.
@table @strong
-@item RFC (2)822
+@item RFC 822
@cindex RFC 822
@cindex RFC 2822
-There are no known breaches of this standard.
+@cindex RFC 5322
+There are no known breaches of this standard or its successors
+(currently RFCs 2822 and 5322).
@item RFC 1036
@cindex RFC 1036
-There are no known breaches of this standard, either.
+There are no known breaches of this (now-obsolete) standard, either.
-@item Son-of-RFC 1036
-@cindex Son-of-RFC 1036
-We do have some breaches to this one.
+@item RFC 5536
+@cindex RFC 5536
+We do have some breaches of this standard, the successor of RFC 1036.
@table @emph
@item USEFOR
@cindex USEFOR
-USEFOR is an IETF working group writing a successor to RFC 1036, based
-on Son-of-RFC 1036. They have produced a number of drafts proposing
-various changes to the format of news articles. The Gnus towers will
-look into implementing the changes when the draft is accepted as an RFC.
+USEFOR was an IETF working group that produced Internet RFCs 5536 and 5537.
+The Gnus towers will look into implementing the changes embodied by these
+standards.
@item MIME---RFC 2045--2049 etc
@cindex @acronym{MIME}
@end example
@cindex BNF
-(The version of BNF used here is the one used in RFC822.)
+(The version of extended BNF used here is ABNF, the one used in Internet RFCs.
+See RFC 5234.)
If the return value is @code{nov}, the data buffer should contain
@dfn{network overview database} lines. These are basically fields
just shamelessly @emph{stole} the entire thing, and one would be right.
@dfn{Header} is a severely overloaded term. ``Header'' is used in
-RFC 1036 to talk about lines in the head of an article (e.g.,
+RFC 5536 to talk about lines in the head of an article (e.g.,
@code{From}). It is used by many people as a synonym for
``head''---``the header and the body''. (That should be avoided, in my
opinion.) And Gnus uses a format internally that it calls ``header'',
such useful information as the author's name and email address are
extracted. If the variable @code{sc-mail-warn-if-non-rfc822-p} is
non-@code{nil}, then Supercite will warn you if it finds a mail header
-that does not conform to RFC822. This is rare and indicates a problem
+that does not conform to RFC 822 (or later).
+This is rare and indicates a problem
either with your MUA or the original author's MUA, or some MTA (mail
transport agent) along the way.
;;;###autoload
(defun parse-time-string (string)
"Parse the time-string STRING into (SEC MIN HOUR DAY MON YEAR DOW DST TZ).
-STRING should be on something resembling an RFC2822 string, a la
+STRING should be something resembling an RFC 822 (or later) date-time, e.g.,
\"Fri, 25 Mar 2016 16:24:56 +0100\", but this function is
somewhat liberal in what format it accepts, and will attempt to
return a \"likely\" value even for somewhat malformed strings.
;; -----Original Message-----
;; From: ...
;; To: ...
-;; Sent: ... [date, in non-RFC-2822 format]
+;; Sent: ... [date, in non-RFC-822-or-later format]
;; Subject: ...
;;
;; Cited message, with no prefixes
(defun gnus-extract-address-components (from)
"Extract address components from a From header.
-Given an RFC-822 address FROM, extract full name and canonical address.
+Given an RFC-822 (or later) address FROM, extract name and address.
Returns a list of the form (FULL-NAME CANONICAL-ADDRESS). Much more simple
solution than `mail-extract-address-components', which works much better, but
is slower."
(goto-char (point-min))
(let ((case-fold-search nil))
(re-search-forward "^OR\\>" nil t))))
- ;; According to RFC822, "The field-name must be composed of printable
- ;; ASCII characters (i. e., characters that have decimal values between
- ;; 33 and 126, except colon)", i. e., any chars except ctl chars,
- ;; space, or colon.
+ ;; According to RFC 822 and its successors, the field name must
+ ;; consist of printable US-ASCII characters other than colon,
+ ;; i.e., decimal 33-56 and 59-126.
'(looking-at "[ \t]\\|[][!\"#$%&'()*+,-./0-9;<=>?@A-Z\\\\^_`a-z{|}~]+:"))
"Set this non-nil if the system's mailer runs the header and body together.
\(This problem exists on Sunos 4 when sendmail is run in remote mode.)
(concat
"From "
- ;; Many things can happen to an RFC 822 mailbox before it is put into
- ;; a `From' line. The leading phrase can be stripped, e.g.
+ ;; Many things can happen to an RFC 822 (or later) mailbox before it is
+ ;; put into a `From' line. The leading phrase can be stripped, e.g.
;; `Joe <@w.x:joe@y.z>' -> `<@w.x:joe@y.z>'. The <> can be stripped, e.g.
;; `<@x.y:joe@y.z>' -> `@x.y:joe@y.z'. Everything starting with a CRLF
;; can be removed, e.g.
(insert fullname)
(goto-char (point-min))
;; Look for a character that cannot appear unquoted
- ;; according to RFC 822.
+ ;; according to RFC 822 (or later).
(when (re-search-forward "[^- !#-'*+/-9=?A-Z^-~]" nil 1)
;; Quote fullname, escaping specials.
(goto-char (point-min))
(let ((fullname-start (point)))
(insert fullname)
(goto-char fullname-start)
- ;; RFC 822 says \ and nonmatching parentheses
- ;; must be escaped in comments.
+ ;; \ and nonmatching parentheses must be escaped in comments.
;; Escape every instance of ()\ ...
(while (re-search-forward "[()\\]" nil 1)
(replace-match "\\\\\\&" t))
;; BS, vertical TAB, form feed, and ^_
;;
;; Note that CR is *not* included, as that would allow a non-paired CR
-;; in the body contrary to RFC 2822:
+;; in the body contrary to RFC 822 (or later):
;;
;; - CR and LF MUST only occur together as CRLF; they MUST NOT
;; appear independently in the body.
(autoload 'timezone-parse-date "timezone")
(defun nnrss-normalize-date (date)
- "Return a date string of DATE in the RFC822 style.
+ "Return a date string of DATE in the style of RFC 822 and its successors.
This function handles the ISO 8601 date format described in
-URL `http://www.w3.org/TR/NOTE-datetime', and also the RFC822 style
+URL `http://www.w3.org/TR/NOTE-datetime', and also the RFC 822 style
which RSS 2.0 allows."
(let (case-fold-search vector year month day time zone cts given)
(cond ((null date)) ; do nothing for this case
;; if the date is just digits (unix time stamp):
((string-match "^[0-9]+$" date)
(setq given (seconds-to-time (string-to-number date))))
- ;; RFC822
+ ;; RFC 822
((string-match " [0-9]+ " date)
(setq vector (timezone-parse-date date)
year (string-to-number (aref vector 0)))
;; maybe some distant mail system needs it. Really, though, if you
;; want a sender line in your mail, just put one in there and don't
;; wait for feedmail to do it for you. (Yes, I know all about
-;; RFC-822 and RFC-1123, but are you *really* one of those cases
+;; RFC-822-or-later and RFC-1123, but are you *really* one of those cases
;; they're talking about? I doubt it.)
(defcustom feedmail-sender-line nil
"If non-nil and the email has no Sender: header, use this value.
by feedmail to either \"Date\" or \"Resent-Date\".
If you decide to format your own date field, do us all a favor and know
-what you're doing. Study the relevant parts of RFC-822 and RFC-1123.
+what you're doing. Study the relevant parts of RFC-822-or-later and RFC-1123.
Don't make me come up there!
You should let feedmail generate a Date: for you unless you are sure
(defvar feedmail-is-a-resend nil
- "Non-nil means the message is a Resend (in the RFC-822 sense).
+ "Non-nil means the message is a Resend (in the RFC-822-or-later sense).
This affects the composition of certain headers. feedmail sets this
variable as soon as it starts prepping the message text buffer, so any
user-supplied functions can rely on it. Users shouldn't set or change this
(let ((case-fold-search t) (addr-regexp))
(goto-char (point-min))
- ;; There are some RFC-822 combinations/cases missed here,
+ ;; There are some RFC-822-or-later combinations/cases missed here,
;; but probably good enough and what users expect.
;;
;; Use resent-* stuff only if there is at least one non-empty one.
-;;; ietf-drums.el --- Functions for parsing RFC822bis headers
+;;; ietf-drums.el --- Functions for parsing RFC 2822 headers
;; Copyright (C) 1998-2019 Free Software Foundation, Inc.
;;; Commentary:
-;; DRUMS is an IETF Working Group that works (or worked) on the
-;; successor to RFC822, "Standard For The Format Of Arpa Internet Text
-;; Messages". This library is based on
-;; draft-ietf-drums-msg-fmt-05.txt, released on 1998-08-05.
+;; DRUMS is an IETF Working Group that worked on Internet RFC 2822,
+;; the successor to RFC 822 and the predecessor of RFC 5322. This
+;; library is based on draft-ietf-drums-msg-fmt-05.txt, released on
+;; 1998-08-05.
;; Pending a real regression self test suite, Simon Josefsson added
;; various self test expressions snipped from bug reports, and their
-;;; mail-extr.el --- extract full name and address from RFC 822 mail header
+;;; mail-extr.el --- extract full name and address from email header
;; Copyright (C) 1991-1994, 1997, 2001-2019 Free Software Foundation,
;; Inc.
;;
;; mail-extract-address-components: (address &optional all)
;;
-;; Given an RFC-822 ADDRESS, extract full name and canonical address.
+;; Given an RFC-822-or-later ADDRESS, extract name and address.
;; Returns a list of the form (FULL-NAME CANONICAL-ADDRESS).
;; If no name can be extracted, FULL-NAME will be nil.
;; ADDRESS may be a string or a buffer. If it is a buffer, the visible
;; (narrowed) portion of the buffer will be interpreted as the address.
;; (This feature exists so that the clever caller might be able to avoid
;; consing a string.)
-;; If ADDRESS contains more than one RFC-822 address, only the first is
-;; returned.
+;; If ADDRESS contains more than one RFC-822-or-later address, only
+;; the first is returned.
;;
;; If ALL is non-nil, that means return info about all the addresses
;; that are found in ADDRESS. The value is a list of elements of
;; * Handle "null" addresses. Handle = used for spacing in mailbox
;; name. Fix bug in handling of ROUTE-ADDR-type addresses that are
;; missing their brackets. Handle uppercase "JR". Extract full
-;; names from X.400 addresses encoded in RFC-822. Fix bug in
+;; names from X.400 addresses encoded in RFC-822-or-later. Fix bug in
;; handling of multiple addresses where first has trailing comment.
;; Handle more kinds of telephone extension lead-ins.
;;
\f
(defgroup mail-extr nil
- "Extract full name and address from RFC 822 mail header."
+ "Extract full name and address from RFC 822 (or later) mail header."
:prefix "mail-extr-"
:group 'mail)
(defconst mail-extr-all-letters-but-separators
(purecopy "][[:alnum:]{|}'~`"))
-;; Any character that can occur in a name in an RFC822 address including
-;; the separator (hyphen and possibly period) for multipart names.
+;; Any character that can occur in a name in an RFC 822 (or later)
+;; address including the separator (hyphen and possibly period) for
+;; multipart names.
;; #### should . be in here?
(defconst mail-extr-all-letters
(purecopy (concat mail-extr-all-letters-but-separators "---")))
(?. ".")
(?\[ ".")
(?\] ".")
- ;; % and ! aren't RFC822 characters, but it is convenient to pretend
+ ;; % and ! aren't RFC 822 (or later) characters,
+ ;; but it is convenient to pretend.
(?% ".")
(?! ".") ;; this needs to be word-constituent when not in .UUCP mode
)
;;;###autoload
(defun mail-extract-address-components (address &optional all)
- "Given an RFC-822 address ADDRESS, extract full name and canonical address.
+ "Extract full name and canonical address from ADDRESS.
+ADDRESS should be in RFC 822 (or later) format.
Returns a list of the form (FULL-NAME CANONICAL-ADDRESS). If no
name can be extracted, FULL-NAME will be nil. Also see
`mail-extr-ignore-single-names' and
;; Trim other punctuation lists of items outside < > pair to handle
;; stupid MTAs.
(when <-pos ; don't need to check >-pos also
- ;; handle bozo software that violates RFC 822 by sticking
- ;; punctuation marks outside of a < > pair
+ ;; Handle bozo software that violates RFC 822 (or later)
+ ;; by sticking punctuation marks outside of a < > pair.
(mail-extr-nuke-outside-range @-pos <-pos >-pos t)
- ;; RFC 822 says nothing about these two outside < >, but
+ ;; RFC 822 (or later) says nothing about these two outside < >, but
;; remove those positions from the lists to make things
;; easier.
(mail-extr-nuke-outside-range !-pos <-pos >-pos t)
(narrow-to-region atom-beg atom-end)
(cond
- ;; Handle X.400 addresses encoded in RFC-822.
+ ;; Handle X.400 addresses encoded in RFC 822 or later.
;; *** Shit! This has to handle the case where it is
;; *** embedded in a quote too!
;; *** Shit! The input is being broken up into atoms
;;;###autoload
(defcustom mail-use-rfc822 nil
- "If non-nil, use a full, hairy RFC822 parser on mail addresses.
+ "If non-nil, use a full, hairy RFC 822 (or later) parser on mail addresses.
Otherwise, (the default) use a smaller, somewhat faster, and
often correct parser."
:type 'boolean
(date (mail-fetch-field "date"))
;; A From: header can contain multiple addresses, a "From "
;; line must contain only one. (Bug#7760)
- ;; See eg RFC 5322, 3.6.2. Originator Fields.
+ ;; See, e.g., RFC 5322, 3.6.2. Originator Fields.
(end (string-match "[ \t]*[,\n]" from)))
(format "From %s %s\n" (if end
(substring from 0 end)
(setq character-coding (downcase character-coding)))
(concat
"mailto:"
- ;; some of the headers according to RFC822
+ ;; Some of the headers according to RFC 822 (or later).
(mailclient-gather-addresses "To"
'drop-first-name)
(mailclient-gather-addresses "cc" )
;;; Commentary:
-;; This package provides an abstraction to RFC822-style messages, used in
+;; This package provides an abstraction of RFC 822 (or later) format, used in
;; mail, news, and some other systems. The simple syntactic rules for such
;; headers, such as quoting and line folding, are routinely reimplemented
;; in many individual packages. This package removes the need for this
;; Use this syntax table when parsing into regions that may need
;; encoding. Double quotes are string delimiters, backslash is
-;; character quoting, and all other RFC 2822 special characters are
+;; character quoting, and all other RFC 822 (or later) special characters are
;; treated as punctuation so we can use forward-sexp/forward-word to
;; skip to the end of regions appropriately. Nb. ietf-drums does
;; things differently.
(defun rfc2047-encode-region (b e &optional dont-fold)
"Encode words in region B to E that need encoding.
-By default, the region is treated as containing RFC2822 addresses.
+By default, the region is treated as containing RFC 822 (or later) addresses.
Dynamically bind `rfc2047-encoding-type' to change that."
(save-restriction
(narrow-to-region b e)
(with-syntax-table rfc2047-syntax-table
(goto-char (point-min))
(condition-case err ; in case of unbalanced quotes
- ;; Look for rfc2822-style: sequences of atoms, quoted
+ ;; Look for RFC 822 (or later) style: sequences of atoms, quoted
;; strings, specials, whitespace. (Specials mustn't be
;; encoded.)
(while (not (eobp))
(replace-match " "))
(setq end (point-max))
;; Quote decoded words if there are special characters
- ;; which might violate RFC2822.
+ ;; which might violate RFC 822 (or later).
(when (and rfc2047-quote-decoded-words-containing-tspecials
(let ((regexp (car (rassq
'address-mime
-;;; rfc822.el --- hairy rfc822 parser for mail and news and suchlike
+;;; rfc822.el --- hairy RFC 822 (or later) parser for mail, news, etc.
;; Copyright (C) 1986-1987, 1990, 2001-2019 Free Software Foundation,
;; Inc.
;;; Commentary:
-;; Support functions for parsing RFC-822 headers, used by mail and news
-;; modes.
+;; Support functions for parsing headers used by mail and news modes.
+;; The header format is specified by Internet RFC 822 and its successors.
;;; Code:
(concat
"From "
- ;; Many things can happen to an RFC 822 mailbox before it is put into
- ;; a `From' line. The leading phrase can be stripped, e.g.
+ ;; Many things can happen to an RFC 822 (or later) mailbox before it is
+ ;; put into a `From' line. The leading phrase can be stripped, e.g.
;; `Joe <@w.x:joe@y.z>' -> `<@w.x:joe@y.z>'. The <> can be stripped, e.g.
;; `<@x.y:joe@y.z>' -> `@x.y:joe@y.z'. Everything starting with a CRLF
;; can be removed, e.g.
"Report that the buffer is not in the mbox file format.
MSGNUM, if present, indicates the malformed message."
(if msgnum
- (error "Message %d is not a valid RFC2822 message" msgnum)
- (error "Message is not a valid RFC2822 message")))
+ (error "Message %d is not a valid RFC 822 (or later) message" msgnum)
+ (error "Message is not a valid RFC 822 (or later) message")))
(defun rmail-convert-babyl-to-mbox ()
"Convert the mail file from Babyl version 5 to mbox.
(insert "\n")))
(defun rmail-add-mbox-headers ()
- "Validate the RFC2822 format for the new messages.
+ "Validate the RFC 822 (or later) format for the new messages.
Point should be at the first new message.
-An error is signaled if the new messages are not RFC2822
+An error is signaled if the new messages are not RFC 822 (or later)
compliant.
Unless an Rmail attribute header already exists, add it to the
new messages. Return the number of new messages."
(setq tem (copy-sequence tem))
(set-text-properties 0 (length tem) nil tem)
(setq tem (copy-sequence tem))
- ;; Use prin1 to fake RFC822 quoting
+ ;; Use prin1 to fake RFC 822 (or later) quoting
(let ((field (prin1-to-string tem)))
- ;; Wrap it in parens to make it a comment according to RFC822
+ ;; Wrap it in parens to make it a comment.
(if date
(concat "(" field "'s message of " date ")")
(concat "(" field ")"))))))
(if message-id
;; "<AA259@bar.edu> (message from Unix Loser on 1-Apr-89)"
(concat message-id " (" field ")")
- ;; Wrap in parens to make it a comment, for RFC822.
+ ;; Wrap in parens to make it a comment.
(concat "(" field ")")))))
(t
;; If we can't kludge it simply, do it correctly
'smtpmail-send-it 'sendmail-query-once)
"Function to call to send the current buffer as mail.
The headers should be delimited by a line which is
-not a valid RFC822 header or continuation line,
+not a valid RFC 822 (or later) header or continuation line,
that matches the variable `mail-header-separator'.
This is used by the default mail-sending commands. See also
`message-send-mail-function' for use with the Message package."
(ml (when mail-mailing-lists
;; The surrounding regexp assumes the use of
;; `mail-strip-quoted-names' on addresses before matching
- ;; Cannot deal with full RFC 822 freedom, but that is
+ ;; Cannot deal with full RFC 822 (or later), but that is
;; unlikely to be problematic.
(concat "\\(?:[[:space:];,]\\|\\`\\)"
(regexp-opt mail-mailing-lists t)
(fullname-end (point-marker)))
(goto-char fullname-start)
;; Look for a character that cannot appear unquoted
- ;; according to RFC 822.
+ ;; according to RFC 822 (or later).
(if (or (re-search-forward "[^- !#-'*+/-9=?A-Z^-~]"
fullname-end 1)
quote-fullname)
(insert "\""))
(let ((fullname-end (point-marker)))
(goto-char fullname-start)
- ;; RFC 822 says \ and nonmatching parentheses
- ;; must be escaped in comments.
+ ;; \ and nonmatching parentheses must be escaped in comments.
;; Escape every instance of ()\ ...
(while (re-search-forward "[()\\]" fullname-end 1)
(replace-match "\\\\\\&" t))
(fullname-end (point-marker)))
(goto-char fullname-start)
;; Look for a character that cannot appear unquoted
- ;; according to RFC 822.
+ ;; according to RFC 822 or its successors.
(if (re-search-forward "[^- !#-'*+/-9=?A-Z^-~]"
fullname-end 1)
(progn
(insert fullname)
(let ((fullname-end (point-marker)))
(goto-char fullname-start)
- ;; RFC 822 says \ and nonmatching parentheses
- ;; must be escaped in comments.
+ ;; RFC 822 and its successors say \ and
+ ;; nonmatching parentheses must be
+ ;; escaped in comments.
;; Escape every instance of ()\ ...
(while (re-search-forward "[()\\]" fullname-end 1)
(replace-match "\\\\\\&" t))
:group 'supercite-hooks)
(defcustom sc-mail-warn-if-non-rfc822-p t
- "Warn if mail headers don't conform to RFC822."
+ "Warn if mail headers don't conform to RFC 822 (or later)."
:type 'boolean
:group 'supercite-attr)
(defcustom sc-mumble ""
nil)
(defun sc-mail-error-in-mail-field ()
- "Issue warning that mail headers don't conform to RFC 822."
+ "Issue warning that mail headers don't conform to email RFCs."
(let* ((len (min (length curline) 10))
(ellipsis (if (< len (length curline)) "..." ""))
- (msg "Mail header \"%s%s\" doesn't conform to RFC 822. skipping..."))
+ (msg "Mail header \"%s%s\" doesn't conform to RFC 822 (or later). skipping..."))
(message msg (substring curline 0 len) ellipsis))
(beep)
(sit-for 2)
:package-version '(MH-E . "8.0"))
;; These entries have been intentionally excluded by the developers.
-;; "Comments:" ; RFC 2822 - show this one
+;; "Comments:" ; RFC 822 (or later) - show this one
;; "Fax:" ; http://people.dsv.su.se/~jpalme/ietf/mail-headers/
;; "Mail-System-Version:" ; http://people.dsv.su.se/~jpalme/ietf/mail-headers/
;; "Mailer:" ; http://people.dsv.su.se/~jpalme/ietf/mail-headers/
;; "Organization:" ;
;; "Phone:" ; http://people.dsv.su.se/~jpalme/ietf/mail-headers/
;; "Reply-By:" ; RFC 2156
-;; "Reply-To:" ; RFC 2822
+;; "Reply-To:" ; RFC 822 (or later)
;; "Sender:" ;
;; "User-Agent:" ; Similar to X-Mailer, so display it.
;; "X-Mailer:" ;
"From " ; sendmail
"Generate-Delivery-Report:" ; RFC 2156
"Importance:" ; RFC 2156, 2421
- "In-Reply-To:" ; RFC 2822
+ "In-Reply-To:" ; RFC 822 (or later)
"Incomplete-Copy:" ; RFC 2156
- "Keywords:" ; RFC 2822
+ "Keywords:" ; RFC 822 (or later)
"Language:" ; RFC 2156
"Lines:" ; RFC 1036
"List-" ; RFC 2369, 2919
"Mail-Reply-To:" ; http://people.dsv.su.se/~jpalme/ietf/mail-headers/
"Mailing-List:" ; Egroups/yahoogroups mailing list manager
"Message-Content:" ; http://people.dsv.su.se/~jpalme/ietf/mail-headers/
- "Message-Id:" ; RFC 822
+ "Message-ID:" ; RFC 822 (or later)
"Message-Type:" ; RFC 2156
"Mime-Version" ; RFC 2045
"Msgid:"
"Priority:" ; RFC 2156
"Read-Receipt-To:" ; http://people.dsv.su.se/~jpalme/ietf/mail-headers/
"Received-SPF:" ; Gmail
- "Received:" ; RFC 822
- "References:" ; RFC 2822
+ "Received:" ; RFC 822 (or later)
+ "References:" ; RFC 822 (or later)
"Registered-Mail-Reply-Requested-By:" ; http://people.dsv.su.se/~jpalme/ietf/mail-headers/
"Remailed-" ; MH
"Replaces:" ; http://people.dsv.su.se/~jpalme/ietf/mail-headers/
"Replied:" ; MH
- "Resent-" ; RFC 2822
- "Return-Path:" ; RFC 822
+ "Resent-" ; RFC 822 (or later)
+ "Return-Path:" ; RFC 822 (or later)
"Return-Receipt-Requested:" ; http://people.dsv.su.se/~jpalme/ietf/mail-headers/
"Return-Receipt-To:" ; http://people.dsv.su.se/~jpalme/ietf/mail-headers/
"Seal-Send-Time:"
;;;###mh-autoload
(defun mh-header-field-beginning ()
"Move to the beginning of the current header field.
-Handles RFC 822 continuation lines."
+Handle RFC 822 (or later) continuation lines."
(beginning-of-line)
(while (looking-at "^[ \t]")
(forward-line -1)))
;;;###mh-autoload
(defun mh-header-field-end ()
"Move to the end of the current header field.
-Handles RFC 822 continuation lines."
+Handle RFC 822 (or later) continuation lines."
(forward-line 1)
(while (looking-at "^[ \t]")
(forward-line 1))
;; addr-host ")"
;;
;; addr-adl = nstring
-;; ; Holds route from [RFC-822] route-addr if
+;; ; Holds route from [RFC-822 (or later)] route-addr if
;; ; non-nil
;;
;; addr-host = nstring
-;; ; nil indicates [RFC-822] group syntax.
-;; ; Otherwise, holds [RFC-822] domain name
+;; ; nil indicates [RFC-822 (or later)] group syntax.
+;; ; Otherwise, holds [RFC-822 (or later)] domain name
;;
;; addr-mailbox = nstring
-;; ; nil indicates end of [RFC-822] group; if
+;; ; nil indicates end of [RFC-822 (or later)] group; if
;; ; non-nil and addr-host is nil, holds
-;; ; [RFC-822] group name.
-;; ; Otherwise, holds [RFC-822] local-part
-;; ; after removing [RFC-822] quoting
+;; ; [RFC-822 (or later)] group name.
+;; ; Otherwise, holds [RFC-822 (or later)] local-part
+;; ; after removing [RFC-822 (or later)] quoting
;;
;; addr-name = nstring
-;; ; If non-nil, holds phrase from [RFC-822]
-;; ; mailbox after removing [RFC-822] quoting
+;; ; If non-nil, holds phrase from [RFC-822 (or later)]
+;; ; mailbox after removing [RFC-822 (or later)] quoting
;;
(defsubst imap-parse-address ()
nil))
(defun newsticker--decode-rfc822-date (rfc822-string)
- "Return RFC822-STRING in format like `decode-time'.
-Converts from RFC822 to Emacs representation.
+ "Convert RFC822-STRING to a Lisp timestamp.
+RFC822-STRING should use RFC 822 (or later) format.
Examples:
Sat, 07 September 2002 00:00:01 +0100
Sat, 07 September 2002 00:00:01 MET
(defcustom org-id-include-domain nil
"Non-nil means add the domain name to new IDs.
This ensures global uniqueness of IDs, and is also suggested by
-RFC 2445 in combination with RFC 822. This is only relevant if
-`org-id-method' is `org'. When uuidgen is used, the domain will never
-be added.
+the relevant RFCs. This is relevant only if `org-id-method' is
+`org'. When uuidgen is used, the domain will never be added.
+
The default is to not use this because we have no really good way to get
the true domain, and Org entries will normally not be shared with enough
people to make this necessary."
(concat "Subject: " (or (mail-fetch-field "Subject") "???")))))
;; Look in an article or mail message for the From: line. Sorta-kinda
-;; understands RFC-822 addresses and can pull the real name out where
-;; it's provided.
+;; understands RFC 822 (or later) addresses and can pull the real name
+;; out where it's provided.
(defun ps-article-author ()
(save-excursion
(save-restriction
"If the buffer starts with a mail header, move point to the header's end.
Otherwise, moves to `point-min'.
The end of the header is the start of the next line, if there is one,
-else the end of the last line. This function obeys RFC822."
+else the end of the last line. This function obeys RFC 822 (or later)."
(goto-char (point-min))
(when (re-search-forward
"^\\([:\n]\\|[^: \t\n]+[ \t\n]\\)" nil 'move)
;;;###autoload
(defun url-parse-args (str &optional nodowncase)
- ;; Return an assoc list of attribute/value pairs from an RFC822-type string
+ ;; Return an assoc list of attribute/value pairs from a string
+ ;; that uses RFC 822 (or later) format.
(let (
name ; From name=
value ; its value