Sample code for 30+ languages & platforms
PureBasic

MX Lookup Mail Server Domain by Email Address

How to find the mail server for a given email address. Returns the domain name of the primary mail server.

Chilkat PureBasic Downloads

PureBasic
IncludeFile "CkDns.pb"
IncludeFile "CkJsonObject.pb"

Procedure ChilkatExample()

    success.i = 0

    ; This example requires the Chilkat API to have been previously unlocked.
    ; See Global Unlock Sample for sample code.

    dns.i = CkDns::ckCreate()
    If dns.i = 0
        Debug "Failed to create object."
        ProcedureReturn
    EndIf

    json.i = CkJsonObject::ckCreate()
    If json.i = 0
        Debug "Failed to create object."
        ProcedureReturn
    EndIf

    emailAddr.s = "bob@example.com"

    ; This gets all MX domains for an email address.  (Typically one domain.)
    ; The preferred domain will be at index 0 (see below).
    success = CkDns::ckQuery(dns,"MX",emailAddr,json)
    If success = 0
        Debug CkDns::ckLastErrorText(dns)
        CkDns::ckDispose(dns)
        CkJsonObject::ckDispose(json)
        ProcedureReturn
    EndIf

    i.i = 0
    count_i.i = CkJsonObject::ckSizeOfArray(json,"answer.mx")
    While i < count_i
        CkJsonObject::setCkI(json, i)
        domain.s = CkJsonObject::ckStringOf(json,"answer.mx[i].domain")
        Debug domain
        i = i + 1
    Wend


    CkDns::ckDispose(dns)
    CkJsonObject::ckDispose(json)


    ProcedureReturn
EndProcedure