Question

How to use SmtpClient with Credentials

Asked by: man-on-a-mission

I am trying to send smtp email from an ASP.NET application.  It seems pretty straight forward based on all of the examples I've found on the web.

In the code below, lines 1 & 2 execute as expected, and inspecting the objects in debugger shows that all values are assigned correctly.  However, after line 3 executes, the client.Credentials object becomes null.  I have no clue why, but obviously, my smtp server won't send mail without credentials.  What am I missing?

using System.Web.Configuration;
using System.Net.Configuration;
using System.Net;
using System.Net.Mail;

1.  SmtpClient client = new SmtpClient("myserver", 110);
2.  client.Credentials = new NetworkCredential("username", "password", "myserver");
3.  client.UseDefaultCredentials = false;
4.  client.Send(message);

This Question has been solved and asker verified All Experts Exchange premium technology solutions are available to subscription members.

Subscribe now for full access to Experts Exchange and get

Instant Access to this Solution

  • Plus...
  • 30 Day FREE access, no risk, no obligation
  • Collaborate with the world's top tech experts
  • Unlimited access to our exclusive solution database
  • Never be left without tech help again

Subscribe Now

Asked On
2008-09-17 at 11:06:40ID23739718
Tags

ASP.NET C#

Topics

Programming for ASP.NET

,

Simple Mail Transfer Protocol (SMTP)

Participating Experts
2
Points
500
Comments
9

Trusted by hundreds of thousands everyday for fast, accurate and reliable tech support.

  • "The time we save is the biggest benefit of Experts Exchange to Warner Bros. What could take multiple guys 2 hours or more each to find is accessed in around 15 minutes on Experts Exchange." Mike Kapnisakis, Warner Bros.
  • "Our team likes having a resource that is more secure than just using Google and most experts using this service really know their stuff. It's nice to look here first versus using Google." Dayna Sellner, Lockheed Martin
  • "Anytime that I've been stumped with a problem, 9 out of 10 times Experts Exchange has either the accepted solution or an open discussion of the potential solution to the problem." Kenny Red, eBay Inc.

See what Experts Exchange can do for you.

Got a question?

We've got the answer.

Experts Exchange has been collecting answers to technology questions since 1996…3 million and counting! If you have a question, chances are we already have your answer.

Screenshot of Experts Exchange Knowledgebase

Need individual assistance?

Our experts are ready to help.

If you can't find the exact answer you're looking for, ask our exclusive community of 50,000 experts. You’ll get a personalized answer from a trusted professional.

Screenshot of Experts Exchange Knowledgebase

Want to learn from the best?

Read articles from industry experts.

Thousands of free tech tips, tricks, how-to’s and tutorials are available in our peer reviewed articles section. See for yourself how smart our experts are, no login required.

Screenshot of an Article

Working on a long term project?

Store your work and research.

Save solutions to your questions, answers you’ve discovered through searching plus helpful articles in your personal knowledgebase for easy future access.

Screenshot of Experts Exchange Knowledgebase

Access the answers to your technology questions today.

Subscribe Now

30-day free trial. Register in 60 seconds.

What Makes Experts Exchange Unique?

Members of the expert community talk about why the experience at Experts Exchange is different than what you will find anywhere else.

Trusted by the world's most respected brands.

image of each brand's logo

Faithfully serving IT professionals since 1996.

Experts Exchange Logo

Try it out and discover for yourself.

Subscribe Now

30-day free trial. Register in 60 seconds.

