Clement is an e-mail server application.

The main function of this application is to block unwanted e-mail (spam) as soon as possible in the e-mail exchange process.

Clement's purpose is to accept or reject e-mail while the SMTP session, initiated by the e-mail sender, is still pending, accepting legitimate e-mails without the need to return an error status to a non-existent or "borrowed" return address later on.

Clement can operate in two modes; either the e-mail is taken into account locally and stored in the recipient’s own area or it can transmit the e-mail to another SMTP server (sendmail, postfix, exim, Exchange, et cetera). Each e-mail domain name clement knows about can be treated in one of these two modes, depending on the group to which the domain name has been set.

Each e-mail is verified by a virus scanner (ClamAV), while the SMTP connection is still open. At the same time, the actual sender is notified about the refusal of e-mail and the reason behind it.

E-mail management is done via a web interface and can be delegated to three administrative levels (Root-Admin, Group-Admin, Domain-Admin). A standard user on the other hand can access its own logs, (sent e-mail status, e-mail rejected, quarantined e-mail, et cetera). With this interface the user can handle the rejection and acceptance of any and all e-mail addressed to him/her.

Users who are level 'Admin' can access the session logs (via the web interface). These logs are extremely detailed and presented in context. Because of this the user will have all the information about one e-mail immediately.

Clement uses a SQL database (PostgreSQL, MySQL) to store and manage logs, user profiles and dynamic management of directives concerning the sender-receiver relationship.

Clement is licensed under GPL, the binary and source code can be downloaded freely.