| 1 | .TH qmail-command 8 |
| 2 | .SH NAME |
| 3 | qmail-command \- user-specified mail delivery program |
| 4 | .SH SYNOPSIS |
| 5 | in |
| 6 | .BR .qmail\fIext : |
| 7 | .B |\fIcommand |
| 8 | .SH DESCRIPTION |
| 9 | .B qmail-local |
| 10 | will, upon your request, |
| 11 | feed each incoming mail message through a program of your choice. |
| 12 | |
| 13 | When a mail message arrives, |
| 14 | .B qmail-local |
| 15 | runs |
| 16 | .B sh -c \fIcommand |
| 17 | in your home directory. |
| 18 | It makes the message available on |
| 19 | .IR command 's |
| 20 | standard input. |
| 21 | |
| 22 | .B WARNING: |
| 23 | The mail message does not begin with |
| 24 | .BR qmail-local 's |
| 25 | usual |
| 26 | .B Return-Path |
| 27 | and |
| 28 | .B Delivered-To |
| 29 | lines. |
| 30 | |
| 31 | Note that |
| 32 | .B qmail-local |
| 33 | uses the same file descriptor for every delivery |
| 34 | in your |
| 35 | .B .qmail |
| 36 | file, so it is not safe for |
| 37 | .I command |
| 38 | to fork a child that |
| 39 | reads the message in the background while the parent exits. |
| 40 | .SH "EXIT CODES" |
| 41 | .IR command 's |
| 42 | exit codes are interpreted as follows: |
| 43 | 0 means that the delivery was successful; |
| 44 | 99 means that the delivery was successful, |
| 45 | but that |
| 46 | .B qmail-local |
| 47 | should ignore all further delivery instructions; |
| 48 | 100 means that the delivery failed permanently (hard error); |
| 49 | 111 means that the delivery failed but should be tried again |
| 50 | in a little while (soft error). |
| 51 | |
| 52 | Currently 64, 65, 70, 76, 77, 78, and 112 are considered hard errors, |
| 53 | and all other codes are considered soft errors, |
| 54 | but |
| 55 | .I command |
| 56 | should avoid relying on this. |
| 57 | .SH "ENVIRONMENT VARIABLES" |
| 58 | .B qmail-local |
| 59 | supplies several useful environment variables to |
| 60 | .IR command . |
| 61 | .B WARNING: |
| 62 | These environment variables are not quoted. |
| 63 | They may contain special characters. |
| 64 | They are under the control of a possibly malicious remote user. |
| 65 | |
| 66 | .B SENDER |
| 67 | is the envelope sender address. |
| 68 | .B NEWSENDER |
| 69 | is the forwarding envelope sender address, |
| 70 | as described in |
| 71 | .BR dot-qmail(5) . |
| 72 | .B RECIPIENT |
| 73 | is the envelope recipient address, |
| 74 | .IR local@domain . |
| 75 | .B USER |
| 76 | is |
| 77 | .IR user . |
| 78 | .B HOME |
| 79 | is your home directory, |
| 80 | .IR homedir . |
| 81 | .B HOST |
| 82 | is the |
| 83 | .I domain |
| 84 | part of the recipient address. |
| 85 | .B LOCAL |
| 86 | is the |
| 87 | .I local |
| 88 | part. |
| 89 | .B EXT |
| 90 | is the |
| 91 | address extension, |
| 92 | .IR ext . |
| 93 | |
| 94 | .B HOST2 |
| 95 | is the portion of |
| 96 | .B HOST |
| 97 | preceding the last dot; |
| 98 | .B HOST3 |
| 99 | is the portion of |
| 100 | .B HOST |
| 101 | preceding the second-to-last dot; |
| 102 | .B HOST4 |
| 103 | is the portion of |
| 104 | .B HOST |
| 105 | preceding the third-to-last dot. |
| 106 | |
| 107 | .B EXT2 |
| 108 | is the portion of |
| 109 | .B EXT |
| 110 | following the first dash; |
| 111 | .B EXT3 |
| 112 | is the portion |
| 113 | following the second dash; |
| 114 | .B EXT4 |
| 115 | is the portion |
| 116 | following the third dash. |
| 117 | .B DEFAULT |
| 118 | is the portion |
| 119 | corresponding to the |
| 120 | .B default |
| 121 | part of the |
| 122 | .BR .qmail\- ... |
| 123 | file name; |
| 124 | .B DEFAULT |
| 125 | is not set if |
| 126 | the file name does not end with |
| 127 | .BR default . |
| 128 | |
| 129 | .B DTLINE |
| 130 | and |
| 131 | .B RPLINE |
| 132 | are the usual |
| 133 | .B Delivered-To |
| 134 | and |
| 135 | .B Return-Path |
| 136 | lines, |
| 137 | including newlines. |
| 138 | .B UFLINE |
| 139 | is the UUCP-style |
| 140 | .B From_ |
| 141 | line that |
| 142 | .B qmail-local |
| 143 | adds to |
| 144 | .IR mbox -format |
| 145 | files. |
| 146 | .SH "SEE ALSO" |
| 147 | dot-qmail(5), |
| 148 | envelopes(5), |
| 149 | qmail-local(8) |