258 lines
6.4 KiB
Markdown
258 lines
6.4 KiB
Markdown
# 📧 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 = '
|
|
<html>
|
|
<!-- Hier können Sie das Design anpassen -->
|
|
</html>
|
|
';
|
|
```
|
|
|
|
### 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! 🚀**
|