Mal ganz einfach auf die Idee gekommen vor/nach dem Senden die Connection wieder zu trennen? (immer neuverbinden)
Zitat:
Mailen.IdMessage1.Clear;
Hier kannst du auch nur hoffen, dass wirklich alles nötige bereinigt wird.
Nja, wenn du keine tausenden Mails die Sekunde versendest,
dann gäbe es doch praktisch keine Nachteile alle Mail-Komponenten bei jedem Senden dynamisch zu erstellen und am Ende wieder freizugeben,
und schon kann es auch keine übergreifenden Problemchen geben, zwischen zwei aufrufen.
Und sag bitte nicht, dass "Mailen" die globale Variable für TMailen ist.
Die Methde ist schon in dieser Klasse, also verwendet man hier niemals die globale Variable .... wenn nötig, dann darf man Self benutzen.
Und was die Fehlerbehandlung angeht:
Wieso kommt immer wieder wer auf die
dämliche unpraktische Idee mit ShowMessage den Programmfluß zu unterbrechen?
* entweder richtig mit Exceptions arbeiten (dann braucht die Funktion auch keinen Result)
* oder einen Result Record oder z.B. ein LastErrorText-Property in TMailen, was ma bei Result=False extern ausgewertet werden kann
* und schon lässt sich diese Funkton/Prozedur auch gefahrlos automatisiert nutzen (Fehlerbehandlung da, wo aufgerufen wurde, z.B. schön mit try-except und ohne einen Deadlock zu befürchten)