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/phpmailerWenn 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 Auch in der Bibliothek
QR-Code-Generator auf JavaScript (Node.js) mit qrcode und qr-image
Go (Golang) Standardbibliothek: vollständiger Überblick
Arbeit mit YAML in C++: Bibliotheken yaml-cpp und rapidyaml
Hibernate ORM: Ein leistungsstarkes Werkzeug für die Arbeit mit Datenbanken in Java
Caching in C# (.NET): Redis und andere Lösungen