README 2.74 KB
Newer Older
Jan Idzikowski's avatar
Jan Idzikowski committed
1
2

CL-SMTP is a simple lisp smtp client. 
3
It works in ACL, SBCL, CMUCL, OPENMCL, LISPWORKS, CLISP and ECL.
Jan Idzikowski's avatar
Jan Idzikowski committed
4

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

with authentication support for PLAIN and LOGIN authentication method
8

9
10
and ssl support with cl+ssl package

11
used cl-base64 and usocket packages (cl-base64 isn't a requirement on ACL)
12

Jan Idzikowski's avatar
Jan Idzikowski committed
13
14
15
16
17
18
See INSTALL for prerequisites and build details.

To use cl-smtp:

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

19
20
------------------------------------------------

Jan Idzikowski's avatar
Jan Idzikowski committed
21
(cl-smtp:send-email host from to subject message
22
                    &key (port 25) cc bcc reply-to extra-headers html-message 
23
                    authentication attachments (buffer-size 256) ssl)
Jan Idzikowski's avatar
Jan Idzikowski committed
24
25
26
27

 Arguments:
  - host (String)                  : hostname or ip-adress of the smtpserver
  - from (String)                  : email adress 
Jan Idzikowski's avatar
Jan Idzikowski committed
28
  - to (String or List of Strings) : email adress 
Jan Idzikowski's avatar
Jan Idzikowski committed
29
30
31
  - subject (String)               : subject text
  - message (String)               : message body
  keywords:
Jan Idzikowski's avatar
Jan Idzikowski committed
32
33
  - cc (String or List of Strings) : email adress carbon copy
  - bcc (String or List of Strings): email adress blind carbon copy
Jan Idzikowski's avatar
Jan Idzikowski committed
34
  - reply-to (String)              : email adress
35
  - displayname (String)           : displayname of the sender
Jan Idzikowski's avatar
Jan Idzikowski committed
36
  - extra-headers (List)           : extra headers as alist
37
  - html-message (String)          : message body formatted with HTML tags
Jan Idzikowski's avatar
Jan Idzikowski committed
38
39
  - authentication (List)          : list with 2 or elements
                                     ([:method] "username" "password")
40
                                     method is a keyword :plain or :login
Jan Idzikowski's avatar
Jan Idzikowski committed
41
42
                                     If the method is not specified, the
                                     proper method is determined automatically.
43
  - attachments (String or Pathname: attachments to send
Jan Idzikowski's avatar
Jan Idzikowski committed
44
                List of String/Pathnames)
45
46
47
  - buffer-size (Number default 256): controls how much of a attachment file
                                      is read on each loop before encoding 
                                      and transmitting the contents, 
Jan Idzikowski's avatar
Jan Idzikowski committed
48
49
50
                                      the number is interpreted in KB 
  - ssl (or t :starttls :tls)       : if t or :STARTTLS: use the STARTTLS functionality
                                      if :TLS: use TLS directly
Jan Idzikowski's avatar
Jan Idzikowski committed
51
52
53
54
55
56
57
58
59
60
61
62
63

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
64
Jan Idzikowski <jidzikowski@common-lisp.net>