Einzelnen Beitrag anzeigen

Benutzerbild von MasterEvil
MasterEvil

Registriert seit: 12. Feb 2005
Ort: Hannover
234 Beiträge
 
Delphi 7 Enterprise
 
#1

SMTP-Server braucht zu lange um erhaltene Mail zu speichern

  Alt 12. Mai 2009, 10:57
Hallo,

ich habe einen SMTP-Server mit Indy IdSmtpServer implementiert und ein Problem beim Erhalten von größeren E-Mails.
Diese werden erfolgreich zum Server versandt und im SMTP-Server wird OnMsgReceive ausgelöst.
Nun speicher ich dort die E-Mail auf die Festplatte und trage Daten in die Datenbank ein.
Dies ist bei kleinen E-Mails alles kein Problem.

Die Ausnahme bilden sehr große Mails über 20 MB. Dort dauert das Speichern der E-Mail am Server zu lange für die meisten Timeouts der Clients. Das OK zurück an den Client kommt erst nach dem Speichern. Dazwischen laufen keine Daten zwischen Client und Server und der Client denkt irgendwann das nichts mehr kommt und wirft einen Timeout. Der Client denkt dann, dass die E-Mail nicht erfolgreich versandt wurde und der Server hat die E-Mail aber komplett und weiß nicht, dass der Client das denkt. So wird so eine E-Mail immer mehrmals versandt.

Jetzt könnte man natürlich diesen Timeout beim Client immer hochregulieren, aber ich dachte, dass der Server evtl. zwischendurch sozusagen einen PING senden kann, dass er noch etwas tut. Hab mich dann auch durch das RFC für SMTP gebuddelt. Dort gibt es auch den NOOB Command, der für so etwas ansich gedacht ist. Dieser muss aber vom Client ausgeführt werden und nicht vom Server. Ist also die falsche Richtung ...

Kennt jemand evtl. eine Lösung?

Gruß,
Steffen
  Mit Zitat antworten Zitat