---
name: "qmail-command"
section: "8"
platform: "linux"
package: "qmail"
version: "1.06-6.2~deb10u1"
release: "Debian 10 (Buster)"
platforms: ["linux"]
url: "https://new.carta.tech/qmail-command"
---

# qmail-command(8)

user-specified mail delivery program

## NAME

qmail-command - user-specified mail delivery program

## SYNOPSIS

in **.qmail*ext***: **\|*command***

## DESCRIPTION

**qmail-local** will, upon your request, feed each incoming mail message through a program of your choice.

When a mail message arrives, **qmail-local** runs **sh -c *command*** in your home directory. It makes the message available on  *command*'s standard input.

**WARNING:** The mail message does not begin with **qmail-local**'s usual **Return-Path** and **Delivered-To** lines.

Note that **qmail-local** uses the same file descriptor for every delivery in your **.qmail** file, so it is not safe for *command* to fork a child that reads the message in the background while the parent exits.

## EXIT CODES

*command*'s exit codes are interpreted as follows: 0 means that the delivery was successful; 99 means that the delivery was successful, but that **qmail-local** should ignore all further delivery instructions; 100 means that the delivery failed permanently (hard error); 111 means that the delivery failed but should be tried again in a little while (soft error).

Currently 64, 65, 70, 76, 77, 78, and 112 are considered hard errors, and all other codes are considered soft errors, but *command* should avoid relying on this.

## ENVIRONMENT VARIABLES

**qmail-local** supplies several useful environment variables to *command*. **WARNING:** These environment variables are not quoted. They may contain special characters. They are under the control of a possibly malicious remote user.

**SENDER** is the envelope sender address. **NEWSENDER** is the forwarding envelope sender address, as described in **[dot-qmail(5)](/dot-qmail/5.md)**. **RECIPIENT** is the envelope recipient address, *local@domain*. **USER** is *user*. **HOME** is your home directory, *homedir*. **HOST** is the *domain* part of the recipient address. **LOCAL** is the *local* part. **EXT** is the address extension, *ext*.

**HOST2** is the portion of **HOST** preceding the last dot; **HOST3** is the portion of **HOST** preceding the second-to-last dot; **HOST4** is the portion of **HOST** preceding the third-to-last dot.

**EXT2** is the portion of **EXT** following the first dash; **EXT3** is the portion following the second dash; **EXT4** is the portion following the third dash. **DEFAULT** is the portion corresponding to the **default** part of the **.qmail-**... file name; **DEFAULT** is not set if the file name does not end with **default**.

**DTLINE** and **RPLINE** are the usual **Delivered-To** and **Return-Path** lines, including newlines. **UFLINE** is the UUCP-style **From\_** line that **qmail-local** adds to *mbox*-format files.

## SEE ALSO

[dot-qmail(5)](/dot-qmail/5.md), [envelopes(5)](/envelopes/5.md), [qmail-local(8)](/qmail-local/8.md)