Related Solutions

  1. SmtpClient Send() difficulties
    Hi there! (Happy 2008 for you all.) I´ve just started to learn ASP.NET 2.0 through Step. Walther´s "ASP.NET 2.0 Unleashed" and in the second example :( I have already gone into trouble. The snippet follows. Please help me to make the example work. (I know m...
  2. SmtpClient Giving No Errors, but No Email Sent
    As the question states, I am attempting to send a confirmation email to users upon registration. The Send() method of the SmtpClient is not throwing an error. However I get no email sent. Code is below. I know it makes it passed the Send command as it does do a proper redirec...
  3. How to encrypt system.net/mailsettings section in web.…
    I am developing a web application using VS2008, ASP.NET, framework 3.5 The application uses system.net/mailsetting section of web.config file to store SMTP information. While running aspnet_regiis.exe -pe "system.net/mailsettings" -app /MyApp -prov "DataProt...
  4. Unable to send email ASP.NET 3.5 SmtpClient
    Hi, I'm using ASP.NET 3.5 in a hosted environment with no control of the servers. I'm getting the following error when trying to send emails. "Insufficient system storage. The server response was: 4.3.1 Unable to accept message because the server is out of disk space&...
  5. smtpclient question - exception
    Hello group, I'm writing a console mode applications which deals with emailing and ... now in part of it I need to send an email to 1 or more people using smtpclient class. However, I'm getting an exception as in snippet.
  6. CDO works But Smtpclient classes doesnot work
    Hi Experts, The Below code [asp] works well. But ASP.NET code with c# is not working. It's very urgent. Please help me out!!!

Free Tech Articles

  1. WARNING: 5 Reasons why you should NEVER fix a computer for free.
    It is in our nature to love the puzzle. We are obsessed. The lot of us. We love puzzles. We love the challenge. We thrive on finding the answer. We hate disarray. It bothers us deep in our soul. W...
  2. SCCM OSD Basic troubleshooting
    SCCM 2007 OSD is a fantastic way to deploy operating systems, however, like most things SCCM issues can sometimes be difficult to resolve due to the sheer volume of logs to sift through and the dispe...
  3. Migrate Small Business Server 2003 to Exchange 2010 and Windows 2008 R2
    This guide is intended to provide step by step instructions on how to migrate from Small Business Server 2003 to Windows 2008 R2 with Exchange 2010. For this migration to work you will need the fo...
  4. Create a Win7 Gadget
    This article shows you how to create a simple "Gadget" -- a sort of mini-application supported by Windows 7 and Vista. Gadgets can be dropped anywhere on the desktop to provide instant information, ...
  5. Outlook continually prompting for username and password
    There have been a lot of questions recently regarding Outlook prompting for a username and password whilst using Exchange 2007. There are a few reasons why this would happen and I will try to cover t...
  6. Backup Exchange 2010 Information Store using Windows Backup
    There seems to be quite a lot of confusion around the ability to backup Exchange 2010 using the built in Windows Backup feature. This stems from the omission of this feature prior to Exchange 2007 s...

Cloud Class Webinars

  1. Avoiding Bugs in Microsoft Access
    Alison Balter takes and in-depth look at avoiding bugs in Access. In this webinar you will learn about using the immediate window to debug your applications, invoking the debugger, using breakpoints to troubleshoot, stepping through code, setting the next statement to execute, ...
  2. Top 10 Best New Features in Visio 2010
    Scott Helmers gives live demonstrations of the top 10 new features in Visio 2010. This webinar will teach you how to create compelling diagrams by adding shapes to the page with a single click, linking the shapes in a diagram to data in Excel (or SQL Server, or SharePoint), ...
  3. IT Consultant Business Secrets Revealed
    Michael Munger, Experts Exchange tech pro and IT consultant, pulls back the curtain on his very successful businesses and answers question on every IT consultant and business owner should know about. He shares secrets on what he did to solve the 5 most common problems in IT, ...
  4. Disaster Recovery and Business Continuity
    Quest CTO, Mike Billon, gives an overview of the steps involved in building a dunamic disaster recovery plan. Through case studies and an examination of software/hardware tooles for monitoring and testing, you'll gain a better understandin of where you are, where you want ...
  5. Organize Your Visio Diagrams with Containers and Lists
    Scott Helmers uses cross functional flowcharts, wireframe diagrams, data graphic legends and seating charts to teach you: how to ustilize all three new structured diagram components in Visio 2010, the best practices for organizeing shapes in previous version of Visio, how to organize ...
  6. How to Us Objects, Properties, Events and Methods in Microsoft Access
    Alison Dalter gives an in-depbth look at objects, properties, events and methods in Microsoft Access. In this webinar you will learn about using the object browser, referring to objects, working with properties and methods, working with object variables, understanding the ...

Join the Community

Give a Little. Get a Lot.

Join the community of experts here and help other tech pros by answering question in your area of expertise. You can earn FREE access to all Experts Exchange's premium features and resources.

Join the Community

Answers

 

by: BondinASPPosted on 2008-09-17 at 21:14:51ID: 22507417

 

by: sufianmehmoodPosted on 2008-09-17 at 22:11:25ID: 22507940

also, you have specified 110 as your SMTP port, is it correct because default SMTP port is 25......110 is default port for POP

 

by: man-on-a-missionPosted on 2008-09-17 at 22:40:24ID: 22508049

I'm afraid that doesn't help.  Additional info:
I'm running on a Win2003 server, IIS6, ASP.NET 3.5, VS2008
The SMTP server I am calling is outside of the application domain (though that shouldn't matter)
I have implemented ASP.NET Membership services, and it sends email using the exact same smtp settings (i.e. stored in in mailSettings in web.config)

I commented the line "client.UseDefaultCredentials = false"
And I get the following error when the Send (message) method is called:

System.Net.Mail.SmtpException was unhandled by user code
  Message="Failure sending mail."
  Source="System"
  StackTrace:
       at System.Net.Mail.SmtpClient.Send(MailMessage message)
       at _Default.Button1_Click(Object sender, EventArgs e) in c:\dev\fwdev\Default.aspx.cs:line 54
       at System.Web.UI.WebControls.Button.OnClick(EventArgs e)
       at System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument)
       at System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument)
       at System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument)
       at System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData)
       at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
  InnerException: System.IO.IOException
       Message="Unable to read data from the transport connection: net_io_connectionclosed."
       Source="System"
       StackTrace:
            at System.Net.Mail.SmtpReplyReaderFactory.ProcessRead(Byte[] buffer, Int32 offset, Int32 read, Boolean readLine)
            at System.Net.Mail.SmtpReplyReaderFactory.ReadLines(SmtpReplyReader caller, Boolean oneLine)
            at System.Net.Mail.SmtpReplyReaderFactory.ReadLine(SmtpReplyReader caller)
            at System.Net.Mail.SmtpReplyReader.ReadLine()
            at System.Net.Mail.CheckCommand.Send(SmtpConnection conn, String& response)
            at System.Net.Mail.MailCommand.Send(SmtpConnection conn, Byte[] command, String from)
            at System.Net.Mail.SmtpTransport.SendMail(MailAddress sender, MailAddressCollection recipients, String deliveryNotify, SmtpFailedRecipientException& exception)
            at System.Net.Mail.SmtpClient.Send(MailMessage message)
       InnerException:

 

