6.4 KiB
📧 PHPMailer Einrichtungsanleitung
Diese Anleitung erklärt, wie Sie das Kontaktformular mit PHPMailer auf Ihrem Webserver einrichten.
✅ Was wurde installiert
webseite/
├── config.php # E-Mail-Konfiguration (WICHTIG: Anpassen!)
├── send-mail.php # Mail-Versand-Script
├── .htaccess # Schutz der Konfiguration
└── phpmailer/ # PHPMailer Bibliothek
├── PHPMailer.php
├── SMTP.php
└── Exception.php
🔧 Schritt 1: Konfiguration anpassen
Öffnen Sie config.php und passen Sie folgende Einstellungen an:
E-Mail Grundeinstellungen
define('MAIL_TO', 'baumer@traidendorf.de'); // IHR POSTFACH
define('MAIL_FROM', 'noreply@ihre-domain.de'); // Absender-Adresse
Option A: Standard PHP mail() Funktion (Einfachste Lösung)
Die meisten Webhosting-Anbieter unterstützen die mail() Funktion direkt:
define('USE_SMTP', false); // So belassen
Vorteile:
- ✅ Keine zusätzliche Konfiguration nötig
- ✅ Funktioniert bei den meisten Hostern out-of-the-box
Nachteile:
- ⚠️ E-Mails landen manchmal im Spam
- ⚠️ Nicht alle Hoster erlauben mail()
Geeignet für: Strato, 1&1, All-Inkl, Host Europe, etc.
Option B: SMTP (Zuverlässigste Lösung)
Für professionellen Versand mit SMTP:
define('USE_SMTP', true);
define('SMTP_HOST', 'smtp.ihre-domain.de'); // SMTP-Server
define('SMTP_PORT', 587); // 587 für TLS, 465 für SSL
define('SMTP_SECURE', 'tls'); // 'tls' oder 'ssl'
define('SMTP_USERNAME', 'ihre-email@ihre-domain.de');
define('SMTP_PASSWORD', 'ihr-sicheres-passwort');
Vorteile:
- ✅ Zuverlässigster Versand
- ✅ Bessere Spam-Bewertung
- ✅ Authentifizierung
SMTP-Einstellungen für beliebte Hoster:
Strato
define('SMTP_HOST', 'smtp.strato.de');
define('SMTP_PORT', 587);
define('SMTP_SECURE', 'tls');
define('SMTP_USERNAME', 'ihre-email@ihre-domain.de');
1&1 / IONOS
define('SMTP_HOST', 'smtp.ionos.de');
define('SMTP_PORT', 587);
define('SMTP_SECURE', 'tls');
define('SMTP_USERNAME', 'ihre-email@ihre-domain.de');
All-Inkl
define('SMTP_HOST', 'ihr-servername.kasserver.com');
define('SMTP_PORT', 587);
define('SMTP_SECURE', 'tls');
define('SMTP_USERNAME', 'ihre-email@ihre-domain.de');
Gmail (für Tests)
define('SMTP_HOST', 'smtp.gmail.com');
define('SMTP_PORT', 587);
define('SMTP_SECURE', 'tls');
define('SMTP_USERNAME', 'ihre-gmail@gmail.com');
define('SMTP_PASSWORD', 'app-spezifisches-passwort'); // Nicht Ihr normales Passwort!
⚠️ Bei Gmail: App-spezifisches Passwort erstellen
🚀 Schritt 2: Auf Webserver hochladen
Laden Sie alle Dateien per FTP auf Ihren Webserver:
/public_html/ (oder /htdocs/, /www/)
├── index.html
├── kontakt.html
├── config.php ← WICHTIG: Passwort hier drin!
├── send-mail.php
├── .htaccess
├── phpmailer/
├── css/
├── js/
└── ...
🧪 Schritt 3: Testen
- Öffnen Sie Ihre Website im Browser
- Gehen Sie zur Kontaktseite
- Füllen Sie das Formular aus
- Senden Sie eine Test-Nachricht
- Prüfen Sie Ihr Postfach (auch Spam-Ordner!)
Fehlerbehebung
E-Mail kommt nicht an
Lösung 1: Logfile prüfen
- Schauen Sie im
error_logIhres Webservers - Meist zu finden im Root-Verzeichnis oder
/logs/
Lösung 2: SMTP statt mail() verwenden
- Setzen Sie
USE_SMTPauftruein derconfig.php - Konfigurieren Sie die SMTP-Einstellungen
Lösung 3: PHP mail() aktivieren
- Kontaktieren Sie Ihren Hoster
- Fragen Sie, ob die
mail()Funktion aktiviert ist
E-Mails landen im Spam
Lösung:
- Verwenden Sie SMTP statt mail()
- Stellen Sie sicher, dass
MAIL_FROMeine echte E-Mail Ihrer Domain ist - Richten Sie SPF/DKIM Records ein (bei Ihrem Hoster)
Fehler "Could not instantiate mail function"
Lösung:
- Die PHP
mail()Funktion ist deaktiviert - Wechseln Sie zu SMTP (
USE_SMTP = true)
Fehler "SMTP connect() failed"
Lösung:
- SMTP-Host falsch → Prüfen Sie bei Ihrem Hoster
- Port falsch → Meist 587 (TLS) oder 465 (SSL)
- Benutzername/Passwort falsch
- Firewall blockiert → Kontaktieren Sie Ihren Hoster
🔒 Sicherheit
WICHTIG: Schützen Sie config.php!
Die .htaccess Datei schützt bereits Ihre config.php. Überprüfen Sie:
# Test: Diese URL sollte NICHT funktionieren:
https://ihre-domain.de/config.php
Sie sollten einen "403 Forbidden" Fehler sehen.
Weitere Sicherheitsmaßnahmen
-
Sichere Passwörter verwenden
- Mindestens 16 Zeichen
- Groß-/Kleinbuchstaben, Zahlen, Sonderzeichen
-
SSL/HTTPS verwenden
- Ihr Hoster sollte ein kostenloses Let's Encrypt Zertifikat anbieten
-
Rate Limiting ist bereits aktiv
- Maximal 1 E-Mail pro Minute pro IP-Adresse
- Schutz gegen Spam-Bots
-
Honeypot ist bereits integriert
- Verstecktes Feld zum Spam-Schutz
📊 Features des Kontaktformulars
✅ Spam-Schutz
- Honeypot-Feld (verstecktes Feld für Bots)
- Rate Limiting (max. 1 Mail pro Minute)
- Eingabe-Validierung
✅ Benutzerfreundlich
- Erfolgs-/Fehlermeldungen
- Formular-Vorausfüllung (Maschine aus Link)
- Loading-Animation beim Absenden
✅ Professionell
- HTML-E-Mails mit Styling
- Plain-Text Fallback
- IP-Adresse und Zeitstempel in E-Mail
✅ Datenschutz
- Keine Daten werden extern gespeichert
- Alles auf Ihrem Server
- DSGVO-konform
🎯 Anpassungen
E-Mail-Design ändern
Bearbeiten Sie in send-mail.php den HTML-Code ab Zeile ~95:
$mailBody = '
<html>
<!-- Hier können Sie das Design anpassen -->
</html>
';
Weiterleitungs-URLs ändern
In config.php:
define('SUCCESS_URL', 'kontakt.html?success=1');
define('ERROR_URL', 'kontakt.html?error=1');
Zusätzliche Formularfelder
- Feld in
kontakt.htmlhinzufügen - Feld in
send-mail.phpvalidieren und einbinden - E-Mail-Template in
send-mail.phpanpassen
📞 Support
Bei technischen Problemen:
- Prüfen Sie das
error_logauf Ihrem Server - Kontaktieren Sie Ihren Webhoster für SMTP-Einstellungen
- Testen Sie zunächst mit
USE_SMTP = false(mail() Funktion)
Hoster-Support fragen nach:
- "PHP mail() Funktion aktiviert?"
- "SMTP-Server Zugangsdaten für E-Mail-Versand"
- "Welcher Port für SMTP? (587 oder 465)"
Viel Erfolg! 🚀