[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]