diff -u add_listuser.html.orig add_listuser.html
--- add_listuser.html.orig	2003-04-13 04:48:02.239997000 -0400
+++ add_listuser.html	2003-04-13 05:36:19.850005000 -0400
@@ -23,11 +23,12 @@
 								<tr>
 									<td>
 										<center><h3>##X014 ##A@##D</h3></center>
-										<form method="post" name="addlistusernow" action="##C/com/addlistusernow">
+										<form method="post" name="addlistusernow" action="/cgi-bin/confirmnewsubscriber.pl">
 											<table cellpadding="0" cellspacing="0" border="0">
+
 												<tr>
 													<td><b>##X013&nbsp;</b></td>
-													<td><input type="text" size="40" name="newu" maxlength="128"></td>
+													<td><textarea name="newu" rows="20" cols="50"></textarea></td>
 												</tr>
 											</table>
 											<input type="hidden" name="modu" value="##A">
diff -u en-us.orig en-us
--- en-us.orig	2003-04-13 04:55:17.020015000 -0400
+++ en-us	2003-04-13 04:56:37.500008000 -0400
@@ -11,8 +11,8 @@
 010 Forward Email Address should be of the form: <b>user@domain.com</b>.<br>Local Name should be of the form: <b>popaccount</b><p>for example:<br>Forward: <b>joe@domain.com</b><br>Local Name: <b>sales</b><br>All mail sent to <b>sales</b> will be forwarded to <b>joe@domain.com</b>
 011 Add List Moderator
 012 Add Moderator to mailing list
-013 Email Address:
-014 Add Subscriber to mailing list 
+013 Email Address(es):
+014 Add Subscriber(s) to mailing list 
 015 Add Mailing List
 016 Mailing List Name:
 017 List owner email address: 
diff -u confirmnewsubscriber.pl.orig confirmnewsubscriber.pl
--- confirmnewsubscriber.pl.orig	2003-04-13 06:39:28.000000000 -0400
+++ confirmnewsubscriber.pl	2003-04-13 06:05:37.739994000 -0400
@@ -0,0 +1,55 @@
+#!/usr/local/bin/perl
+
+# Author: Jeremy Kister - http://jeremy.kister.net./
+# Make sure over zealous list admins dont add people to their [spam] list w/o consent
+# coded outside of qmailadmin because of the authors [lack of] knowledge of C
+# v.2 - initial version + tiny mods
+
+use CGI qw(:standard);
+use Net::SMTP;
+
+my $q = new CGI;
+print $q->header(), $q->start_html();
+
+if( (my @subs=split /[\s\n]+/, $q->param('newu')) && (my $dstaddr=$q->param('modu')) &&
+    (my $dstdomain=$q->param('dom')) && (my $user=$q->param('user')) && (my $time=$q->param('time')) ){
+
+	my $smtp = Net::SMTP->new('localhost');
+	my $to = $dstaddr . "-subscribe\@" . $dstdomain;
+	my $number=0;
+	foreach my $sub (@subs){
+		$number++;
+		# make sure what we have inside $sub is a valid looking email address
+		if( $sub =~ /^[a-z0-9_\.\+\-\=\?\^\#]{1,64}\@([a-z0-9\-]{1,251}\.){1,252}[a-z0-9]{2,4}$/i){
+			# good email address - make sure it isnt a dupe
+			if( $hash{$sub} == 1 ){
+				print "<b>Error</b> (address $number): ",
+				      "you already asked me to subscribe $sub (<i>skipping</i>) <br>\n";
+				next;
+			}else{
+				$hash{$sub} = 1;
+				# good email address - not a dupe - generate confirmation email
+				
+				$smtp->mail($sub);
+				$smtp->recipient($to);
+				$smtp->data();
+				$smtp->datasend(' ');
+				$smtp->dataend();
+				$smtp->reset();
+			}
+		}else{
+			# not a valid email addr
+			print "<b>Error</b> (address $number): ",
+			      "$sub doesnt seem to be a valid email addr (<i>skipping</i>) <br>\n";
+		}
+	}
+	$smtp->quit;
+}else{
+	print 'coudnt find info.. click <a href="javascript:history.back(1)">here</a> to go back', "\n",
+	$q->end_html;
+	exit;
+}
+
+print 'done... click <a href="/cgi-bin/qmailadmin/com/showmailinglists?user=', "$user&time=$time&dom=$dstdomain", '">here</a> to return to the Mailing Lists page.', "\n",
+      $q->end_html();
