SMTPFEED(8)

NAME

smtpfeed - SMTP Fast Exploding External Deliverer

SYNOPSIS

smtpfeed [-1] [-2] [-5] [-A] [-a alias] [-b bufsize] [-c name] [-d debugopt] [-E] [-F] [-F -F] [-g pgateway] [-h] [-i queue-id] [-I queue-id] [-l facility] [-M mapfile] [-m fallback-mx] [-N domain] [-n num] [-o source-addr] [-p source-port] [-q num] [-r num] [-R num] [-S pattern] [-s size] [-t category=value] [-u] [-V] [-x] [-y] [-z]

DESCRIPTION

This manual page documents the smtpfeed command, an LMTP-speaking mail delivery agent (MDA) dedicated to mass mail delivery, i.e., the delivery of mails via SMTP, addressed to large number of recipients. So smtpfeed is effective for delivery of large mailing lists. smtpfeed is spawned by a mail transfer agent (MTA) like Sendmail or Postfix, receives the mail and recipients via LMTP on stdin/stdout and performs SMTP delivery by first processing DNS queries in parallel, followed by parallel processing of SMTP deliveries. smtpfeed can not deliver huge messages because it stores all information (includes message data) in memory.

OPTIONS

A description of the available command options are included below.

-1  Disable SMTP piggybacking (equivalent to -R1).

-2  Disable piggybacking among domains (separated delivery per domain).

-5  If smtpfeed works only with IPv4 (IPv6) protocol (see option -N), and if peer host has only AAAA (A) RRs in DNS, message will not be bounced back with "Host not found" error, and fallback MX (option -m) will be used.

-A  Try T_ANY DNS query first to get MX list.

-a alias
    Specify this host's alias name, which is used to check MX list.

-b bufsize
    Specify TCP send buffer size.

-c name
    Specify official full-qualified domain name (FQDN) of this host, which is used in SMTP HELO command.

-d debugopt
    Specify debug options. Possible values for debugopt are one or more of the following: A: all, a: address, c: connection, e: event, h: hash, l: LMTP, m: map, n: DNS, s: SMTP, t: transaction, u: resource usage, D: no delivery, Q: DNS query only.

-E  Get queue-id information from Received: header.

-F  Insert recipient information on Received: header line if number of recipients for an SMTP transaction is only one (see also option -1).

-F -F
    Modify envelope sender address like "SenderUser+RcptUser=RcptDomain@SenderDomain" when -1 option is specified. If you want to use this feature, configure your mail server to receive such addresses. Note: this modification will not be done when envelope sender is "<>". See also option -S.

-g pgateway
    Protocol gateway host (Default: not defined). Option -5 must be specified at the same time. Option -N4 or -N6 must also be specified at the same time if compiled with -DINET6. If -N4 is specified (or compiled without -DINET6), if an MX has IPv6 addresses, pgateway will be used as first MX. This feature will be useful when delivery via pgateway with fat IPv6 network is faster than direct delivery with narrow IPv4 network. If -N6 is specified, pgateway will be used if an MX has IPv4 addresses, conversely.

-h  Show help message.

-i queue-id
    The queue-id as generated by the MTA - just for logging purposes. (macro name for queue-id in sendmail.cf is $i.)

-I queue-id
    Equivalent to option -i, but no purge on SMTP RSET command.

-l facility
    Specify syslog(3) logging facility (default is "local5").

-M mapfile
    Path of host map file (Default: not defined). Syntax of map file is: "DOMAIN DEST1:DEST2:... # comments" where DOMAIN can be "domain" (exact matching) or ".domain" (substring matching) and DEST can be "hostname" (MX for hostname), "[hostname]" (A for hostname), "[IPaddress]" (IP address), "MX" (MX for domain part of a mail address), "MX?" (same as MX (skip to following dest. even under DNS lookup failure), "A" (A for domain part of a mail address), "=alias" (MX for an aliased mail address).

-m fallback-mx
    Fallback MX host.

-N domain
    Specify network domain. Possible .I domain specifiers are: 4: use IPv4 only, 6: use IPv6 only, B: use both of IPv4/IPv6 at random, B4: IPv4 then IPv6, B6: IPv6 then IPv4.

-n num
    Specify maximum number of available sockets for use. (Default: FD_SETSIZE-1).

-o source-addr
    Source TCP/IP address for outgoing SMTP connections. (Default: an appropriate address will be dynamically assigned.)

-p source-port
    Source TCP/IP port for outgoing SMTP connections. (Default: a free port will be dynamically assigned.)

-q num
    Maximum DNS query concurrency. (Default: 50)

-R num
    Specify maximum number of recipients in a single SMTP transaction. (Default: 100)

-r num
    Specify minimum number of recipients required for an SMTP transaction. (Default: 1)

-S pattern
    Format to be used at envelope sender address conversion when -F -F option specified. (Default: <%s+%s=%s@%s>)

-s size
    Specify maximum message size. (Default: unlimited)

-t category=value
    Set communication timeouts. Numbers followed by 's' means 'in seconds', by 'm' means
     'in minutes' and by 'h' means 'in hours'. default is 'm'. Values for category are: "total" (total processing limit (55m), it will be take "total + quit"), "connect" (till TCP connection establishment (5m)), "greet" (till get SMTP greeting message (5m)), "helo" (till get response for HELO (5m)), "mail" (till get response for MAIL (10m)), "rcpt" (till get response for RCPT (60m)), "data" (till get response for DATA (5m)), "body" (till send next datablock (20m)), "term" (till get response for DATA termination (60m)), "cache" (for idle SMTP connection (5m)), "rset" (till get response for RSET (5m)), "quit" (till get response for QUIT (2m)).

-u  Reuse SMTP connection for other MX. (default: off)

-V  Force to insert version number in Received: line.

-x  No error even if MX RRs point to absent A/AAAA RRs.

-y  Refer to DNS A RR if this host is the first MX.

-z  Disable SMTP pipelining.

AUTHOR

This manual page was written by Ralf S. Engelschall <rse@engelschall.com> for the OpenPKG smtpfeed package.