The Return-Path: header
is intended to show the envelope address of the real sender as
opposed to the sender used for replying (the From:
and Reply-To: headers). In posting Usenet news,
for example, the Return-Path: shows
"news" and the
From: shows the address of the posting user. But
in general, Return-Path: should never be used for
replying to mail. It is intended to be used solely for notification
of delivery errors.
There must be only one Return-Path: header in any
mail message, and it should be placed there by the site performing
final delivery. This header should be declared in the configuration
file like this:
H?P?Return-Path: $g
The ?P? flag ensures that only delivery agents
that perform final delivery insert this header. Those delivery agents
are usually prog and local,
which usually contain an F=P delivery agent flag.
The $g macro ($g)
contains as its value the address of the sender relative to the
recipient.
Unfortunately, two circumstances can cause the
Return-Path: header to contain incorrect
information. First, the message might arrive at your site with this
header already there. If this happens, that wrong header will
normally not be replaced. You can, however, define H_ACHECK (Section 25.6.1.1) in conf.c and cause this
header to be replaced even if it is already in the message.
The second problem stems from the fact that final delivery might not
really be final. The local delivery agent program
might be something such as procmail(8), which
allows mail to appear to be locally delivered, while also allowing
users to run shell scripts that can forward their mail to another
site.
To minimize these problems, always declare the
Return-Path: header with the proper
?flags?
in the configuration file. Doing this ensures that it will be
inserted when legal and that the address your site places in it is
usually correct.