Subject: bug#9392: 24.0.50; rmail-forward produces messages in unsupported format that cannot be customized away

From: Eli Zaretskii <[email-masked]>
Date: Sun, 28 Aug 2011 05:21:42 -0400

Typing `f' (rmail-forward) in an Rmail buffer produces this line:

  <#part type=message/rfc822 disposition=inline raw=t>

followed by the headers and the body of the forwarded message.  This
happens because rmail-forward was changed some time ago to call
message-forward-make-body-mime (through
rmail-insert-mime-forwarded-message-function), like this:

	    (if (or rmail-enable-mime rmail-enable-mime-composing)
		(funcall rmail-insert-mime-forwarded-message-function
			 forward-buffer)
	      (insert "------- Start of forwarded message -------\n")

Q1: Where is this format documented? any RFCs or some such?  I
couldn't find any spec with this format, but I don't really know what
to look for, not being an expert on these issues.

Q2: Which MUAs support this format on reception, and can show the
forwarded message in a reasonably useful form?  Rmail certainly
doesn't; I also tried Outlook and a couple Web-based mail systems --
none of them did.  What I see is the raw message, complete with b64
encoded attachments -- entirely illegible.  If this format is not
widely supported, why does it make sense to generate it by default?
At the very least, Rmail should support that, or stop using it by
default.

The bug: The way the code invoking message-forward-make-body-mime is
written, it is impossible to customize away this "feature" without
disabling rmail-enable-mime, which disables a lot of other useful
features.  At the very least, it should be possible to disable this
"feature" alone, by customizing rmail-enable-mime-composing.  This
could be as a simple as replacing `or' with `and' in the above
condition. 

In GNU Emacs 24.0.50.81 (x86_64-unknown-linux-gnu, GTK+ Version 2.20.1)
 of 2011-08-28 on fencepost
configured using `configure  '--with-gif=no' '--with-tiff=no' '--enable-asserts' '--enable-checking' 'CFLAGS=-ggdb -g3 -O0 -DGLYPH_DEBUG=1''

Important settings:
  value of $LC_ALL: nil
  value of $LC_COLLATE: nil
  value of $LC_CTYPE: nil
  value of $LC_MESSAGES: nil
  value of $LC_MONETARY: nil
  value of $LC_NUMERIC: nil
  value of $LC_TIME: nil
  value of $LANG: nil
  value of $XMODIFIERS: nil
  locale-coding-system: nil
  default enable-multibyte-characters: t

Major mode: RMAIL

Minor modes in effect:
  shell-dirtrack-mode: t
  display-time-mode: t
  show-paren-mode: t
  savehist-mode: t
  tooltip-mode: t
  mouse-wheel-mode: t
  tool-bar-mode: t
  menu-bar-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  line-number-mode: t

Recent input:
p ESC p RET C-r ESC O A ESC O C C-x b RET C-x b r m 
a i TAB . e TAB RET ESC O B ESC O B ESC O A ESC O A 
ESC O A ESC O D ESC O D ESC O D ESC O D ESC O D ESC 
O D ESC O D ESC O D ESC O D ESC O D ESC O D ESC O D 
ESC O D ESC O D ESC O D ESC O D ESC O D ESC O D ESC 
O D ESC O D ESC O D ESC O D ESC O D ESC O D ESC O D 
ESC O D ESC O D ESC O D C-r C-w C-w C-w C-w C-r C-r 
C-x C-x ESC O D ESC O D ESC O D ESC O D ESC O D ESC 
O D ESC O D ESC O D ESC O D ESC O D ESC O D ESC O D 
ESC O D ESC O D ESC O D ESC O D ESC O D ESC O D C-r 
C-w C-w C-w C-r C-r C-r C-r C-r C-r C-r C-r C-r C-r 
C-r C-r C-r C-r C-r C-r C-r C-r C-x C-x ESC O C ESC 
O C ESC O C ESC O C ESC O C ESC O C ESC O C ESC O C 
ESC O C ESC O C ESC O C ESC O C ESC O C ESC O C ESC 
O C ESC O C ESC O C ESC O C ESC O C ESC O D C-r C-w 
C-w C-w C-w C-r C-r C-r C-x C-x C-s C-s C-s C-x C-x 
C-a C-x b RET ESC x r e p o r t TAB RET

Recent messages:
Saving file /home/e/eliz/mail.n2...
Wrote /home/e/eliz/mail.n2
Getting mail from /srv/data/home/e/eliz/mail.n2...
Counting new messages...done (1)
Saving file /home/e/eliz/INBOX...
Wrote /home/e/eliz/INBOX [2 times]
Computing summary lines...done
1 new message read
scroll-down-command: Beginning of buffer
Mark saved where search started [9 times]

Load-path shadows:
None found.

Features:
(shadow emacsbug help-fns help-mode view cc-mode cc-fonts cc-guess
cc-menus cc-cmds cc-styles cc-align cc-engine cc-vars cc-defs
multi-isearch vc-bzr newcomment flyspell ispell sendmail shell
pcomplete comint regexp-opt ring qp rmailsum rmailmm message
format-spec rfc822 mml easymenu mml-sec mm-decode mm-bodies mm-encode
mailabbrev gmm-utils mailheader mail-parse rfc2231 rmail rfc2047
rfc2045 ietf-drums mm-util mail-prsvr mail-utils time paren cus-start
cus-load time-date savehist saveplace tooltip ediff-hook vc-hooks
lisp-float-type mwheel x-win x-dnd tool-bar dnd fontset image fringe
lisp-mode register page menu-bar rfn-eshadow timer select scroll-bar
mouse jit-lock font-lock syntax facemenu font-core frame cham georgian
utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao korean
japanese hebrew greek romanian slovak czech european ethiopic indian
cyrillic chinese case-table epa-hook jka-cmpr-hook help simple abbrev
minibuffer loaddefs button faces cus-face files text-properties
overlay sha1 md5 base64 format env code-pages mule custom widget
hashtable-print-readable backquote make-network-process
dynamic-setting font-render-setting move-toolbar gtk x-toolkit x
multi-tty emacs)