procedure TForm1.btnSendClick(Sender: TObject);
begin
  with IdMsgSend do
  begin
    From.Address := Trim(edtFrom.Text);  //发件人地址
    Recipients.EMailAddresses := Trim(edtTo.Text);  //收件人地址
    Subject := edtSubject.Text; //邮件主题
    Body.Assign(mmContent.Lines); //邮件正文
  end;
  try
    IdSMTP1.Host:=Trim(Edit1.Text);
    StatusBar1.SimpleText:='正在连接服务器';
    IdSMTP1.Connect();
    except
    ShowMessage('连接邮件服务器失败!');
    StatusBar1.SimpleText:='连接服务器失败';
    abort;
  end;
  try
    with IdSMTP1 do
    begin
      IdSMTP1.Port:=StrToInt(Edit4.Text);
      IdSMTP1.AuthenticationType :=atLogin;
      IdSMTP1.Username:=Trim(Edit2.Text);
      IdSMTP1.Password:=Trim(Edit3.Text);
      StatusBar1.SimpleText:='正在发送邮件';
      Send(IdMsgSend);
      ShowMessage('发送完毕');
    end;
    finally
    IdSMTP1.Disconnect; //断开服务器连接
  end;
end;

解决方案 »

  1.   

    可能sohu的某些东东与众不同吧!
    ------------CSDN 注册---------------
    如果你使用@sohu.com 邮件,也会因为无法收到邮件通知而被冻结帐号,
    所以CSDN强烈建议你不要使用@sohu.com邮件
    ------------CSDN 注册---------------
      

  2.   

    在下面这段程序里加一个身份验证:
    try
        IdSMTP1.Host:=Trim(Edit1.Text);
        idsmtp1.user:='';
        idsmtp1.password:='';
        StatusBar1.SimpleText:='正在连接服务器';
        IdSMTP1.Connect();
        except
        ShowMessage('连接邮件服务器失败!');
        StatusBar1.SimpleText:='连接服务器失败';
        abort;
      end;