# 📧 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 ```php 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: ```php 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: ```php 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 ```php 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 ```php define('SMTP_HOST', 'smtp.ionos.de'); define('SMTP_PORT', 587); define('SMTP_SECURE', 'tls'); define('SMTP_USERNAME', 'ihre-email@ihre-domain.de'); ``` #### All-Inkl ```php 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) ```php 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](https://support.google.com/accounts/answer/185833) ## 🚀 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 1. Öffnen Sie Ihre Website im Browser 2. Gehen Sie zur Kontaktseite 3. FĂŒllen Sie das Formular aus 4. Senden Sie eine Test-Nachricht 5. PrĂŒfen Sie Ihr Postfach (auch Spam-Ordner!) ### Fehlerbehebung #### E-Mail kommt nicht an **Lösung 1: Logfile prĂŒfen** - Schauen Sie im `error_log` Ihres Webservers - Meist zu finden im Root-Verzeichnis oder `/logs/` **Lösung 2: SMTP statt mail() verwenden** - Setzen Sie `USE_SMTP` auf `true` in der `config.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_FROM` eine 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: ```bash # Test: Diese URL sollte NICHT funktionieren: https://ihre-domain.de/config.php ``` Sie sollten einen "403 Forbidden" Fehler sehen. ### Weitere Sicherheitsmaßnahmen 1. **Sichere Passwörter verwenden** - Mindestens 16 Zeichen - Groß-/Kleinbuchstaben, Zahlen, Sonderzeichen 2. **SSL/HTTPS verwenden** - Ihr Hoster sollte ein kostenloses Let's Encrypt Zertifikat anbieten 3. **Rate Limiting ist bereits aktiv** - Maximal 1 E-Mail pro Minute pro IP-Adresse - Schutz gegen Spam-Bots 4. **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: ```php $mailBody = ' '; ``` ### Weiterleitungs-URLs Ă€ndern In `config.php`: ```php define('SUCCESS_URL', 'kontakt.html?success=1'); define('ERROR_URL', 'kontakt.html?error=1'); ``` ### ZusĂ€tzliche Formularfelder 1. Feld in `kontakt.html` hinzufĂŒgen 2. Feld in `send-mail.php` validieren und einbinden 3. E-Mail-Template in `send-mail.php` anpassen ## 📞 Support **Bei technischen Problemen:** 1. PrĂŒfen Sie das `error_log` auf Ihrem Server 2. Kontaktieren Sie Ihren Webhoster fĂŒr SMTP-Einstellungen 3. 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! 🚀**