E-Mails mit PHP versenden
Sonntag, 11. März 2007 | Autor: Pr0g
HTML E-Mails versenden
Für das Versenden von reinen HTML E-Mails muss unsere Funktion nur leicht erweitert werden. Und zwar ist die Angabe eines zusätzlichen “Content-Type” im Header erforderlich. Dazu werden folgende Zeilen in die Funktion eingefügt:
// Content-Type auf HTML setzen
$header .= 'MIME-Version: 1.0' . "\r\n"
. 'Content-Type: text/html; charset=iso-8859-1' . "\r\n";
Die gesamte Funktion sieht nun wie folgt aus:
<?php
//
// E-Mail versenden
//
function SendMail($to, $from, $subject, $message, $reply = '') {
// Alle Zeilenumbrüche in der Nachricht auf \n setzen
$message = str_replace(array("\r\n", "\r"), "\n", $message);
// Absender auf gültige E-Mailadresse prüfen
$from = trim($from);
if (!preg_match('/^[\w.+-]{1,64}\@[\w.-]{1,255}\.[a-z]{2,6}$/', $from)) {
return false;
}
// Absender in Header schreiben
$header = 'From: ' . $from . "\r\n";
// Antwortadresse falls vorhanden in Header schreiben
if (!empty($reply)) {
$header .= 'Reply-To: ' . trim($reply) . "\r\n";
}
// Content-Type auf HTML setzen
$header .= 'MIME-Version: 1.0' . "\r\n"
. 'Content-Type: text/html; charset=iso-8859-1' . "\r\n";
// E-Mail versenden
return mail($to, $subject, $message, $header);
}
?>
Der Aufruf ist gleich geblieben, nur in $message wird nun HTML Code verwendet:
<?php
// E-Mail mit HTML versenden
$message = '
<html>
<head>
<title>E-Mail Titel</title>
</head>
<body>
Diese E-Mail verwendet <b>HTML</b><br />
Zeile 2
</body>
</html>
';
$status = SendMail('Max Muster <max@domain.de>',
'Peter Muster <peter@domain>',
'Testbetreff',
$message);
echo 'E-Mail wurde ' . ($status ? '' : 'nicht ') . 'versendet!';
?>
Einige E-Mail Programme zeigen (je nach Einstellung des Benutzers) jedoch keine HTML E-Mails an. Teilweise werden die HTML Formatierungen dann versucht durch passende Zeichen ähnlich darzustellen (bspw. das Layout von Tabellen durch Leerzeichen zu erhalten, oder Fett formatierte Absätze in * eingebunden). Wer auf Nummer sicher gehen will kann daher eine E-Mail auch als HTML- und Textausführung gleichzeitig senden. Dazu mehr im nächsten Schritt.




Montag, 18. August 2008
Hi,
Anhand dem folgenden Beispiel wird beschrieben, wie man mit dem phpmailer eine einfache E-Mail versenden kann. http://www.phptoast.de/e-mails-versenden-mit-php/233/
Montag, 18. August 2008
Es ist sicher eine nette Alternative, aber auf das Absenden komplexerer Emails mit Dateianhängen geht das (recht kurze) Beispiel nicht ein. Kann die Klasse das überhaupt, eine Erwähnung der Funktionen wäre sicherlich noch nett
Montag, 18. August 2008
Na klar kann man mit der Klasse auch Mails mit Anhang versenden. Das kannst du über folgende Funktion relaisieren: AddAttachment()
Eine detaillierte Dokumentation findest du hier:
http://phpmailer.codeworxtech.com/index.php?pg=methods