warning CS0618: 'System.Web.Mail.SmtpMail' is obsolete:

Previously in .net 1.0 and 1.1, to send mail from a console application, you could use

using System.Web.Mail

and use a method similar to this:

static void SendMail()
MailMessage msg = new MailMessage();

msg.To = “,”;
msg.From = “”;
msg.Subject = “My Subject”;
msg.Body = “My Body”;

msg.BodyFormat = MailFormat.Html;

SmtpMail.SmtpServer = “yourmailserveraddressorip”;



If you then upgrade to .net 2.0, you will get this when building:

warning CS0618: ‘System.Web.Mail.SmtpMail’ is obsolete: ‘The recommended alternative is System.Net.Mail.SmtpClient.’

Nice huh, link doesn’t tell you much except the API is obsolete.
The old way still works, but you get a bunch of ugly warnings.
So, to fix that, you need to do this. First remove the using statement for System.Web.Mail, then add and change your mailing method as follows:

using System.Net.Mail;

static void SendMail()
MailMessage msg = new MailMessage();

msg.From = new MailAddress(“”);;
msg.Subject = “My Subject”;
msg.Body = “My Body”;

msg.IsBodyHtml = true;

SmtpClient smtpClient = new SmtpClient(“yourmailserveraddressorip”);



As you can see, pretty close but a few subtle differences. No more warnings! 🙂

** Note that if you really want a good SendMail function, you should pass in the parameters and have overloads for options such as HTML mail, etc. Depending
on the app I am making, I’ll just throw up a email method like this, but it’s really the quick and dirty way to do it. **

By Steve Novoselac

Director of Digital Technology @TrekBikes, Father, Musician, Cyclist, Homebrewer

6 replies on “warning CS0618: 'System.Web.Mail.SmtpMail' is obsolete:”

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.