]> git.eshelyaron.com Git - emacs.git/commitdiff
Allow direct choice of smtp authentication method
authorAndrew G Cohen <cohen@andy.bu.edu>
Sat, 29 Aug 2020 04:22:40 +0000 (12:22 +0800)
committerAndrew G Cohen <cohen@andy.bu.edu>
Sat, 29 Aug 2020 04:22:40 +0000 (12:22 +0800)
* lisp/mail/smtpmail.el (smtpmail-try-auth-methods): Let the
authorization credentials have an entry with key :smtp-auth containing
a preferred authentication mechanism.

lisp/mail/smtpmail.el

index 666395e0b9ef91b61faf572310d9dd6ab8475013..1786608dd67cee7b8c11fa28458e366f8bbd1b46 100644 (file)
@@ -512,8 +512,9 @@ for `smtpmail-try-auth-method'.")
        (if port
            (format "%s" port)
          "smtp"))
-  (let* ((mechs (cdr-safe (assoc 'auth supported-extensions)))
-        (mech (car (smtpmail-intersection mechs smtpmail-auth-supported)))
+  (let* ((mechs (smtpmail-intersection
+                 (cdr-safe (assoc 'auth supported-extensions))
+                 smtpmail-auth-supported))
         (auth-source-creation-prompts
           '((user  . "SMTP user name for %h: ")
             (secret . "SMTP password for %u@%h: ")))
@@ -526,6 +527,7 @@ for `smtpmail-try-auth-method'.")
                      :require (and ask-for-password
                                    '(:user :secret))
                      :create ask-for-password)))
+         (mech (or (plist-get auth-info :smtp-auth) (car mechs)))
          (user (plist-get auth-info :user))
          (password (plist-get auth-info :secret))
         (save-function (and ask-for-password