Was ist PHPMailer und warum braucht man es?
PHPMailer ist eine der beliebtesten und leistungsstärksten Bibliotheken zum Versenden von E-Mails in PHP. Sie bietet eine einfache, aber dennoch flexible Schnittstelle für die Arbeit mit den Protokollen SMTP, POP3 und IMAP. Im Gegensatz zur standardmäßigen PHP-Funktion mail() bietet PHPMailer zahlreiche Vorteile:
- SMTP-Authentifizierung — sicheres Versenden über externe Mailserver (Gmail, Outlook, eigener SMTP-Server).
- HTML-E-Mails — Erstellung ansprechender, formatierter E-Mails mit Bildern und Styles.
- Anhänge — Möglichkeit, Dateien jeden Typs anzuhängen.
- UTF-8-Unterstützung — korrekte Darstellung von Umlauten und Sonderzeichen.
- Schutz vor Header-Injection — Sicherheit für Ihre Anwendung.
- Unterstützung verschiedener Kodierungen — Base64, Quoted-Printable und mehr.
- CC und BCC — Blind- und Kopien-Empfänger.
Die Bibliothek wird in tausenden Projekten weltweit eingesetzt, darunter in CMS wie WordPress, Drupal und Joomla. Wenn Sie E-Mails aus Ihrer PHP-Anwendung versenden müssen – sei es für Registrierungsbestätigungen, Passwort-Zurücksetzungen, Newsletter oder Angebote – ist PHPMailer Ihr unverzichtbares Werkzeug.
PHPMailer installieren
PHPMailer wird über Composer installiert, den Abhängigkeitsmanager für PHP. Falls Sie Composer noch nicht haben, installieren Sie es von der offiziellen Website getcomposer.org.
Öffnen Sie das Terminal im Hauptverzeichnis Ihres Projekts und führen Sie folgenden Befehl aus:
composer require phpmailer/phpmailer
Nach erfolgreicher Installation finden Sie in Ihrem Projekt den Ordner vendor und die Datei composer.json. Um die Bibliothek in Ihrem PHP-Skript einzubinden, nutzen Sie den Composer-Autoloader:
require 'vendor/autoload.php';
Falls Sie Composer nicht verwenden, können Sie die Bibliothek manuell von GitHub herunterladen und mit require_once einbinden. Wir empfehlen jedoch dringend die Nutzung von Composer für die automatische Verwaltung der Abhängigkeiten.
Schnellstart mit Codebeispiel
Lassen Sie uns unsere erste E-Mail mit PHPMailer versenden. In diesem Beispiel verwenden wir den SMTP-Server von Gmail. Stellen Sie sicher, dass Sie den Zugriff für weniger sichere Apps aktiviert haben oder ein App-Passwort bei Zwei-Faktor-Authentifizierung nutzen.
<?php
// Composer-Autoloader einbinden
require 'vendor/autoload.php';
// PHPMailer-Klassen importieren
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\SMTP;
use PHPMailer\PHPMailer\Exception;
// PHPMailer-Instanz erstellen
$mail = new PHPMailer(true);
try {
// Server-Einstellungen
$mail->SMTPDebug = SMTP::DEBUG_OFF; // Debugging deaktivieren (für Produktion)
$mail->isSMTP(); // SMTP verwenden
$mail->Host = 'smtp.gmail.com'; // SMTP-Server
$mail->SMTPAuth = true; // Authentifizierung aktivieren
$mail->Username = 'ihre_email@gmail.com'; // Ihre E-Mail
$mail->Password = 'ihr_passwort'; // Ihr Passwort oder App-Passwort
$mail->SMTPSecure = PHPMailer::ENCRYPTION_SMTPS; // SSL-Verschlüsselung
$mail->Port = 465; // Port für SSL
// Absender und Empfänger
$mail->setFrom('ihre_email@gmail.com', 'Ihr Name');
$mail->addAddress('empfaenger@example.com', 'Name des Empfängers');
// E-Mail-Inhalt
$mail->isHTML(true); // HTML-Format aktivieren
$mail->Subject = 'Test-E-Mail von PHPMailer';
$mail->Body = '<h1>Hallo!</h1><p>Dies ist eine Test-E-Mail, gesendet mit <b>PHPMailer</b>.</p>';
$mail->AltBody = 'Hallo! Dies ist eine Test-E-Mail