Function: gnus-summary-mail-forward

gnus-summary-mail-forward is an autoloaded, interactive and byte-compiled function defined in gnus-msg.el.gz.

Signature

(gnus-summary-mail-forward &optional ARG ALL-HEADERS POST)

Documentation

Forward the current message(s) to another user.

If process marks exist, forward all marked messages; if ARG is nil, see message-forward-as-mime and message-forward-show-mml; if ARG is 1, decode the message and forward directly inline; if ARG is 2, forward message as an rfc822 MIME section; if ARG is 3, decode message and forward as an rfc822 MIME section; if ARG is 4, forward message directly inline; otherwise, use negated message-forward-as-mime. If POST, post instead of mail. If symbolic prefix ALL-HEADERS is the symbol a, include all original headers in the forwarded message, except those matching message-forward-ignored-headers. Otherwise, include headers based on the options message-forward-included-headers, message-forward-ignored-headers, and potentially message-forward-included-mime-headers.

Key Bindings

Source Code

;; Defined in /usr/src/emacs/lisp/gnus/gnus-msg.el.gz
(defun gnus-summary-mail-forward (&optional arg all-headers post)
  "Forward the current message(s) to another user.
If process marks exist, forward all marked messages;
if ARG is nil, see `message-forward-as-mime' and `message-forward-show-mml';
if ARG is 1, decode the message and forward directly inline;
if ARG is 2, forward message as an rfc822 MIME section;
if ARG is 3, decode message and forward as an rfc822 MIME section;
if ARG is 4, forward message directly inline;
otherwise, use negated `message-forward-as-mime'.
If POST, post instead of mail.
If symbolic prefix ALL-HEADERS is the symbol `a', include all
original headers in the forwarded message, except those matching
`message-forward-ignored-headers'.  Otherwise, include headers
based on the options `message-forward-included-headers',
`message-forward-ignored-headers', and potentially
`message-forward-included-mime-headers'."
  (interactive (gnus-interactive "P\ny") gnus-summary-mode)
  (if (cdr (gnus-summary-work-articles nil))
      ;; Process marks are given.
      (gnus-uu-digest-mail-forward nil post)
    ;; No process marks.
    (let ((message-forward-as-mime message-forward-as-mime)
	  (message-forward-show-mml message-forward-show-mml)
          (message-forward-included-headers
           (if (eq all-headers 'a)
               nil
             message-forward-included-headers)))
      (cond
       ((null arg))
       ((eq arg 1)
	(setq message-forward-as-mime nil
	      message-forward-show-mml t))
       ((eq arg 2)
	(setq message-forward-as-mime t
	      message-forward-show-mml nil))
       ((eq arg 3)
	(setq message-forward-as-mime t
	      message-forward-show-mml t))
       ((eq arg 4)
	(setq message-forward-as-mime nil
	      message-forward-show-mml nil))
       (t
	(setq message-forward-as-mime (not message-forward-as-mime))))
      (let* ((gnus-article-reply (gnus-summary-article-number))
	     (gnus-article-yanked-articles (list gnus-article-reply)))
	(gnus-setup-message 'forward
	  (gnus-summary-select-article)
	  (let ((mail-parse-charset
		 (or (and (gnus-buffer-live-p gnus-article-buffer)
			  (with-current-buffer gnus-article-buffer
			    gnus-article-charset))
		     gnus-newsgroup-charset))
		(mail-parse-ignored-charsets
		 gnus-newsgroup-ignored-charsets))
	    (set-buffer gnus-original-article-buffer)
	    (message-forward post)))))))