DnsQueryEx.QueryServers Method


Querys MX records of specified domain from DNS server.

[Visual Basic]
Public Sub QueryServers( _
    domain As String _
) As SmtpServer()

Public Sub QueryServers( _
    domain As String _
    dnsServerIP As String
) As SmtpServer()

[C#]
public SmtpServer[] QueryServers(
    string domain
);

public SmtpServer[] QueryServers(
    string domain,
    string dnsServerIP
);
[C++]
public: array<SmtpServer>^ QueryServers(
    String^ domain
);

public: SmtpServer* __gc [] QueryServers(
    String* domain,
    String* dnsServerIP
);
[JScript]
public function QueryServers( 
    domain : String
) : SmtpServer[];

public function QueryServers( 
    domain : String
    dnsServerIP : String
) : SmtpServer[];

Parameters

domain
A full email address or internet domain

Remarks

DnsQueryEx class is not intended to be used by developer directly, to send email directly without smtp server, please refer to Send E-mail Directly (Simulating SMTP server) section. Anyway, the following example code demonstrates how to use the DnsQueryEx class explicitly.

Example

[C#] To get the full samples of EASendMail, please refer to Samples section.

[C#]
using System;
using EASendMail;

public void QueryServersAndSendMail()
{
    try
    {
        SmtpServer[] servers = DnsQueryEx.QueryServers("to@adminsystem.com");

        // query MX record (SMTP server addresses) for to@adminsystem.com
        // try to send email with every SMTP server until the email was sent.
        for (int i = 0; i < servers.Length; i++)
        {
            try
            {
                SmtpServer oServer = servers[i];
                SmtpMail oMail = new SmtpMail("TryIt");
                oMail.From = new MailAddress("from@adminsystem.com");
                oMail.To.Add(new MailAddress("to@adminsystem.com"));

                oMail.Subject = "test subject";
                oMail.TextBody = "test body";

                SmtpClient oSmtp = new SmtpClient();
                oSmtp.SendMail(oServer, oMail);

                // Succeeded, break.
                Console.WriteLine("The email has been sent to {0} successfully!", servers[i]);
                break;
            }
            catch (Exception exp)
            {
                Console.WriteLine("Error with server {0} - {1}", servers[i],  exp.Message);
            }
        }
    }
    catch (Exception ep)
    {
        Console.WriteLine(ep.Message);
    }
}

Online Examples

Send Email using MX DNS lookup - VB
Send Email using MX DNS lookup - C#
Send Email using MX DNS lookup - C++/CLI