]> git.eshelyaron.com Git - emacs.git/commitdiff
(smtpmail-auth-supported): Added the 'plain auth method
authorSimon Josefsson <jas@extundo.com>
Sun, 17 Jul 2005 07:43:29 +0000 (07:43 +0000)
committerSimon Josefsson <jas@extundo.com>
Sun, 17 Jul 2005 07:43:29 +0000 (07:43 +0000)
(smtpmail-try-auth-methods): added the AUTH PLAIN dialog

lisp/ChangeLog
lisp/mail/smtpmail.el

index c91ec623ed3ba63bbef441ea041c14f6eed08f9f..31a034e54e9d7c3d51fc0cfb20265464bad415a4 100644 (file)
@@ -1,3 +1,9 @@
+2005-07-16  Jose E. Marchesi  <jemarch@gnu.org>
+
+       * lisp/mail/smtpmail.el (smtpmail-auth-supported): Added the
+       'plain auth method
+       (smtpmail-try-auth-methods): added the AUTH PLAIN dialog
+
 2005-07-17  Kim F. Storm  <storm@cua.dk>
 
        * ido.el (dired-other-window): Add ido property.
index 0c076011044c19a3c11cba6470137c93713d0c78..480062286e0795113ec6fdb12e54f2643f1cb141 100644 (file)
@@ -1,6 +1,6 @@
 ;;; smtpmail.el --- simple SMTP protocol (RFC 821) for sending mail
 
-;; Copyright (C) 1995, 1996, 2001, 2002, 2003, 2004
+;; Copyright (C) 1995, 1996, 2001, 2002, 2003, 2004, 2005
 ;;   Free Software Foundation, Inc.
 
 ;; Author: Tomoji Kagatani <kagatani@rbc.ncl.omron.co.jp>
@@ -207,7 +207,7 @@ This is relative to `smtpmail-queue-dir'.")
 (defvar smtpmail-queue-index (concat smtpmail-queue-dir
                                     smtpmail-queue-index-file))
 
-(defconst smtpmail-auth-supported '(cram-md5 login)
+(defconst smtpmail-auth-supported '(cram-md5 login plain)
   "List of supported SMTP AUTH mechanisms.")
 
 ;;;
@@ -559,8 +559,24 @@ This is relative to `smtpmail-queue-dir'.")
                (not (integerp (car ret)))
                (>= (car ret) 400))
            (throw 'done nil)))
+       ((eq mech 'plain)
+       (smtpmail-send-command process "AUTH PLAIN")
+       (if (or (null (car (setq ret (smtpmail-read-response process))))
+               (not (integerp (car ret)))
+               (not (equal (car ret) 334)))
+           (throw 'done nil))
+       (smtpmail-send-command process (base64-encode-string
+                                       (concat "\0"
+                                               (smtpmail-cred-user cred)
+                                               "\0"
+                                               (smtpmail-cred-passwd cred))))
+       (if (or (null (car (setq ret (smtpmail-read-response process))))
+               (not (integerp (car ret)))
+               (not (equal (car ret) 235)))
+           (throw 'done nil)))
+
        (t
-        (error "Mechanism %s not implemented" mech)))
+       (error "Mechanism %s not implemented" mech)))
       ;; Remember the password.
       (when (and (not (stringp smtpmail-auth-credentials))
                 (null (smtpmail-cred-passwd cred)))