Mercurial > emacs
changeset 94880:e1d2da11b5ac
Add autoload for
`auth-source-user-or-password'.
(smtpmail-try-auth-methods): Use it.
author | Teodor Zlatanov <tzz@lifelogs.com> |
---|---|
date | Mon, 12 May 2008 12:40:12 +0000 |
parents | fc66ed3d9938 |
children | 301586398fc3 |
files | lisp/ChangeLog lisp/mail/smtpmail.el |
diffstat | 2 files changed, 29 insertions(+), 11 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/ChangeLog Mon May 12 12:39:46 2008 +0000 +++ b/lisp/ChangeLog Mon May 12 12:40:12 2008 +0000 @@ -1,3 +1,9 @@ +2008-05-12 Teodor Zlatanov <tzz@lifelogs.com> + + * mail/smtpmail.el: Add autoload for + `auth-source-user-or-password'. + (smtpmail-try-auth-methods): Use it. + 2008-05-12 Stefan Monnier <monnier@iro.umontreal.ca> * emacs-lisp/cl.el (cl-set-nthcdr): Make it a defsubst so that
--- a/lisp/mail/smtpmail.el Mon May 12 12:39:46 2008 +0000 +++ b/lisp/mail/smtpmail.el Mon May 12 12:40:12 2008 +0000 @@ -78,6 +78,9 @@ (autoload 'netrc-get "netrc") (autoload 'password-read "password-cache") +(eval-and-compile + (autoload 'auth-source-user-or-password "auth-source")) + ;;; (defgroup smtpmail nil "SMTP protocol for sending mail." @@ -539,17 +542,26 @@ (defun smtpmail-try-auth-methods (process supported-extensions host port) (let* ((mechs (cdr-safe (assoc 'auth supported-extensions))) (mech (car (smtpmail-intersection smtpmail-auth-supported mechs))) - (cred (if (stringp smtpmail-auth-credentials) - (let* ((netrc (netrc-parse smtpmail-auth-credentials)) - (port-name (format "%s" (or port "smtp"))) - (hostentry (netrc-machine netrc host port-name - port-name))) - (when hostentry - (list host port - (netrc-get hostentry "login") - (netrc-get hostentry "password")))) - (smtpmail-find-credentials - smtpmail-auth-credentials host port))) + (auth-user (auth-source-user-or-password + "login" host (or port "smtp"))) + (auth-pass (auth-source-user-or-password + "password" host (or port "smtp"))) + (cred (if (and auth-user auth-pass) ; try user-auth-* before netrc-* + (list host port auth-user auth-pass) + ;; else, if auth-source didn't return them... + (if (stringp smtpmail-auth-credentials) + (let* ((netrc (netrc-parse smtpmail-auth-credentials)) + (port-name (format "%s" (or port "smtp"))) + (hostentry (netrc-machine netrc host port-name + port-name))) + (when hostentry + (list host port + (netrc-get hostentry "login") + (netrc-get hostentry "password")))) + ;; else, try smtpmail-find-credentials since + ;; smtpmail-auth-credentials is not a string + (smtpmail-find-credentials + smtpmail-auth-credentials host port)))) (prompt (when cred (format "SMTP password for %s:%s: " (smtpmail-cred-server cred) (smtpmail-cred-port cred))))