##############################################################################
# Dieses Programm wird unendgeltlich und zur freien, unbeschränkten Nutzung #
# unter Ausschluss jeglicher Haftung und Gewährleistung -sofern nicht #
# grobe Fahrlässigkeit oder Vorsatz durch den Anbieter vorliegt- angeboten. #
# Jegliche angegebene Eigenschaften sind unverbindlich und ohne Gewähr. #
# Irrtümer und Änderungen vorbehalten. #
##############################################################################
#################################################
##### VARIABLEN, DIE EDITIERT WERDEN KOENNEN ####
#################################################
$mailprog = '/usr/lib/sendmail';
# Der Pfad zu Sendmail ist bereits für domainfactory Server angepasst
# Er muss nicht geändert werden
$admin_email="xxx\@gratis-zeitschriften-abonnieren.de";
# Tragen Sie hier Ihre E-Mailadresse ein. Bitte achten Sie darauf, vor das vor dem @ ein \ stehen muss
# Dies ist der Name Ihrer Mailingliste.
# Dieses Passwort benötigen Sie für die Administration Ihrer Mailingliste
# Wenn Sie diesen Wert auf "1" setzen, erhält jeder neue Teilnehmer eine Email,
# bevor er in die Liste aufgenommen wird. Diese Email enthält einen Link, auf den
# geklickt werden muss, bevor die Teilnahme aktiv wird.
# Damit schützen Sie sich vor Leuten, die Emailadressen von Anderen eintragen
# oder Ihre Mailingliste mit ungültigen Adressen (blah@gibtsnicht.de) belasten.
# Aktivieren Sie diese Option, wenn sich Ihre Teilnehmer selbst aus der Liste
# austragen können sollen. Wert 1 = aktiviert, Wert 0 = deaktiviert
# Ist die Option aktiviert, trägt jede Email an die Teilnehmer einen entsprechenden
# Wenn Sie Ihre Nachrichten als HTML versenden wollen, ändern Sie die Option
# bitte auf "1". Bei "0" erfolgt der Versand als Text.
# In dieser Datei werden alle Listenteilnehmer gespeichert.
# Ändern Sie den Namen so ab, dass er von keinem erraten werden kann.
# Das Programm erstellt diese Datei mit dem gewählten Namen von selbst. Sie darf nicht gelöscht werden.
# NUR AKTIV, WENN OBEN DIE OPTION temp AKTIV IST ("1")
# In dieser Datei werden die Emailadressen gespeichert, die noch auf
# Bestätigung warten. Der Dateiname sollte ebenfalls so gewählt werden,
# dass er nicht zu erraten ist.
# Das Programm erstellt diese Datei mit dem gewählten Namen bei Bedarf von selbst.
# Bitte löschen Sie die Datei auf keinen Fall.
#################################################
##### AB HIER NICHTS MEHR ÄNDERN ####
#################################################
@months = ('Januar','Februar','März','April','Mai','Juni','Juli','August','September','Oktober','November','Dezember');
@days = ('Sonntag','Montag','Dienstag','Mittwoch','Donnerstag','Freitag','Samstag');
($mday,$mon,$year,$wday) = (localtime(time))[3,4,5,6];
$date = "$months[$mon] $mday, $year";
$url = $ENV{'SERVER_NAME'};
$script_url = $ENV{'SCRIPT_NAME'};
print "Content-type: text/html\n\n";
read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'});
@pairs = split(/&/, $buffer);
($name, $value) = split(/=/, $pair);
$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
if ($in{'action'} eq "Subscribe") {&subscribe}
if ($in{'action'} eq "Unsubscribe") {&unsubscribe}
if ($in{'action'} eq "with") {&subscribe}
if ($in{'action'} eq "without") {&subscribe}
if ($in{'action2'} eq "with") {&unsubscribe}
if ($in{'action2'} eq "without") {&unsubscribe}
if ($in{'action'} eq "Send") {&send}
if ($in{'action'} eq "Load") {&load}
if ($in{'adminpass'} ne "$adminpass") {&adminerror}
if ($in{'adminpass'} eq "$adminpass") {&adminform}
foreach $member(@addresses)
$in{'address'} = "$ENV{'QUERY_STRING'}";
if ($in{'address'} eq $member){&unsubscribe}
foreach $tempmember(@addresses)
@info = split(/::/, $tempmember);
($in{'address'},$in{'number'})=split('&',$ENV{'QUERY_STRING'});
if ($in{'number'} eq $info[0]){&subscribetemp}
if("admin" eq $ENV{'QUERY_STRING'}){
$in{'address'} =~ tr/[A-Z]/[a-z]/;
if ($in{'address'}!~ /.*\@.*\..*/){&bademail}
foreach $bannedaddress(@bannedaddresses)
if ($in{'address'} eq $bannedaddress){&banned_message}
foreach $member(@addresses)
if ($in{'address'} eq $member){&already_subscribed}
if ($in{'action'} eq "without") {
push (@addresses,$in{'address'});
$in{'address'} =~ tr/[A-Z]/[a-z]/;
print LIST "$in{'address'}\n";
$message="Die E-Mailadresse <font color=red>$in{'address'}</font> wurde erfolgreich gespeichert.";
push (@addresses,$in{'address'});
open(LIST,">>$temp_file");
$in{'address'} =~ tr/[A-Z]/[a-z]/;
$RandomNumber = int(rand(10000000));
$address = "$in{'address'}";
$in{'number'} = "$number";
$temp_entry = $number . "::" .
print LIST "$temp_entry\n";
$message="Die E-Mailadresse <font color=red>$in{'address'}</font> wurde temporär erfasst. Sie muss noch bestätigt werden. Bitte klicken Sie dazu auf den Link, der Ihnen soeben per E-Mail zugesandt wurde. (Gucken Sie evtl. auch in Ihren Spam-Filter.) ";
push (@addresses,$in{'address'});
print LIST "$in{'address'}\n";
$message="Die E-Mailadresse <font color=red>$in{'address'}</font> wurde erfolgreich gespeichert und der Abo-Bar-Mailingliste hinzugefügt.";
if ($in{'action'} ne "without") {
if ($in{'address'}!~ /.*\@.*\..*/){&bademail}
foreach $bannedaddress(@bannedaddresses)
if ($in{'address'} eq $bannedaddress){&banned_message}
push (@addresses,$in{'address'});
print LIST "$in{'address'}\n";
$message="Vielen Dank, die E-Mailadresse <font color=red>$in{'address'}</font> wurde bestätigt und der Abo-Bar-Mailingliste hinzugefügt.";
$message="Die angegebene E-Mailadresse scheint nicht zu stimmen. Bitte versuchen Sie es erneut.";&message;
$message="Es tut uns leid, diese Adresse wurde vom Administrator gesperrt.";&message;
$message="Die Adresse <font color=red>$in{'address'}</font> ist bereits in der Abo-Bar-Mailingliste vorhanden.";&message;
foreach $member(@addresses)
if ($in{'address'} eq $member){&deletemember}
foreach $member(@addresses)
@info = split(/::/, $member);
if ($in{'address'} eq $info[1]){@addresses[$x]="";
open(LIST,">$temp_file");
foreach $member(@addresses)
@info = split(/::/, $member);
{print LIST "$member\n";}
$message="Das Passwort ist falsch. Bitte versuchen Sie es erneut.";&message;
$message="<form action=mailing.cgi method=post>Passwort: <input type=password name=adminpass><BR><BR><input type=submit value=Enter><input type=reset value=Clear></FORM>";&message;
$message="Die Adresse <font color=red>$in{'address'}</font> ist nicht in der Abo-Bar-Liste, weshalb sie nicht gelöscht werden kann.";&message;
foreach $member(@addresses)
{print LIST "$member\n";}
$message="<font color=red>$in{'address'}</font> wurde erfolgreich gelöscht.";
if ($in{'action2'} ne "without") {
open (MAIL, "|$mailprog -t") || die "Can't open $mailprog!\n";
print MAIL "From: $admin_email\n";
print MAIL "To: $in{'address'}\n";
print MAIL "Subject: Herzlich willkommen\n\n";
Vielen Dank für die Bestellung des Abo-Bar-Newsletters. Ihre Adresse wurde gespeichert, und Sie werden in Zukunft (ca. 1 x pro Woche) über aktuelle Zeitschriften-Schnäppchen informiert.
open (MAIL, "|$mailprog -t") || die "Can't open $mailprog!\n";
print MAIL "From: $admin_email\n";
print MAIL "To: $admin_email\n";
print MAIL "Subject: Neuer Listenteilnehmer\n\n";
$in{'address'} hat sich erfolgreich in Ihre Liste eingetragen.
open (MAIL, "|$mailprog -t") || die "Can't open $mailprog!\n";
print MAIL "From: $admin_email\n";
print MAIL "To: $in{'address'}\n";
print MAIL "Subject: Bestätigungs-E-Mail\n\n";
Dies ist eine Bestätigungsmail für den Newsletter von $list_name. Bitte klicken Sie auf den folgenden Link, um in die Liste aufgenommen zu werden. Falls jemand Ihre E-Mailadresse missbraucht hat, müssen Sie nichts tun - wir werden Sie dann nicht erneut kontaktieren.
[url]http://[/url]$url$script_url?$in{'address'}&$in{'number'}
(Sie können diese URL auch einfach per Copy and Paste in Ihren Browser übernehmen.)
open (MAIL, "|$mailprog -t") || die "Can't open $mailprog!\n";
print MAIL "From: $admin_email\n";
print MAIL "To: $in{'address'}\n";
print MAIL "Subject: Unubscribe erfolgreich\n\n";
Ihre E-Mailadresse wurde erfolgreich von $list_name gelöscht.
open (MAIL, "|$mailprog -t") || die "Can't open $mailprog!\n";
print MAIL "From: $admin_email\n";
print MAIL "To: $admin_email\n";
print MAIL "Subject: Gelöscht\n\n";
$in{'address'} wurde von $list_name gelöscht.
$number = push(@addresses);
open(TEMPLIST,"$temp_file");
@tempaddresses=<TEMPLIST>;
print TEMPLIST "$number2\n";
$number2 = push(@tempaddresses);
print "<html><title>$list_name</title><body bgcolor=white>
<font face=arial size=+1 color=blue><b>$list_name</b></font>
Derzeit befinden sich <font color=red>$number</font> Emailadressen in der Datenbank. <font color=red>$number2</font> Emailadressen warten noch auf Bestätigung.
<form action=mailing.cgi method=post><BR>Archive: <select name=archives>";
open(LIST,"archives/log.txt");
@entries = reverse(@entries);
print "<option>$entry\n";
print "</select><input type=submit name=action value=Load></form><form action=mailing.cgi method=post>Titel: <input type=text name=subject><BR><BR>Text: <BR><textarea name=message rows=12 cols=50></textarea><BR><BR><input type=submit name=action value=Send><input type=reset value=Clear name=></FORM><BR><form action=mailing.cgi method=post><input type=text name=address>
Emailadresse aufnehmen <input type=hidden name=action value=without>.</form>
<br><TABLE><TR><form action=mailing.cgi method=post>
<TD>Alle Emailadressen:<BR>
<select name=address size=6>";
@addresses = sort(@addresses);
foreach $member(@addresses)
print "</select><BR><CENTER>Teilnehmer löschen <input type=hidden name=action2 value=with> <input type=submit name=go value=OK>.</CENTER></TD></form></TR></TABLE>";
print "<html><title>$list_name</title><body bgcolor=white>
<font face=arial size=+1 color=blue><b>$list_name</b></font>
<br><br><form action=mailing.cgi method=post>Archives: <select name=archives>";
open(LIST,"archives/log.txt");
@entries = reverse(@entries);
print "<option>$entry\n";
print "</select><input type=submit name=action value=Load></form><form action=mailing.cgi method=post>Subject: <input type=text name=subject value=\"";
open(FILE,"archives/$in{'archives'}.txt");
($message, $subject) = split /::/;
print "><BR><BR>Message: <BR><textarea name=message rows=12 cols=50>";
open(FILE,"archives/$in{'archives'}.txt");
($message, $subject) = split /::/;
print "</textarea><BR><BR><input type=submit name=action value=Send><input type=reset value=Clear name=></FORM><A HREF=\"javascript:history.back()\">Zurück</A>";
foreach $member(@addresses)
open (MAIL, "|$mailprog -t") || die "Can't open $mailprog!\n";
print MAIL "Content-type:text/html\n";
print MAIL "From: $admin_email\n";
print MAIL "To: $member\n";
print MAIL "Subject: $in{'subject'}\n\n";
print MAIL "$in{'message'}\n\n";
if ($remove_notice eq "1") {
---------------------------------------------------------------------<BR>
Klicken Sie auf den folgenden Link, wenn Sie den Newsletter abbestellen möchten:
<A HREF="http://$url$script_url?$member">[url]http://[/url]$url$script_url?$member</A><BR>
---------------------------------------------------------------------
---------------------------------------------------------------------
Klicken Sie auf den folgenden Link, wenn Sie den Newsletter abbestellen möchten:
[url]http://[/url]$url$script_url?$member
---------------------------------------------------------------------
open(LIST, ">>archives/log.txt");
print LIST "$date - $in{'subject'}\n";
$message = "$in{'message'}";
$subject = "$in{'subject'}";
$new_entry = $message . "::" .
open(FILE, ">>archives/$date - $in{'subject'}.txt");
print FILE "$new_entry\n";
$message="Gratulation! Ihr Mailing wurde gestartet. Sie erhalten eine Email, sobald der Vorgang abgeschlossen ist.";
open (MAIL, "|$mailprog -t") || die "Can't open $mailprog!\n";
print MAIL "Content-type:text/html\n";
print MAIL "From: $admin_email\n";
print MAIL "To: $admin_email\n";
print MAIL "Subject: Mailing versendet\n\n";
Folgende Rundmail wurde erfolgreich versendet:<BR><BR>
Folgende Rundmail wurde erfolgreich versendet:
<html><title>$list_name</title><body bgcolor=white>
<font face=arial size=+1 color=blue><b>$list_name</b></font>
if("admin" ne $ENV{'QUERY_STRING'}){
print "<BR><BR><A HREF=\"javascript:history.back()\">Zurück</A>"