From 9e14eb0c8aaa5691f708a6a64a4eafe33b00501d Mon Sep 17 00:00:00 2001 From: Lars Ingebrigtsen Date: Thu, 2 Feb 2012 14:08:52 +0100 Subject: [PATCH] Adjust Message mail sending to allow multi-SMTP sending. * gnus-agent.el (gnus-agent-send-mail-function): Removed. (gnus-agentize): Don't set it. (gnus-agent-send-mail): Don't use it. * message.el (message-multi-smtp-send-mail): New function. --- lisp/ChangeLog | 6 ++++++ lisp/gnus-agent.el | 9 ++------- lisp/message.el | 16 ++++++++++++---- 3 files changed, 20 insertions(+), 11 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 4905dbe62..3ccc9069f 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,5 +1,11 @@ 2012-02-02 Lars Ingebrigtsen + * message.el (message-multi-smtp-send-mail): New function. + + * gnus-agent.el (gnus-agent-send-mail-function): Removed. + (gnus-agentize): Don't set it. + (gnus-agent-send-mail): Don't use it. + * gnus-sum.el (gnus-summary-widget-backward): New function and keystroke. diff --git a/lisp/gnus-agent.el b/lisp/gnus-agent.el index 5178220af..284a37838 100644 --- a/lisp/gnus-agent.el +++ b/lisp/gnus-agent.el @@ -242,7 +242,6 @@ NOTES: (defvar gnus-category-group-cache nil) (defvar gnus-agent-spam-hashtb nil) (defvar gnus-agent-file-name nil) -(defvar gnus-agent-send-mail-function nil) (defvar gnus-agent-file-coding-system 'raw-text) (defvar gnus-agent-file-loading-cache nil) (defvar gnus-agent-total-fetched-hashtb nil) @@ -683,11 +682,7 @@ This will modify the `gnus-setup-news-hook', and minor mode in all Gnus buffers." (interactive) (gnus-open-agent) - (unless gnus-agent-send-mail-function - (setq gnus-agent-send-mail-function - (or message-send-mail-real-function - (function (lambda () (funcall message-send-mail-function)))) - message-send-mail-real-function 'gnus-agent-send-mail)) + (setq message-send-mail-real-function 'gnus-agent-send-mail) ;; If the servers file doesn't exist, auto-agentize some servers and ;; save the servers file so this auto-agentizing isn't invoked @@ -723,7 +718,7 @@ Optional arg GROUP-NAME allows to specify another group." (defun gnus-agent-send-mail () (if (or (not gnus-agent-queue-mail) (and gnus-plugged (not (eq gnus-agent-queue-mail 'always)))) - (funcall gnus-agent-send-mail-function) + (message-multi-smtp-send-mail) (goto-char (point-min)) (re-search-forward (concat "^" (regexp-quote mail-header-separator) "\n")) diff --git a/lisp/message.el b/lisp/message.el index acd546acf..e7bbff675 100644 --- a/lisp/message.el +++ b/lisp/message.el @@ -4535,8 +4535,9 @@ This function could be useful in `message-setup-hook'." (end-of-line) (insert (format " (%d/%d)" n total)) (widen) - (funcall (or message-send-mail-real-function - message-send-mail-function))) + (if message-send-mail-real-function + (funcall message-send-mail-real-function) + (message-multi-smtp-send-mail))) (setq n (+ n 1)) (setq p (pop plist)) (erase-buffer))) @@ -4690,8 +4691,9 @@ If you always want Gnus to send messages in one piece, set "))) (progn (message "Sending via mail...") - (funcall (or message-send-mail-real-function - message-send-mail-function))) + (if message-send-mail-real-function + (funcall message-send-mail-real-function) + (message-multi-smtp-send-mail))) (message-send-mail-partially)) (setq options message-options)) (kill-buffer tembuf)) @@ -4701,6 +4703,12 @@ If you always want Gnus to send messages in one piece, set (defvar sendmail-program) +(defun message-multi-smtp-send-mail () + "Send the current buffer to `message-send-mail-function'. +Or, if there's a header that specifies a different method, use +that instead." + (funcall message-send-mail-function)) + (defun message-send-mail-with-sendmail () "Send off the prepared buffer with sendmail." (require 'sendmail) -- 2.25.1