Sample code for 30+ languages & platforms
Delphi DLL Requires Chilkat v11.0.0+

Transition from MailMan.MxLookupAll to the Chilkat DNS class

Provides instructions for replacing deprecated MxLookupAll method calls with the Chilkat Dns class.

Chilkat Delphi DLL Downloads

Delphi DLL
var
success: Boolean;
mailman: HCkMailMan;
emailAddr: PWideChar;
sa: HCkStringArray;
dns: HCkDns;
json: HCkJsonObject;
i: Integer;
count_i: Integer;
domain: PWideChar;

begin
success := False;

mailman := CkMailMan_Create();

//  ...
//  ...

emailAddr := 'joe@example.com';

//  ------------------------------------------------------------------------
//  The MxLookupAll method is deprecated:

sa := CkMailMan_MxLookupAll(mailman,emailAddr);
if (CkMailMan_getLastMethodSuccess(mailman) = False) then
  begin
    Memo1.Lines.Add(CkMailMan__lastErrorText(mailman));
    Exit;
  end;

//  ...
//  ...

CkStringArray_Dispose(sa);

//  ------------------------------------------------------------------------
//  Do the equivalent using the Chilkat DNS class

dns := CkDns_Create();

json := CkJsonObject_Create();

//  This gets all MX domains for an email address.  (Typically one domain.)
//  The preferred domain will be at index 0 (see below).
success := CkDns_Query(dns,'MX',emailAddr,json);
if (success = False) then
  begin
    Memo1.Lines.Add(CkDns__lastErrorText(dns));
    Exit;
  end;

i := 0;
count_i := CkJsonObject_SizeOfArray(json,'answer.mx');
while i < count_i do
  begin
    CkJsonObject_putI(json,i);
    domain := CkJsonObject__stringOf(json,'answer.mx[i].domain');
    Memo1.Lines.Add(domain);
    i := i + 1;
  end;

CkMailMan_Dispose(mailman);
CkDns_Dispose(dns);
CkJsonObject_Dispose(json);