Oftmals ist der Versand von Emails in PHP Scripten über die normale mail()-Funktion zu unsicher. Um die Versandsicherheit (Spamfilter etc.) zu erhöhen lohnt sich der Einsatz eines Mailservers zum Versand. Hierfür gibt es die PHP-Klasse PHPMailer die zahlreiche Möglichkeiten bietet Emails zu versenden.
Eine einfache Funktion dient als zentrale Anlaufstelle für jeglichen Emailversand:
//// VERSENDEN DER EMAIL ////
function send_email($empf, $mailtext, $betreff, $anhang) {$mail = new PHPMailer();
$mail->IsSMTP(); // send via SMTP
$mail->Host = “mein.mailserver.de”; // SMTP servers
$mail->SMTPAuth = true; // turn on SMTP authentication
$mail->Username = “XXXXX”; // SMTP username
$mail->Password = “XXXXXX”; // SMTP password$mail->From = “meine@emailadresse.de”;
$mail->FromName = “Mein Name”;
$mail->AddReplyTo(“meine@emailadresse.de”,”Mein Name”);/// EMPFÄNGER EINTRAGEN ////
$teile = explode(“;”, $empf);
reset ($teile);
while (list ($key, $val) = each ($teile)) {
$mail->AddBCC($val);
}/// ANHÄNGE ///
$teile = explode(“;”, $anhang);
reset ($teile);
while (list ($key, $val) = each ($teile)) {
$dateiname = explode(“/”, $val);
$dateiname = array_pop($dateiname);
/// Anhängen
$mail->AddAttachment($val, $dateiname);
}$mail->IsHTML(true); // send as HTML
$mail->Subject = $betreff;
$mail->Body = $mailtext;
$mail->AltBody = $mailtext;if(!$mail->Send()) { exit; }
$mail->ClearAddresses();
$mail->ClearAttachments();
}
Vor dem Aufruf dieser Funktion muss lediglich die Klasse PHPMailer inkludiert werden z.B. include(“../phpmailer/class.phpmailer.php”);
Die Emails werden direkt über den angegeben Mailserver versandt und somit ist die Wahrscheinlichkeit, dass Sie in keinem Spamfilter hängen bleiben, geringer.
Dieser Funktion kann man folgende Argumente übergeben:
$empf
Empfänger der Email – bei mehreren mit Strichpunkt getrennt – Versand erfolgt als BCC
$anhang
Anhänge der Email – bei mehreren mit Strichpunkt getrennt – übergeben wird lediglich der Pfad zur Datei z.B. files/file.dat
Im obigen Beispiel wird die Email im HTML-Format versandt. Ist dies nicht gewünscht muss lediglich die Zeile
$mail->IsHTML(true);
auskommentiert werden.
Download/Projektseite von PHPMailer: http://phpmailer.sourceforge.net