by: BondinASPPosted on 2008-09-17 at 22:50:22ID: 22508082

try this and test
1.  SmtpClient client = new SmtpClient("myserver", 110);
2.  NetworkCredential SMTPUserInfo = new NetworkCredential("username", "password");
3.  client.UseDefaultCredentials = false;
4.  client.Credentials = SMTPUserInfo;

 

by: man-on-a-missionPosted on 2008-09-17 at 23:01:15ID: 22508121

Ya know, I checked the port and still got it wrong.  In addition, I must correct my previous statement that Membership services and my inline code used the exact same values (at some point I resorted to hard coding the parms instead of reading from web.config).

So, with the correct port, I now get the following on two different dev machines.  There must be something wrong with my code.

System.Net.Mail.SmtpException was unhandled by user code
  Message="Failure sending mail."
  Source="System"
  StackTrace:
       at System.Net.Mail.SmtpClient.Send(MailMessage message)
       at _Default.Button1_Click(Object sender, EventArgs e) in c:\Users\John\Documents\Visual Studio 2008\WebSites\testmembership\Default.aspx.cs:line 75
       at System.Web.UI.WebControls.Button.OnClick(EventArgs e)
       at System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument)
       at System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument)
       at System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument)
       at System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData)
       at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
  InnerException: System.IO.IOException
       Message="Unable to read data from the transport connection: net_io_connectionclosed."
       Source="System"
       StackTrace:
            at System.Net.Mail.SmtpReplyReaderFactory.ProcessRead(Byte[] buffer, Int32 offset, Int32 read, Boolean readLine)
            at System.Net.Mail.SmtpReplyReaderFactory.ReadLines(SmtpReplyReader caller, Boolean oneLine)
            at System.Net.Mail.SmtpReplyReaderFactory.ReadLine(SmtpReplyReader caller)
            at System.Net.Mail.SmtpReplyReader.ReadLine()
            at System.Net.Mail.CheckCommand.Send(SmtpConnection conn, String& response)
            at System.Net.Mail.MailCommand.Send(SmtpConnection conn, Byte[] command, String from)
            at System.Net.Mail.SmtpTransport.SendMail(MailAddress sender, MailAddressCollection recipients, String deliveryNotify, SmtpFailedRecipientException& exception)
            at System.Net.Mail.SmtpClient.Send(MailMessage message)
       InnerException:

 

by: man-on-a-missionPosted on 2008-09-17 at 23:12:27ID: 31497440

That worked perfectly!  I've been banging my head on this for two days.  Thanks so much.  As a side note, the port should have been 25 as noted in the discussion.

 

by: sufianmehmoodPosted on 2008-09-17 at 23:13:07ID: 22508176

Your error message "Unable to read data from the transport connection: net_io_connectionclosed"
it seems that you are unable to connect to the server properly or server is disconnecting your session.
Have a look at this thread.
http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=418540&SiteID=1

 

by: BondinASPPosted on 2008-09-17 at 23:14:30ID: 22508179

your welcome

 

by: man-on-a-missionPosted on 2008-09-18 at 13:47:02ID: 22515289

I WAS WORKING WAY TOO HARD

Since I already had the [mailSettings] definition in web.config, all I had to do to send a message was:

SmtpClient client = new SmtpClient();
client.Send(message);

The framework or IIS automatically retrieve the smtp details from web.config.

20120131-EE-VQP-002

3 Ways to Join

30-Day Free Trial

The Experts

98% positive feedback on 31,087 answers since March 2000. angeliii is a Microsoft Most Valuable Professional for his work with MS SQL Server & Develoment.

He has also proven his knowledge of Visual Basic Programming, PHP Scripting and Oracle Databases.

The Experts

97% positive feedback on 10,752 answers since July 2000. lrmoore has more than 18 years experience in the networking industry.

The six-time Mircosoft MVPs specialties include firewalls, virtual private networking, and network management.

Testimonials

"...and excellent source for support... Kind of like having your very own IT dept." Electriciansnet

Testimonials

"I was apprehensive at signing up at first. However... it has already made my life as an IT administrator much easier." JaCrews

Testimonials

"WOW! You guys have great, active, and knowledgeable people on here." moore50

Business Clients

Business Clients

In the Press

"If you’ve got a question... Experts Exchange can supply an answer.”

In the Press

"...an invaluable aid for both IT professionals and those who require tech support."

In the Press

"where IT professionals provide quick answers on just about any topic"

Business Account Plans

Loading Advertisement...