About nine months ago, when I first started using Majordomo, I quickly
realized moderated lists were easily circumvented (users could mail
directly to the outgoing list name) unless the list administrator took
some rather cumbersome steps to prevent users from easily doing this.
I figured the easiest way to fix the problem was to hide the outgoing
list name in the list's configuration file thereby making it invisible
to 'expn' commands on the SMTP port. I accomplished this by making a few
changes to "resend" and "config_parse.pl". The changes in resend allow
the outgoing list name to be absent, if there is an 'outgoing' list name
defined in the list's config file. The changes in "config_parse.pl" add
support for the 'outgoing' configuration variable. The easiest way to
implement this for a list (after the changes have been made) is to remove
the list's old configuration file (and maybe save it) and let Majordomo
recreate the config file (by sending a 'lists' command to Majordomo).
This adds the 'outgoing' text to the config file. Then setup the config
file as you normally would making sure to add an outgoing list name. And
finally, change the 'resend' line in the 'aliases' file so that the outgoing
list name does not appear.
The below changes were done to Majordomo 1.93 but also worked for 1.92.
There were two areas changed in "resend" and four small changes in
"config_parse.pl". I hope that this helps (and works for) everyone in
handling the hiding of outgoing list names for moderated lists. I would
appreciate your comments on your successes/failures in implementing these
changes.
In "config_parse.pl" near line 98 add the 'outgoing' lines between 'moderate'
and 'approve_passwd'.
-------------------------------------------------------------------------------
'moderate', 'no', # Is list moderated
'outgoing', '#!$list."-outgoing"',
# outgoing list name for moderated lists
'approve_passwd', '#!$list.".pass"',
-------------------------------------------------------------------------------
In "config_parse.pl" near line 221 add the 'outgoing' lines between 'moderate'
and 'approve_passwd'.
-------------------------------------------------------------------------------
'moderate',
"If yes, all postings to the list
must be approved by the moderator.",
'outgoing',
"Outgoing list name for moderated lists.",
'approve_passwd',
"Password to be used in the approved header
to allow posting to moderated list, or
to bypass resend checks.",
-------------------------------------------------------------------------------
In "config_parse.pl" near line 353 add the 'outgoing' line between 'moderate'
and 'approve_passwd'.
-------------------------------------------------------------------------------
'moderate', 'resend',
'outgoing', 'resend',
'approve_passwd', 'resend',
-------------------------------------------------------------------------------
In "config_parse.pl" near line 399 add the 'outgoing' line between 'moderate'
and 'approve_passwd'.
-------------------------------------------------------------------------------
'moderate', 'grab_bool',
'outgoing', 'grab_word',
'approve_passwd', 'grab_word',
-------------------------------------------------------------------------------
In "resend" near line 73 comment out '#' the three lines of the 'if'
statement between '$opt_l =' and '$opt_r ='.
-------------------------------------------------------------------------------
$opt_l =~ tr/A-Z/a-z/;
if ( ! @ARGV) {
die("resend: must specify outgoing list as last arg(s)");
}
$opt_r = "$opt_r@$opt_h" if ( defined($opt_r) );
-------------------------------------------------------------------------------
In "resend" near line 103 add the lines below between the '$opt_d =' and
the 'if (defined($opt_f)) {'.
-------------------------------------------------------------------------------
$opt_d = &cf_ck_bool($opt_l,"debug")
if &cf_ck_bool($opt_l,"debug");
$opt_o = $config_opts{$opt_l,"outgoing"}
if($config_opts{$opt_l,"outgoing"} ne '');
if ( ! @ARGV ) {
if ( ! defined($opt_o ) ) {
die("resend: must specify outgoing list as last arg(s)");
} else {
@ARGV = ($opt_o);
}
}
if (defined($opt_f)) {
$sendmail_sender = $opt_f;
} else {
$sendmail_sender = "$opt_l-request";
}
-------------------------------------------------------------------------------
EVERTON, ERIC L E.L.EVERTON@LaRC.NASA.GOV
Mail Stop 124 Communications and Networks Branch
15 Langley Boulevard Information Systems Division
NASA Langley Research Center Building 1268, Room 2041A
Hampton, VA 23681-0001 Phone +1 804 864-5778
Fax +1 804 864-7605
Follow-Ups:
|
|