RFC2047 (Message Header Extensions for Non-ASCII Text) specifies how non-ASCII text in headers are to be encoded. This is actually rather complicated, so a number of variables are necessary to tweak what this library does.
The following variables are tweakable:
rfc2047-header-encoding-alist
¶This is an alist of header / encoding-type pairs. Its main purpose is to prevent encoding of certain headers.
The keys can either be header regexps, or t
.
The values can be nil
, in which case the header(s) in question
won’t be encoded, mime
, which means that they will be encoded, or
address-mime
, which means the header(s) will be encoded carefully
assuming they contain addresses.
rfc2047-charset-encoding-alist
¶RFC2047 specifies two forms of encoding—Q
(a
Quoted-Printable-like encoding) and B
(base64). This alist
specifies which charset should use which encoding.
rfc2047-encode-function-alist
¶This is an alist of encoding / function pairs. The encodings are
Q
, B
and nil
.
rfc2047-encoded-word-regexp
¶When decoding words, this library looks for matches to this regexp.
rfc2047-encoded-word-regexp-loose
¶This is a version from which the regexp for the Q encoding pattern of
rfc2047-encoded-word-regexp
is made loose.
rfc2047-encode-encoded-words
¶The boolean variable specifies whether encoded words
(e.g., ‘=?us-ascii?q?hello?=’) should be encoded again.
rfc2047-encoded-word-regexp
is used to look for such words.
rfc2047-allow-irregular-q-encoded-words
¶The boolean variable specifies whether irregular Q encoded words
(e.g., ‘=?us-ascii?q?hello??=’) should be decoded. If it is
non-nil
, rfc2047-encoded-word-regexp-loose
is used instead
of rfc2047-encoded-word-regexp
to look for encoded words.
Those were the variables, and these are this functions:
rfc2047-narrow-to-field
¶Narrow the buffer to the header on the current line.
rfc2047-encode-message-header
¶Should be called narrowed to the header of a message. Encodes according
to rfc2047-header-encoding-alist
.
rfc2047-encode-region
¶Encodes all encodable words in the region specified.
rfc2047-encode-string
¶Encode a string and return the results.
rfc2047-decode-region
¶Decode the encoded words in the region.
rfc2047-decode-string
¶Decode a string and return the results.
rfc2047-encode-parameter
¶Encode a parameter in the RFC2047-like style. This is a substitution
for the rfc2231-encode-string
function, that is the standard but
many mailers don’t support it. See rfc2231.