Function: message-send-form-letter

message-send-form-letter is an interactive and byte-compiled function defined in message.el.gz.

Signature

(message-send-form-letter &optional FORCE)

Documentation

Sent all form letter messages from current buffer.

Unless FORCE, prompt before sending.

The messages are separated by message-form-letter-separator. Header and body are separated by mail-header-separator.

Key Bindings

Source Code

;; Defined in /usr/src/emacs/lisp/gnus/message.el.gz
(defun message-send-form-letter (&optional force)
  "Sent all form letter messages from current buffer.
Unless FORCE, prompt before sending.

The messages are separated by `message-form-letter-separator'.
Header and body are separated by `mail-header-separator'."
  (interactive "P" message-mode)
  (let ((sent 0) (skipped 0)
	start end text
	buff
	to done)
    (goto-char (point-min))
    (while (not done)
      (setq start (point)
	    end (if (search-forward message-form-letter-separator nil t)
		    (- (point) (length message-form-letter-separator) -1)
		  (setq done t)
		  (point-max)))
      (setq text
	    (buffer-substring-no-properties start end))
      (setq buff (generate-new-buffer "*mail - form letter*"))
      (with-current-buffer buff
	(insert text)
	(message-mode)
	(setq to (message-fetch-field "To"))
	(switch-to-buffer buff)
	(when force
	  (sit-for message-send-form-letter-delay))
	(if (or force
		  (y-or-n-p (format-message "Send message to `%s'? " to)))
	    (progn
	      (setq sent (1+ sent))
	      (message-send-and-exit))
	  (message "Message to `%s' skipped." to)
	  (setq skipped (1+ skipped)))
	(when (buffer-live-p buff)
	  (kill-buffer buff))))
    (message "%s message(s) sent, %s skipped." sent skipped)))