写了一个发送邮件的模块 发到公司信箱的时候就没问题 比如www.jnwork.com的信箱
但发到门户网站比如sohu 或者 hotmail的信箱的时候就会出现
Received Packet is too small. Less than 4 bytes 28.
这是什么原因啊
procedure TForm1.GetMxList(AMxList: TStringList; AQName: string);
var
i: Integer;
begin
with IdDNSResolver do 
begin
Host := '211.90.132.1';
ReceiveTimeout := 10000;
ClearVars;with DNSHeader do 
begin
Qr := False; 
Opcode := 0; 
RD := True;  
QDCount := 1; 
end; 
DNSQDList.Clear; 
with DNSQDList.Add do 
begin
QName := AQName; 
QType := cMX;
QClass := cIN; 
end; 
 
ResolveDNS; for i := 0 to DNSAnList.Count - 1 do
AMxList.Add(DNSAnList[i].RData.MX.Exchange + '=' +
IntToStr(DNSAnList[i].RData.MX.Preference));
end;
end;
procedure TForm1.btnSendClick(Sender: TObject); 
var
MxList: TStringList; 
i: Integer;
QName, ThoughAddress: string;
begin with IdMsgSend do
begin
Body.Assign(mmContent.Lines); //邮件正文
From.Address := Trim(edtFrom.Text); //发件人地址
Recipients.EMailAddresses := Trim(edtTo.Text); //收件人地址
Subject := edtSubject.Text; //邮件主题
if FileExists(trim(edit1.Text)) then
        TIdAttachment.Create(idmsgsend.MessageParts,trim(edit1.Text));end;QName := TrimRight(copy(edtTo.Text, Pos('@', edtTo.Text) + 1, Length(edtTo.Text)));
MxList := TStringList.Create; 
try 
GetMxList(MxList, QName); 
ThoughAddress := MxList.Names[0];
finally
MxList.Free; 
end;
 
{ 发送邮件 } 
with IdSMTP do 
begin
Host := ThoughAddress;
Port := 25;
Connect;
try
Send(IdMsgSend);
ShowMessage('发送完毕');
finally
Disconnect;
end;
end; 
end; procedure TForm1.Button1Click(Sender: TObject);
begin
  if OpenDialog1.Execute then
        edit1.Text:=OpenDialog1.FileName;end;