Anders als bei der Übung Produkte-Tabelle verwendest Du hier Array und Schleife nicht für die Ausgabe, sondern für eine Aktion - nämlich den Versand eines Emails an viele Empfänger. Aber auch hier geht es darum, den Code abhängig von der Anzahl Elemente im Array mehrfach auszuführen.
Vorbereitung / gut zu wissen
Lade dir dazu die Script-Vorlagedateien einladung-mailversand.zip herunter. In diesem ersten Schritt arbeitest du nur mit dem Script mailversand.php. Lies dir die Kommentare durch, welche im Code gemacht wurden, um diesen zu verstehen. Wichtig ist, dass du weisst, was der Sinn und Zweck der einzelnen Variablen ist, welche vorbereitet wurden.
Um den Mailversand lokal zu testen, muss dein XAMPP/MAMP mails versenden können. Die Chance, dass diese ankommen, selbst wenn der Testserver dafür konfiguriert wurde, ist sehr gering. Wahrscheinlich werden sie von jedem Spamfilter herausgefiltert. Korrekt programmiert hast du also auch, wenn dein Script die Fehlermeldung erzeugt, dass die Mailfunktion nicht ausgeführt werden konnte ("couldn't instantiate mail function..."), oder auch wenn dein Mail einfach nicht ankommt. Lade daher fürs Testing in Schritt 4 dein Script auf ein Hosting mit Mailfunktion (z.B. via den von der Schule bereitgestellten FTP Account)
Anleitung
- Befülle das Array in der Variable $mail_empfaenger mit allen E-Mail-Adressen, an die du den Newsletter versenden möchtest (zum Testen am besten deine Adressen, um niemanden zu verärgern). Passe gegebenenfalls die URL in der Variablen $anmeldelink so an, dass anmeldung.php über den Browser aufgerufen werden kann (oder lege die Datei gemäss Anweisung im Kommentar ab).
- Erstelle nun eine Schleife (for oder foreach?), mit der du durch das Array iterieren kannst. im nächsten Schritt wirst du die E-Mail-Adresse, welche gerade aus dem Array ausgelesen wird, verwenden. Zum Testen kannst du diese per echo ausgeben lassen. Wird sie ausgegeben, bist du bereit, mit ihr zu arbeiten.
- Bereite nun ebenfalls in der Schleife eine Variable für den Betreff und den Header der HTML-Email vor. Wichtig ist, dass der Content-Type für HTML richtig angegeben wird, und dass eine Absender-Email angegeben wird. Beispiele findest du auf php.net oder w3schools.com (jeweils etwas scrollen für HTML-Email Beispiele)
- Nun solltest du vier Variablen zu Verfügung haben: Empfänger (aus dem Array), Betreff, Nachricht (aus der vordefinierten Variable) und Header, und kannst mit der Funktion mail() das E-Mail absenden lassen.
Weiterführende Übungen: