Changeset 3305
- Timestamp:
- 06/24/08 08:14:42 (7 months ago)
- Files:
-
- trunk/projects/lisp-ecoop/src/mail.lisp (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/projects/lisp-ecoop/src/mail.lisp
r2788 r3305 11 11 (setf mail-address embedded-mail-address)) 12 12 mail-address)) 13 14 (defun maybe-encode-qp (string &optional (external-format (flex:make-external-format :utf-8))) 15 (if (find-if (lambda (char) (< 127 (char-code char))) string) 16 (with-output-to-string (s) 17 (format s "=?~A?Q?" (flex:external-format-name external-format)) 18 (loop for char across string 19 do (if (< 127 (char-code char)) 20 (loop for byte across (flex:string-to-octets (make-string 1 :initial-element char) 21 :external-format external-format) 22 do (format s "=~2,'0X" byte)) 23 (write-char char s))) 24 (format s "?=")) 25 string)) 13 26 14 27 (defmethod user-send-mail ((user user) … … 25 38 (format smtp "Date: ~A~%" (format-date-time (get-universal-time) :mail-style t)) 26 39 (format smtp "From: ~A~%" from) 27 (format smtp "To: ~A <~A>~%" ( user-full-name user) (user-email user))40 (format smtp "To: ~A <~A>~%" (maybe-encode-qp (user-full-name user)) (user-email user)) 28 41 (when cc 29 42 (format smtp "Cc: ~A~%" cc)) 30 (format smtp "Subject: ~A~%" subject)43 (format smtp "Subject: ~A~%" (maybe-encode-qp subject)) 31 44 (format smtp "Content-Type: ~A; charset=utf-8~%" content-type) 32 45 (format smtp "X-Mailer: BKNR Mail Version 1.1~%")
