MeTA1 is a message transfer agent that has been designed with these main topics in minds:
MeTA1 consists of five main modules of which only one runs
as root
:
mcp
:
the main control program is similar to inetd(8):
it starts all other MeTA1 modules and watches over their execution.
mcp runs as root in order to bind to port 25 and to change the
uid of the processes it starts.
smtps
:
the SMTP server receives e-mails.
smtpc
:
the SMTP client sends e-mails.
smar
:
the address resolver provides lookups in various maps including
DNS for mail routing.
qmgr
:
the queue manager controls the flow of e-mails through the SMTP
servers and clients.
All of these modules run persistently. smtps and smtpc make use of the statethreads library which provides a threading API well suited for Internet applications, smar and qmgr use the POSIX threads API.
The syntax of the MeTA1 configuration file is very simple and resembles C programs or the BIND 9 configuration files. A configuration file does not require any special layout, e.g., tabs or one option per line, but relies on braces and semicolons as structuring elements.
The first release of MeTA1 is intended to be used as a secure and efficient mail gateway. It offers features that are not available in sendmail 8 (or some other open source MTAs), however, it does not provide any builtin support for mail content modification, e.g., masquerading of addresses or changing (addition, removal) of headers. Those features are currently only available via the pmilter API.
Moreover, this version of MeTA1 does not come with a local delivery agent nor with a mail submission program. The documentation explains which programs can be used to perform these tasks and how other features that are not directly available can be implemented.
MeTA1 comes with a policy mail filter library (libpmilter) which offers similar features as libmilter known from sendmail 8. Two milter programs have been ported to the pmilter API and are available in the contrib directory.
(2009-01-06) The libpmilter library only provides hooks for a single pmilter, to interact with multiple milters a PMilter Multiplexor is needed. This has been implemented by Sergey Poznyakoff in his mailfromd software.
All aspects of MeTA1 (including installation, configuration, and operation) are documented in a single README file which is available in various formats (dvi, HTML, PostScript, PDF, and plain text) such that the user can select the most appropriate format for her needs. Additionally, a design document is separately available for background reading which also covers the implementation and many other aspects.
< MeTA1 + feedback (at) MeTA1 . org >
(sorry for the obfuscation,
replace (at)
with @
and remove the spaces)
Copyright 2020 © Claus Aßmann; all rights reserved.