Here is a quickie:
//declare another integer called x
while i <= Length(sEmail) do
begin
while x <= Length(ALLOWED) do
begin
if sEmail[i] = ALLOWED[x] then
begin
bResult := true;
break;
end;
else
begin
bResult := false;
// break;
end;
Inc(x) ;
end;
Inc(i)
end;
Code is as-is and untested. Also very dirty and there are 1000000s of better ways to do this.
BTW, pritaeas is right: With this you are just validating if it is a email, not a proper email.