[PREVIOUS CHAPTER]
[NEXT CHAPTER]
3 Internal
3.1 SMTP library
FML can connect MTA (Mail Transport Agent) via SMTP (IPC).
libsmtp*.pl are SMTP libraries. The default port is 25/tcp.
You can control the port as $PORT.
$PORT
FML logs a session details in $SMTP_LOG.
$SMTP_LOG (default "var/log/_smtplog")
If you do not need th session log, set
$NOT_TRACE_SMTP
Which MTA in which hosts FML uses as a distributor? In default, $HOST
is "localhost" (ML server itself). You can use another host by
configuring $HOST.
$HOST = 'localhost'; (default)
$HOST = 'beth.foo.bar.ac.jp'; (another host)
You requires permission that you can use $HOST as a distributor since
you use the machine resources.
You can use MTA with another port (not 25/tcp). For example, 10025/tcp
$HOST = 'beth.foo.bar.ac.jp:10025';
3.2 Secondary SMTP Servers
If you can use several machines as delivery, you can set
@HOSTS = (machine-1.domain, machine-2.domain, machine-3.domain, ...);
to use machine-* parallelly. FML breaks out recipients up to
$MCI_SMTP_HOSTS groups. Mail to deliver is injected to each MTA on
$HOST and @HOSTS. If all connections to hosts fail, FML tries to send
mail with "sendmail" called as a command.
$SMTP_SENDER = 'elena-admin@fml.org';
3.4 On The Same Mx
In CHANGES-R5-R8 of Sendmail R8:
For example, if two sites ``foo.com'' and ``bar.com'' are both
served by UUNET, they will have the same set of MX hosts and will
be sent in one transaction. UUNET will then split the message
Sendmail 5.x requires ordering by domain:
fukachan@phys.titech.ac.jp
Elena@phys.titech.ac.jp
cocoa@phys.titech.ac.jp
3.5 MCI Cache
3.5 MCI Cache
Today sendmail 8.x has parallel connections and re-uses sockets.
Delivery acceleration codes is called MCI.
Please see deliver() in /usr/src/usr.sbin/sendmail/src/deliver.c.
WIDE-patched sendmail and smtpfeed has more and more elaborate
parallelism of resolver and SMTP connections.
Discussion On Delivery Efficiency
3.7 Blocking Stage Of Delivery Process
The cost of delivery depends on the cost of SMTP connections. To
accelerate each action e.g. DNS, SMTP sessions need to run parallelly
and simultaneously. For example it is good to use "smtpfeed" for
acceleration of delivery. qmail forks plural processes and run
simultaneously ;_;
The tuning of fml.pl codes cannot contribute the delivery acceleration
since delivery speeds are much slower than fml processing time scale.
To accelerate delivery, we can consider a few conditions:
1 plural MTA running on one host. fml.pl uses them simultaneously.
If the host is enough tough, it is O.K. It is the logic of qmail:)
2 uses plural MTA on different hosts.
This works even though hosts are delicate.
3 prepare relay servers, a variation of case 2.
This case assumes one smtp session transports a pack of
plural recipients e.g. one smtp session for a region.
FML prepares variables $MCI_* to use plural MTA for one article.
Today MTA rejects a relay against UCE(SPAM) illegal relay. If you use
relay server, you need to reconfigure MTA's on relay machines.
You can use $DEFAULT_RELAY_SERVER as a default relay server. fml.pl
sends mail to deliver to the default relay server. The server
delivers it.
$DEFAULT_RELAY_SERVER
http://www.qmail.org/
[PREVIOUS CHAPTER]
[NEXT CHAPTER]