E-Mail-Versand mit PHP: Vollständiger Leitfaden zur PHPMailer-Bibliothek

Online Python-Trainer für Anfänger

Lernen Sie Python einfach ohne theoretische Überlastung. Lösen Sie praktische Aufgaben mit automatischer Überprüfung und schreiben Sie Code direkt im Browser.

Kurs starten

PHPMailer-Bibliothek: Professioneller E-Mail-Versand mit PHP



Das Versenden von E-Mails ist eine der Kernfunktionen jeder modernen Webanwendung. Die integrierte PHP-Funktion mail() erweist sich oft als nicht flexibel und sicher genug: Sie unterstützt keine SMTP-Authentifizierung, TLS/SSL-Verschlüsselung, den Versand von HTML-E-Mails mit Anhängen und funktioniert auf Shared Hostings nicht immer korrekt. Die Lösung dieser Probleme ist die Bibliothek PHPMailer, die zum De-facto-Standard für den E-Mail-Versand mit PHP geworden ist.



Was ist PHPMailer?

PHPMailer ist eine leistungsstarke und einfach zu verwendende Bibliothek zum Versenden von E-Mails aus PHP-Skripten. Sie unterstützt:

  • Versand über einen SMTP-Server (Gmail, Yandex, Mail.ru, geschäftliche E-Mail);
  • TLS- und SSL-Verschlüsselung;
  • HTML-E-Mails mit Anhängen (Bilder, PDFs, Dokumente);
  • UTF-8-Kodierung und Arbeit mit beliebigen Sprachen (Russisch, Chinesisch usw.);
  • Alternativtext (Plain-Text) für E-Mail-Clients ohne HTML;
  • DKIM- und SPF-Signatur zum Schutz vor Spam;
  • Arbeit über lokales sendmail oder integriertes mail() als Fallback.


Installation von PHPMailer

Der einfachste Weg ist über Composer. Führen Sie im Terminal im Stammverzeichnis Ihres Projekts folgenden Befehl aus:

composer require phpmailer/phpmailer

Wenn Composer nicht verwendet wird, können Sie das Archiv von GitHub herunterladen und die Dateien manuell einbinden:

require_once '/pfad/zu/PHPMailer/src/PHPMailer.php';require_once '/pfad/zu/PHPMailer/src/SMTP.php';require_once '/pfad/zu/PHPMailer/src/Exception.php';


Basisbeispiel zum Senden einer E-Mail über Gmail SMTP

Betrachten wir die minimale Konfiguration zum Senden einer E-Mail über den Gmail SMTP-Server. Hinweis: Dafür müssen Sie in den Einstellungen Ihres Google-Kontos ein App-Passwort erstellen (oder die weniger sichere Option „Zugriff für weniger sichere Apps“ verwenden).

<?phpuse PHPMailer\\PHPMailer\\PHPMailer;use PHPMailer\\PHPMailer\\SMTP;use PHPMailer\\PHPMailer\\Exception;

require 'vendor/autoload.php';

$mail = new PHPMailer(true);

try { // Servereinstellungen $mail->SMTPDebug = SMTP::DEBUG_OFF; // Debugging (0 - aus, 2 - detailliert) $mail->isSMTP(); // SMTP verwenden $mail->Host = 'smtp.gmail.com'; // SMTP-Server $mail->SMTPAuth = true; // Authentifizierung aktivieren $mail->Username = 'your-email@gmail.com'; // SMTP-Benutzername $mail->Password = 'your-app-password'; // SMTP-Passwort (App-Passwort) $mail->SMTPSecure = PHPMailer::ENCRYPTION_SMTPS; // SSL $mail->Port = 465; // Port für SSL (587 für TLS)

// Absender und Empfänger $mail->setFrom('from@example.com', 'Absendername'); $mail->addAddress('to@example.com', 'Empfängername'); // Mehrere möglich $mail->addReplyTo('reply@example.com', 'Antworten');

// Anhänge (optional) $mail->addAttachment('/pfad/zu/datei.pdf', 'Name.pdf');

// E-Mail-Inhalt $mail->isHTML(true); // HTML-Format $mail->Subject = 'Hallo von PHPMailer!'; $mail->Body = '<b>Dies ist eine HTML-E-Mail</b> mit deutschem Text.'; $mail->AltBody = 'Dies ist ein Alternativtext für E-Mail-Clients ohne HTML.';

$mail->send(); echo 'E-Mail erfolgreich gesendet';} catch (Exception $e) { echo "Fehler: {$mail->ErrorInfo}";}?>


Versand über Yandex.Mail

Für Yandex.Mail ändern sich die Parameter nur geringfügig. Wichtig: In den Postfacheinstellungen muss der Zugriff über das IMAP/SMTP-Protokoll erlaubt und ein App-Passwort erstellt werden (falls die Zwei-Faktor-Authentifizierung aktiviert ist).

$mail                    

Empfehlungen