Ich hatte neulich die Ehre für einen Kunden, dessen Server von 1&1 gehostet wird, zu arbeiten. An sich hat alles so weit funktioniert bis auf das Kontaktformular. Anfangs dachte ich es lag am PHPMailer – einer praktischen Bibliothek für den Mailversand über PHP. Allerdings trat das Problem durch einen falsch angegebenen SMTP-Host auf.
Statt dem üblichen localhost
oder dem für 1&1-Postfächer typischen smtp.1und1.de
musste der Host mrvnet.kundenserver.de
lauten. Außerdem wichtig: keine Authentifizierung. Code-Beispiel:
require("inc/class.phpmailer.php");
$mail = new PHPMailer(true);
$mail->IsSMTP();
$mail->Host = "mrvnet.kundenserver.de";
$mail->SetFrom($senderMail, $senderName);
$mail->AddAddress($receiverMail, $receiverName);
$mail->Subject = 'Nachricht über das Kontaktformular';
$mail->Body = $message;
$mail->CharSet = "utf-8";
$mail->WordWrap = 72;
try {
if(!$mail->Send())
throw new Exception();
return 'success';
} catch (Exception $e) {
return 'error: ' . $mail->ErrorInfo;
}
Wer näheres zum PHPMailer wissen, sollte sich die Tutorial-Sektion und Beispiele auf deren Webseite mal zu Gemüte führen. Kurz zum Code: das beim Instanzieren des PHPMailers übergebene true
sorgt dafür, dass evtl. auftretende Fehlermeldungen nicht direkt ausgegeben (echo
), sondern als Fehlermeldung geworfen werden (throw new Exception
).
Ich hoffe ich konnte dem ein oder anderen Googler damit ein bisschen Haareraufen ersparen 😉