Milter ( портманто от mail filter ) — это расширение широко используемых агентов пересылки почты с открытым исходным кодом (MTA) Sendmail и Postfix . Оно позволяет администраторам добавлять почтовые фильтры для фильтрации спама или вирусов в цепочке обработки почты. На языке искусства «milter» относится к протоколу и API, реализующим службу, в то время как «milter» стал относиться к приложению-фильтру, которое использует milter для предоставления службы.
До появления milter фильтр электронной почты обычно реализовывался как программа, которой MTA передавал сообщение после его полной доставки, удаляя большую часть информации о конверте сообщения. Затем эта программа могла анализировать заголовок и текст сообщения и принимать решение о принятии сообщения (т. е. возвращать статус «успешно» в MTA) или отклонении его (т. е. возвращать статус «не удалось» в MTA). Затем MTA регистрировал успешную доставку или возвращал отправителю сообщение об ошибке в зависимости от ситуации, а фильтр отвечал за доставку сообщения (в предполагаемые почтовые ящики как есть или измененные для удаления нежелательного контента или в определенные папки и т. д.).
MTA, поддерживающий milter, вместо этого уведомляет фильтры, к которым он подключен, о каждой фазе доставки сообщения, от начального клиентского соединения до завершения передачи. На каждой фазе сеанса SMTP фильтр получает данные о поступающем сообщении, а затем имеет возможность прекратить прием сообщения раньше, когда это уместно. Для очень больших сообщений это может иметь огромное влияние, когда решение об отклонении может быть принято как можно раньше. Более того, в отличие от предыдущей модели, MTA, поддерживающий milter, может подключаться к нескольким фильтрам параллельно, которые служат определенным целям, таким как антивирус, антиспам, аутентификация сообщений, регулирование потока и т. д. Наконец, такие фильтры могут выполнять специальные действия с сообщением: добавлять или удалять получателей в конверте; изменять тело перед доставкой; добавлять, изменять или удалять поля заголовка в сообщении и т. д.
Консорциум Sendmail включает в дистрибутив sendmail специальную потоковую библиотеку, которая предоставляет API milter .
Milter был впервые официально представлен в Sendmail 8.12.0, выпущенном 8 сентября 2001 года. [1] Milter был доступен в версиях sendmail 8.11.x как FFR (For Future Release/Beta code). Milter претерпел существенные улучшения с момента своего первого официального выпуска.
Поддержка Milter была добавлена в Postfix 2.3.0, выпущенный 12 июля 2006 года. [2] [3] Многие, но не все, milter-фильтры можно использовать с Postfix «из коробки».
Sendmail Consortium предоставляет документированный интерфейс прикладного программирования , который может использоваться для создания milter-ов для специальных нужд. Библиотека, предоставляемая Sendmail Consortium, основана на pthread . Однако документация по протоколу, используемому для связи между процессами sendmail и milter, не предоставляется. Этот внутренний протокол может быть изменен в новых версиях sendmail.