Sources
Delphi Russian Knowledge Base
DRKB - это самая большая и удобная в использовании база знаний по Дельфи в рунете, составленная Виталием Невзоровым

Проверка правильности E-mail адреса

01.01.2007

Автор: Udo Nesshoever

Если пользователю Вашего приложения необходимо вводить почтовый адрес, то возникает потребность в проверке адреса на правильнось. Конечно способов сделать это существует множество, но этот, на мой взгляд, самый короткий и доступный для понимания.

Совместимость: Delphi 3.x (или выше)

function IsValidEmail(const Value: string): boolean; 
  function CheckAllowed(const s: string): boolean; 
  var 
    i: integer; 
  begin 
    Result:= false; 
    for i:= 1 to Length(s) do 
    begin 
      { недопустимый символ в s - значит недопустимый адрес } 
      if not (s[i] in ['a'..'z', 'A'..'Z', '0'..'9', '_', '-', '.']) then 
        Exit; 
    end; 
    Result:= true; 
  end; 
var 
  i: integer; 
  namePart, serverPart: string; 
begin // начало выполнения IsValidEmail 
  Result:= false; 
  i:= Pos('@', Value); 
  if i = 0 then 
    Exit; 
  namePart:= Copy(Value, 1, i - 1); 
  serverPart:= Copy(Value, i + 1, Length(Value)); 
  // @ не указано имя         имя или сервер не указаны; минимально для сервера. "a.com" 
  if (Length(namePart) = 0) or ((Length(serverPart) < 1)) then 
    Exit; 
  i:= Pos('.', serverPart); 
  // должно иметь точку и как минимум два знака от конца 
  if (i = 0) or (i > (Length(serverPart) - 1)) then 
    Exit; 
  Result:= CheckAllowed(namePart) and CheckAllowed(serverPart); 
end; 

Взято из https://forum.sources.ru