diff options
| author | manuel <manuel@mausz.at> | 2013-02-04 00:08:53 +0100 |
|---|---|---|
| committer | manuel <manuel@mausz.at> | 2013-02-04 00:08:53 +0100 |
| commit | 69aec538b456402170dc723af417ba5c05389c32 (patch) | |
| tree | e6f34c543f17c6392447ea337b2e2868212424d1 /qmail-header.5 | |
| download | qmail-69aec538b456402170dc723af417ba5c05389c32.tar.gz qmail-69aec538b456402170dc723af417ba5c05389c32.tar.bz2 qmail-69aec538b456402170dc723af417ba5c05389c32.zip | |
qmail 1.03 import
Diffstat (limited to 'qmail-header.5')
| -rw-r--r-- | qmail-header.5 | 332 |
1 files changed, 332 insertions, 0 deletions
diff --git a/qmail-header.5 b/qmail-header.5 new file mode 100644 index 0000000..d90323a --- /dev/null +++ b/qmail-header.5 | |||
| @@ -0,0 +1,332 @@ | |||
| 1 | .TH qmail-header 5 | ||
| 2 | .SH NAME | ||
| 3 | qmail-header \- format of a mail message | ||
| 4 | .SH OVERVIEW | ||
| 5 | At the top of every mail message is a | ||
| 6 | highly structured | ||
| 7 | .BR header . | ||
| 8 | Many programs expect the header to carry certain information, | ||
| 9 | as described below. | ||
| 10 | The main function of | ||
| 11 | .B qmail-inject | ||
| 12 | is to make sure that each outgoing message has an appropriate header. | ||
| 13 | |||
| 14 | For more detailed information, see | ||
| 15 | .BR http://pobox.com/~djb/proto/immhf.html . | ||
| 16 | .SH "MESSAGE STRUCTURE" | ||
| 17 | A message contains a series of | ||
| 18 | .I header fields\fR, | ||
| 19 | a blank line, | ||
| 20 | and a | ||
| 21 | .IR body : | ||
| 22 | |||
| 23 | .EX | ||
| 24 | Received: (qmail-queue invoked by uid 666); | ||
| 25 | .br | ||
| 26 | 30 Jul 1996 11:54:54 -0000 | ||
| 27 | .br | ||
| 28 | From: djb@silverton.berkeley.edu (D. J. Bernstein) | ||
| 29 | .br | ||
| 30 | To: fred@silverton.berkeley.edu | ||
| 31 | .br | ||
| 32 | Date: 30 Jul 1996 11:54:54 -0000 | ||
| 33 | .br | ||
| 34 | Subject: Go, Bears! | ||
| 35 | .br | ||
| 36 | |||
| 37 | .br | ||
| 38 | I've got money on this one. How about you? | ||
| 39 | .br | ||
| 40 | |||
| 41 | .br | ||
| 42 | ---Dan (this is the third line of the body) | ||
| 43 | .EE | ||
| 44 | |||
| 45 | Each header field has a | ||
| 46 | .IR name , | ||
| 47 | a colon, | ||
| 48 | some | ||
| 49 | .IR contents , | ||
| 50 | and a newline: | ||
| 51 | |||
| 52 | .EX | ||
| 53 | Subject: Go, Bears! | ||
| 54 | .EE | ||
| 55 | |||
| 56 | The field contents may be folded across several lines. | ||
| 57 | Each line past the first must begin with a space or tab: | ||
| 58 | |||
| 59 | .EX | ||
| 60 | Received: (qmail-queue invoked by uid 666); | ||
| 61 | .br | ||
| 62 | 30 Jul 1996 11:54:54 -0000 | ||
| 63 | .EE | ||
| 64 | |||
| 65 | The field name must not contain spaces, tabs, or colons. | ||
| 66 | Also, an empty field name is illegal. | ||
| 67 | .B qmail-inject | ||
| 68 | does not allow field names with unprintable characters. | ||
| 69 | |||
| 70 | Case is irrelevant in field names: | ||
| 71 | .B subject | ||
| 72 | and | ||
| 73 | .B SUBJECT | ||
| 74 | and | ||
| 75 | .B SuBjEcT | ||
| 76 | have the same meaning. | ||
| 77 | .SH "ADDRESS LISTS" | ||
| 78 | Certain fields, such as | ||
| 79 | .BR To , | ||
| 80 | contain | ||
| 81 | .I address lists\fR. | ||
| 82 | |||
| 83 | An address list contains some number of | ||
| 84 | .I addresses | ||
| 85 | or | ||
| 86 | .I address groups\fR, | ||
| 87 | separated by commas: | ||
| 88 | |||
| 89 | .EX | ||
| 90 | a@b, c@d (Somebody), A Person <e@f>, | ||
| 91 | .br | ||
| 92 | random group: g@h, i@j;, k@l | ||
| 93 | .EE | ||
| 94 | |||
| 95 | An | ||
| 96 | .I address group | ||
| 97 | has some text, a colon, a list of addresses, | ||
| 98 | and a semicolon: | ||
| 99 | |||
| 100 | .EX | ||
| 101 | random group: g@h, i@j; | ||
| 102 | .EE | ||
| 103 | |||
| 104 | An address can appear in several forms. | ||
| 105 | The most common form is | ||
| 106 | .IR box@host . | ||
| 107 | |||
| 108 | Every address must include a host name. | ||
| 109 | If | ||
| 110 | .B qmail-inject | ||
| 111 | sees a lone box name | ||
| 112 | it adds the | ||
| 113 | .I default host name\fR. | ||
| 114 | |||
| 115 | All host names should be fully qualified. | ||
| 116 | .B qmail-inject | ||
| 117 | appends the | ||
| 118 | .I default domain name | ||
| 119 | to any name without dots: | ||
| 120 | |||
| 121 | .EX | ||
| 122 | djb@silverton -> djb@silverton.berkeley.edu | ||
| 123 | .EE | ||
| 124 | |||
| 125 | It appends the | ||
| 126 | .I plus domain name | ||
| 127 | to any name | ||
| 128 | that ends with a plus sign: | ||
| 129 | |||
| 130 | .EX | ||
| 131 | eric@mammoth.cs+ -> eric@mammoth.cs.berkeley.edu | ||
| 132 | .EE | ||
| 133 | |||
| 134 | A host name may be a dotted-decimal address: | ||
| 135 | |||
| 136 | .EX | ||
| 137 | djb@[128.32.183.163] | ||
| 138 | .EE | ||
| 139 | |||
| 140 | RFC 822 allows mailbox names inside angle brackets | ||
| 141 | to include | ||
| 142 | .I source routes\fR, | ||
| 143 | but | ||
| 144 | .B qmail-inject | ||
| 145 | strips all source routes out of addresses. | ||
| 146 | .SH "SENDER ADDRESSES" | ||
| 147 | .B qmail-inject | ||
| 148 | looks for sender address lists in the following fields: | ||
| 149 | .BR Sender , | ||
| 150 | .BR From , | ||
| 151 | .BR Reply-To , | ||
| 152 | .BR Return-Path , | ||
| 153 | .BR Return-Receipt-To , | ||
| 154 | .BR Errors-To , | ||
| 155 | .BR Resent-Sender , | ||
| 156 | .BR Resent-From , | ||
| 157 | .BR Resent-Reply-To . | ||
| 158 | |||
| 159 | If there is no | ||
| 160 | .B From | ||
| 161 | field, | ||
| 162 | .B qmail-inject | ||
| 163 | adds a new | ||
| 164 | .B From | ||
| 165 | field with the name of the user invoking | ||
| 166 | .B qmail-inject. | ||
| 167 | |||
| 168 | RFC 822 requires that certain sender fields contain | ||
| 169 | only a single address, but | ||
| 170 | .B qmail-inject | ||
| 171 | does not enforce this restriction. | ||
| 172 | .SH "RECIPIENT ADDRESSES" | ||
| 173 | .B qmail-inject | ||
| 174 | looks for recipient address lists in the following fields: | ||
| 175 | .BR To , | ||
| 176 | .BR Cc , | ||
| 177 | .BR Bcc , | ||
| 178 | .BR Apparently-To , | ||
| 179 | .BR Resent-To , | ||
| 180 | .BR Resent-Cc , | ||
| 181 | .BR Resent-Bcc . | ||
| 182 | |||
| 183 | Every message must contain at least one | ||
| 184 | .B To | ||
| 185 | or | ||
| 186 | .B Cc | ||
| 187 | or | ||
| 188 | .BR Bcc . | ||
| 189 | .B qmail-inject | ||
| 190 | deletes any | ||
| 191 | .B Bcc | ||
| 192 | field. | ||
| 193 | If there is no | ||
| 194 | .B To | ||
| 195 | or | ||
| 196 | .B Cc | ||
| 197 | field, | ||
| 198 | .B qmail-inject | ||
| 199 | adds a line | ||
| 200 | |||
| 201 | .EX | ||
| 202 | Cc: recipient list not shown: ; | ||
| 203 | .EE | ||
| 204 | |||
| 205 | This complies with RFC 822; | ||
| 206 | it also works around some strange | ||
| 207 | .B sendmail | ||
| 208 | behavior, in case the message is passed through | ||
| 209 | .B sendmail | ||
| 210 | on another machine. | ||
| 211 | .SH STAMPS | ||
| 212 | Every message must contain a | ||
| 213 | .B Date | ||
| 214 | field, with the date in a strict format defined by RFC 822. | ||
| 215 | If necessary | ||
| 216 | .B qmail-inject | ||
| 217 | creates a new | ||
| 218 | .B Date | ||
| 219 | field with the current date (in GMT). | ||
| 220 | |||
| 221 | Every message should contain a | ||
| 222 | .B Message-Id | ||
| 223 | field. | ||
| 224 | The field contents are a unique worldwide identifier for this message. | ||
| 225 | If necessary | ||
| 226 | .B qmail-inject | ||
| 227 | creates a new | ||
| 228 | .B Message-Id | ||
| 229 | field. | ||
| 230 | |||
| 231 | Another important field is | ||
| 232 | .BR Received . | ||
| 233 | Every time the message is sent from one system to another, | ||
| 234 | a new | ||
| 235 | .B Received | ||
| 236 | field is added to the top of the message. | ||
| 237 | .B qmail-inject | ||
| 238 | does not create any | ||
| 239 | .B Received | ||
| 240 | fields. | ||
| 241 | .SH "RESENT MESSAGES" | ||
| 242 | A message is | ||
| 243 | .I resent | ||
| 244 | if it contains any of the following fields: | ||
| 245 | .BR Resent-Sender , | ||
| 246 | .BR Resent-From , | ||
| 247 | .BR Resent-Reply-To , | ||
| 248 | .BR Resent-To , | ||
| 249 | .BR Resent-Cc , | ||
| 250 | .BR Resent-Bcc , | ||
| 251 | .BR Resent-Date , | ||
| 252 | .BR Resent-Message-ID . | ||
| 253 | |||
| 254 | If a message is resent, | ||
| 255 | .B qmail-inject | ||
| 256 | changes its behavior as follows. | ||
| 257 | |||
| 258 | It deletes any | ||
| 259 | .B Resent-Bcc | ||
| 260 | field (as well as any | ||
| 261 | .B Bcc | ||
| 262 | field); | ||
| 263 | if there are no | ||
| 264 | .B Resent-To | ||
| 265 | or | ||
| 266 | .B Resent-Cc | ||
| 267 | fields, | ||
| 268 | .B qmail-inject | ||
| 269 | adds an appropriate | ||
| 270 | .B Resent-Cc | ||
| 271 | line. | ||
| 272 | It does | ||
| 273 | .I not | ||
| 274 | add a | ||
| 275 | .B Cc | ||
| 276 | line, | ||
| 277 | even if neither | ||
| 278 | .B To | ||
| 279 | nor | ||
| 280 | .B Cc | ||
| 281 | is present. | ||
| 282 | |||
| 283 | If there is no | ||
| 284 | .B Resent-From | ||
| 285 | field, | ||
| 286 | .B qmail-inject | ||
| 287 | adds a new | ||
| 288 | .B Resent-From | ||
| 289 | field. | ||
| 290 | It does | ||
| 291 | .I not | ||
| 292 | add a new | ||
| 293 | .B From | ||
| 294 | field. | ||
| 295 | |||
| 296 | .B qmail-inject | ||
| 297 | adds | ||
| 298 | .B Resent-Date | ||
| 299 | if one is not already present; | ||
| 300 | same for | ||
| 301 | .BR Resent-Message-Id . | ||
| 302 | It does | ||
| 303 | .I not | ||
| 304 | add new | ||
| 305 | .B Date | ||
| 306 | or | ||
| 307 | .B Message-Id | ||
| 308 | fields. | ||
| 309 | .SH "OTHER FEATURES" | ||
| 310 | Addresses are separated by commas, not spaces. | ||
| 311 | When | ||
| 312 | .B qmail-inject | ||
| 313 | sees an illegal space, | ||
| 314 | it inserts a comma: | ||
| 315 | |||
| 316 | .EX | ||
| 317 | djb fred -> djb, fred | ||
| 318 | .EE | ||
| 319 | |||
| 320 | .B qmail-inject | ||
| 321 | removes all | ||
| 322 | .B Return-Path | ||
| 323 | header fields. | ||
| 324 | |||
| 325 | .B qmail-inject | ||
| 326 | also removes any | ||
| 327 | .B Content-Length | ||
| 328 | fields. | ||
| 329 | .SH "SEE ALSO" | ||
| 330 | addresses(5), | ||
| 331 | envelopes(5), | ||
| 332 | qmail-inject(8) | ||
