Vergessen Sie nicht unseren Gratis Newsletter zu bestellen um die neusten Informationen zu Google, Facebook, Bing und Co. zu erhalten

E-Mails mittels PHP Mailer, direkt vom Web Server senden  

  RSS

Detlev Molitor
(@molitor-detlev)
Mitglied Admin
Beigetreten: vor 4 Jahren
Beiträge: 311
25. Februar 2019 18:10  

Rechtlicher Hinweis: Bitte beachten Sie die einschlägigen für Ihr Land geltenden Gesetze, bitte fragen Sie Ihren Rechtsanwalt oder eine andere Rechtskundige Stelle

  1. Seitenzugriffe zählen
  2. Emails nach Anzahl von Seitenzugriffe versenden, jedoch mit Reloadsperre
  3. Wenn alle E-Mails versendet Script abbrechen
  4. E-Mail Adresse aus Datei holen, Datensatz löschen und Checken ob E-Mail Adresse halbwegs korrekt ist
  5. Check ob E-Mail doppelt vorhanden ist, dann nicht senden
  6. E-Mail senden, und gesendete E-Mails in separate Zähldatei

Quellcode PHP Programm

<!DOCTYPE HTML>
<html>
<head>
<title>E-Mail | Ihr Super Angebot - jetzt zugreifen</title>

<!-- Auf welche Seite verweist dieses Email-Liste -->
<link rel="canonical" href="http://www.example.com/super-angebot.html" />

<!-- Der Autor dieses Programms -->
<link href="https://plus.google.com/105065516716852340832" rel="author" />

<!--
Wenn ein automatischer Reload erfolgen soll, damit die E-Mails schneller versendet werden, Zeitangabe in Sekunden
<meta http-equiv="refresh" content="600; URL= http://www.example.com/tools/email-senden.php?zaehler=nochma l">
-->

</head>
<body>

<?php

//////////////////////////////////////////////////////////////////////////////////
// *** error reporting, wahlweise schaltet

// Error Reporting komplett abschalten
error_reporting(0);

// Nur einfache Fehler melden
// error_reporting(E_ERROR | E_WARNING | E_PARSE);

// E_NOTICE ist sinnvoll um uninitialisierte oder falsch geschriebene Variablen zu entdecken
// error_reporting(E_ERROR | E_WARNING | E_PARSE | E_NOTICE);

// Melde alle Fehler außer E_NOTICE
// error_reporting(E_ALL & ~E_NOTICE);

// Melde alle PHP Fehler (siehe Changelog)
// error_reporting(E_ALL);

// Melde alle PHP Fehler
// error_reporting(-1);

// Dies entspricht error_reporting(E_ALL);
// ini_set('error_reporting', E_ALL);

//////////////////////////////////////////////////////////////////////////////////
// *** allgemeine variablen und einstellungen

//////////////////////////////////////////////////////////////////////////////////
// *** Lösche IP Sperrdatei
if ($_GET[zaehler]=='nochmal'){
unlink($_SERVER['DOCUMENT_ROOT'].'/tools/ips.txt');
sleep (3); //3 sekunden pause
clearstatcache();
};

//////////////////////////////////////////////////////////////////////////////////
// *** PROG 1 - Zähler und Reloadsperre
/////////////////////////////////////////
// Counter + Reloadsperre
/////////////////////////////////////////

// 0=keine Reloadsperre, 1=Reloadsperre
$aktiv = 1;
// Zeit der Reloadsperre in Minuten
$zeit = 300;
// IP-Datei
$ipdatei = $_SERVER['DOCUMENT_ROOT'].'/tools/ips.txt';
// Counterdatei
$counterdatei = $_SERVER['DOCUMENT_ROOT'].'/tools/sendmail.txt';
// Anzahl der führenden Nullen
$stellen = 8;

/////////////////////////////////////////
// IP-Reloadsperre
/////////////////////////////////////////

function pruf_IP($rem_addr) {
global $ipdatei,$zeit;
@$ip_array = file($ipdatei);
$reload_dat = fopen($ipdatei,"w");
$this_time = time();
for ($i=0; $i<count($ip_array); $i++) {
list($ip_addr,$time_stamp) = explode("|",$ip_array[$i]);
if ($this_time < ($time_stamp+60*$zeit)) {
if ($ip_addr == $rem_addr) {
$gefunden=1;
}
else {
fwrite($reload_dat,"$ip_addr|$time_stamp");
}
}
}
fwrite($reload_dat,"$rem_addr|$this_time\n");
fclose($reload_dat);
return ($gefunden==1) ? 1 : 0;
}

