debian/rules: Use `git' potty wrapper.
[qmail] / envelopes.5
1 .TH envelopes 5
2 .SH "NAME"
3 envelopes \- sender/recipient lists attached to messages
4 .SH "INTRODUCTION"
5 Electronic mail messages are delivered in
6 .IR envelopes .
7
8 An envelope lists a
9 .I sender
10 and one or more
11 .IR recipients .
12 Usually these
13 envelope addresses are the same
14 as the addresses listed in the message header:
15
16 .EX
17 (envelope) from djb to root
18 .br
19 From: djb
20 .br
21 To: root
22 .EE
23
24 In more complicated situations, though,
25 the envelope addresses may differ from the header addresses.
26 .SH "ENVELOPE EXAMPLES"
27 When a message is delivered to
28 several people at different locations,
29 it is first photocopied
30 and placed into several envelopes:
31
32 .EX
33 (envelope) from djb to root
34 .br
35 From: djb Copy #1 of message
36 .br
37 To: root, god@brl.mil
38 .EE
39
40 .EX
41 (envelope) from djb to god@brl.mil
42 .br
43 From: djb Copy #2 of message
44 .br
45 To: root, god@brl.mil
46 .EE
47
48 When a message is delivered
49 to several people at the same location,
50 the sender doesn't have to photocopy it.
51 He can instead stuff it into
52 one envelope with several addresses;
53 the recipients will make the photocopy:
54
55 .EX
56 (envelope) from djb to god@brl.mil, angel@brl.mil
57 .br
58 From: djb
59 .br
60 To: god@brl.mil, angel@brl.mil, joe, frde
61 .EE
62
63 Bounced mail is sent back to the envelope sender address.
64 The bounced mail doesn't list an envelope sender,
65 so bounce loops are impossible:
66
67 .EX
68 (envelope) from <> to djb
69 .br
70 From: MAILER-DAEMON
71 .br
72 To: djb
73 .br
74 Subject: unknown user frde
75 .EE
76
77 The recipient of a message may make another copy
78 and forward it in a new envelope:
79
80 .EX
81 (envelope) from djb to joe
82 .br
83 From: djb Original message
84 .br
85 To: joe
86 .EE
87
88 .EX
89 (envelope) from joe to fred
90 .br
91 From: djb Forwarded message
92 .br
93 To: joe
94 .EE
95
96 A mailing list works almost the same way:
97
98 .EX
99 (envelope) from djb to sos-list
100 .br
101 From: djb Original message
102 .br
103 To: sos-list
104 .EE
105
106 .EX
107 (envelope) from sos-owner to god@brl.mil
108 .br
109 From: djb Forwarded message
110 .br
111 To: sos-list to recipient #1
112 .EE
113
114 .EX
115 (envelope) from sos-owner to frde
116 .br
117 From: djb Forwarded message
118 .br
119 To: sos-list to recipient #2
120 .EE
121
122 Notice that the mailing list is set up
123 to replace the envelope sender with something new,
124 .BR sos-owner .
125 So bounces will come back to
126 .BR sos-owner :
127
128 .EX
129 (envelope) from <> to sos-owner
130 .br
131 From: MAILER-DAEMON
132 .br
133 To: sos-owner
134 .br
135 Subject: unknown user frde
136 .EE
137
138 It's a good idea to set up an extra address,
139 .BR sos-owner ,
140 like this:
141 the original envelope sender (\fBdjb\fP)
142 has no way to fix bad
143 .B sos-list
144 addresses,
145 and of course bounces must not be sent to
146 .B sos-list
147 itself.
148 .SH "HOW ENVELOPE ADDRESSES ARE STORED"
149 Envelope sender and envelope recipient addresses
150 are transmitted and recorded in several ways.
151
152 When a user injects mail through
153 .BR qmail-inject ,
154 he can supply a
155 .B Return-Path
156 line or a
157 .B \-f
158 option for the envelope sender;
159 by default the envelope sender is his login name.
160 The envelope recipient addresses can be taken
161 from the command line or from various header fields,
162 depending on the options to
163 .BR qmail-inject .
164 Similar comments apply to
165 .BR sendmail .
166
167 When a message is transferred from one machine to another through SMTP,
168 the envelope sender is given in a
169 .B MAIL FROM
170 command,
171 the envelope recipients are given in
172 .B RCPT TO
173 commands,
174 and the message is supplied separately by a
175 .B DATA
176 command.
177
178 When a message is delivered by
179 .B qmail
180 to a single local recipient,
181 .B qmail-local
182 records the recipient in
183 .B Delivered-To
184 and the envelope sender in
185 .BR Return-Path .
186 It uses
187 .B Delivered-To
188 to detect mail forwarding loops.
189
190 .B sendmail
191 normally records the envelope sender in
192 .BR Return-Path .
193 It does not record envelope recipient addresses,
194 on the theory that they are redundant:
195 you received the mail,
196 so you must have been one of the envelope recipients.
197
198 Note that,
199 if the header doesn't have any recipient addresses,
200 .B sendmail
201 will move envelope recipient addresses back into the header.
202 This situation occurs if all addresses were originally listed as
203 .BR Bcc ,
204 since
205 .B Bcc
206 is automatically removed.
207 When
208 .B sendmail
209 sees this, it creates a new
210 .B Apparently-To
211 header field with the envelope recipient addresses.
212 This has the strange effect that each blind-carbon-copy recipient will see
213 a list of all recipients on the same machine.
214
215 When a message is stored in
216 .B mbox
217 format,
218 the envelope sender is recorded at the top of the message
219 as a UUCP-style
220 .B From
221 (no colon) line.
222 Note that this line is less reliable than the
223 .B Return-Path
224 line added by
225 .B qmail-local
226 or
227 .B sendmail\fP.
228 .SH "SEE ALSO"
229 qmail-header(5),
230 qmail-local(8),
231 qmail-inject(8)