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

# envelopes(5)

sender/recipient lists attached to messages

## NAME

envelopes - sender/recipient lists attached to messages

## INTRODUCTION

Electronic mail messages are delivered in *envelopes*.

An envelope lists a *sender* and one or more *recipients*. Usually these envelope addresses are the same as the addresses listed in the message header:

```
   (envelope) from djb to root
   From: djb
   To: root
```

In more complicated situations, though, the envelope addresses may differ from the header addresses.

## ENVELOPE EXAMPLES

When a message is delivered to several people at different locations, it is first photocopied and placed into several envelopes:

```
   (envelope) from djb to root
   From: djb                          Copy #1 of message
   To: root, god@brl.mil
```

```
   (envelope) from djb to god@brl.mil
   From: djb                          Copy #2 of message
   To: root, god@brl.mil
```

When a message is delivered to several people at the same location, the sender doesn't have to photocopy it. He can instead stuff it into one envelope with several addresses; the recipients will make the photocopy:

```
   (envelope) from djb to god@brl.mil, angel@brl.mil
   From: djb
   To: god@brl.mil, angel@brl.mil, joe, frde
```

Bounced mail is sent back to the envelope sender address. The bounced mail doesn't list an envelope sender, so bounce loops are impossible:

```
   (envelope) from <> to djb
   From: MAILER-DAEMON
   To: djb
   Subject: unknown user frde
```

The recipient of a message may make another copy and forward it in a new envelope:

```
   (envelope) from djb to joe
   From: djb                          Original message
   To: joe
```

```
   (envelope) from joe to fred
   From: djb                          Forwarded message
   To: joe
```

A mailing list works almost the same way:

```
   (envelope) from djb to sos-list
   From: djb                          Original message
   To: sos-list
```

```
   (envelope) from sos-owner to god@brl.mil
   From: djb                          Forwarded message
   To: sos-list                       to recipient #1
```

```
   (envelope) from sos-owner to frde
   From: djb                          Forwarded message
   To: sos-list                       to recipient #2
```

Notice that the mailing list is set up to replace the envelope sender with something new, **sos-owner**. So bounces will come back to **sos-owner**:

```
   (envelope) from <> to sos-owner
   From: MAILER-DAEMON
   To: sos-owner
   Subject: unknown user frde
```

It's a good idea to set up an extra address, **sos-owner**, like this: the original envelope sender (**djb**) has no way to fix bad **sos-list** addresses, and of course bounces must not be sent to  **sos-list** itself.

## HOW ENVELOPE ADDRESSES ARE STORED

Envelope sender and envelope recipient addresses are transmitted and recorded in several ways.

When a user injects mail through **qmail-inject**, he can supply a **Return-Path** line or a **-f** option for the envelope sender; by default the envelope sender is his login name. The envelope recipient addresses can be taken from the command line or from various header fields, depending on the options to **qmail-inject**. Similar comments apply to **sendmail**.

When a message is transferred from one machine to another through SMTP, the envelope sender is given in a **MAIL FROM** command, the envelope recipients are given in  **RCPT TO** commands, and the message is supplied separately by a  **DATA** command.

When a message is delivered by **qmail** to a single local recipient, **qmail-local** records the recipient in **Delivered-To** and the envelope sender in **Return-Path**. It uses **Delivered-To** to detect mail forwarding loops.

**sendmail** normally records the envelope sender in **Return-Path**. It does not record envelope recipient addresses, on the theory that they are redundant: you received the mail, so you must have been one of the envelope recipients.

Note that, if the header doesn't have any recipient addresses, **sendmail** will move envelope recipient addresses back into the header. This situation occurs if all addresses were originally listed as **Bcc**, since **Bcc** is automatically removed. When **sendmail** sees this, it creates a new **Apparently-To** header field with the envelope recipient addresses. This has the strange effect that each blind-carbon-copy recipient will see a list of all recipients on the same machine.

When a message is stored in **mbox** format, the envelope sender is recorded at the top of the message as a UUCP-style **From** (no colon) line. Note that this line is less reliable than the **Return-Path** line added by **qmail-local** or **sendmail.**

## SEE ALSO

[qmail-header(5)](/qmail-header/5.md), [qmail-local(8)](/qmail-local/8.md), [qmail-inject(8)](/qmail-inject/8.md)
