We're an MUA and should not care for SMTP envelopes at all.
--enable-debug
Enable debugging support.
---enable-masquerade[='draft_from username_extension']
+--enable-masquerade[='username_extension']
If this option is disabled, the mts.conf file will contain the
line "masquerade: " (with no value), which may be manually edited
later. You may find it convenient to specify a value at
configure-time, however, so that each time mmh is reinstalled,
the right value will be there. By default, it is enabled.
- The above usage shows the default, with all two masquerade
- options being specified. Any subset of the two may be
- specified.
-
See the mh-tailor(5) man page for full documentation of "masquerade:".
--enable-mhe (DEFAULT)
dnl Allow users to send email from addresses other than their default?
AC_ARG_ENABLE(masquerade,
- AS_HELP_STRING([--enable-masquerade='draft_from username_extension'],
+ AS_HELP_STRING([--enable-masquerade='username_extension'],
[enable up to 3 types of address masquerading]),
[if test x"$enable_masquerade" = x"yes"; then
- masquerade="draft_from username_extension"
+ masquerade="username_extension"
else
masquerade="$enable_masquerade"
- fi], [masquerade="draft_from username_extension"])
+ fi], [masquerade="username_extension"])
AC_SUBST(masquerade)dnl
dnl Do you want mhe support?
#
# The following directive allows email address masquerading. The string
-# "draft_from username_extension" will allow all three types.
+# "username_extension" is the default.
masquerade: %masquerade%
.PP
.BR masquerade:
.RS 5
-This directive controls two different types of email address masquerading.
-The two possible values, which may be specified in any combination on the
-line, separated by spaces, are \*(lqdraft_from\*(rq and
-\*(lqusername_extension\*(rq.
+This directive controls email address masquerading.
+The possible value is \*(lqusername_extension\*(rq.
.PP
-\*(lqusername_extension\*(rq, when specified on the \*(lqmasquerade:\*(rq line, allows a second
-type of username masquerading. If the user sets the
+If specified and if the user sets the
.B $USERNAME_EXTENSION
environment variable, its value will be appended to the actual login name. For
instance, if I am \*(lqdan@company.com\*(rq, and I set
for instance, will not try to read from a maildrop file called \*(lqdan\-www\*(rq (to
recall the earlier example).
.PP
-\*(lqdraft_from\*(rq controls the most powerful type of address masquerading. Normally,
-when a user explicitly specifies a \*(lqFrom:\*(rq header in a draft,
+In any case:
+When a user explicitly specifies a \*(lqFrom:\*(rq header in a draft,
.B nmh
uses it
rather than constructing its own. However, to discourage email forgery, the
SMTP envelope \*(lqFrom:\*(rq and a \*(lqSender:\*(rq header are set to the user's real address.
-When \*(lqdraft_from\*(rq is turned on, though, the envelope \*(lqFrom:\*(rq will use the
-address specified in the draft, and there will be no \*(lqSender:\*(rq header. This is
-useful when a user wants to pretend to be sending mail \*(lqdirectly\*(rq from a remote
-POP3 account, or when remote mail robots incorrectly use the envelope \*(lqFrom:\*(rq in
-preference to the body \*(lqFrom:\*(rq (or refuse to take action when the two don't
-match). Note that the MTA may still reveal the user's real identity (e.g.
-.BR sendmail 's
-\*(lqX\-Authentication\-Warning:\*(rq header).
.RE
.PP
.BR maildelivery :
static char fullname[BUFSIZ];
/* Variables for username masquerading: */
-boolean draft_from_masquerading = FALSE;
boolean username_extension_masquerading = FALSE; /* " from addrsbr.c */
static char* masquerade = "";
fclose(fp);
}
- if (strstr(masquerade, "draft_from") != NULL)
- draft_from_masquerading = TRUE;
-
if (strstr(masquerade, "username_extension") != NULL)
username_extension_masquerading = TRUE;
}
extern char *getfullname(void);
extern char *getusername(void);
-extern boolean draft_from_masquerading; /* defined in mts.c */
-
/*
** static prototypes
*/
}
if (!(msgflags & MFRM)) {
fprintf(out, "%sFrom: %s\n", resentstr, signature);
- } else if (!draft_from_masquerading) {
- /*
- ** mts.conf didn't contain "masquerade:[...]draft_from[...]"
- ** so we'll reveal the user's actual account@thismachine
- ** address in a Sender: header (and use it as the envelope
- ** From: later).
- */
+ } else {
+ /* Add a Sender: header in case the From: header is fake. */
fprintf(out, "%sSender: %s\n", resentstr, from);
}
#ifdef notdef
if (!(msgflags & MFRM)) {
/* Construct a From: header. */
fprintf(out, "From: %s\n", signature);
- } else if (!draft_from_masquerading) {
- /*
- ** mts.conf didn't contain "masquerade:[...]draft_from[...]"
- ** so we'll reveal the user's actual account@thismachine
- ** address in a Sender: header (and use it as the envelope
- ** From: later).
- */
+ } else {
+ /* Add a Sender: header in case the From: header is fake. */
fprintf(out, "Sender: %s\n", from);
}
if (subject)