
Der phpMailer von
http://phpmailer.sourceforge.net ist eine sehr gute Klasse zum versenden von E-Mails mittels
PHP. Er wird oft als Alternative für die
PHP Funktion
mail() verwendet.
In der aktuellen Version 2.0.x bietet phpMailer noch
PHP4 Unterstützung. Ab Version 2.2.x bietet er volle
PHP5 Unterstützung.
Features
- Senden von E-Mails mit mehreren Empfängern(TO), Kopieempfängern(CC), Blindkopieempfängern(BCC) und Antwortemailadressen(REPLY-TO)
- Funktioniert auf jeder Plattform
- Versenden von HTML Mails
- Einbetten von Bildern in Mails
- Alternative Texte(multipart/alternative) für Clients, die kein HTML darstellen können
- Flexibles Debugging
- Benutzerdefinierte Mailheader
- Simple Mail Transfer Protokoll(SMTP) Unterstützung
- SMTP Authentifizierung
- Unterstützung für 8bit, base64, binary und quoted-printable Codierung
- Automatischer Zeilenumbruch(Word Wrap)
- Unterstützung für Anhänge(Attachments)
Installation
- Das Zip bzw. tar.gz-File in ein beliebiges Verzeichnis entpacken
- Die Dateien class.phpmailer.php und smtp.phpmailer.php sowie das Verzeichnis languages/ in einen Ordner auf dem Server kopieren
- Zum include_path das obrige Verzeichnis hinzufügen
Alternativ man auch die Methode
PHP Quellcode:
$mail->PluginDir = "/path/to/phpmailer/dir";
verwenden.
Beispiel
PHP Quellcode:
<?php
// Sind die kopierten Dateien nicht im selben Verzeichnis, dann
// den include-Pfad dorthin erweitern. In diesem Beispiel gehe
// ich davon aus, daß es ein Verzeichnis phpmailer gibt
// Aktueller Pfad
$pfad = get_include_path();
// Pfad erweitern
$pfad .= PATH_SEPARATOR
. './phpmailer';
// Pfad setzen
set_include_path($pfad);
// Die Klasse einbinden
require_once 'class.phpmailer.php';
// Das Objekt erzeugen
$mail = new PHPMailer
();
// Wenn mit der Language-Datei gearbeitet werden soll,
// dann setzten wir hier die Sprache und Pfad
$mail->SetLanguage ("de", "./phpmailer/");
// In den meisten Fällen benutzen wir einen SMTP-Server
$mail->IsSMTP();
// Der SMTP-Server ist der gleiche Server, wie er im Mail-Client
// (Outlook, Pegasus, etc) eingetragen ist
$mail->Host = "smtp.example.com";
// Meistens wird eine Authentifizierung gebraucht
$mail->SMTPAuth = true;
// Der Benutzername, wie er im Mail-Client eingetragen ist
// Nicht zu verwechseln mit der Mail-Adresse, bei manchen
// Servern ist aber der Benutzername gleich der Adressse
$mail->Username = "benutzername";
// Und nun das Passwort, wie es auch im Mail-Client benutzt wird.
$mail->Password = "passwort";
// Die Absenderadresse
$mail->From = "absender@example.com";
// Der Absendername, nicht zwingend erforderlich
$mail->FromName = "Dein Name";
// Die Empfängeradresse eintragen, der zweite Parameter ist optional
$mail->AddAddress("willi@example.com","Willi Wacker");
// Hier könnte man noch mehr Adressen eintragen
// Falls CC dann (der zweite Parameter ist optional)
$mail->AddCC("donald@example.com","Donald Duck");
// Hier könnte man noch mehr CC's eintragen
// Das geht natürlich auch mit BCC,
// auch hier ist der zweite Parameter optional
$mail->AddBCC("dagobert@example.com","Dagobert Duck");
// Hier könnte man noch mehr BCC's eintragen
// Ein Attachmennt ist auch kein Problem
$mail->AddAttachment("./pdf/eine_pdf_datei.pdf");
// Ein zweites Attachmennt ist auch kein Problem
$mail->AddAttachment("./zip/eine_zip_datei.zip");
// Der Betreff
$mail->Subject = "Wir testen den phpMailer";
// Wenn man eine HTML-Mail verschicken möchte
$mail->IsHTML(true);
// Der HTML-Body
$mail->Body = "<b>Hallo,</b><br><br>alles Paletti?";
// Der Text-Body, falls keine HTML-Mail verschickt wird
// Aber auch bei einer HTML-Mail sollte man hier einen
// Text angeben, falls der Empfänger keine HTML-Mails
// lesen kann, und nicht dumm aus der Wäsche guckt.
$mail->AltBody = "Ohh, keine HTML-Mail";
// Das sollte es für die meistem Fälle gewesen sein
// Also schicken wir die Mail ab
if( ! $mail->Send())
{
echo "Mist, da hat was nicht funktioniert! <p>";
echo "Mailer Error: " . $mail->ErrorInfo;
}
else
echo "Hurra, die Mail ist raus.";
?>
Links