:: Newsletter Script
Startseite
Scripte
Kostenlose
Newsletter Script
Das Script besitzt eine "Double Opt-in" Option für An- bzw. Abmeldung. Der Newsletter wird somit nur an bestätigte Emai-Adressen zugestellt.
D.h. um die Newsletter-Anmeldung vollständig abzuschließen, muss der Besucher seine Email-Adresse verifizieren und den Empfang durch das Anklicken von einem per Email zugestellten Link binnen von 48 Stunden bestätigen. Hat er dies nicht gemacht, wird der Eintrag automatisch gelöscht.
So wird vermieden das der Newsletter an Empfänger, ohne das diese dem Empfang zugestimmt haben, versendet wird. Ebenfalls wird so vermieden das Email-Adressen durch Fremde aus dem Verteiler gelöscht weden könnten.
So sieht das Formular für die Newsletter-Anmeldung aus. Dieses kannst du z.B. der Sidebar platzieren.
Und das ist der Code für das Formular. Dieses benötigst du nur wenn du das Anmeldeformular separat in das Layout integrieren willst - das newsletter Script Selbst enthält bereits ein Formular für die Anmeldung.
<form action="#" method="get"> // als action den Dateinamen von dem Newsletterscript eintragen
<table width="100%" border="0" cellpadding="3" cellspacing="1">
<tr><td width="80" align="right">Nachname:</td><td><input type="text" name="name" value="" style="width:100%;" /></td></tr>
<tr><td align="right">Vorname:</td><td><input type="text" name="vname" value="" style="width:100%" /></td></tr>
<tr><td align="right">E-Mail:</td><td><input type="text" name="email" value="" style="width:100%" /></td></tr>
<tr><td> </td><td>anmelden: <input type="radio" name="action" value="rein" checked="checked" /> abmelden: <input type="radio" name="action" value="raus" /></td></tr>
<tr><td> </td><td><input type="submit" name="submit" value="absenden" style="width:100%" /></td></tr>
</table>
</form>
Neben der Möglickeit sich für den Newsletter an- und abzumelden bringt das Script mit sich auch selbstverständliche eine passwort-geschützte Administrationspberfläche über die du Newsletter versenden und Empfänger editieren kannst.
Der Newsletter kann personalisiert versendet werden.
So installierst du das Script auf deinem Server:
- Das unten stehende Script unter newsletter.php speichern.
- Die Konfiguration am Anfang vom Script anpassen.
- Eine newsletter.txt mit einem Pseudoeintrag erstellen
(als Inhalt kommt diese Zeile rein:
email@adresse.de|name|vorname||||
einen Zeilenumbruch nach dieser Zeile setzen) - Die dateien newsletter.php und newsletter.txt auf den Webserver hochladen.
- Die Datei newsletter.txt mit Schreibrechnten versehen (chmod 777).
- Entweder die Datei newsletter.php direkt aus dem Menue verlinken oder das oben stehende Formular in die Sidebar oder Header einbauen.
Um zu der Administation zu gealngen hänge einfach an die url in der Browser-Adressleiste "?action=loginform" an.
<?php
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
#
# Newsletter Script version 1.0 - 21.03.2008
#
# © 2008 Rudomazin Yury - rudomazin@gmail.com
#
# Version 1.1 - vom 15.04.2008
#
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
# # # # # # # # # # KONFIGURATION # # # # # # # # # # # # # # # #
$adminname="xxxx"; // Benutzername für den Login
$adminpw="xxxx"; // Passwort für den Login
$adminmail="webmaster@deine-domain.de"; // deine Email Adresse für den Emai-Versand - idealerweise webmaster@deine-domain.de
$stehenlassen=172800; // 48 std in sekunden - Zeit in der die Anmeldungen und Löschungen bestätigt werden müssen
$db="newsletter.txt"; // CHMOD 777 hier werden die Benuzterdaten gespeichert..
$eintrage_pro_seite="50"; // wieviele angemeldete Benutzer sollen im Admin-Bereich / Seite eingeblendet werden.. Blätterfunktion...
# # # # # # # # # KONFIGURATION ENDE # # # # # # # # # # # # # # #
session_start();
$zeit=time ();
$nichtmehrgueltig=$zeit-$stehenlassen;
$nl=chr(13).chr(10);
$action=$_GET['action'];
$xdb='PGJyIC8+PGJyIC8+PGJyIC8+PGJyIC8+PGJyIC8+PHA+PGEgaHJlZj0iaHR0cDovL3d3dy53ZWJkZXNpZ24ucnVkb21hemluLmRlLyIgdGFyZ2V0PSJfYmxhbmsiPlNjcmlwdCB2b24gREVSVVMgV2ViZGVzaWduPC9hPjwvcD4=';
if($action=="logout"){ // Admin logout
session_unset ("logedin");
session_destroy();
header("Location: http://".$_SERVER['HTTP_HOST']);
} elseif($action=="login"){ // Admin login
$name = $_POST['name'];
$pw = $_POST['pw'];
if($name==$adminname && $pw==$adminpw){
ini_set("session.use_cookies", "0");
$_SESSION["logedin"] = true;
header("Location: http://".$_SERVER['HTTP_HOST'].$_SERVER['SCRIPT_NAME']."?action=admin");
} else {
header("Location: http://".$_SERVER['HTTP_HOST']);
}
}
#include("../../../inc/header.php"); // hier evtl den header einbinden
// nicht rechtzeitig bestätigte Anmeldungen löschen und nicht rechtzeitig bestätigte Löschungen auf "normal" setzen
$alter_inhalt=file($db);
$output=fopen($db, "w");
if ($output){
flock($output,2);
foreach($alter_inhalt as $zeile){
$inhalt=explode("|",$zeile);
if($inhalt[5]=="" || ($inhalt[5]>$nichtmehrgueltig && $inhalt[3]=="rein") || ($inhalt[5]>$nichtmehrgueltig && $inhalt[3]=="raus")){
fputs($output, $zeile);
} elseif ($inhalt[5]<$nichtmehrgueltig && $inhalt[3]=="raus"){
$zeile=$inhalt[0]."|".$inhalt[1]."|".$inhalt[2]."|".$inhalt[3]."||||".$nl;
fputs($output, $zeile);
}
}
flock($output,3);
fclose($output);
} else {
echo "<p>Datei konnte nicht zum Schreiben geöffnet werden, bitte ändern sie die Zugriffsrechte!</p>";
}
if($action=="rein"){ // Anmeldung
$email=$_GET['email'];
$vname=$_GET['vname'];
$name=$_GET['name'];
if(empty($email) || empty($vname) || empty($name)) {
echo "<p>Du musst deinen Namen, deinen Vornamen und eine Email-Adresse angeben!</p>";
echo '<form action="#" method="get">
<table width="100%" cellpadding="3" cellspacing="1">
<tr><td width="140" align="right">Nachname:</td><td align="left"><input type="text" name="name" value="'.$name.'" style="width:100%;" /></td></tr>
<tr><td align="right">Vorname:</td><td align="left"><input type="text" name="vname" value="'.$vname.'" style="width:100%" /></td></tr>
<tr><td align="right">E-Mail:</td><td align="left"><input type="text" name="email" value="'.$email.'" style="width:100%" /></td></tr>
<tr><td> </td><td>anmelden: <input type="radio" name="action" value="rein" checked="checked" /> abmelden: <input type="radio" name="action" value="raus" /></td></tr>
<tr><td> </td><td align="left"><input type="submit" name="submit" value="absenden" style="width:100%" /></td></tr>
</table>
</form>';
} else {
$inhalt = file($db);
foreach($inhalt as $zeile){
$inhalt=explode("|",$zeile);
if($inhalt[0]==$email) $err=true;
}
if(isset($err)){
echo "<p>Die Email Adresse $email befindet sich bereit im Verteiler</p>";
} else {
$output = fopen($db,"a");
if ($output){
flock($output,2);
srand(microtime()*1000000);
$code=rand(10000,99999);
fputs ($output, "$email|$vname|$name|rein|$code|$zeit|$nl");
flock($output,3);
fclose($output);
mail($email,"Newsletter Anmeldung ".$_SERVER['HTTP_HOST'],"Hallo $vname $name, \n\ndeine Email Adresse $email wurde von dir oder jemandem Fremden in unserem Newsletter-Verteiler unter ".$_SERVER['HTTP_HOST']." eingetragen. \n\nWenn du die Aufnahme wirklich wünschst, musst Du diesen Link anklicken http://".$_SERVER['HTTP_HOST'].$_SERVER['SCRIPT_NAME']."?action=reinconfirm&code=$code .\n\nSolltest Du dich doch umentschieden haben, oder es liegt ein Irrtum vor, ignoriere einfach diese Email, der Eintrag wird ohne das dieser bestätigt wurde nach 48 Stunden automatisch gelöscht. \n\nmfg Admin von ".$_SERVER['HTTP_HOST'],"From: $adminmail");
echo "<p>Vielen Dank, $vname $name für deine Anmeldung.<br />Deine Email $email wurde im Verteiler zur Aufnahme vorgemerkt.</p><p>Du wirst in Kürze eine Email mit einem Bestätigungslink erhalten. Erst nach dem du diesen angeklickt hast, wird deine Email Adresse vollständig in den Verteiler augenommen.</p><p>Diesen Link solltest Du binnen von nächten 48 Stunden angeklickt haben, sonst wird deine Newsletter-Anmeldung automatisch gelöscht.</p>";
}
}
}
} elseif($action=="raus") { // Abmeldung
$email=$_GET['email'];
if(!empty($email)){
$inhalt = file($db);
foreach($inhalt as $zeile){
$inhalt=explode("|",$zeile);
if($inhalt[0]==$email) $err=true;
}
if(!isset($err)){
echo "<p>Die Email Adresse $email befindet sich nicht im Verteiler</p>";
} else {
$alter_inhalt=file($db);
$output=fopen($db, "w");
if($output){
flock($output,2);
srand(microtime()*1000000);
$code=rand(10000,99999);
foreach($alter_inhalt as $zeile){
$inhalt=explode("|",$zeile);
if($inhalt[0]==$email){
$zeile=$inhalt[0]."|".$inhalt[1]."|".$inhalt[2]."|raus|".$code."|".$zeit."|".$nl;
mail($inhalt[0],"Newsletter Abmeldung ".$_SERVER['HTTP_HOST'],"Hallo $vname $name, \n\ndu oder jemand Fremde hat deine Email Adresse ".$inhalt[0]." zum löschen aus unserem Newsletter-Verteiler unter ".$_SERVER['HTTP_HOST']." vorgemerkt. \n\nWenn du die Abmeldung wirklich wünschst, musst Du diesen Link anklicken http://".$_SERVER['HTTP_HOST'].$_SERVER['SCRIPT_NAME']."?action=rausconfirm&code=$code .\n\nSolltest Du dich doch umentschieden haben, oder es liegt ein Irrtum vor, ignoriere einfach diese Email. \n\nmfg Admin von ".$_SERVER['HTTP_HOST']."","From: $adminmail");
echo "<p>Halo $inhalt[1] $inhalt[2].<br />Deine Email $email wurde zum löschen aus dem Verteiler vorgemerkt.</p><p>Du wirst in Kürze eine Email mit einem Bestätigungslink erhalten. Erst wenn du diesen angeklickt hast, wird deine Email Adresse vollständig aus dem Verteiler gelöscht.</p>";
}
fputs($output, $zeile);
}
flock($output,3);
fclose($output);
}
}
}
} elseif($action=="reinconfirm"){ // Anmeldung Bestätigung
$code=$_GET['code'];
if(!empty($code)){
$alter_inhalt=file($db);
$output=fopen($db,"w");
if($output){
flock($output,2);
foreach($alter_inhalt as $zeile){
$inhalt=explode("|",$zeile);
if($inhalt[3]=="rein" && $inhalt[4]==$code){
$zeile=$inhalt[0]."|".$inhalt[1]."|".$inhalt[2]."||||".$nl;
echo "<p>Deine Newsletter Anmeldung wurde bestätigt. Du wirst nun unsere Newsletter empfangen!</p>";
}
fputs($output, $zeile);
}
flock($output,3);
fclose($output);
}
}
} elseif($action=="rausconfirm"){ // Abmeldung Bestätigung
$code=$_GET['code'];
if(!empty($code)){
$alter_inhalt=file($db);
$output=fopen($db,"w");
if($output){
flock($output,2);
foreach($alter_inhalt as $zeile){
$inhalt=explode("|",$zeile);
if($inhalt[3]=="raus" && $inhalt[4]==$code){
echo "<p>Deine Newsletter Abmeldung wurde bestätigt. Du wirst nun keine Newsletter mehr empfangen!</p>";
} else {
fputs($output, $zeile);
}
}
flock($output,3);
fclose($output);
}
}
} elseif($action=="admin"){ // Admin eingeloggt
if($_SESSION["logedin"] == true) {
$alter_inhalt=file($db);
$eintraege=count($alter_inhalt);
(!isset($_GET['page'])) ? $seite="1" : $seite=$_GET['page'];
$seiten=$eintraege/$eintrage_pro_seite; //Anzahl der Seiten errechnen
$abeintrag = $seite * $eintrage_pro_seite - $eintrage_pro_seite;
echo '<p>Sie sind eingeloggt!</p><p><a href="'.$_SERVER['SCRIPT_NAME'].'?action=schreiben">Neuen Newsletter versenden</a> | <a href="'.$_SERVER['SCRIPT_NAME'].'?action=logout">ausloggen</a></p>';
echo '<p>Folgende Newsletter Empfänger sind angemeldet:</p><p class=\"date\">Seite: ';
for($ass = 1; $ass-1< $seiten; $ass++){ //Ausgabe der Linkliste
echo '<a href="?action=admin&page='.$ass.'">';
($ass==$seite)? $ss="<b>$ass</b>": $ss=$ass;
echo $ss."</a> ";
}
echo '</p><table width="100%" cellpadding="3" cellspacing="1" style="background-color:#F0F0F0">';
for($i=$abeintrag; $i<$eintrage_pro_seite+$abeintrag; $i++){
$farbe = ($i % 2) ? "FFFFFF" : "F9F9F9";
if(strlen($alter_inhalt[$i]) >0){
$inhalt=explode("|",$alter_inhalt[$i]);
echo '<tr style="background-color:#'.$farbe.'"><td>'.$inhalt[1].'</td><td>'.$inhalt[2].'</td><td>'.$inhalt[0].'</td><td><a href="'.$_SERVER['SCRIPT_NAME'].'?action=delete&email='.$inhalt[0].'">löschen</a></td></tr>';
}
}
echo '</table><p>Insgesamt sind '.$eintraege.' Newsletter Empfänger angemeldet.</p>';
}
} elseif($action=="schreiben"){ // Email verfassen
if($_SESSION["logedin"] == true) {
echo '<p>Schrebe Xname und Xvname da wo die Namen und Vornamen der Benutzer eingesetzt werden sollen.</p>
<form action="?action=senden" method="post">
<table width="100%" cellpadding="3" cellspacing="1">
<tr><td width="140" align="right">Betreff:</td><td align="left"><input type="text" name="betreff" value="" style="width:100%;" /></td></tr>
<tr><td align="right" valign="top">Text:</td><td align="left"><textarea rows="20" style="width:100%" name="mailtext"></textarea></td></tr>
<tr><td> </td><td align="left"><input type="submit" name="submit" class="button" value="Newsletter versenden" style="width:100%" /></td></tr>
</table>
</form>';
}
} elseif($action=="senden"){ // Email versenden
if($_SESSION["logedin"] == true) {
$betreff=stripcslashes($_POST['betreff']);
$mailtext=stripcslashes($_POST['mailtext']);
echo "<p>Der Newsletter wurde an folgende Emai Adressen versendet:<br />";
$alter_inhalt=file($db);
foreach($alter_inhalt as $zeile){
$inhalt=explode("|",$zeile);
if($inhalt[3]!='rein' && $inhalt[3]!='raus'){
$mailtext=str_replace("Xname",$inhalt[1],$mailtext);
$mailtext=str_replace("Xvname",$inhalt[2],$mailtext);
mail($inhalt[0],$betreff,$mailtext,"From: $adminmail");
echo $inhalt[0]."<br />";
}
}
echo "</p>";
}
} elseif($action=="delete"){ // Empfänger löschen
if($_SESSION["logedin"] == true) {
$email=$_GET['email'];
$alter_inhalt=file($db);
$output=fopen($db,"w");
if($output){
flock($output,2);
foreach($alter_inhalt as $zeile){
$inhalt=explode("|",$zeile);
if($inhalt[0]!=$email){
fputs($output, $zeile);
} else {
echo "<p>Der Empfänger $email wurde gelöscht.</p>";
}
}
flock($output,3);
fclose($output);
}
}
} elseif($action=="loginform"){ // login Formular
echo '<form action="?action=login" method="post">
<table width="100%" cellpadding="3" cellspacing="1">
<tr><td width="140" align="right">Admin:</td><td align="left"><input type="text" name="name" value="" style="width:100%;" /></td></tr>
<tr><td align="right">Passwort:</td><td align="left"><input type="password" name="pw" value="" style="width:100%" /></td></tr>
<tr><td> </td><td align="left"><input type="submit" name="submit" class="button" value="einloggen" style="width:100%" /></td></tr>
</table>
</form>';
} elseif(!isset($action)){
echo '<form action="#" method="get">
<table width="100%" cellpadding="3" cellspacing="1">
<tr><td width="140" align="right">Nachname:</td><td align="left"><input type="text" name="name" value="" style="width:100%;" /></td></tr>
<tr><td align="right">Vorname:</td><td align="left"><input type="text" name="vname" value="" style="width:100%" /></td></tr>
<tr><td align="right">E-Mail:</td><td align="left"><input type="text" name="email" value="" style="width:100%" /></td></tr>
<tr><td> </td><td>anmelden: <input type="radio" name="action" value="rein" checked="checked" /> abmelden: <input type="radio" name="action" value="raus" /></td></tr>
<tr><td> </td><td align="left"><input type="submit" name="submit" class="button" value="absenden" style="width:100%" /></td></tr>
</table>
</form>';
}
echo base64_decode($xdb);
#include("../../../inc/footer.php"); // hier evtl den footer einbinden
?>





drucken
Sitemap
Impressum