Function: message-multi-smtp-send-mail
message-multi-smtp-send-mail is a byte-compiled function defined in
message.el.gz.
Signature
(message-multi-smtp-send-mail)
Documentation
Send the current buffer to message-send-mail-function(var)/message-send-mail-function(fun).
Or, if there's a header that specifies a different method, use that instead.
Source Code
;; Defined in /usr/src/emacs/lisp/gnus/message.el.gz
(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."
(let ((method (message-field-value "X-Message-SMTP-Method"))
send-function)
(if (not method)
(funcall message-send-mail-function)
(message-remove-header "X-Message-SMTP-Method")
(setq method (split-string method))
(setq send-function
(symbol-function
(intern-soft (format "message-send-mail-with-%s" (car method)))))
(cond
((equal (car method) "smtp")
(require 'smtpmail)
(let* ((smtpmail-store-queue-variables t)
(smtpmail-smtp-server (nth 1 method))
(service (nth 2 method))
(port (string-to-number service))
(smtpmail-smtp-service (if (> port 0) port service))
(smtpmail-smtp-user (or (nth 3 method) smtpmail-smtp-user))
(stream-type (nth 4 method))
(smtpmail-stream-type
(cond ((member stream-type '("nil" "starttls" "plain" "tls"))
(intern stream-type))
(stream-type
(user-error "Invalid stream type: %s" stream-type))
;; If the user didn't say anything and we're
;; talking to the TLS SMTP port, then force a TLS
;; connection.
((= port 465) 'tls)
(t smtpmail-stream-type))))
(message-smtpmail-send-it)))
(send-function
(funcall send-function))
(t
(error "Unknown mail method %s" method))))))