By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
435,412 Members | 2,835 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 435,412 IT Pros & Developers. It's quick & easy.

Sending E-Mails from ASP.NET 2.0 page using System.Net.Mail

P: n/a
Greetings,

I have been searching the web like mad for a solution to my SMTP problem. I
am using Windows Server 2003 and ASP.NET 2.0 w/ C# to send out e-mails from a
web site I have created to the members of my organization. I think my problem
is incorrectly setting the settings on my server or an authentication
problem. Here is the code I have written to send a test message:

-----Code Begins: Sensitive Information Replaced by [SOMETHING]-----
MailAddress from = new MailAddress([ADDRESS], [NAME]);
MailAddress to = new MailAddress([ADDRESS], [NAME]);
MailAddress copy = new MailAddress([ADDRESS], [NAME]);

MailMessage message = new MailMessage(from, to);
message.Subject = "Using the SmtpClient class.";
message.IsBodyHtml = true;
message.Body = @"Using this feature, you can send an e-mail message from an
application very easily.";
message.CC.Add(copy);

NetworkCredential authInfo = new NetworkCredential([USERNAME], [PASSWORD]);
SmtpClient client = new SmtpClient([DOMAIN NAME], 25);
client.UseDefaultCredentials = false;
client.Credentials = authInfo;
client.Send(message);
-----Code Ends-----

On Windows Server 2003, I have created an account and placed it in the SMTP
Users group and granted this group access to the SMTP Service. Under
Authentication, I checked Anonymous Access and Integrated Windows
Authentication. In the Outbound Security, I selected Integrated Windows
Authentication and provided the username and password for the account I
created previously.

