Click here to Skip to main content
15,867,957 members
Articles / Programming Languages / C++
Tip/Trick

Resolving an SmtpException stating 'Too many messages for this session'

Rate me:
Please Sign up or sign in to vote.
0.00/5 (No votes)
1 Oct 2012CPOL 25.1K   1   1
Have you ever noticed an exception being thrown by your application stating something like the following:System.Net.Mail.SmtpException: Service not available, closing transmission channel. The server response was: #4.x.2 Too many messages for this sessionThis has been an issue since early versions o

Have you ever noticed an exception being thrown by your application stating something like the following:

C#
System.Net.Mail.SmtpException: Service not available, closing transmission channel. 
The server response was: #4.x.2 Too many messages for this session

This has been an issue since early versions of the System.Net.Mail namespace. The SmtpServer object never included a Dispose() method that properly shutdown the connection to the server. So, even if you are creating new objects, the GC never disposed of the original thus causing this exception.

There are two workarounds for this exception as document on the Connect website:

  1. Upgrade to the .NET Framework 4.0 or later. This version of the framework now includes a Dispose() method that properly closes the connection to the server. Anytime you are connecting to the server to send a message, you should dispose the object afterwards.
  2. If you are using older versions of the framework (.NET Framework 3.5 or earlier), you can set the MaxIdleTime property to 0 and the ConnectionLimit to 1 on the SmtpClient’s ServicePoint object. For example, your code may look like the following:
C#
var client = new SmtpClient("hostname");
client.ServicePoint.MaxIdleTime = 0;
client.ServicePoint.ConnectionLimit = 1;
...
client.Send(new MailMessage(...));

// at this point, the connection will get closed 
// since the ServicePoint idle time is now 0.

Hope this helps to solve any issues you’ve had with this.

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)


Written By
United States United States
This member has not yet provided a Biography. Assume it's interesting and varied, and probably something to do with programming.

Comments and Discussions

 
GeneralThanks ! Pin
Marc-Andre Gauthier29-Jan-13 7:31
Marc-Andre Gauthier29-Jan-13 7:31 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.