Changeset 2855
- Timestamp:
- 04/03/08 06:15:06 (8 months ago)
- Files:
-
- trunk/thirdparty/cl-smtp/CHANGELOG (modified) (1 diff)
- trunk/thirdparty/cl-smtp/cl-smtp.asd (modified) (1 diff)
- trunk/thirdparty/cl-smtp/cl-smtp.lisp (modified) (2 diffs)
- trunk/thirdparty/cl-smtp/package.lisp (modified) (2 diffs)
- trunk/thirdparty/cl-smtp/smtp-output-stream.lisp (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/thirdparty/cl-smtp/CHANGELOG
r2782 r2855 1 Version 20080202.1 2 2007.02.02 3 Added support for sending raw messages. (Hans Huebner) 4 Fixed STARTTLS so that an EHLO command is sent after STARTTLS. (Hans Huebner) 5 Changed Authentication functionality, the actual authentication method used is determined by looking at the advertised features of the SMTP server. (Hans Huebner) 6 Added non-ASCII character quoting in email headers (according to RFC2047). (Hans Huebner) 7 Added condition classes for error reporting. (Hans Huebner) 8 Change cl-smtp.lisp, cl-smtp.asd, CHANGELOG 9 Add smtp-output-stream.lisp 10 1 11 Version 20071113.1 2 12 2007.11.13 trunk/thirdparty/cl-smtp/cl-smtp.asd
r2790 r2855 18 18 19 19 (asdf:defsystem :cl-smtp 20 :version "200 71113.1"20 :version "20080202.1" 21 21 :perform (load-op :after (op webpage) 22 22 (pushnew :cl-smtp cl:*features*)) 23 :depends-on (:usocket #-allegro :cl-base64 24 #-allegro :flexi-streams 25 #-allegro :cl+ssl) 23 :depends-on (:usocket 24 :trivial-gray-streams 25 :flexi-streams 26 #-allegro :cl-base64 27 #-allegro :cl+ssl) 26 28 :serial t 27 29 :components ((:file "package") trunk/thirdparty/cl-smtp/cl-smtp.lisp
r2792 r2855 88 88 89 89 (defun smtp-command (stream command expected-response-code 90 &key (condition-class 'smtp-error) condition-arguments) 90 &key (condition-class 'smtp-protocol-error) 91 condition-arguments) 91 92 (when command 92 93 (write-to-smtp stream command)) … … 237 238 (when (keywordp (car authentication)) 238 239 (pop authentication)) 239 (destructuring-bind (username password) authentication 240 (cond 241 ((member "AUTH PLAIN" features :test #'equal) 242 (smtp-command stream (format nil "AUTH PLAIN ~A" 243 (string-to-base64-string 244 (format nil "~A~C~A~C~A" 245 username 246 #\null username 247 #\null password))) 248 235)) 249 ((member "AUTH LOGIN" features :test #'equal) 250 (smtp-command stream "AUTH LOGIN" 251 334) 252 (smtp-command stream (string-to-base64-string username) 253 334) 254 (smtp-command stream (string-to-base64-string password) 255 235)) 256 (t 257 (error 'no-supported-authentication-method :features features))))) 240 (let ((server-authentication (loop for i in features 241 for e = (search "AUTH " i :test #'equal) 242 when (and e (= e 0)) 243 return i))) 244 (destructuring-bind (username password) authentication 245 (cond 246 ((search " PLAIN" server-authentication :test #'equal) 247 (smtp-command stream (format nil "AUTH PLAIN ~A" 248 (string-to-base64-string 249 (format nil "~A~C~A~C~A" 250 username 251 #\null username 252 #\null password))) 253 235)) 254 ((search " LOGIN" server-authentication :test #'equal) 255 (smtp-command stream "AUTH LOGIN" 256 334) 257 (smtp-command stream (string-to-base64-string username) 258 334) 259 (smtp-command stream (string-to-base64-string password) 260 235)) 261 (t 262 (error 'no-supported-authentication-method :features features)))))) 258 263 259 264 (defun smtp-handshake (stream &key authentication ssl local-hostname) trunk/thirdparty/cl-smtp/package.lisp
r2790 r2855 1 1 ;;; -*- mode: Lisp -*- 2 2 3 3 ;;; This file is part of CL-SMTP, the Lisp SMTP Client 4 4 … … 23 23 (:export "SEND-EMAIL" 24 24 "WITH-SMTP-MAIL" 25 26 25 "SMTP-ERROR" 27 26 "SMTP-PROTOCOL-ERROR" trunk/thirdparty/cl-smtp/smtp-output-stream.lisp
r2792 r2855 76 76 do (format encapsulated-stream "=~2,'0X" byte)))) 77 77 (setf previous-char char)) 78 (when (eql char #\Newline)78 #+nil(when (eql char #\Newline) 79 79 (write-char #\Return encapsulated-stream)) 80 80 (unless (< 127 (char-code char))
