Function: message-bounce
message-bounce is an autoloaded, interactive and byte-compiled
function defined in message.el.gz.
Signature
(message-bounce)
Documentation
Re-mail the current message.
This only makes sense if the current message is a bounce message that contains some mail you have written which has been bounced back to you.
Key Bindings
Source Code
;; Defined in /usr/src/emacs/lisp/gnus/message.el.gz
;;;###autoload
(defun message-bounce ()
"Re-mail the current message.
This only makes sense if the current message is a bounce message that
contains some mail you have written which has been bounced back to
you."
(interactive)
(let ((handles (mm-dissect-buffer t))
boundary)
(message-pop-to-buffer (message-buffer-name "bounce"))
(if (stringp (car handles))
;; This is a MIME bounce.
(mm-insert-part (car (last handles)))
;; This is a non-MIME bounce, so we try to remove things
;; manually.
(mm-insert-part handles)
(undo-boundary)
(goto-char (point-min))
(re-search-forward "\n\n+" nil t)
(setq boundary (point))
;; We remove everything before the bounced mail.
(if (or (re-search-forward message-unsent-separator nil t)
(progn
(search-forward "\n\n" nil 'move)
(re-search-backward "^Return-Path:.*\n" boundary t)))
(progn
(forward-line 1)
(delete-region (point-min)
(if (re-search-forward "^[^ \n\t]+:" nil t)
(match-beginning 0)
(point))))
(goto-char boundary)
(when (re-search-backward "^.?From .*\n" nil t)
(delete-region (match-beginning 0) (match-end 0)))))
(mime-to-mml)
(save-restriction
(message-narrow-to-head-1)
(message-remove-header message-ignored-bounced-headers t)
(goto-char (point-max))
(insert mail-header-separator))
(message-position-point)))