.TH s/qmail: qmail-send 8 .SH NAME qmail-send \- deliver mail messages from the queue .SH SYNOPSIS .B qmail-send .SH DESCRIPTION .B qmail-send handles messages placed into the outgoing queue by .BR qmail-queue . It uses .B qmail-lspawn to deliver messages to local recipients and .B qmail-rspawn to deliver messages to remote recipients. If a message is temporarily undeliverable to one or more addresses, .B qmail-send leaves it in the queue and tries the addresses again later. .B qmail-send prints a readable record of its activities to descriptor 0. It writes commands to .BR qmail-lspawn , .BR qmail-rspawn , and .B qmail-clean on descriptors 1, 3, and 5, and reads responses from descriptors 2, 4, and 6. Communication with .B qmail-todo is based on decriptors 7 and 8. .B qmail-send is responsible for avoiding deadlock. If .B qmail-send receives a TERM signal, it will exit cleanly, after waiting (possibly more than a minute) for current delivery attempts to finish. If .B qmail-send receives an ALRM signal, it will reschedule every message in the queue for immediate delivery. .SH "CONTROL FILES" .B WARNING: .B qmail-send reads its control files only when it starts. If you change the control files, you must stop and restart .BR qmail-send . Exception: If .B qmail-send receives a HUP signal, it will reread .IR locals , .IR virtualdomains , as well as .IR concurrencylocal , .IR concurrencyremote , and in addition .IR queuelifetime . .TP 5 .I bouncefrom Bounce username. Default: .BR MAILER-DAEMON . .TP 5 .I bouncehost Bounce host. Default: .IR me , if that is supplied; otherwise the literal name .BR bouncehost , which is probably not what you want. If a message is permanently undeliverable, .B qmail-send sends a .B single-bounce notice back to the message's envelope sender. The notice is .B From: \fIbouncefrom\fB@\fIbouncehost\fR, although its envelope sender is empty. .TP 5 .I bouncemaxbytes Maximum size (in bytes) of bounce messages. Bounce messages exceeding this limit will be truncated. Default is 0; which means no limit. .TP 5 .I concurrencylocal Maximum number of simultaneous local delivery attempts. Default: 10. If 0, local deliveries will be put on hold. .I concurrencylocal is limited at compile time to SPAWN. .TP 5 .I concurrencyremote Maximum number of simultaneous remote delivery attempts. Default: 20. If 0, remote deliveries will be put on hold. .I concurrencyremote is limited at compile time to SPAWN. .TP 5 .I doublebouncehost Double-bounce host. Default: .IR me , if that is supplied; otherwise the literal name .BR doublebouncehost , which is probably not what you want. .TP 5 .I doublebounceto User to receive double-bounces. Default: .BR postmaster . If a single-bounce notice is permanently undeliverable, .B qmail-send sends a .B double-bounce notice to .IR doublebounceto\fB@\fIdoublebouncehost . (If that bounces, .B qmail-send gives up.) As a special case, if the first line of .IR doublebounceto contains a '@' or an empty line .B qmail-send will discard all double-bounces. .TP 5 .I envnoathost Presumed domain name for addresses without @ signs. Default: .IR me , if that is supplied; otherwise the literal name .BR envnoathost , which is probably not what you want. If .B qmail-send sees an envelope recipient address without an @ sign, it appends .B @\fIenvnoathost\fR. .TP 5 .I locals List of domain names that the current host receives mail for, one per line. Default: .IR me , if that is supplied; otherwise .B qmail-send refuses to run. An address .I user@domain is considered local if .I domain is listed in .IR locals . .TP 5 .I percenthack List of domain names where the percent hack is applied. If .I domain is listed in .IR percenthack , any address of the form .I user%fqdn@domain is rewritten as .IR user@fqdn . .I user may contain %, so the percent hack may be applied repeatedly. .B qmail-send handles .I percenthack before .IR locals . .TP 5 .I queuelifetime Number of seconds a message can stay in the queue. Default: 604800 (one week). After this time expires, .B qmail-send will try the message once more, but it will treat any temporary delivery failures as permanent failures. .TP 5 .I virtualdomains List of virtual users or domains, one per line. A virtual user has the form .IR user\fB@\fIdomain\fB:\fIprepend , without any extra spaces. When .B qmail-send sees the recipient address .IR user\fB@\fIdomain , it converts it to .I prepend\fB-\fIuser\fB@\fIdomain and treats it as local. A virtual domain has the form .IR domain\fB:\fIprepend . It applies to any recipient address at .IR domain . For example, if .EX nowhere.mil:joeBREAKfoo .EE is in .IR virtualdomains , and a message arrives for .BR info@nowhere.mil , .B qmail-send will rewrite the recipient address as .B joeBREAKfoo-info@nowhere.mil and deliver the message locally. .I virtualdomains may contain wildcards: .EX .fax:uucpBREAKfax :aliasBREAKcatchall .nowhere.mil:joeBREAKfoo-host .EE .I virtualdomains may also contain exceptions: an empty .I prepend means that .I domain is not a virtual domain. .B qmail-send handles .I virtualdomains after .IR locals : if a domain is listed in .IR locals , .I virtualdomains does not apply. .SH "SEE ALSO" nice(1), addresses(5), envelopes(5), qmail-control(5), qmail-log(5), qmail-todo(8), qmail-queue(8), qmail-clean(8), qmail-lspawn(8), qmail-rspawn(8)