anchor.diff:        (funcall thunk stream)
         (finish-smtp-mail stream))))
   
  -(defmacro with-smtp-mail ((stream-var host port from to &key authentication ssl local-hostname)
  +(defmacro with-smtp-mail ((stream-var host from to &key ssl (port (if (eq :tls ssl) 465 25)) authentication local-hostname)
                             &body body)
     "Encapsulate a SMTP MAIl conversation.  A connection to the SMTP
      server on HOST and PORT is established and a MAIL command is
  
positive.code: 			      256)
  	     :ssl ssl))
  
  (defun send-smtp (host from to subject message 
  		  &key (port 25) cc bcc reply-to extra-headers html-message 
  		  display-name authentication attachments buffer-size ssl
                    (local-hostname (usocket::get-host-name)))
    (with-smtp-mail (stream host port from (append to cc bcc)
                            :authentication authentication 
                            :ssl ssl
                            :local-hostname local-hostname)
  
negative.code:         (:tls
           ;; Plain SSL connection
           (convert-connection-to-ssl)
           (do-ehlo))
          ((nil)
           (do-ehlo))))
      (when authentication
        (smtp-authenticate stream authentication features)))
  