Emails are exchanged between servers with a protocol called Simple Mail Transport Protocol (SMTP). With SMTP the client first communicates which are the recipents of a message. The server tells for each recipient, whether it accepts emails for that destinatio. Then the client sends the content of the message, and the server answers, whether the message is accepted for all accepted recipients.

With this workflow it is not possible for a multi-recipient SMTP transaction to accept the email for some recipients and reject it for others. Some users might want to reject whatever suspicious emails they receive, rather than storing them in their Junk folder. Other users might want to have the suspicious mails in their junk folders. And a third group of users might want to deliver the message in their Junk folder, but draw the attention of the sender and, by rejecting the message at SMTP level, communicate to the sender that the message was delivered in the Junk folder. When a mail is sent to more than one of the above groups, what can the MTA server do to satisfy all wishes?

SMTP makes such use cases hard to handle. aegee-milter tries to solve this problem.

To the criticizers, stating that there is a prize for solving the shortcomings of SMTP, the answer is that one has to start somewhere, e.g. with email segmentation.



The source code is available from git, there are no tagged releases.

git clone git:// or git clone


The aegee-milter manual is available in the following formats:

Bugs and Community

The communication happens over the mailing list. Posting is allowed after subscribing over The latter link can be used also to leave the mailing list. Online archives are at

There is no bug tracking system.


The license is GPL 3.0.

The Milter API, extracted from Sendmail.