Gnus Home
[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

4.4 rfc2047

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 replacement for the rfc2231-encode-string function. See section 4.2 rfc2231.

When attaching files as MIME parts, we should use the RFC2231 encoding to specify the file names containing non-ASCII characters. However, many mail softwares don't support it in practice and recipients won't be able to extract files with correct names. Instead, the RFC2047-like encoding is acceptable generally. This function provides the very RFC2047-like encoding, resigning to such a regrettable trend. To use it, put the following line in your `~/.gnus.el' file:

 
(defalias 'mail-header-encode-parameter 'rfc2047-encode-parameter)


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

This document was generated by on September, 5 2010 using texi2html