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

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 Lua Downloads

Lua

    -- In the following call to loadlib, change the path (./chilkat.dll) to the relative or absolute directory where the chilkat.dll, chilkat.so, or chilkat.dylib is located.
    chilkat = assert(package.loadlib("./chilkat.dll", "luaopen_chilkat"))()
    print(chilkat._VERSION)

    local success = false

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

    local dns = chilkat.newDns{}
    local json = chilkat.newJsonObject{}

    local emailAddr = "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 = dns:Query("MX",emailAddr,json)
    if success == false then
        print(dns:LastErrorText())

    end

    local i = 0
    local count_i = json:SizeOfArray("answer.mx")
    while i < count_i do
        json:setI(i)
        local domain = json:StringOf("answer.mx[i].domain")
        print(domain)
        i = i + 1
    end