Question

How can I find the MX record for a mail server in C#?

Was it helpful?

Solution

You can use the answer of Robert and RPK to get the MX record of a given domain.

But you'll need a DNS server to do the job. If you want to detect the DNS server of the machine where your code is executed, you can use the following.

NetworkInterface[] adapters = NetworkInterface.GetAllNetworkInterfaces();
foreach (NetworkInterface adapter in adapters)
{
    IPInterfaceProperties properties = adapter.GetIPProperties();

    if (properties.DnsAddresses.Count > 0)
        foreach (IPAddress ipAddress in properties.DnsAddresses)
             dnsServers.Add(ipAddress.ToString(), 53);
}

There is a complete solution (or at github here) that will do the whole job if you don't want to rewrite everything. Look for GetMxRecords static method.

OTHER TIPS

Take a look at this DNS resolver project on codeproject.com. The library has a Resolver class that contains a method named Query which can be used to go after the MX record.

This link might help:

Determining MXRecord of mail server

I just wrote a simple asp.net generic handler to do the job of finding the mx records which you can use to code an Windows App.

Generic Handler to find MX Records

The NMail project contains a DNS client under trunk/NMail.DnsClient. The project is available under the Apache license.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top