Page
Library
Module
Module type
Parameter
Class
Class type
Source
colombe
is a little library which wants to implement the SMTP protocol according RFC5321. It is a low-level library used by some others projects to implements clients or servers.
The library does not handle properly an email. If you want to generate a proper email or introspect an email, you should be interested by mrmime.
The distribution provides sendmail
, sendmail.starttls
and sendmail-lwt
which are respectively:
STARTTLS
extensionDepending on your context:
*:465
), sendmail
with a scheduler such as LWT or ASYNC (or UNIX) should be use. sendmail-lwt
is a specialization with LWT.STARTTLS
extension, (like *:587
), sendmail.starttls
with a scheduler should be use.Of course, a client can be more complex and can handle:
If you are interested by that, you should look into facteur which wants to provide a little binary to send an email with a nice use between colombe
, mrmime
and some others MirageOS projects.
Of course, colombe
implements both sides. By this library, you are able to implement an SMTP server - if you are interested by that, you should look into ptt.
colombe
As we said, the library wants to be a low-level one. At least, the core does not handle properly eSMTP extensions or any high mechanisms such the authentication. It's mostly because the library wants to be used by a server implementation and a client implementation.
It only ensures a high abstracted interface on top of the low-level of the communication. The library defines only few parts of the SMTP protocol and a monadic interface to describe the state-machine while the communication with an other peer.
sendmail
is a good example about how to use colombe
. It describes structurally the SMTP protocol (only what it really needs) and the state machine to send an email.
RFC5321 describes the SMTP protocols and some mechanisms such as the Received:
field. The distribution provides a way to introspect Received:
fields (and can produce a graph of them) or generate them from a server configuration.
colombe
has received funding from the Next Generation Internet Initiative (NGI) within the framework of the DAPSI Project.