Home All Groups Group Topic Archive Search About

SMTPClient Message.Send Error - please help!!!

Author
1 Nov 2006 10:31 PM
Sammy
I am using the following code on a company that hosts our web site. I have
noticed lately that their mail server/smtp is unavailable several times a
minute for a second or two. This is causing my script to fail when it calls
the client.Send(msg); - script is below the error message below... Any
ideas????

ERROR MESSAGE
------------------------------------------
Service not available, closing transmission channel. The server response
was: Command timeout, closing transmission channel
Description: An unhandled exception occurred during the execution of the
current web request. Please review the stack trace for more information about
the error and where it originated in the code.

Exception Details: System.Net.Mail.SmtpException: Service not available,
closing transmission channel. The server response was: Command timeout,
closing transmission channel

Source Error:

Line 51:         client.Send(msg);
---------------------------------------------

Code in Page
---------------------------------------------

// create email
MailMessage msg = new MailMessage();
msg.From = new MailAddress("t***@test.com);
msg.To.Add(new MailAddress("t***@test.com"));
msg.Subject = "Test Message";
string bod = "<html><head><body><b>Message:</b><br>blah test</body></html>";
msg.Body = bod;
msg.IsBodyHtml = true;

// send email
SmtpClient client = new SmtpClient();
client.Host =
System.Configuration.ConfigurationManager.AppSettings["smtpaddress"];
client.Timeout = 1000000;
client.Send(msg);
---------------------------------------------

Author
2 Nov 2006 3:11 PM
Vadym Stetsyak
Hello, Sammy!

Maybe their smtp server is experiencing considerable load and that is
why you receive "service not available" message?

Another way you can follow is ivestigation. Use a sniffer ( e.g. Ethereal )
to watch network communication, when mail is being sent.


S> I am using the following code on a company that hosts our web site. I
S> have
S> noticed lately that their mail server/smtp is unavailable several
S> times a
S> minute for a second or two. This is causing my script to fail when it
S> calls
S> the client.Send(msg); - script is below the error message below...
S> Any
S> ideas????

S> ERROR MESSAGE
S> ------------------------------------------
S> Service not available, closing transmission channel. The server
S> response
was:: Command timeout, closing transmission channel
S> Description: An unhandled exception occurred during the execution of
S> the
S> current web request. Please review the stack trace for more
S> information about
S> the error and where it originated in the code.

S> Exception Details: System.Net.Mail.SmtpException: Service not
S> available,
S> closing transmission channel. The server response was: Command
S> timeout,
S> closing transmission channel

S> Source Error:

S> Line 51:         client.Send(msg);
S> ---------------------------------------------

S> Code in Page
S> ---------------------------------------------

S> // create email
S> MailMessage msg = new MailMessage();
S> msg.From = new MailAddress("t***@test.com);
S> msg.To.Add(new MailAddress("t***@test.com"));
S> msg.Subject = "Test Message";
S> string bod = "<html><head><body><b>Message:</b><br>blah
S> test</body></html>";
S> msg.Body = bod;
S> msg.IsBodyHtml = true;

S> // send email
S> SmtpClient client = new SmtpClient();
S> client.Host =
S> System.Configuration.ConfigurationManager.AppSettings["smtpaddress"];
S> client.Timeout = 1000000;
S> client.Send(msg);
S> ---------------------------------------------

--
Regards, Vadym Stetsyak
www: http://vadmyst.blogspot.com
Author
2 Nov 2006 3:19 PM
Sammy
Yes... That is the problem. My question is when this happens, how can I
prevent my script from failing... Example set a retry attempt or delay and
retry, etc. I can't control their server being too busy - but I don't want my
script to fail.

Show quote
"Vadym Stetsyak" wrote:

> Hello, Sammy!
>
> Maybe their smtp server is experiencing considerable load and that is
> why you receive "service not available" message?
>
> Another way you can follow is ivestigation. Use a sniffer ( e.g. Ethereal )
> to watch network communication, when mail is being sent.
>
>
>  S> I am using the following code on a company that hosts our web site. I
> S> have
> S> noticed lately that their mail server/smtp is unavailable several
> S> times a
> S> minute for a second or two. This is causing my script to fail when it
> S> calls
> S> the client.Send(msg); - script is below the error message below...
> S> Any
> S> ideas????
>
> S> ERROR MESSAGE
> S> ------------------------------------------
> S> Service not available, closing transmission channel. The server
> S> response
> was:: Command timeout, closing transmission channel
> S> Description: An unhandled exception occurred during the execution of
> S> the
> S> current web request. Please review the stack trace for more
> S> information about
> S> the error and where it originated in the code.
>
> S> Exception Details: System.Net.Mail.SmtpException: Service not
> S> available,
> S> closing transmission channel. The server response was: Command
> S> timeout,
> S> closing transmission channel
>
> S> Source Error:
>
> S> Line 51:         client.Send(msg);
> S> ---------------------------------------------
>
> S> Code in Page
> S> ---------------------------------------------
>
> S> // create email
> S> MailMessage msg = new MailMessage();
> S> msg.From = new MailAddress("t***@test.com);
> S> msg.To.Add(new MailAddress("t***@test.com"));
> S> msg.Subject = "Test Message";
> S> string bod = "<html><head><body><b>Message:</b><br>blah
> S> test</body></html>";
> S> msg.Body = bod;
> S> msg.IsBodyHtml = true;
>
> S> // send email
> S> SmtpClient client = new SmtpClient();
> S> client.Host =
> S> System.Configuration.ConfigurationManager.AppSettings["smtpaddress"];
> S> client.Timeout = 1000000;
> S> client.Send(msg);
> S> ---------------------------------------------
>
> --
> Regards, Vadym Stetsyak
> www: http://vadmyst.blogspot
Author
2 Nov 2006 3:46 PM
Vadym Stetsyak
Hello, Sammy!

you can develop retry logic.
This algorithm can be like this:
-first try, if failure wait for timeout
-second try, if failure wait for incremeneted timeout
-third try....
and so on.  number of retries and timeout increment value you can
make configurable.


S> Yes... That is the problem. My question is when this happens, how can
S> I
S> prevent my script from failing... Example set a retry attempt or
S> delay and
S> retry, etc. I can't control their server being too busy - but I don't
S> want my
S> script to fail.

Show quote
S> "Vadym Stetsyak" wrote:

>> Hello, Sammy!

>> Maybe their smtp server is experiencing considerable load and that is
>> why you receive "service not available" message?

>> Another way you can follow is ivestigation. Use a sniffer ( e.g.
>> Ethereal )
>> to watch network communication, when mail is being sent.


>>  S> I am using the following code on a company that hosts our web
>> site. I
>> S> have
>> S> noticed lately that their mail server/smtp is unavailable several
>> S> times a
>> S> minute for a second or two. This is causing my script to fail when
>> it
>> S> calls
>> S> the client.Send(msg); - script is below the error message below...
>> S> Any
>> S> ideas????

>> S> ERROR MESSAGE
>> S> ------------------------------------------
>> S> Service not available, closing transmission channel. The server
>> S> response
>> was:: Command timeout, closing transmission channel
>> S> Description: An unhandled exception occurred during the execution
>> of
>> S> the
>> S> current web request. Please review the stack trace for more
>> S> information about
>> S> the error and where it originated in the code.

>> S> Exception Details: System.Net.Mail.SmtpException: Service not
>> S> available,
>> S> closing transmission channel. The server response was: Command
>> S> timeout,
>> S> closing transmission channel

>> S> Source Error:

>> S> Line 51:         client.Send(msg);
>> S> ---------------------------------------------

>> S> Code in Page
>> S> ---------------------------------------------

>> S> // create email
>> S> MailMessage msg = new MailMessage();
>> S> msg.From = new MailAddress("t***@test.com);
>> S> msg.To.Add(new MailAddress("t***@test.com"));
>> S> msg.Subject = "Test Message";
>> S> string bod = "<html><head><body><b>Message:</b><br>blah
>> S> test</body></html>";
>> S> msg.Body = bod;
>> S> msg.IsBodyHtml = true;

>> S> // send email
>> S> SmtpClient client = new SmtpClient();
>> S> client.Host =
>> S>
>> System.Configuration.ConfigurationManager.AppSettings["smtpaddress"];
>> S> client.Timeout = 1000000;
>> S> client.Send(msg);
>> S> ---------------------------------------------

>> --
>> Regards, Vadym Stetsyak
>> www: http://vadmyst.blogspot

--
Regards, Vadym Stetsyak
www: http://vadmyst.blogspot.com
Author
2 Nov 2006 3:48 PM
Sammy
Thanks for the response. Can you provide me with a basic example?


Show quote
"Vadym Stetsyak" wrote:

> Hello, Sammy!
>
> you can develop retry logic.
> This algorithm can be like this:
> -first try, if failure wait for timeout
> -second try, if failure wait for incremeneted timeout
> -third try....
> and so on.  number of retries and timeout increment value you can
> make configurable.
>
>
>  S> Yes... That is the problem. My question is when this happens, how can
> S> I
> S> prevent my script from failing... Example set a retry attempt or
> S> delay and
> S> retry, etc. I can't control their server being too busy - but I don't
> S> want my
> S> script to fail.
>
> S> "Vadym Stetsyak" wrote:
>
> >> Hello, Sammy!
>
> >> Maybe their smtp server is experiencing considerable load and that is
> >> why you receive "service not available" message?
>
> >> Another way you can follow is ivestigation. Use a sniffer ( e.g.
> >> Ethereal )
> >> to watch network communication, when mail is being sent.
>
>
> >>  S> I am using the following code on a company that hosts our web
> >> site. I
> >> S> have
> >> S> noticed lately that their mail server/smtp is unavailable several
> >> S> times a
> >> S> minute for a second or two. This is causing my script to fail when
> >> it
> >> S> calls
> >> S> the client.Send(msg); - script is below the error message below...
> >> S> Any
> >> S> ideas????
>
> >> S> ERROR MESSAGE
> >> S> ------------------------------------------
> >> S> Service not available, closing transmission channel. The server
> >> S> response
> >> was:: Command timeout, closing transmission channel
> >> S> Description: An unhandled exception occurred during the execution
> >> of
> >> S> the
> >> S> current web request. Please review the stack trace for more
> >> S> information about
> >> S> the error and where it originated in the code.
>
> >> S> Exception Details: System.Net.Mail.SmtpException: Service not
> >> S> available,
> >> S> closing transmission channel. The server response was: Command
> >> S> timeout,
> >> S> closing transmission channel
>
> >> S> Source Error:
>
> >> S> Line 51:         client.Send(msg);
> >> S> ---------------------------------------------
>
> >> S> Code in Page
> >> S> ---------------------------------------------
>
> >> S> // create email
> >> S> MailMessage msg = new MailMessage();
> >> S> msg.From = new MailAddress("t***@test.com);
> >> S> msg.To.Add(new MailAddress("t***@test.com"));
> >> S> msg.Subject = "Test Message";
> >> S> string bod = "<html><head><body><b>Message:</b><br>blah
> >> S> test</body></html>";
> >> S> msg.Body = bod;
> >> S> msg.IsBodyHtml = true;
>
> >> S> // send email
> >> S> SmtpClient client = new SmtpClient();
> >> S> client.Host =
> >> S>
> >> System.Configuration.ConfigurationManager.AppSettings["smtpaddress"];
> >> S> client.Timeout = 1000000;
> >> S> client.Send(msg);
> >> S> ---------------------------------------------
>
> >> --
> >> Regards, Vadym Stetsyak
> >> www: http://vadmyst.blogspot
>
> --
> Regards, Vadym Stetsyak
> www: http://vadmyst.blogspot
Author
2 Nov 2006 8:05 PM
Vadym Stetsyak
Hello, Sammy!

The code can look like this:

int retryCount = 5;
int timeout = 1000*60; //ms
int timeoutInc = 1000*60; //ms
bool sendResult = false;

for(int i = 0; i < retryCount; i++)
{
    //this method tries to send an email
     if ( SendEmailMessage() )
    {   //message successfully sent
        sendResult = true;
        break;
    }
    else
    {
        WaitOnTimeout(timeout); //Sleep(...) ?
        timeout += timeoutInc * i;
    }
}

if ( sendResult )
{
    //report that message successfully sent
}
else
{
    //report error while sending message
}


You wrote  on Thu, 2 Nov 2006 07:48:01 -0800:

S> Thanks for the response. Can you provide me with a basic example?


Show quote
S> "Vadym Stetsyak" wrote:

>> Hello, Sammy!

>> you can develop retry logic.
>> This algorithm can be like this:
>> -first try, if failure wait for timeout
>> -second try, if failure wait for incremeneted timeout
>> -third try....
>> and so on.  number of retries and timeout increment value you can
>> make configurable.


>>  S> Yes... That is the problem. My question is when this happens, how
>> can
>> S> I
>> S> prevent my script from failing... Example set a retry attempt or
>> S> delay and
>> S> retry, etc. I can't control their server being too busy - but I
>> don't
>> S> want my
>> S> script to fail.

>> S> "Vadym Stetsyak" wrote:

>> >> Hello, Sammy!

>> >> Maybe their smtp server is experiencing considerable load and that
>> is
>> >> why you receive "service not available" message?

>> >> Another way you can follow is ivestigation. Use a sniffer ( e.g.
>> >> Ethereal )
>> >> to watch network communication, when mail is being sent.


>> >>  S> I am using the following code on a company that hosts our web
>> >> site. I
>> >> S> have
>> >> S> noticed lately that their mail server/smtp is unavailable
>> several
>> >> S> times a
>> >> S> minute for a second or two. This is causing my script to fail
>> when
>> >> it
>> >> S> calls
>> >> S> the client.Send(msg); - script is below the error message
>> below...
>> >> S> Any
>> >> S> ideas????

>> >> S> ERROR MESSAGE
>> >> S> ------------------------------------------
>> >> S> Service not available, closing transmission channel. The server
>> >> S> response
>> >> was:: Command timeout, closing transmission channel
>> >> S> Description: An unhandled exception occurred during the
>> execution
>> >> of
>> >> S> the
>> >> S> current web request. Please review the stack trace for more
>> >> S> information about
>> >> S> the error and where it originated in the code.

>> >> S> Exception Details: System.Net.Mail.SmtpException: Service not
>> >> S> available,
>> >> S> closing transmission channel. The server response was: Command
>> >> S> timeout,
>> >> S> closing transmission channel

>> >> S> Source Error:

>> >> S> Line 51:         client.Send(msg);
>> >> S> ---------------------------------------------

>> >> S> Code in Page
>> >> S> ---------------------------------------------

>> >> S> // create email
>> >> S> MailMessage msg = new MailMessage();
>> >> S> msg.From = new MailAddress("t***@test.com);
>> >> S> msg.To.Add(new MailAddress("t***@test.com"));
>> >> S> msg.Subject = "Test Message";
>> >> S> string bod = "<html><head><body><b>Message:</b><br>blah
>> >> S> test</body></html>";
>> >> S> msg.Body = bod;
>> >> S> msg.IsBodyHtml = true;

>> >> S> // send email
>> >> S> SmtpClient client = new SmtpClient();
>> >> S> client.Host =
>> >> S>
>> >>
>> System.Configuration.ConfigurationManager.AppSettings["smtpaddress"];
>> >> S> client.Timeout = 1000000;
>> >> S> client.Send(msg);
>> >> S> ---------------------------------------------

>> >> --
>> >> Regards, Vadym Stetsyak
>> >> www: http://vadmyst.blogspot

>> --
>> Regards, Vadym Stetsyak
>> www: http://vadmyst.blogspot

--
With best regards, Vadym Stetsyak.
Blog: http://vadmyst.blogspot.com

AddThis Social Bookmark Button