|qmail-send(8)||System Manager's Manual||qmail-send(8)|
NAME¶qmail-send - deliver mail messages from the queue
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.
- Bounce username. Default: MAILER-DAEMON.
- 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.
- 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 120.
- 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 120.
- Double-bounce host. Default: me, if that is supplied; otherwise the literal name doublebouncehost, which is probably not what you want.
- 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.)
- 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.
- 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.
- 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.
- 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.
- List of virtual users or domains, one per line. A virtual user has the
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
is in virtualdomains, and a message arrives for email@example.com, qmail-send will rewrite the recipient address as firstname.lastname@example.org and deliver the message locally.
virtualdomains may contain wildcards:
.fax:uucp-fax :alias-catchall .nowhere.mil:joe-foo-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.