Files
tuend-work 18736081c6 a
2025-11-13 08:41:45 +07:00

104 lines
2.6 KiB
Perl

#!/bin/perl
# $Source: /sources/cvsrepos/majordomo/contrib/new-list,v $
# $Revision: 1.14 $
# $Date: 1996/12/09 16:50:45 $
# $Author: cwilson $
# $State: Exp $
#
# $Locker: $
# set our path explicitly
$ENV{'PATH'} = "/bin:/usr/bin:/usr/ucb";
# Read and execute the .cf file
$cf = $ENV{"MAJORDOMO_CF"} || "/etc/majordomo.cf";
if ($ARGV[0] eq "-C") {
$cf = $ARGV[1];
shift(@ARGV);
shift(@ARGV);
}
if (! -r $cf) {
die("$cf not readable; stopped");
}
require "$cf";
chdir($homedir) || die("Can't chdir(\"$homedir\"): $!");
unshift(@INC, $homedir);
require "majordomo.pl";
require "shlock.pl";
&ParseMailHeader(STDIN, *hdrs);
$reply_to = &RetMailAddr(*hdrs);
$reply_to = join(", ", &ParseAddrs($reply_to));
die("new-list: $reply_to is not a valid return address.\n")
if (! &valid_addr($reply_to));
$in_reply_to = $hdrs{"message-id"} . ", from " . $hdrs{"from"};
$list = $ARGV[0];
# Define all of the mailer properties:
# It is possible that one or both of $sendmail_command and $bounce_mailer
# are not defined, so we provide reasonable defaults.
$sendmail_command = "/usr/lib/sendmail"
unless defined $sendmail_command;
$bounce_mailer = "$sendmail_command -f\$sender -t"
unless defined $bounce_mailer;
$sender = "$list-approval";
$mailcmd = eval qq/"$bounce_mailer"/;
if (defined($isParent = open(MAIL, "|-"))) {
&do_exec_sendmail(split(' ', $mailcmd))
unless $isParent;
} else {
&abort("Failed to fork prior to mailer exec");
}
print MAIL <<"EOM";
To: $reply_to
Cc: $list-approval
From: $list-approval
Subject: Your mail to $list\@$whereami
In-Reply-To: $in_reply_to
Reply-To: $list-approval\@$whereami
This pre-recorded message is being sent in response to your recent
email to $list\@$whereami.
If you were trying to subscribe to the list, please send your request
to $whoami, not to $list\@$whereami.
This is a new list. Your message is being returned unsent, but please
hold on to it. After a few days, when the flood of subscription
requests has died down somewhat, the owner of the list will announce
that the list is "open for business"; you should resubmit your posting
then. This way, everybody who joins the list within the first few days
of its existence starts out on an even footing, and we don't end up
with every other message asking "what did I miss?".
Here's your original, unsent message:
EOM
;
foreach ("From", "To", "Cc", "Subject", "Date", "Message-ID") {
($hdr = $_) =~ tr/A-Z/a-z/;
if (defined($hdrs{$hdr})) {
print MAIL $_, ": ", $hdrs{$hdr}, "\n";
}
}
print MAIL "\n";
while (<STDIN>) {
print MAIL $_;
}
close(MAIL);
exit 0;