This module provides a simple means to send E-mail from a Prolog application. Here is a simple example:
send_message(Out) :- format(Out, 'Hi Alice,\n\n', []), format(Out, 'Want to go out tonight?\n\n', []), format(Out, '\tCheers, Bob\n', []). ?- smtp_send_mail('alice@wonderland.com', send_message, [ subject('Tonight'), from('bob@wonderland.com') ]). This library currently supports good old SMTP, encrypted and authorized ESMTP. Both SSL/TLS and STARTTLS encryption is supported. Authorization is supported using =PLAIN= and =LOGIN= methods. Data is currently being sent using the =DATA= keyword. @tbd Support more advanced data transport extensions such as sending MIME messages.
smtp(+Host)
the name or ip address for smtp host, eg. swi-prolog.orgfrom(+FromAddress)
atomic identifies sender address. Provides the default
for header(from(From))
.date(+Date)
Set the date header. Default is to use the current time.subject(+Subject)
atomic: text for 'Subject:' email headerauth(User-Password)
authentication credentials, as atoms or strings.auth_method(+PlainOrLoginOrNone)
type of authentication. Default is default
, alternatives
are plain
and login
security(Security)
one of: none
, ssl
, tls
, starttls
content_type(+ContentType)
sets Content-Type
headermailed_by(By)
add X-Mailer: SWI-Prolog <version>, pack(smtp)
to header
iff By == trueheader(from('My name,
me@server.org'))
adds header "From: My name, my@server.org"
and header('FOO'(bar))
adds "FOO: bar"Defaults are provided by settings associated to this module.
Listens to debug(smtp)
which for instance reports failure to
connect, (computation fails as per non-debug execution).