mirror of
git://git.sv.gnu.org/emacs.git
synced 2025-12-07 15:00:34 -08:00
Make xoauth2 auth fail when a smtp server replies 334 (Bug#78366)
* lisp/mail/smtpmail.el (smtpmail-try-auth-method): Throw error 535
when receiving a "334 server challenge" reply.
(cherry picked from commit 53371c9594)
This commit is contained in:
parent
cd57a05542
commit
41f8dc18df
1 changed files with 15 additions and 5 deletions
|
|
@ -639,11 +639,21 @@ USER and PASSWORD should be non-nil."
|
|||
|
||||
(cl-defmethod smtpmail-try-auth-method
|
||||
(process (_mech (eql 'xoauth2)) user password)
|
||||
(smtpmail-command-or-throw
|
||||
process
|
||||
(concat "AUTH XOAUTH2 "
|
||||
(base64-encode-string
|
||||
(concat "user=" user "\1auth=Bearer " password "\1\1") t))))
|
||||
(let ((ret (smtpmail-command-or-throw
|
||||
process
|
||||
(concat "AUTH XOAUTH2 "
|
||||
(base64-encode-string
|
||||
(concat "user=" user "\1auth=Bearer " password "\1\1")
|
||||
t)))))
|
||||
(if (eq (car ret) 334)
|
||||
;; When a server returns 334 server challenge, it usually means
|
||||
;; the credentials it received were wrong (e.g. was an actual
|
||||
;; password instead of an access token). In such a case, we
|
||||
;; should return a string with 535 to indicate a failure so that
|
||||
;; smtpmail will try other authentication mechanisms. See also
|
||||
;; https://debbugs.gnu.org/78366.
|
||||
(throw 'done "535 5.7.8 Authentication credentials invalid")
|
||||
ret)))
|
||||
|
||||
(defun smtpmail-response-code (string)
|
||||
(when string
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue