C#: How to Send Emails
This topic is a how to.
Please keep it as clear and simple as possible. Avoid speculative discussions as well as a deep dive into underlying mechanisms or related technologies. |
Step By Step Procedure
Step 1: New Console Application
Create a new project in Microsoft Visual Studio 2008 (File -> New -> Project -> Visual C# -> Console Application). Give Email_Sender name and also specify the location where to store the project.
Step 2: New Class
Now add a new item to the project we just created (Project -> Add New Item -> Class). Specify a name to the class as ‘TNV_EmailHelper’. The code now looks like as follows.
The namespace used is
using System.Net.Mail;
class TNV_EmailHelper
{
private SmtpClient _sClient = new SmtpClient();
private System.Net.NetworkCredential _smtpCreds = null;
private string _sendTo;
private string _sendFrom;
private string _subject;
private string _body;
//Constructor
//change Host& Port names Based on SMTP server
public TNV_EmailHelper(string host, int port)
{
_sClient.Host = host;
_sClient.Port = port;
}
public void SendEmail(string sendFrom, // From EmailAddress
string password, // Password
string sendTo, // To Email Address
string subject, // Subject of email
string body) // Boady of email
{
try
{
_sendFrom = sendFrom;
_sendTo = sendTo;
_subject = subject;
_body = body;
_smtpCreds = new System.Net.NetworkCredential(
sendFrom,
password);
_sClient.UseDefaultCredentials = false;
_sClient.Credentials = _smtpCreds;
_sClient.EnableSsl = true;
MailMessage msg = BuildMessage();
_sClient.Send(msg);
}
catch (Exception ex)
{
throw ex;
}
}
private MailMessage BuildMessage()
{
MailMessage msg = new MailMessage();
MailAddress to = new MailAddress(_sendTo);
MailAddress from = new MailAddress(_sendFrom);
msg.Subject = _subject;
msg.Body = _body;
msg.From = from;
msg.To.Add(to);
return msg;
}
}
Step 3: Write code
Open Program.cs and in Main write the following lines to send the email
Program.cs
class Program
{
static void Main(string[] args)
{
TNV_EmailHelper em = new TNV_EmailHelper(
"<MAIL Server URL", <MAIL SERVER PORT>);
em.SendEmail("<sender mail address>", "<password>",
"<Receiver mail address>",
"SUB: <subject text>",
"BODY: <mail body text>");
}
}
Other Languages
This article is also available in the following languages: