Hallo erstmal,
OK, aber der Fehler hier hat vermutlich nichts mit dem Dateinamen zu tun.
Das ReadLn hat einen internen Textpuffer, welcher nicht unbegrenzt groß ist und hier sieht es so aus, als wenn eine Zeile mal zu lang ist.
Wenn dies der Fall ist dann versuche mal anstelle von 30, nur 10 mal Stellen zu kopieren nur um zu testen:
[
mname := trim(copy(IdMessage1.Subject, 1, 10));
Mfg Coffeecoder