Hi,
da ist noch etwas durcheinander in deinem Code. Am einfachsten führst du erstmal eine Variable ein, in der du die Länge zwischenspeicherst. Hier musst du sonst an mind. zwei Stellen die Berechnung ändern und das ist ganz schlecht.
Zudem sind dynamische Arrays nur Zeiger auf ein reserviertes Stück speicher, du musst also den Index überben um das korrekte Element zu bekommen:
Delphi-Quellcode:
var
Buff : Array of char;
endMail, startMail : Integer;
begin
...
setLength (Buff, endMail - startMail + 1);
// length gibt die Länge des Arrays zurück
tbbFile.ReadBuffer(Buff[0], length(Buff));
Gruß De Unwissende