Emails are exchanged between servers using the Simple Mail Transport Protocol. 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 destination. Then the client sends the content of the message, and the server answers, whether the message is accepted for all previously accepted recipients or for none of them.
With this workflow it is not possible for a multi-recipient SMTP transaction to accept an 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 help.
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.
For understanding this manual the reader is expected to have general knowledge about the Simple Mail Transfer Protocol. The manual assumes that the reader knows the concepts of SMTP transaction, distinction between SMTP client and SMTP server, reply code, enhanced status code. The terms junk and spam are used interchangeably.