2.4 Encoding Customization

mm-body-charset-encoding-alist

Mapping from MIME charset to encoding to use. This variable is usually used except, e.g., when other requirements force a specific encoding (digitally signed messages require 7bit encodings). The default is

((iso-2022-jp . 7bit)
 (iso-2022-jp-2 . 7bit)
 (utf-16 . base64)
 (utf-16be . base64)
 (utf-16le . base64))

As an example, if you do not want to have ISO-8859-1 characters quoted-printable encoded, you may add (iso-8859-1 . 8bit) to this variable. You can override this setting on a per-message basis by using the encoding MML tag (see MML Definition).

mm-coding-system-priorities

Prioritize coding systems to use for outgoing messages. The default is nil, which means to use the defaults in Emacs, but is (iso-8859-1 iso-2022-jp utf-8) when running Emacs in the Japanese language environment. It is a list of coding system symbols (aliases of coding systems are also allowed, use M-x describe-coding-system to make sure you are specifying correct coding system names). For example, if you have configured Emacs to prefer UTF-8, but wish that outgoing messages should be sent in ISO-8859-1 if possible, you can set this variable to (iso-8859-1). You can override this setting on a per-message basis by using the charset MML tag (see MML Definition).

As different hierarchies prefer different charsets, you may want to set mm-coding-system-priorities according to the hierarchy in Gnus. Here’s an example:

(add-to-list 'gnus-newsgroup-variables 'mm-coding-system-priorities)
(setq gnus-parameters
      (append
       ;; Some charsets are just examples!
       '(("^cn\\." ;; Chinese
          (mm-coding-system-priorities
           '(iso-8859-1 cn-big5 chinese-iso-7bit utf-8)))
         ("^cz\\.\\|^pl\\." ;; Central and Eastern European
          (mm-coding-system-priorities '(iso-8859-2 utf-8)))
         ("^de\\." ;; German language
          (mm-coding-system-priorities '(iso-8859-1 iso-8859-15 utf-8)))
         ("^fr\\." ;; French
          (mm-coding-system-priorities '(iso-8859-15 iso-8859-1 utf-8)))
         ("^fj\\." ;; Japanese
          (mm-coding-system-priorities
           '(iso-8859-1 iso-2022-jp utf-8)))
         ("^ru\\." ;; Cyrillic
          (mm-coding-system-priorities
           '(koi8-r iso-8859-5 iso-8859-1 utf-8))))
       gnus-parameters))
mm-content-transfer-encoding-defaults

Mapping from MIME types to encoding to use. This variable is usually used except, e.g., when other requirements force a safer encoding (digitally signed messages require 7bit encoding). Besides the normal MIME encodings, qp-or-base64 may be used to indicate that for each case the most efficient of quoted-printable and base64 should be used.

qp-or-base64 has another effect. It will fold long lines so that MIME parts may not be broken by MTA. So do quoted-printable and base64.

Note that it affects body encoding only when a part is a raw forwarded message (which will be made by gnus-summary-mail-forward with the arg 2 for example) or is neither the ‘text/*’ type nor the ‘message/*’ type. Even though in those cases, you can override this setting on a per-message basis by using the encoding MML tag (see MML Definition).

mm-use-ultra-safe-encoding

When this is non-nil, it means that textual parts are encoded as quoted-printable if they contain lines longer than 76 characters or starting with "From " in the body. Non-7bit encodings (8bit, binary) are generally disallowed. This reduce the probability that a non-8bit clean MTA or MDA changes the message. This should never be set directly, but bound by other functions when necessary (e.g., when encoding messages that are to be digitally signed).