Вниз
Скачать: CL | DM;

MX record look-up   Найти похожие ветки 

 
Иван   (2003-06-17 11:16) [0]

Народ, если есть у кого реализованный MX look-up, поделитесь, плиз. Шибко приперло, в инете поискал, кроме ICS (by F.Piette) компонент нифига не нашел. Тянуть их с собой нехочется.

Спасибо.


 
Andrey Klimov   (2003-06-17 19:12) [1]

Indy 9.0.13

function TfrmMain.GetMailServers: Boolean;
var
i,x : integer;
LDomainPart : String;
LMXRecord : TMXRecord;
begin
if not assigned(fmailServers) then fMailServers := TStringList.Create;
fmailServers.clear;

Result := true;
with IdDNSResolver do
begin
QueryResult.Clear;
QueryRecords := [qtMX];
//Msg("Setting up DNS query parameters");
Host := edtDNS.text; //Адрес твоего DNS сервера
ReceiveTimeout := StrToInt(edtTimeOut.text);
// Extract the domain part from recipient email address
LDomainPart := copy(edtRecipient.text,pos("@",edtRecipient.text)+1,length(edtRecipient.text)); // the domain name to resolve

try
//Msg("Resolving DNS");
Resolve(LDomainPart);

if QueryResult.Count > 0 then
begin
for i := 0 to QueryResult.Count - 1 do
begin
LMXRecord := TMXRecord(QueryResult.Items[i]);
fMailServers.Append(PadZero(IntToStr(LMXRecord.Preference)) + "=" + LMXRecord.ExchangeServer);
end;

// sort in order of priority and then remove extra data
fMailServers.Sorted := false;
for i := 0 to fMailServers.count - 1 do
begin
x := pos("=",fMailServers.Strings[i]);
if x > 0 then fMailServers.Strings[i] :=
copy(fMailServers.Strings[i],x+1,length(fMailServers.Strings[i]));
end;
fMailServers.Sorted := true;
fMailServers.Duplicates := dupIgnore;
Result := true;
end
else
begin
//Msg("No response from DNS server");
MessageDlg("There is no response from the DNS server !", mtInformation, [mbOK], 0);
Result := false;
end;
except
on E : Exception do
begin
//Msg("Error resolving domain");
( "Error resolving domain: " + e.message, mtInformation, [mbOK], 0) Indy 9.0.13

function TfrmMain.GetMailServers: Boolean;
var
i,x : integer;
LDomainPart : String;
LMXRecord : TMXRecord;
begin
if not assigned(fmailServers) then fMailServers := TStringList.Create;
fmailServers.clear;

Result := true;
with IdDNSResolver do
begin
QueryResult.Clear;
QueryRecords := [qtMX];
//Msg("Setting up DNS query parameters");
Host := edtDNS.text; //Адрес твоего DNS сервера
ReceiveTimeout := StrToInt(edtTimeOut.text);
// Extract the domain part from recipient email address
LDomainPart := copy(edtRecipient.text,pos("@",edtRecipient.text)+1,length(edtRecipient.text)); // the domain name to resolve

try
//Msg("Resolving DNS");
Resolve(LDomainPart);

if QueryResult.Count > 0 then
begin
for i := 0 to QueryResult.Count - 1 do
begin
LMXRecord := TMXRecord(QueryResult.Items[i]);
fMailServers.Append(PadZero(IntToStr(LMXRecord.Preference)) + "=" + LMXRecord.ExchangeServer);
end;

// sort in order of priority and then remove extra data
fMailServers.Sorted := false;
for i := 0 to fMailServers.count - 1 do
begin
x := pos("=",fMailServers.Strings[i]);
if x > 0 then fMailServers.Strings[i] :=
copy(fMailServers.Strings[i],x+1,length(fMailServers.Strings[i]));
end;
fMailServers.Sorted := true;
fMailServers.Duplicates := dupIgnore;
Result := true;
end
else
begin
//Msg("No response from DNS server");
MessageDlg("There is no response from the DNS server !", mtInformation, [mbOK], 0);
Result := false;
end;
except
on E : Exception do
begin
//Msg("Error resolving domain");
MessageDlg("Error resolving domain: " + e.message, mtInformation, [mbOK], 0);
Result := false;
end;
end;

end;
end;



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.012 c
1-68390
Silver_
2003-08-05 13:07
2003.08.21
Как


14-68524
Dmitriy O.
2003-08-01 10:04
2003.08.21
Совесть как механизм управления людьми


14-68504
stone
2003-08-05 16:00
2003.08.21
Новые откровения Supreme 2


14-68453
__Dmitry__
2003-08-04 10:47
2003.08.21
Срочно нужна ваша помощь (OemToChar)!!!!!


1-68303
Sirakuz
2003-08-06 16:19
2003.08.21
2 раза Paste в MSWord




   Наверх