When click submit to send the e-mail, this is the error I receive (sorry for
copying and pasting this long error report, but I don't know what is wrong):
-----Error Report Begins-----
Server Error in '/HfHv3' Application.
--------------------------------------------------------------------------------
An established connection was aborted by the software in your host machine
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.Sockets.SocketException: An established
connection was aborted by the software in your host machine

Source Error:
Line 88: client.UseDefaultCredentials = false;
Line 89: client.Credentials = authInfo;
Line 90: client.Send(message);
Line 91:
Line 92: //try

Source File:
c:\Inetpub\wwwroot\HfHv3\intranet\board\mailinglis ts\sendemail.aspx.cs
Line: 90

Stack Trace:
[SocketException (0x2745): An established connection was aborted by the
software in your host machine]
System.Net.Sockets.Socket.DoConnect(EndPoint endPointSnapshot,
SocketAddress socketAddress) +1002146
System.Net.Sockets.Socket.InternalConnect(EndPoint remoteEP) +33
System.Net.ServicePoint.ConnectSocketInternal(Bool ean connectFailure,
Socket s4, Socket s6, Socket& socket, IPAddress& address, ConnectSocketState
state, IAsyncResult asyncResult, Int32 timeout, Exception& exception) +431

[WebException: Unable to connect to the remote server]
System.Net.ServicePoint.GetConnection(PooledStream PooledStream, Object
owner, Boolean async, IPAddress& address, Socket& abortSocket, Socket&
abortSocket6, Int32 timeout) +1447736
System.Net.PooledStream.Activate(Object owningObject, Boolean async,
Int32 timeout, GeneralAsyncDelegate asyncCallback) +190
System.Net.PooledStream.Activate(Object owningObject,
GeneralAsyncDelegate asyncCallback) +21
System.Net.ConnectionPool.GetConnection(Object owningObject,
GeneralAsyncDelegate asyncCallback, Int32 creationTimeout) +318
System.Net.Mail.SmtpConnection.GetConnection(Strin g host, Int32 port) +227
System.Net.Mail.SmtpTransport.GetConnection(String host, Int32 port) +316
System.Net.Mail.SmtpClient.GetConnection() +42
System.Net.Mail.SmtpClient.Send(MailMessage message) +1485

[SmtpException: Failure sending mail.]
System.Net.Mail.SmtpClient.Send(MailMessage message) +2074
sendemail.btnSend_Click(Object sender, EventArgs e) in
c:\Inetpub\wwwroot\HfHv3\intranet\board\mailinglis ts\sendemail.aspx.cs:90
System.Web.UI.WebControls.Button.OnClick(EventArgs e) +105
System.Web.UI.WebControls.Button.RaisePostBackEven t(String eventArgument)
+107

System.Web.UI.WebControls.Button.System.Web.UI.IPo stBackEventHandler.RaisePostBackEvent(String eventArgument) +7
System.Web.UI.Page.RaisePostBackEvent(IPostBackEve ntHandler
sourceControl, String eventArgument) +11
System.Web.UI.Page.RaisePostBackEvent(NameValueCol lection postData) +33
System.Web.UI.Page.ProcessRequestMain(Boolean
includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +5102
-----Error Report Ends-----

Any help would be greatly appreciated!! Thanks a bunch!

Eric
Jan 29 '06 #1
Share this Question
Share on Google+
1 Reply


P: n/a
First thing:

You need to know if your external smtp server uses:
none
basic
or
ssl
authentication.

Here is my send an email code (2.0)

System.Net.Mail.SmtpClient email = new System.Net.Mail.SmtpClient();

email.Host = "smtp.myisp.com";

email.Port = 25; // Or 465 for smtp.gmail.com ... a SSL example

switch (serv.AuthenicationMethod) // this is MY enum...telling me which type
of authentication to use. this code won't compile, but you can see what i'm
doing // serv.AuthenicationMethod is My code... and will give you a compile
error

{

case AuthenticationType.None:

break;

case AuthenticationType.Basic:

email.DeliveryMethod = System.Net.Mail.SmtpDeliveryMethod.Network;

email.UseDefaultCredentials = false;

email.Credentials = new NetworkCredential(serv.SmtpUserName,
serv.SmtpUserPassword);

break;

case AuthenticationType.SSL:

email.EnableSsl = true;

email.Credentials = new NetworkCredential(serv.SmtpUserName,
serv.SmtpUserPassword);

//email.DeliveryMethod = System.Net.Mail.SmtpDeliveryMethod.Network ;

break;

}

System.Net.Mail.MailMessage mailMsg = new
System.Net.Mail.MailMessage(fromAddress, toAddress, emailSubject, sBody);

mailMsg.IsBodyHtml = true;

email.Send(mailMsg);

I don't see email.EnableSsl = true; in your code.

...
Now, the second thing .... is that there is a difference between the Code
failing, and the server not Sending.

In Win 2000, sometimes C# code would work, but would get "stuck"

In win2000, the location was
C:\Inetpub\mailroot\Queue

I don't know about 2003 unforunately. But if there is an equivalent folder,
where emails are "dropped in" for sending, you can look there, and see if
there are entries in there.

The way I fixed this in win2000, was to set up a "smart host" under IIS,
under the email settings.
HTH a little.

Also check:
http://www.systemnetmail.com/default.aspx

"Eric Sheu" <Eric Sh**@discussions.microsoft.com> wrote in message
news:2E**********************************@microsof t.com...
Greetings,

I have been searching the web like mad for a solution to my SMTP problem. I am using Windows Server 2003 and ASP.NET 2.0 w/ C# to send out e-mails from a web site I have created to the members of my organization. I think my problem is incorrectly setting the settings on my server or an authentication
problem. Here is the code I have written to send a test message:

-----Code Begins: Sensitive Information Replaced by [SOMETHING]-----
MailAddress from = new MailAddress([ADDRESS], [NAME]);
MailAddress to = new MailAddress([ADDRESS], [NAME]);
MailAddress copy = new MailAddress([ADDRESS], [NAME]);

MailMessage message = new MailMessage(from, to);
message.Subject = "Using the SmtpClient class.";
message.IsBodyHtml = true;
message.Body = @"Using this feature, you can send an e-mail message from an application very easily.";
message.CC.Add(copy);

NetworkCredential authInfo = new NetworkCredential([USERNAME], [PASSWORD]); SmtpClient client = new SmtpClient([DOMAIN NAME], 25);
client.UseDefaultCredentials = false;
client.Credentials = authInfo;
client.Send(message);
-----Code Ends-----

On Windows Server 2003, I have created an account and placed it in the SMTP Users group and granted this group access to the SMTP Service. Under
Authentication, I checked Anonymous Access and Integrated Windows
Authentication. In the Outbound Security, I selected Integrated Windows
Authentication and provided the username and password for the account I
created previously.

When click submit to send the e-mail, this is the error I receive (sorry for copying and pasting this long error report, but I don't know what is wrong): -----Error Report Begins-----
Server Error in '/HfHv3' Application.
-------------------------------------------------------------------------- ------ An established connection was aborted by the software in your host machine
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.Sockets.SocketException: An established
connection was aborted by the software in your host machine

Source Error:
Line 88: client.UseDefaultCredentials = false;
Line 89: client.Credentials = authInfo;
Line 90: client.Send(message);
Line 91:
Line 92: //try

Source File:
c:\Inetpub\wwwroot\HfHv3\intranet\board\mailinglis ts\sendemail.aspx.cs
Line: 90

Stack Trace:
[SocketException (0x2745): An established connection was aborted by the
software in your host machine]
System.Net.Sockets.Socket.DoConnect(EndPoint endPointSnapshot,
SocketAddress socketAddress) +1002146
System.Net.Sockets.Socket.InternalConnect(EndPoint remoteEP) +33
System.Net.ServicePoint.ConnectSocketInternal(Bool ean connectFailure,
Socket s4, Socket s6, Socket& socket, IPAddress& address, ConnectSocketState state, IAsyncResult asyncResult, Int32 timeout, Exception& exception) +431

[WebException: Unable to connect to the remote server]
System.Net.ServicePoint.GetConnection(PooledStream PooledStream, Object
owner, Boolean async, IPAddress& address, Socket& abortSocket, Socket&
abortSocket6, Int32 timeout) +1447736
System.Net.PooledStream.Activate(Object owningObject, Boolean async,
Int32 timeout, GeneralAsyncDelegate asyncCallback) +190
System.Net.PooledStream.Activate(Object owningObject,
GeneralAsyncDelegate asyncCallback) +21
System.Net.ConnectionPool.GetConnection(Object owningObject,
GeneralAsyncDelegate asyncCallback, Int32 creationTimeout) +318
System.Net.Mail.SmtpConnection.GetConnection(Strin g host, Int32 port) +227 System.Net.Mail.SmtpTransport.GetConnection(String host, Int32 port) +316 System.Net.Mail.SmtpClient.GetConnection() +42
System.Net.Mail.SmtpClient.Send(MailMessage message) +1485

[SmtpException: Failure sending mail.]
System.Net.Mail.SmtpClient.Send(MailMessage message) +2074
sendemail.btnSend_Click(Object sender, EventArgs e) in
c:\Inetpub\wwwroot\HfHv3\intranet\board\mailinglis ts\sendemail.aspx.cs:90
System.Web.UI.WebControls.Button.OnClick(EventArgs e) +105
System.Web.UI.WebControls.Button.RaisePostBackEven t(String eventArgument) +107

System.Web.UI.WebControls.Button.System.Web.UI.IPo stBackEventHandler.RaisePo
stBackEvent(String eventArgument) +7 System.Web.UI.Page.RaisePostBackEvent(IPostBackEve ntHandler
sourceControl, String eventArgument) +11
System.Web.UI.Page.RaisePostBackEvent(NameValueCol lection postData) +33
System.Web.UI.Page.ProcessRequestMain(Boolean
includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +5102
-----Error Report Ends-----

Any help would be greatly appreciated!! Thanks a bunch!

Eric

Jan 30 '06 #2

This discussion thread is closed

Replies have been disabled for this discussion.