IT-Academy Logo
Sign Up Login Help
Home - Programmieren - PHP - Einfacher PHP-Newsletter



Einfacher PHP-Newsletter

Dieses Tutorial wil zeigen wie man ein einfacher PHP-Newsletter baut.


Autor: Patrick Faes (dreamer)
Datum: 25-01-2004, 15:52:33
Referenzen: siehe Artikel
Schwierigkeit: Fortgeschrittene
Ansichten: 9305x
Rating: 7.71 (17x bewertet)

Hinweis:

Für den hier dargestellte Inhalt ist nicht der Betreiber der Plattform, sondern der jeweilige Autor verantwortlich.
Falls Sie Missbrauch vermuten, bitten wir Sie, uns unter missbrauch@it-academy.cc zu kontaktieren.

[Druckansicht] [Als E-Mail senden] [Kommentar verfassen]



Einführung

Dies ist ein Tutorial wie man mit PHP einen recht einfachen Newsletter baut.
Dieses Tutorial ist für Leute die schon etwas Erfahrung mit MySQL, PHP und Formularen haben. Wenn Sie dies noch nicht haben, dann lesen Sie mal den Beitrag PHP und Formulare auf dieser Seite, den Beitrag Mailen aus dem Browser heraus und das Tutorial über Formulare von Selfhtml.

Anfang

Erst nochmal der mail()-Befehl von PHP:

mail ($recipient, $subject, $text, "from: Ihr Name <Ihre_Adresse@Provider.de>")

Die Funktion mail() braucht also 4 Daten: der Empfänger, das Subject, die Nachricht und die eigene E-Mail-Adresse.
Der Teil Ihr Name, wird im Mail-Client des Empfängers angezeigt und der Teil <Ihre_Adresse@Provider.de> ist Ihre eigentliche E-Mail-Adresse. (Hinweis: rein technisch ist es möglich hier egal welche E-Mail-Adresse zu gebrauchen, den Gebrauch von E-Mail-Adressen anderer Leute ist allerdings strafbar).

Jetzt werden aus die MySQL-Datenbank die E-Mail-Adressen selektiert, und an jedem eine Mail versendet.


$db=mysql_connect(' ',' ',' ');
$q=mysql_select_db(' ',$db);
$result=mysql_query('select Email_Adresse from Tabelle');
mysql_close($db);
Hier werden zuerst alle Empfänger selektiert. Danach wird jeder einzeln eine Mail geschickt:


while (list($Email_Adresse)=mysql_fetch_row($result))
{mail ($Email_Adresse, $Subjekt, $Text, "from: Ihr Name 
<Ihre_Adress@Provider.de>";}

Genauere Selektion

Im obigen Beispiel wurde eine Mail an alle Personen in der Datenbank geschickt. Möglicherweise ist dies aber nicht das Ziel, sondern nur eine bestimmte Zielgruppe. Daher kann man diese wie folgt selektieren:


<form>
<table>
<tr valign="middle">
<td>Geschlecht</td>
<td><input type="radio">Frau<input 
type="radio">Man</td>
</tr>
<tr valign="middle">
<td>Minimum-Alter</td>
<td><input type="text" size="3"></td>
</tr>
<tr valign="middle">
<td>Maximum-Alter</td>
<td><input type="text" size="3"></td>
</tr>
<tr valign="middle">
<td>Nachricht</td>
<td><textarea cols="15" 
rows="6"></textarea></td>
</tr>
<tr valign="middle"><td><input 
type="submit" value="verschicken"></td></tr>
</table></form>

In diesem Beispiel kann man die Empfänger selektieren auf Geschlecht, Maximum-Alter und Minimum-Alter.
Der PHP-Code sieht dann so aus:


$query = "select Email_Adresse from Tabelle where id > 0";
if (isset($geschlecht)) $query .= " and geschlecht = $geschlecht";
if (isset($max_alter)) $query .= " and alter <= $max_alter";
if (isset($min_alter)) $query .= " and alter >= $min_alter";

$db=mysql_connect(' ',' ',' ');
$q=mysql_select_db(' ',$db);
$result=mysql_query($query);
mysql_close($db);
Am Anfang ist der Query nur eine Standard-Selektion. Allerdings wurde hier die Bedingung eingefügt, dass die ID immer größer als 0 sein muss, wenn man ein Feld ID hat (Integer, auto increment), ist das immer true. Danach wird (wenn ein Variable gesetzt ist) jeweils eine neue Bedingung hinzugefügt (hier gilt es die doppelten Anführungzeichen und Leerzeichen zu beachten).
Auf der Art kann man also eine bestimmte Zielgruppe in der Datenbank selektieren.

Wenn Sie noch mehr über den mail()-Befehl wissen möchten:
PHP Net
Mails mit HTML und Attachments


Dani
Senior Member
Beitrag vom:
24-02-2004, 20:45:54

Es gibt übrigends auch eine PEAR Klasse, mit der man besser Mails verschicken kann.

-----------------------------------------------------
\"I have to share the credit. I may have invented it, but I think Bill made it famous. -- When he used it for the NT logon, that\'s what I meant. okay?\" (David Bradley über Ctrl-Alt-Del)


[back to top]



Userdaten
User nicht eingeloggt

Gesamtranking
Werbung
Datenbankstand
Autoren:04511
Artikel:00815
Glossar:04116
News:13565
Userbeiträge:16552
Queueeinträge:06248
News Umfrage
Ihre Anforderungen an ein Online-Zeiterfassungs-Produkt?
Mobile Nutzung möglich (Ipone, Android)
Externe API Schnittstelle/Plugins dritter
Zeiterfassung meiner Mitarbeiter
Exportieren in CSV/XLS
Siehe Kommentar



[Results] | [Archiv] Votes: 1158
Comments: 0