@alleinherrscher: Bei Multi-Threading Clients mit Firebird herrschen andere Gesetze und Dinge, die vorher gingen, funktionieren nun nicht mehr. Aus Firebird-Sicht gibt es hier ein paar Regeln, wie zum Beispiel: Jeder Thread eine eigene
DB-Verbindung, kein Transaktions-Sharing zwischen Threads etc ...
Ich kenne jetzt dein Objektmodell nicht, aber ein Anfang bei dir wäre vermutlich im Email-Thread eine eigene, lokale TDatabaseConnection Instanz, die in keinster Weise in Abhängigkeit zu anderen Threads (auch nicht dem Main-Thread!) steht.