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

3.3 KiB

📧 SMTP-Mail-Konfiguration - Korrekte Einrichtung

Korrekte .env Konfiguration:

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:

# 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

php artisan config:clear
php artisan cache:clear

Schritt 3: Mail-Verbindung testen

# 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)

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:

# 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:

MAIL_ENCRYPTION=SSL
# Oder versuchen:
MAIL_ENCRYPTION=tls

📋 Mail-Logs prüfen:

# 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:

MAIL_MAILER=log

E-Mails werden dann in storage/logs/laravel.log geschrieben.