//////////////////////////////////////////////////////////////////////////////////
// Counter-Abfrage Test auf Cookie
//////////////////////////////////////////////////////////////////////////////////
if (file_exists($counterdatei) && ($aktiv==0 || ($aktiv==1 && pruf_IP($_SERVER['REMOTE_ADDR'])==0))) {
// Falls die Datei existiert, wird sie ausgelesen und
// der dort enthaltene Wert um Eins erhöht.
$fp=fopen($counterdatei,"r+");
$zahl=fgets($fp,$stellen);
if ($_GET[zaehler]!='nochmal') $zahl++; //wenn selbst aufrufe, kein zähler hochzählen
rewind($fp);
flock($fp,LOCK_EX);
fputs($fp,$zahl,$stellen);
sleep(1);
flock($fp,LOCK_UN);
fclose($fp);
$sendmail='true'; // parameter, ob email gesendet werden darf
}else if (!file_exists($counterdatei) && ($aktiv==0 || ($aktiv==1 && pruf_IP($_SERVER['REMOTE_ADDR'])==0))) {
// Die Datei counter.txt existiert nicht, sie wird
// neu angelegt und mit dem Wert 1 gefüllt.
$fp=fopen($counterdatei,"w");
$zahl="1";
fputs($fp,$zahl,$stellen);
fclose($fp);
$sendmail='true'; // parameter, ob email gesendet werden darf

} else {
// Die Datei existiert zwar, jedoch handelt
// es sich wahrscheinlich um den gleichen Besucher
$fp=fopen($counterdatei,"r");
$zahl=fgets($fp,$stellen);
fclose($fp);
$sendmail='false'; // parameter, ob email gesendet werden darf
$error='54TR';

};
$var=sprintf("%0".$stellen."d",$zahl);
echo'<p align="center"><font size="-2">(1) '.$var.'</font></p>'; //zähler anzeigen
unset($fp,$zahl);
//////////////////////////////////////////////////////////////////////////////////
// Abbruch, wenn E-Mail Datei leer ist
//////////////////////////////////////////////////////////////////////////////////
$emailcsv = $_SERVER['DOCUMENT_ROOT'].'/tools/email.csv';
$dateigroesse=filesize ($emailcsv);
if($dateigroesse==0)
{
//echo'<h5>Keine E-Mail Adresse mehr vorhanden</h5>';
//exit(0); // exit - komplette bearbeitung beenden, geht schnell, auch kein emailzähler mehr
$sendmail='false';
$error='Dateigroesse = 0, 564GF';
};

