Index: emacs/lisp/mail/smtpmail.el
diff -c emacs/lisp/mail/smtpmail.el:1.75 emacs/lisp/mail/smtpmail.el:1.76
*** emacs/lisp/mail/smtpmail.el:1.75    Mon Jul  4 17:46:22 2005
--- emacs/lisp/mail/smtpmail.el Sun Jul 17 07:43:16 2005
***************
*** 1,6 ****
  ;;; smtpmail.el --- simple SMTP protocol (RFC 821) for sending mail
  
! ;; Copyright (C) 1995, 1996, 2001, 2002, 2003, 2004
  ;;   Free Software Foundation, Inc.
  
  ;; Author: Tomoji Kagatani <[EMAIL PROTECTED]>
--- 1,6 ----
  ;;; smtpmail.el --- simple SMTP protocol (RFC 821) for sending mail
  
! ;; Copyright (C) 1995, 1996, 2001, 2002, 2003, 2004, 2005
  ;;   Free Software Foundation, Inc.
  
  ;; Author: Tomoji Kagatani <[EMAIL PROTECTED]>
***************
*** 207,213 ****
  (defvar smtpmail-queue-index (concat smtpmail-queue-dir
                                     smtpmail-queue-index-file))
  
! (defconst smtpmail-auth-supported '(cram-md5 login)
    "List of supported SMTP AUTH mechanisms.")
  
  ;;;
--- 207,213 ----
  (defvar smtpmail-queue-index (concat smtpmail-queue-dir
                                     smtpmail-queue-index-file))
  
! (defconst smtpmail-auth-supported '(cram-md5 login plain)
    "List of supported SMTP AUTH mechanisms.")
  
  ;;;
***************
*** 559,566 ****
                (not (integerp (car ret)))
                (>= (car ret) 400))
            (throw 'done nil)))
         (t
!         (error "Mechanism %s not implemented" mech)))
        ;; Remember the password.
        (when (and (not (stringp smtpmail-auth-credentials))
                 (null (smtpmail-cred-passwd cred)))
--- 559,582 ----
                (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)))
        ;; Remember the password.
        (when (and (not (stringp smtpmail-auth-credentials))
                 (null (smtpmail-cred-passwd cred)))


_______________________________________________
Emacs-diffs mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/emacs-diffs

Reply via email to