Manpages

NAME

qmail-send − deliver mail messages from the queue

SYNOPSIS

qmail-send

DESCRIPTION

qmail-send handles messages placed into the outgoing queue by qmail-queue. It uses qmail-lspawn to deliver messages to local recipients and qmail-rspawn to deliver messages to remote recipients. If a message is temporarily undeliverable to one or more addresses, qmail-send leaves it in the queue and tries the addresses again later.

qmail-send prints a readable record of its activities to descriptor 0. It writes commands to qmail-lspawn, qmail-rspawn, and qmail-clean on descriptors 1, 3, and 5, and reads responses from descriptors 2, 4, and 6. qmail-send is responsible for avoiding deadlock.

If qmail-send receives a TERM signal, it will exit cleanly, after waiting (possibly more than a minute) for current delivery attempts to finish.

If qmail-send receives an ALRM signal, it will reschedule every message in the queue for immediate delivery.

CONTROL FILES

WARNING: qmail-send reads its control files only when it starts. If you change the control files, you must stop and restart qmail-send. Exception: If qmail-send receives a HUP signal, it will reread locals and virtualdomains.
bouncefrom

Bounce username. Default: MAILER-DAEMON.

bouncehost

Bounce host. Default: me, if that is supplied; otherwise the literal name bouncehost, which is probably not what you want. If a message is permanently undeliverable, qmail-send sends a single-bounce notice back to the message’s envelope sender. The notice is From: bouncefrom@bouncehost, although its envelope sender is empty.

concurrencylocal

Maximum number of simultaneous local delivery attempts. Default: 10. If 0, local deliveries will be put on hold. concurrencylocal is limited at compile time to SPAWN.

concurrencyremote

Maximum number of simultaneous remote delivery attempts. Default: 20. If 0, remote deliveries will be put on hold. concurrencyremote is limited at compile time to SPAWN.

doublebouncehost

Double-bounce host. Default: me, if that is supplied; otherwise the literal name doublebouncehost, which is probably not what you want.

doublebounceto

User to receive double-bounces. Default: postmaster. If a single-bounce notice is permanently undeliverable, qmail-send sends a double-bounce notice to doublebounceto@doublebouncehost. (If that bounces, qmail-send gives up.)

envnoathost

Presumed domain name for addresses without @ signs. Default: me, if that is supplied; otherwise the literal name envnoathost, which is probably not what you want. If qmail-send sees an envelope recipient address without an @ sign, it appends @envnoathost.

locals

List of domain names that the current host receives mail for, one per line. Default: me, if that is supplied; otherwise qmail-send refuses to run. An address user@domain is considered local if domain is listed in locals.

percenthack

List of domain names where the percent hack is applied. If domain is listed in percenthack, any address of the form user%fqdn@domain is rewritten as user@fqdn. user may contain %, so the percent hack may be applied repeatedly. qmail-send handles percenthack before locals.

queuelifetime

Number of seconds a message can stay in the queue. Default: 604800 (one week). After this time expires, qmail-send will try the message once more, but it will treat any temporary delivery failures as permanent failures.

virtualdomains

List of virtual users or domains, one per line. A virtual user has the form user@domain:prepend, without any extra spaces. When qmail-send sees the recipient address user@domain, it converts it to prepend-user@domain and treats it as local.

A virtual domain has the form domain:prepend. It applies to any recipient address at domain. For example, if

     nowhere.mil:joeBREAKfoo

is in virtualdomains, and a message arrives for info [AT] nowhere.mil, qmail-send will rewrite the recipient address as joeBREAKfoo-info [AT] nowhere.mil and deliver the message locally.

virtualdomains may contain wildcards:

     .fax:uucpBREAKfax
     :aliasBREAKcatchall
     .nowhere.mil:joeBREAKfoo-host

virtualdomains may also contain exceptions: an empty prepend means that domain is not a virtual domain.

qmail-send handles virtualdomains after locals: if a domain is listed in locals, virtualdomains does not apply.

SEE ALSO

nice(1), addresses(5), envelopes(5), qmail-control(5), qmail-log(5), qmail-queue(8), qmail-clean(8), qmail-lspawn(8), qmail-rspawn(8)