Pages

Tuesday 11 March 2014

Mail sending in c#

This post shows how to send mail through c# code. Here we stored all the parameter required for mail send like Subject, From Address, To address, HOST and all other  into the web.config file. Advantage of this is that user can easily change all the credentials without changing  the code.

/*mail sending functions*/
public void Send()
{
string from = string.Empty;
string toFinance = string.Empty;
string toLegal = string.Empty;
string toProduction = string.Empty;
string redirctlink = string.Empty;
string hostName = string.Empty;
string port = string.Empty;
string subject = string.Empty;

/*getting information required for mail sending from Web.config file*/

from = System.Configuration.ConfigurationSettings.AppSettings["from"];
toLegal = System.Configuration.ConfigurationSettings.AppSettings["toLegal"];
toFinance = System.Configuration.ConfigurationSettings.AppSettings["toFinance"];
toProduction = System.Configuration.ConfigurationSettings.AppSettings["toProduction"];
redirctlink = System.Configuration.ConfigurationSettings.AppSettings["redirectLink"];                  hostName = System.Configuration.ConfigurationSettings.AppSettings["host"];
port = System.Configuration.ConfigurationSettings.AppSettings["port"];
subject = System.Configuration.ConfigurationSettings.AppSettings["subject"];
/*Assigning mail details to MailMessage*/
MailMessage mailMessage = new MailMessage();
mailMessage.Subject = subject;
string Link = redirctlink;
mailMessage.Body = "Please click on link to approve the Agreements <a Href=" + Link + "> Click Here</a>";
mailMessage.IsBodyHtml = true;
mailMessage.BodyEncoding = Encoding.GetEncoding("Windows-1254");   // Turkish Character Encoding
mailMessage.From = new MailAddress(from);
mailMessage.To.Add(toFinance);
mailMessage.To.Add(toLegal);
mailMessage.To.Add(toProduction);
//this.mailMessage.To.Add(new MailAddress("to mail adress"));
System.Net.Mail.SmtpClient Smtp = new SmtpClient();
Smtp.Port = Convert.ToInt32(port);
Smtp.EnableSsl = false;
Smtp.DeliveryMethod = SmtpDeliveryMethod.Network;
Smtp.UseDefaultCredentials = false;
Smtp.Host = hostName;
Smtp.Send(mailMessage);
}
/*Initialize mail credentials into web.config*/
<!-- Mail Information From and To addresses -->
<appSettings> 
<add key="from" value="abcd@xyz.com"/> 
<add key ="toLegal" value="asw@gmail.com"/>  
       <add key="toFinance" value="cds@gmail.com"/>       
   <add key="toProduction" value="asd@paramatrix.co.in"/>
<add key="redirectLink" value="http://www.google.com"/>   
             <add key="host" value="xxxx"/>                                                       
  <add key="port" value="25"/> 
<add key="subject" value="Write Message subject"/> 
</appSettings>
/*following code is necessary for mail sending even if when you are not setting any value into web.config*/

<system.net>
    <mailSettings>
      <smtp from="no-reply@no-reply.com">
        <network host="ABCD" port="25" enableSsl="false"/>        
      </smtp>
    </mailSettings>
  </system.net>

No comments:

Post a Comment