E-Book Startseite Karteikarten-Programm
0

Grundlagen und Text-E-Mails

Die Mail-Funktion wird dafür verwendet Daten per E-Mail zu versenden. Meistens stammen die Daten von einem Formular, oft in Verbindung mit Kontaktformularen. Wenn Sie diese Funktion in einer Testumgebung testen, funktioniert dies nicht, denn Testumgebungen unterstützen die Funktion mail() meistens nicht. XAMPP beispielsweise speichert die versendeten Mails im Ordner C:/xampp/apache/mailoutput. Als Funktionsparameter für mail() werden mehrere Daten übergeben: E-Mail des Empfängers, Betreff-Text, Nachrichten-Text und Header-Informationen. Bei den Text-E-Mails benötigen wir als Header-Informationen nur den Absendername und die Absender-E-Mail-Adresse. Dies sieht im fertigen Beispiel z. B. so aus: "From: Max Mustermann <info@example.org>". Diesen Teil kann man natürlich direkt eingeben. Wir empfehlen Ihnen jedoch, alle Informationen in einer Variabel zu speichern (wie in unserem Beispiel). Bei den Text-E-Mails ist ebenfalls noch etwas anderes zu beachten: Denn hier dürfen keinerlei HTML-Befehle (z. B. <p>) verwendet werden. Für Text-E-Mails gibt es nur eine einzige "Formatierungsart": Der Zeilenumbruch. In HTML würden würden wir <br /> verwenden, bei Text-E-Mails verwenden wir einfach \n (Übrigens der Zeilenumbruch im Quelltext bewirkt ebenfalls eine \n). Hier haben wir ein einfache PHP-Skript zum Versenden einer E-Mail. Das HTML-Formular haben wir hier nicht vorgestellt, da es nichts besonderes ist.

$empfaenger = "info@example.org";
 
$abvorname = $_POST['vorname'];
$abnachname = $_POST['nachname'];
$absender = $_POST['absender'];
$text = $_POST['text'];
 
$from = "From: $abvorname $abnachname <$absender>";
$betreff = "Kontaktformular";
$nachricht = "Ihr Kontaktformular hat folgende Nachricht &uuml;bermittelt:
\n
Vorname: $abvorname
Nachname: $abnachname
Absender-E-Mail: $absender
Nachricht: $text";
 
mail($empfaenger, $betreff, $nachricht, $from);
 
echo "<u><b>Folgende Daten wurden uns zugesendet:</b></u><br />";
echo "<b>Vorname:</b> ".$abvorname."<br />";
echo "<b>Nachname:</b> ".$abnachname."<br />";
echo "<b>Absender-E-Mail:</b> ".$absender."<br />";
echo "<b>Nachricht:</b> ".$text."<br />";
Anzeigebeispiel
Anzeigebeispiel



Unterschied bei HTML-E-Mails

Bei HTML-E-Mails gibt es noch ein paar Dinge zu beachten. Eine HTML-E-Mail wird nämlich durch weitere Header-Angaben gekennzeichnet. Es gibt zwei Angabe die notwendig sind um HTML-E-Mails zu versenden: "Content-Type: text/html " und "Reply-To: EMAILADRESSE". Diese Angaben müssen bei unserem Beispiel zur from-Variabel hinzugefügt werden. Wer noch weitere Angaben benützen möchte, kann zusätzlich noch Cc-E-Mails und Bcc-E-Mails verschicken (siehe Beispiel). Am Ende jeder solchen Zeile (außer der letzten Zeile) muss der Befehl \n stehen. Wichtig ist das in der from-Variabel keine HTML-Befehl (z. B. <br />) verwendet werden. Wichtig zu wissen ist, das E-Mails die von PHP versendet werden, erstmals nicht beantwortet werden können. Dies ist natürlich für Kontaktformulare schlecht, denn wenn jemand an Sie eine Kontaktanfrage geschickt hat, möchten Sie auch darauf antworten können, indem Sie auf "Antworten" klicken. Natürlich können wir uns hier behelfen indem wir noch weitere Header-Daten setzen (Return-Path und X-Sender). Des Weiteren erhält die mail()-Funktion noch ein weiteres Argument: "-f EMAILADRESSE". Innerhalb von dem Nachrichtentext dürfen alle HTML-Befehle genutzt werden. Man kann nun im Nachrichtentext ein ganzes HTML-Grundgerüst bauen. Selbstverständlich darf somit auch in dem Head- oder evtl. auch dem Body-Bereich CSS oder JavaScript mit eingebunden werden. Bitte bedenken Sie auch, dass hier alle doppelten Anfhrungszeichen mit einem Slash (/) maskiert werden müssen. Hier unser HTML-E-Mail-Beispiel:

$empfaenger1 = "info1@example.org";
$empfaenger2 = "info2@example.org";
$empfaenger3 = "info3@example.org";
 
$abvorname = $_POST['vorname'];
$abnachname = $_POST['nachname'];
$absender = $_POST['absender'];
$text = $_POST['text'];
 
$from = "From: $abvorname $abnachname <$absender>\n";
$from .= "Reply-To: $absender\n";
$from .= "Return-Path: $absender\n";
$from .= "Cc: $empfaenger2\n";
$from .= "Bcc: $empfaenger3\n";
$from .= "X-Sender: $absender\n";
$from .= "Content-Type: text/html\n";
$betreff = "Kontaktformular";
$nachricht = "<!DOCTYPE html>
<html>
 
<head>
  <title>Nachricht des Kontaktformulars</title>
 
  <meta charset=\"ISO-8859-1\" />
  <meta name=\"author\" content=\"Benjamin Jung\" />
  <meta name=\"description\" content=\"E-Mail-Testnachricht\" />
  <meta name=\"keywords\" content=\"Test, Nachricht\" />
</head>
 
<body>
  <u><b>Ihr Kontaktformular hat folgende Nachricht &uuml;bermittelt:</b></u>
  <br /><br />
  <b>Vorname:</b> $abvorname
  <br />
  <b>Nachname:</b> $abnachname
  <br />
  <b>Absender-E-Mail:</b> $absender
  <br />
  <b>Nachricht:</b> $text
</body>
 
</html>";
 
mail($empfaenger1, $betreff, $nachricht, $from, "-f $absender");
 
echo "<u><b>Folgende Daten wurden uns zugesendet:</b></u><br />";
echo "<b>Vorname:</b> ".$abvorname."<br />";
echo "<b>Nachname:</b> ".$abnachname."<br />";
echo "<b>Absender-E-Mail:</b> ".$absender."<br />";
echo "<b>Nachricht:</b> ".$text."<br />";
Anzeigebeispiel
Anzeigebeispiel



Design:
 


Logo
Benjamin Jung
Krummstr. 9/3
73054 Eislingen

E-Mail: info@homepage-webhilfe.de
Webseite: www.homepage-webhilfe.de