现在很多邮件服务器都要验证的了。
方法:
function EncodeBase64(Source:string):string;
const
  BaseTable = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';
var
  Times, LenSrc, i: Integer;
  x1, x2, x3, x4: Char;
  xt: Byte;
begin
  Result := '';
  LenSrc := Length(Source);
  if LenSrc mod 3 = 0 then
    Times := LenSrc div 3
  else
    Times := LenSrc div 3 + 1;
  for i := 0 to Times - 1 do
  begin
    if LenSrc >= (3 + i * 3) then
    begin
      x1 := BaseTable[(ord(Source[1 + i * 3]) shr 2)+1];
      xt := (ord(Source[1 + i * 3]) shl 4) and 48;
      xt := xt or (ord(Source[2 + i * 3]) shr 4);
      x2 := BaseTable[xt + 1];
      xt := (Ord(Source[2 + i * 3]) shl 2) and 60;
      xt := xt or (Ord(Source[3 + i * 3]) shr 6);
      x3 := BaseTable[xt + 1];
      xt := (ord(Source[3 + i * 3]) and 63);
      x4 := BaseTable[xt + 1];
    end
    else if LenSrc >= (2 + i * 3) then
    begin
      x1 := BaseTable[(Ord(Source[1 + i * 3]) shr 2) + 1];
      xt := (Ord(Source[1 + i * 3]) shl 4) and 48;
      xt := xt or (Ord(Source[2 + i * 3]) shr 4);
      x2 := BaseTable[xt + 1];
      xt := (Ord(Source[2 + i * 3]) shl 2) and 60;
      x3 := BaseTable[xt + 1];
      x4 := '=';
    end else
    begin
      x1 := BaseTable[(Ord(Source[1 + i * 3]) shr 2)+1];
      xt := (Ord(Source[1 + i * 3]) shl 4) and 48;
      x2 := BaseTable[xt + 1];
      x3 := '=';
      x4 := '=';
    end;
    Result := Result + x1 + x2 + x3 + x4;
  end;
end;连接时的验证代码也给出来吧
procedure TForm1.FSMTPConnect(Sender: TObject);
var
passw,useri:string;
begin
  passw:=passs;    //取密码
  useri:=copy(adds,1,pos('@',adds)-1);
  if FSMTP.ReplyNumber = 250 then
     FSMTP.Transaction('auth login');
  if FSMTP.ReplyNumber = 334 then
  begin
    FSMTP.Transaction(EncodeBase64(useri));
    FSMTP.Transaction(EncodeBase64(passw));
  end;end;我按上面的方法做好了一个。