发邮件的问题!(100分)

  • 主题发起人 主题发起人 killerabby
  • 开始时间 开始时间
K

killerabby

Unregistered / Unconfirmed
GUEST, unregistred user!
http://www.ccw.com.cn/htm/app/aprog/01_12_4_3.asp
我下载了上面的原代码,可是在DELPHI下运行,出现了错误。

procedure TForm1.GetMxList(AMxList: TStringList; AQName: string);
var
i: Integer;
begin
with IdDNSResolver do
begin
Host := '202.96.134.133'; { Host属性用来指定域名服务器的地址,此处为笔者所在地
的主域名服务器地址,你也可以指定任一可以快速访问到的Internet上域名服务器
地址,要知道自己所在地的域名服务器地址,win98下通过winipcfg命令,win2000下
通过ipconfig /all即可查出。}
ReceiveTimeout := 10000; // 在指定的时间内得不到域名服务器的反馈,则视为失败。
ClearVars; // 清除前一次查询所反馈回来的资源记录

{ 构建此次查询的头部结构 }
with DNSHeader do
begin
Qr := False; // False 代表查询
Opcode := 0; // 0代表标准域名查询
RD := True; //域名服务器可以进行递归查询
QDCount := 1; //查询的数量
end;

{ 构建要查询的问题 }
DNSQDList.Clear;
with DNSQDList.Add do
begin
QName := AQName; //要查询的域名
QType := cMX; //QTYPE指定要查询的资源记录的种类,值为cMX代表邮件交换记录
QClass := cIN;
end;

ResolveDNS; //向域名服务器发出请求

{ 从域名服务器接收反馈的结果,将反馈回来的邮件服务器名称放在AMXList列表的Name部分,
邮件服务器的优先级别数放在Value部分。 }
for i := 0 to DNSAnList.Count - 1 do
AMxList.Add(DNSAnList.RData.MX.Exchange + '=' +
IntToStr(DNSAnList.RData.MX.Preference));
end;
end;

程序在这代码出现错误:
for i := 0 to DNSAnList.Count - 1 do
AMxList.Add(DNSAnList.RData.MX.Exchange + '=' +
IntToStr(DNSAnList.RData.MX.Preference));
错误信息是:
---------------------------
Debugger Exception Notification
---------------------------
Project Project1.exe raised exception class EIdDnsResolverError with message 'Received Packet is too small. Less than 4 bytes 28'. Process stopped. Use Step or Run to continue.
---------------------------
OK Help
---------------------------

请各位大侠帮忙一下。

 
Packet is too small. Less than 4 bytes 28,已经提示了!
 
楼上的,我知道提示了,但不知怎么改呀!
 
后退
顶部