Doron Sinai
Doron Sinai

Reputation: 1186

Finding the MX Record using C#?

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

Upvotes: 7

Views: 12207

Answers (3)

user333306
user333306

Reputation:

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.

Upvotes: 5

dhasenan
dhasenan

Reputation: 1228

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

Upvotes: 0

Robert Groves
Robert Groves

Reputation: 7738

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.

Upvotes: 3

Related Questions