
CL-SMTP is a simple lisp smtp client. 
It works in ACL, SBCL, CMUCL, OPENMCL, LISPWORKS and CLISP.

new with support for send attachments, thanks Brian Sorg for the implementation

with authentication support for PLAIN and LOGIN authentication method

used CL-BASE64 package

See INSTALL for prerequisites and build details.

To use cl-smtp:

(asdf:operate 'asdf:load-op 'cl-smtp)

------------------------------------------------

(cl-smtp:send-email host from to subject message
                    &key (port 25) cc bcc reply-to extra-headers authentication
                         attachments (buffer-size 256))

 Arguments:
  - host (String)                  : hostname or ip-adress of the smtpserver
  - from (String)                  : email adress 
  - to (String or Cons of Strings) : email adress 
  - subject (String)               : subject text
  - message (String)               : message body
  keywords:
  - cc (String or Cons of Strings) : email adress carbon copy
  - bcc (String or Cons of Strings): email adress blind carbon copy
  - reply-to (String)              : email adress
  - displayname (String)           : displayname of the sender
  - extra-headers (Cons)           : extra headers as alist
  - authentication (Cons)          : list with 3 elements
                                     (:method "username" "password")
                                     method is a keyword :plain or :login
  - attachments (String or Pathname: attachments to send
                Cons of String/Pathnames)
  - buffer-size (Number default 256): controls how much of a attachment file
                                      is read on each loop before encoding 
                                      and transmitting the contents, 
                                      the number is interpretted in KB  

Returns nil or error with message

For debug output set the parameter *debug* to t (default nil)
(setf cl-smtp::*debug* t)

CL-SMTP set automaticly the Date header and the X-Mailer header.
X-Mailer: cl-smtp ((lisp-implementation-type) (lisp-implementation-version))

You can change this with setting the parameter *x-mailer*
(setf cl-smtp::*x-mailer* "my x-mailer string)

If you find bugs or want to send patches for enhancements, by email to
Jan Idzikowski <jidzikowski@common-lisp.net>
