Skip to main content

Alles für die Homepage... Scripte, Templates, Workshops und Support

Mail Funktion

Die E-Mail Funktion von PHP ist sehr praktisch, denn damit können wir Formulardaten versenden lassen oder ganze Newsletter-Scripts erstellen. Man kann dieses Verfahren auch für ein Gästebuch benutzen, z.B. das man eine Mail erhält, wenn sich jemand in das Gästebuch einträgt.

Wichtig

Wenn ihr diese Funktion auf eurem Computer ausführt, erhaltet ihr normalerweise eine Fehlermeldung:
Warning: mail():…

Dies kommt, weil euer virtueller Server keine E-Mails verschicken kann. Die Fehlermeldung könnt ihr ignorieren, denn auf dem echtem Server sollte sie eigentlich nicht mehr auftreten.

Mit der PHP-Funktion mail() könnt Ihr die Mails verschicken, der Befehl sieht so aus:

CODE:
<?php
 mail(Empfängeremail, Betreff, Nachricht,
  "From: Absender <absenderemail>");
?>

Es ist sinnvoll die einzelnen Texte in Variablen zu speichern, damit man die Übersicht behält.

So lassen sich aber nur Text E-Mails verschicken, HTML E-Mails sind etwas komplizierter (siehe unten).

Eine fertige PHP Mail Funktion würde so aussehen:

CODE:
<?php
$empfaenger = "empf@domain.de";
$betreff = "Die Mail-Funktion";
$from = "From: Nils Reimers <absender@domain.de>";
$text = "Hier lernt Ihr, wie man mit PHP Mails
verschickt";

mail($empfaenger, $betreff, $text, $from);
?>

So wird eine Mail von absender@domain.de an empf@domain.de verschickt.

Wenn euer Server richtig eingestellt ist, sollte die E-Mail sofort ankommen.

Natürlich könnt Ihr die Texte auch von einem Formular abfragen.

Die Mail wird so verschickt wie es im Quelltext des Scripts steht. Wenn Ihr z.B. ein ü durch &uuml; (HTML Code für ein ü) ersetzen lasst, so steht es später in der Mail: &uuml;. Denn dort werden dann nicht die Umlaute angezeigt, sondern der HTML-Code dafür (bei Text Emails).

Außerdem dürft Ihr keine HTML-Befehle benutzen, wenn z.B. in der E-Mail <br> steht, so wird das nicht in einen Zeilenumbruch verwandelt, sondern in der Mail steht dann <br>.

Für Zeilenumbrüche reicht ein einfaches Enter im Quelltext bzw. ein \n. Um etwas Einzurücken, müsst ihr Tab bzw. Space benutzen.

HTML-Emails
Man kann mit PHP auch HTML-Emails verschicken
Aber Ihr solltet wissen, das nicht alle E-Mail Programme und E-Mail Anbieter diese HTML-Emails richtig anzeigen.

Man kann der E-Mail dann auch einen schwarzen Hintergrund geben mit weißer Schrift.

Aber Achtung, nicht alle E-Mail Programme/Anbieter zeigen die weiße Schrift an. Diese ersetzten sie dann manchmal durch schwarze Schrift, oder den schwarzen Hintergrund durch einen weißen. Somit kann der Empfänger die E-Mail nicht lesen, weil der Text und der Hintergrund identisch sind.

Damit PHP HTML-Emails verschicken kann, müsst Ihr die $from Variable etwas verändern.

CODE:
<?php
$empfaenger = "empf@domain.de";
$betreff = "Die Mail-Funktion";
$from = "From: Nils Reimers <absender@domain.de>\n";
$from .= "Reply-To: absender@domain.de\n";
$from .= "Content-Type: text/html\n";
$text = "Hier lernt Ihr, wie man mit <b>PHP</b> Mails
verschickt";

mail($empfaenger, $betreff, $text, $from);
?>

Die Variable $from wird einfach ergänzt, aber achtet darauf, das nach dem Absender noch ein \n stehen muss.

Außerdem haben wir noch eine Reply (Antwort) Adresse angegeben.

Bei dem Text müssen wir aufpassen, dass wir die Anführungszeichen “ durch ein Backslash (\) maskieren müssen.


Ähnliche Beiträge



Keine Kommentare vorhanden


Du hast eine Frage oder eine Meinung zum Artikel? Teile sie mit uns!

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *