* New Makefile production to generate an RPM.
+* The `no received' option of 3.4 is gone. Instead, say `no envelope'.
+ This suppresses all attempts to extract an envelope address and route
+ based on it. If you set `no envelope' in the defaults entry it is possible
+ to undo that in individual entries by using `envelope <string>'.
+
bugs --
* Yet another fix to the password-shrouding logic.
else if (!strncasecmp("To:", line, 3))
to_offs = (line - headers);
- else if (ctl->server.received && env_offs == -1
+ else if (ctl->server.envelope != STRING_DISABLED && env_offs == -1
&& !strncasecmp(ctl->server.envelope,
line,
strlen(ctl->server.envelope)))
ctt_offs = (line - headers);
#ifdef HAVE_RES_SEARCH
- else if (ctl->server.received && MULTIDROP(ctl) && !received_for && !strncasecmp("Received:", line, 9))
+ else if (ctl->server.envelope != STRING_DISABLED && MULTIDROP(ctl) && !received_for && !strncasecmp("Received:", line, 9))
received_for = parse_received(ctl, line);
#endif /* HAVE_RES_SEARCH */
}
DEFAULT(ctl->rewrite, TRUE);
DEFAULT(ctl->stripcr, (ctl->mda != (char *)NULL));
DEFAULT(ctl->server.dns, TRUE);
- DEFAULT(ctl->server.received, TRUE);
#undef DEFAULT
/* plug in the semi-standard way of indicating a mail address */
printf(" DNS lookup for multidrop addresses is %sabled.\n",
ctl->server.dns ? "en" : "dis",
ctl->server.dns ? "off" : "on");
- printf(" Received-line parsing for envelope addresses is %sabled.\n",
- ctl->server.received ? "en" : "dis",
- ctl->server.received ? "off" : "on");
if (count > 1)
- printf(" Envelope header is assumed to be: %s\n", ctl->server.envelope);
+ if (ctl->server.envelope == STRING_DISABLED)
+ printf(" Envelope-address routing is disabled\n");
+ else
+ printf(" Envelope header is assumed to be: %s\n", ctl->server.envelope);
}
#ifdef linux
if (ctl->server.interface)
char *envelope;
int skip;
int dns;
- int received;
#ifdef linux
char *interface;
#define FALSE 0
#define TRUE 1
+
+#define STRING_DISABLED (char *)-1
rewrite
stripcr
dns
- received
no keep
no flush
no fetchall
no rewrite
no stripcr
no dns
- no received
+ no envelope
limit
batchlimit
fetchlimit
All options correspond to the obvious command-line arguments except
the following: `aka', `is', `to', `dns'/`no dns', `password',
\&`preconnect', `localdomains', `stripcr'/`no stripcr' and
-\&`received/no received'.
+\&`no received'.
.PP
The `is' or `to' keywords associate the following local (client)
name(s) (or server-name to client-name mappings separated by =) with
to the listener or MDA unaltered (local-name mappings are \fInot\fR
applied).
.PP
-If you are using `localdomains', you may also need to specify
-\&`no received', which disables \fIfetchmail\fR's normal attempt
-to deduce an envelope address from the Received line.
+If you are using `localdomains', you may also need to specify \&`no
+envelope', which disables \fIfetchmail\fR's normal attempt to deduce
+an envelope address from the Received line or X-Envelope-To header or
+whatever header has been previously set by `envelope'. If you set `no
+envelope' in the defaults entry it is possible to undo that in
+individual entries by using `envelope <string>'.
.PP
The \fBpassword\fR option requires a string argument, which is the password
to be used with the entry's server.
rewrite { return REWRITE; }
stripcr { return STRIPCR; }
dns { return DNS; }
-received { return RECEIVED; }
limit { return LIMIT; }
%token <proto> PROTO
%token <sval> STRING
%token <number> NUMBER
-%token NO KEEP FLUSH FETCHALL REWRITE STRIPCR DNS PORT RECEIVED
+%token NO KEEP FLUSH FETCHALL REWRITE STRIPCR DNS PORT
%%
#endif /* linux */
}
| DNS {current.server.dns = FLAG_TRUE;}
- | RECEIVED {current.server.received = FLAG_TRUE;}
| NO DNS {current.server.dns = FLAG_FALSE;}
- | NO RECEIVED {current.server.received = FLAG_FALSE;}
+ | NO ENVELOPE {current.server.envelope = STRING_DISABLED;}
;
/*
# rewrite
# stripcr
# dns
-# received
# no keep
# no flush
# no fetchall
# no rewrite
# no stripcr
# no dns
-# no received
+# no envelope
# limit -- must be followed by numeric size limit
# fetchlimit -- must be followed by numeric msg fetch limit
# batchlimit -- must be followed by numeric SMTP batch limit