SMTP Mail versenden geht nicht mehr - SQL Express 2019

birdie

Benutzer
Beiträge
6
Hallo,

ich benutze seit längerer Zeit die Sysmail-funktion um aus dem SQL Server (2019 Express) Mails zu verschicken. Das Mail Konto ist bei GMX, bis 27. Mai dieses Jahr hat es noch geklappt, seit 31.5. geht es nicht mehr. (dazwischen wurde nichts versand)
Ist mir erst jetzt aufgefallen... ist jetzt keine super kritische Funktion, wäre aber schon gut, wenn sie wieder ginge.

Die Konto Konfiguration wurde nicht verändert und ist
Code:
exec msdb.dbo.sysmail_update_account_sp
@account_id = 1,
@mailserver_name ='mail.gmx.com',
@email_address = 'XXXXX.mailer@gmx.de',
@username = 'XXXXX.mailer@gmx.de',
@port = 465,
@replyto_address = 'XXXXX.mailer@gmx.de',
@use_default_credentials = 0,
@password = 'XXXXXXX';

Der SQL wirft diesen nicht sehr hilfreichen Fehler im Log aus
Code:
SELECT * FROM msdb.dbo.sysmail_event_log order by log_date desc;
Die E-Mail konnte wegen einem Fehler beim Mailserver nicht an die Empfänger gesendet werden. (E-Mail unter Verwendung des Kontos 1 (2023-09-17T12:36:29) senden. Ausnahmemeldung: E-Mails können nicht an den Mailserver gesendet werden. (Fehler beim Senden von Mail.). )

Der SQL läuft auf einem WinServer 2019.
Das seltsame ist, dass mit der identischern(!) Mail Config auf meinem normalen WinPC (Win11) in der Anwendung Calibre problemlos Mails versendet werden können.

ich habe auch versucht das ganze mit Port 587 (TLS) zu machen, mit dem gleichen Ergebnis, Calibre geht, auf dem SQL nicht.
Nur die Meldung ändert sich
Die E-Mail konnte wegen einem Fehler beim Mailserver nicht an die Empfänger gesendet werden. (E-Mail unter Verwendung des Kontos 1 (2023-05-31T13:17:08) senden. Ausnahmemeldung: E-Mails können nicht an den Mailserver gesendet werden. (Für den SMTP-Server ist eine sichere Verbindung erforderlich, oder der Client wurde nicht authentifiziert. Die Serverantwort war: Authentication required). )

Die Firewall ist korrekt konfiguriert, dass der Server aus ports 25/465/587 raus kann.

Ich hab keine Idee mehr. Kennt jemand das Problem?


Tschau
Stefan
 
Werbung:
Es gibt bei diversen Providern seit einiger Zeit Fehlermeldungen, wenn z.B. an gmail gesendet wird. Da muss irgendwas umkonfiguriert werden. Weiß ich grad nicht auswendig. Dürfte aber dann nur fallweise auftreten.
Ich hab auch keine Ahnung von MSSQL und dieser Funktion: Was bedeutet @use_default_credentials = 0?
 
Das sagt aus, dass die mitgegebenen Anmeldeinfos genommen werden sollen.
Wenn der Wert auf 1 stünde, würde versucht werden sich mit dem Konto, in dessen Kontext die DBEngine läuft, zu verwenden.
 
Irgendwer noch eine Idee, was man da umstellen muss?

Vielleicht die ganze Idee vergessen, emails aus dem DB-Server direkt zu versenden. Email kann, muß aber nicht funktionieren. Was passiert mit der Transaktion, die die Mails (erfolglos) verschickt? Wie lange bleibt die Transaktion offen, falls der Mailserver über 3 Tage einen temporären Fehler zurückgibt?

Die bessere Lösung wäre, eine Queue-Tabelle zu füllen mit den zu versendenden Mails und das extern zu händeln. Also externe App, die sich aus dieser Tabelle was pickt, versucht zu versenden, und bei Mißerfolg die Mail in der Queue hält.
Das ist jedenfalls so die Lösung, die ich meinen Kunden empfehle...
 
Irgendwer noch eine Idee, was man da umstellen muss?
TLS Settings unter Windows sind immer ein guter Punkt zum Kontrollieren.

Hier ist noch ein Link, der dir vielleicht eine Idee liefert, was das Problem sein könnte bzw. eher, in welche Richtungen Du schauen kannst / solltest.

Daraus folgt, dass Du mindestens mal schauen solltest, welche Server Komponenten aktualisiert wurden, seit es nicht mehr geht.
Ich kenne mich mit MS SQL nicht aus, aber was ich anhand des Links machen würde, wäre sicherzustellen, dass die Konfiguration, die Du über SQL gezeigt hast, auch wirklich die ist, die von den Tools verwendet wird, die den Versand tatsächlich machen.

Der Vorschalg, ein anderes Verfahren zu verwenden, ist auch nicht verkehrt.
 
Vielleicht die ganze Idee vergessen, emails aus dem DB-Server direkt zu versenden. Email kann, muß aber nicht funktionieren. Was passiert mit der Transaktion, die die Mails (erfolglos) verschickt? Wie lange bleibt die Transaktion offen, falls der Mailserver über 3 Tage einen temporären Fehler zurückgibt?

Die bessere Lösung wäre, eine Queue-Tabelle zu füllen mit den zu versendenden Mails und das extern zu händeln. Also externe App, die sich aus dieser Tabelle was pickt, versucht zu versenden, und bei Mißerfolg die Mail in der Queue hält.
Das ist jedenfalls so die Lösung, die ich meinen Kunden empfehle...
Hättest du eine Idee für ein Tool, dass das machen kann?
 
Übrigens habe ich jetzt bei Outlook.DE ein neues kostenloses Konto angelegt, funktioniert alles ganz normal dort. Liegt also schon irgendwie am Zusammenspiel mit gmx
 
Werbung:
Hättest du eine Idee für ein Tool, dass das machen kann?
Die "Anregung" von @akretschmer kannste vergessen. Das funktioniert in MS SQL Server tadellos und dort gibt es auch keine Transaktion die möglicherweise irgendwas blockieren könnte. Die "bessere" Lösung von @akretschmer macht der SQL Server alles schon selbstständig. Am besten liest du dich nochmal genau ein wie DatabaseMail funktioniert.
 
Zurück
Oben