(smtpmail-try-auth-methods): If the user has stored a user name, then

query for the password first, instead of waiting for SMTP to give an
error message and the trying again.
This commit is contained in:
Lars Magne Ingebrigtsen 2011-06-22 21:24:51 +02:00
parent 20b84ce991
commit 97bb109368
2 changed files with 25 additions and 3 deletions

View file

@ -1,3 +1,9 @@
2011-06-22 Lars Magne Ingebrigtsen <larsi@gnus.org>
* mail/smtpmail.el (smtpmail-try-auth-methods): If the user has
stored a user name, then query for the password first, instead of
waiting for SMTP to give an error message and the trying again.
2011-06-22 Lawrence Mitchell <wence@gmx.li>
* net/browse-url.el (browse-url-xdg-open): Use 0, rather than nil

View file

@ -477,6 +477,10 @@ The list is in preference order.")
(defun smtpmail-try-auth-methods (process supported-extensions host port
&optional ask-for-password)
(setq port
(if port
(format "%s" port)
"smtp"))
(let* ((mechs (cdr-safe (assoc 'auth supported-extensions)))
(mech (car (smtpmail-intersection mechs smtpmail-auth-supported)))
(auth-source-creation-prompts
@ -486,9 +490,7 @@ The list is in preference order.")
(auth-source-search
:max 1
:host host
:port (if port
(format "%s" port)
"smtp")
:port port
:require (and ask-for-password
'(:user :secret))
:create ask-for-password)))
@ -497,6 +499,20 @@ The list is in preference order.")
(save-function (and ask-for-password
(plist-get auth-info :save-function)))
ret)
(when (and user
(not password))
;; The user has stored the user name, but not the password, so
;; ask for the password, even if we're not forcing that through
;; `ask-for-password'.
(setq auth-info
(car
(auth-source-search
:max 1
:host host
:port port
:require '(:user :secret)
:create t))
password (plist-get auth-info :secret)))
(when (functionp password)
(setq password (funcall password)))
(cond