neonail-database/smtp-mail-setup.md
2025-08-10 19:09:31 +02:00

139 lines
3.3 KiB
Markdown

# 📧 SMTP-Mail-Konfiguration - Korrekte Einrichtung
## ✅ **Korrekte .env Konfiguration:**
```env
MAIL_MAILER=smtp
MAIL_HOST=mail.selfhost.de
MAIL_PORT=465
MAIL_USERNAME=postmaster@hjzyyqdm.mail.selfhost.de
MAIL_PASSWORD=Ikmyra
MAIL_ENCRYPTION=SSL
MAIL_FROM_ADDRESS="neonail@vogt.de.com"
MAIL_FROM_NAME="${APP_NAME}"
```
## 🔧 **Schritte zur Behebung:**
### **Schritt 1: .env Datei korrigieren**
Stelle sicher, dass die `.env` Datei auf dem Webspace die korrekten Werte enthält:
```bash
# Auf dem Webspace
nano .env
# Oder mit sed (falls verfügbar)
sed -i 's/MAIL_MAILER=log/MAIL_MAILER=smtp/' .env
sed -i 's/MAIL_HOST=127.0.0.1/MAIL_HOST=mail.selfhost.de/' .env
sed -i 's/MAIL_PORT=1025/MAIL_PORT=465/' .env
sed -i 's/MAIL_USERNAME=null/MAIL_USERNAME=postmaster@hjzyyqdm.mail.selfhost.de/' .env
sed -i 's/MAIL_PASSWORD=null/MAIL_PASSWORD=Ikmyra/' .env
sed -i 's/MAIL_ENCRYPTION=null/MAIL_ENCRYPTION=SSL/' .env
sed -i 's/MAIL_FROM_ADDRESS=.*/MAIL_FROM_ADDRESS="neonail@vogt.de.com"/' .env
```
### **Schritt 2: Cache leeren**
```bash
php artisan config:clear
php artisan cache:clear
```
### **Schritt 3: Mail-Verbindung testen**
```bash
# Script ausführbar machen
chmod +x test-mail-connection.sh
# Mail-Test ausführen
./test-mail-connection.sh
```
### **Schritt 4: Manueller Test (falls Script nicht funktioniert)**
```bash
php artisan tinker --execute="
use Illuminate\Support\Facades\Mail;
try {
Mail::raw('Test-Mail von NeoNail DB - ' . now(), function(\$message) {
\$message->to('oliver@vogt.de.com')
->subject('NeoNail DB - SMTP Test')
->from('neonail@vogt.de.com', 'NeoNail DB');
});
echo '✅ Test-Mail erfolgreich gesendet!';
} catch(Exception \$e) {
echo '❌ Mail-Fehler: ' . \$e->getMessage();
}
"
```
## 🔍 **Troubleshooting:**
### **Problem 1: "Connection could not be established"**
**Ursache:** SMTP-Server nicht erreichbar
**Lösung:**
```bash
# Teste Port-Erreichbarkeit
telnet mail.selfhost.de 465
# Oder mit nc
nc -zv mail.selfhost.de 465
```
### **Problem 2: "Authentication failed"**
**Ursache:** Falsche Anmeldedaten
**Lösung:**
- Username/Password in `.env` prüfen
- SSL/TLS-Einstellungen prüfen
### **Problem 3: "SSL certificate problem"**
**Ursache:** SSL-Zertifikat-Problem
**Lösung:**
```env
MAIL_ENCRYPTION=SSL
# Oder versuchen:
MAIL_ENCRYPTION=tls
```
## 📋 **Mail-Logs prüfen:**
```bash
# Alle Mail-bezogenen Logs anzeigen
grep -i "mail\|email\|smtp" storage/logs/laravel.log
# Letzte Mail-Fehler
tail -n 50 storage/logs/laravel.log | grep -i mail
# Spezifische Mail suchen
grep -i "willkommens-e-mail" storage/logs/laravel.log
```
## 🎯 **Nach erfolgreicher Konfiguration:**
1. **Neuen User erstellen** - E-Mail sollte versendet werden
2. **Admin-Benachrichtigung** - Admin sollte E-Mail erhalten
3. **Mail-Logs prüfen** - Erfolgreiche Versendung bestätigen
## ⚠️ **Wichtige Hinweise:**
- **Port 465** erfordert SSL-Verschlüsselung
- **Username** muss vollständig sein (mit Domain)
- **Password** darf keine Sonderzeichen enthalten
- **Firewall** muss Port 465 erlauben
- **SMTP-Server** muss für externe Verbindungen konfiguriert sein
## 🚀 **Alternative: Log-Modus für Testing**
Falls SMTP-Probleme bestehen, temporär auf Log-Modus umstellen:
```env
MAIL_MAILER=log
```
E-Mails werden dann in `storage/logs/laravel.log` geschrieben.