当尝试解析dns时,由于dns错误,查询被拒绝。我的密码有错吗?你能查一下吗?
function Lookup(const Name: String): String;
var
X: Integer;
DNS: TIdDNSResolver;
begin
DNS:= TIdDNSResolver.Create(nil);
try
DNS.Host := 'mail.relativ.art';
DNS.WaitingTime := 5000;
DNS.QueryType:= [qtMX];
try DNS.Resolve(Name); except on E: Exception do begin writeln(E.Message); end; end;
for X:= 0 to DNS.QueryResult.Count-1 do begin
if DNS.QueryResult[X].RecType = qtMX then
Result:= TMXRecord(DNS.QueryResult[X]).ExchangeServer;
end;
finally
DNS.Free;
end;
end;发布于 2022-02-26 15:30:34
名为mail的主机名(如mail.relativ.art )可能不是DNS服务器。
您需要将Host属性设置为实际的DNS服务器(最好是由ISP提供的服务器,或者像Google这样的公共服务器),然后将所需的目标名称传递给Resolve()。
如果您试图查询mail.relativ.art的MX记录,那么这是要解析的目标主机,而不是要发送查询的DNS服务器,例如:
DNS:= TIdDNSResolver.Create(nil);
try
DNS.Host := '8.8.8.8'; // Google public DNS
DNS.WaitingTime := 5000;
DNS.QueryType := [qtMX];
try
DNS.Resolve('mail.relativ.art');
except
on E: Exception do
begin
WriteLn(E.Message);
end;
end;
for X:= 0 to DNS.QueryResult.Count-1 do
begin
if DNS.QueryResult[X].RecType = qtMX then
Result := TMXRecord(DNS.QueryResult[X]).ExchangeServer;
end;
finally
DNS.Free;
end;https://stackoverflow.com/questions/71275926
复制相似问题