//////////////////////////////////////////////////////////////////////////////////
// *** PROG 2 - E-Mail Adresse einlesen und kontrollieren $sendmail true|false
//////////////////////////////////////////////////////////////////////////////////
// csv – Datei, erster Datensatz einlesen, und löschen
//////////////////////////////////////////////////////////////////////////////////
if ($sendmail=='true'){ //a1

//////////////////////////////////////////////////////////////////////////////////
// Schleifen Start, maximal 25 senden
//////////////////////////////////////////////////////////////////////////////////
for ($i = 1; $i <= 25; $i++) { //a2
//echo $i; //anzeige zählerstand
unset($doppelteemail); //da email bearbeitet wurde, kann die nächste ran

//zeile als datei holen, es sollte eine email adresse sein
$emailcsv = $_SERVER['DOCUMENT_ROOT'].'/tools/email.csv';
$fp = fopen ( $emailcsv, 'r' );
$dateihandle = fopen($emailcsv,"r");
$emailadresse = fgets($dateihandle, 1024);
//echo $emailadresse; // test, anzeige gelesene zeile, email adresse
fclose($emailcsv);
$file = $emailcsv;
$zeile = 0;
$datei = file($file);
unset($datei[$zeile]); //zeile löschen, damit nichts doppelt gesendet wird
$speichern = fopen($file, "w");
fputs($speichern, implode("", $datei));
fclose($speichern);

//////////////////////////////////////////////////////////////////////////////////
// Kontrollieren ob die email adresse nochmals vorhanden ist
//////////////////////////////////////////////////////////////////////////////////
$datei = fopen($emailcsv,"r");
while(!feof($datei))
{
$zeile = fgets($datei,4096);
if (eregi ($emailadresse, $zeile))$doppelteemail='true';
}
fclose($datei);
//////////////////////////////////////////////////////////////////////////////////
// Check ob es eine Email Adresse ist
//////////////////////////////////////////////////////////////////////////////////
if (eregi('^[a-z0-9]+([-_\.]?[a-z0-9])+@[a-z0-9]+([-_\.]?[a-z0-9])+\.[a-z]{2,4}', $emailadresse)){
$emailverifiziert='true';
}
else {$emailverifiziert='false'; };
//////////////////////////////////////////////////////////////////////////////////
// *** PROG 3 - HTML Mail aufbauen und Senden
//////////////////////////////////////////////////////////////////////////////////
// Wenn nicht doppelte Email – Email senden (HTML Format)
//////////////////////////////////////////////////////////////////////////////////
if ($doppelteemail!='true' and $emailverifiziert=='true' ){
$mailtext = '
<html>
<head>
<title>Ihr Super Angebot - jetzt zugreifen</title>
<meta name="description" content="Nervt es Sie auch, das immer mehr Kunden bei der Konkurenz einkaufen">
</head>
<body>
<p align="center">
Sollte diese E-Mail nicht korrekt angezeicht werden, klicken Sie hier <a href="http://www.example.com/super-angebot.html"> http://www.example.com/super-angebot.html</a>  für die Onlineversion</p>
<br><br clear="all"/>
<h1>Nervt es Sie auch, das immer mehr Kunden bei der Konkurenz einkaufen</h1>

<p>Text Ihrer Email</p>

<p>Text Ihrer Email</p>

<h3>Unter <a href="http://www.example.com/super-angebot.html">www.example.com/super-angebot.html</a> finden Sie folgende Informationen</h3>
<ul>
<li>Beispiel eines Konkurenten</li>
<li>Hier finden Sie ....</li>
<li>...</li>
<li><b>Fett geschriebene Aufzählung</b></li>
<li>...</li>
</ul>
<p align="left">Jetzt Handeln uns folgende Vorteile sichern:</p>
<ul>
<li>...</li>
<li>...</li>
<li>...</li>
<li>...<br><font size="-1">Anmerkung kleiner geschrieben</font></li>
<li>...</li>
<li>...</li>
</ul>

Sämtliche Informationen finden Sie unter <a href="http://www.example.com/super-angebot.html">www.example.com/super-angebot.html</a>

<br><br clear="all"/>
<font size="-2">Diese E-Mail ist eine einmalige Aktion, Sie brauchen sich nicht Abmelden und erhalten auch keine weitere E-Mails von uns. Ihre E-Mail Adresse wurde entweder von unserem Partner XYZ-Mailversand für eine einmalige Aktion bereitgestellt, weil Sie dort angegeben hatten, das Sie ausgesuchte Partnerangebote erhalten möchten. Versender dieser E-Mail ist die Musterfirma in Musterstadt, Vertreten durch Max Mustermann, Teststr. 1, D-12345 Musterstadt. Das Vollständige Impressum finden Sie unter <a href="http://www.example.com/impressum.html">www.example.com/impressum.html</a></font>

</body>
</html>';
$empfaenger = $emailadresse; //Mailadresse
$absender = "info@example.com";
$name = 'Musterfirma'; //Absendername
$betreff = "Ihr Super Angebot - jetzt zugreifen";
$antwortan = "info@example.com";

$header = "MIME-Version: 1.0\r\n";
$header .= "Content-type: text/html; charset=iso-8859-1\r\n";

$header .= "From: $name <$absender>\r\n";
$header .= "Reply-To: $antwortan\r\n";
// $header .= "Cc: $cc\r\n"; // falls an CC gesendet werden soll
$header .= "X-Mailer: PHP ". phpversion();

mail( $empfaenger,
$betreff,
$mailtext,
$header);

//echo "Mail wurde gesendet!";
$zaehlemail++; //zaehler email gesendet

}
else { $error='HTML Email nicht gesendet HZ520'; };

//////////////////////////////////////////////////////////////////////////////////
// schleife ende, zähler setzten, sonst rutschen wir in spam
//////////////////////////////////////////////////////////////////////////////////
}; //a2

} //a1
//else echo 'Keine EMail gesenden! Fehler: '.$error.'<br>';
//////////////////////////////////////////////////////////////////////////////////
// Zähle E-Mails die gesendet wurden datei ausgeben
//////////////////////////////////////////////////////////////////////////////////
//echo '<h5>'.$zaehlemail.'</h5>'; // wieviel wurde gezählt
// Zaehler Datei E-Mails
$zaehleemailsdatei = $_SERVER['DOCUMENT_ROOT'].'/tools/zaehleemailsent.txt';
// Datei anlegen wenn nicht vorhanden
if (!file_exists($zaehleemailsdatei)) {
$fp=fopen($zaehleemailsdatei,"w");
$zahl=0;
fputs($fp,$zahl,$stellen);
fclose($fp);
sleep (3); // warte 3 sekunden, damit datei angelegt ist
};
//gezähle emails versendet, eintragen, ansonsten nur auslesen
if (file_exists($zaehleemailsdatei)) {
$fp=fopen($zaehleemailsdatei,"r+");
$zahl=fgets($fp,$stellen);
$zahl=$zahl+$zaehlemail;
rewind($fp);
flock($fp,LOCK_EX);
fputs($fp,$zahl,$stellen);
sleep(1);
flock($fp,LOCK_UN);
fclose($fp);
};
unset($fp);

