# 📧 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.