$var=sprintf("%0".$stellen."d",$zahl);
echo'<p align="center"><font size="-2">(2) '.$var.'</font></p>'; //zähler anzeigen

?>

<!-- SCRIPT GOOGLE ANALYTICS  https://www.google.com/analytics/  -->
</body>
</html>

Einbau in Ihre Homepage

Warum so kompliziert? Sie rufen die Seite einmalig auf, dann werden 25 E-Mails versendet, der nächste klickt auf die Seite, die nächste Sendung geht raus, so haben Sie eine Zeitliche Verteilung.

<iframe width="100%" height="800" src="http://www.example.com/ihr-emailsende-programm.php" frameborder="0" allowfullscreen scrolling="no"></iframe>
 
 
 
 

 


 


Zitat
Share:

 

 

Haben wir Sie neugierig gemacht? Haben Sie noch Fragen?

Wir freuen uns über jede Nachricht und jeden neuen Kontakt. Selbst dann wenn sie noch gar nicht genau wissen, was wir für sie tun können und Sie einfach nur das Gefühl haben, dass wir für Sie interessant werden könnten. Wir freuen uns auf ein persönliches Gespräch mit Ihnen.

Niederlassungen & Fotografen

PLZ BereichOrtTelefonMobileAnsprechpartner (Kontakt)
0 & 9 Dresden+49 351 3280856+49 176 63294156Bert Siegel
1Berlin+49 30 23599310+49 171 6140855Felix Steck
2 & 3Göttingen+49 551 5073566+49 172 5627261Michael Mehle
4 & 5Dortmund+49 231 9105385+49 176 49440028Detlev Molitor
6 & 7Kaiserslautern+49 6302 6074084+49 170 2817480Friedhelm Rettig
8München+49 89 44992666+49 171 6140855Felix Steck

 

oder per E-Mail

 

Bitte nutzen Sie für Ihren Beratungswunsch möglichst das Kontaktformular, da wir im Kundenauftrag sehr viel unterwegs sind und nicht immer sofort telefonisch erreichbar sind.

 


Wir hoffen, dass Ihnen unsere Themenauswahl zusagt und freuen uns über Ihr Feedback.

 


 

facebook Gruppe   facebook Seite   twitter   linkedin   XING Gruppe MeWe   tumblr   disqus   Pinterest   YouTube   VK   Marktplatz Mittelstand

 

Mehr kostenlose GOOGLE, Bing, Yahoo, facebook-Tipps

Melden Sie sich jetzt zum kostenlosen Newsletter an und erhalten Sie die neusten Beiträge rund um Google, Bing, Yahoo, facebook-Optimierung. Hiermit melde ich mich für Benachrichtigungen an. Dadurch erkenne ich an, dass meine Daten in Übereinstimmung mit der Datenschutzerklärung von Business View Photo Ag verwendet werden. Ich erkläre mich außerdem damit einverstanden, dass ich einmalig eine Bestätigung und regelmäßige Aktualisierung per E-Mail erhalte. Mir ist bekannt, dass ich diesen Service jederzeit durch den Abmeldelink in den Benachrichtigungen beenden kann.

Enter your email address:

Delivered by FeedBurner

Gefällt Ihnen die Themenauswahl unserer News? Der Aufbau, der Inhalt, die Optik? Wenn ja würden wir uns um eine Nachricht freuen, auch über konstruktive Kritik sind wir sehr dankbar. Gefällt Ihnen unsere Webseite? Fünf Fragen, gestalten Sie unsere Webseite mit.


Wenn Besucher Kommentare auf unserer Website schreiben, sammeln wir die Daten, die im Kommentar-Formular angezeigt werden, außerdem die IP-Adresse des Besuchers und den User-Agent-String (damit wird der Browser identifiziert), um die Erkennung von Spam zu unterstützen. Weitere Informationen in unserer Datenschutzerklärung.

 


 

Anzeige nicht Möglich
Bitte akzeptieren Sie unsere Cookie-Richtlinie, und klicken Sie hier