Tuesday 28 May 2013

send email with dynamic contents.

send email from asp.net with dynamic contents.
Mailcontant.html page

<table border="1" style="font-family:Arial; border-color:Black; font-  size:11px;" cellspacing="0" cellpadding="2">
            <tr>
                <td width="120">ID :td>
                <td width="190">#id#td>
            tr>
            <tr>
                <td>Request Date :td>
                <td>#enquirydate#td>
            tr>           
            <tr>
                <td>Customer Name :td>
                <td>#customername#td>
            tr>
            <tr>
                <td>Customer Address1 :td>
                <td>#custaddress1#td>
            tr>
            <tr>
                <td>Customer Address2 :td>
                <td>#custaddress2#td>
            tr>
            <tr>
                <td>State :td>
                <td>#state#td>
            tr>
            <tr>
                <td>City :td>
                <td>#city#td>
            tr>
           
            <tr>
                <td>Remarks :td>
                <td>#remarks#td>
            tr>           

        table>


public static void sendmail(string ID,string mailbody)
{
string mailbodytext = "";
string mailID = string.Empty;
StreamReader sr = newStreamReader(HttpContext.Current.Server.MapPath("Mailcontant.html"));
sr =File.OpenText(HttpContext.Current.Server.MapPath("Mailcontant.html"));
mailbodytext = sr.ReadToEnd();
sr.Close();
string squery = string.Empty;
squery = "select * from Detail where ID='" + ID + "'";
DataTable  dr = DataAccess.getDataTable(squery);




if (dr.Rows.Count > 0)
{
mailbodytext = mailbodytext.Replace("#id#", ID);
mailbodytext = mailbodytext.Replace("#enquirydate#",Convert.ToDateTime(dr.Rows[0]["Date"]).ToString("dd/MM/yyyy"));
mailbodytext = mailbodytext.Replace("#customername#", dr.Rows[0]["Cust_Name"].ToString());
mailbodytext = mailbodytext.Replace("#custaddress1#", dr.Rows[0]["Cust_Address1"].ToString());
mailbodytext = mailbodytext.Replace("#custaddress2#", dr.Rows[0]["Cust_Address2"].ToString());
mailbodytext = mailbodytext.Replace("#state#", dr.Rows[0]["State"].ToString());
mailbodytext = mailbodytext.Replace("#city#",
dr.Rows[0]["City"].ToString());
mailbodytext = mailbodytext.Replace("#remarks#", dr.Rows[0]["Remarks"].ToString());
}

SmtpClient smtp = new SmtpClient();
MailMessage msg = new MailMessage();
smtp.EnableSsl = true;
msg.IsBodyHtml = true;
msg.To.Add(newMailAddress(ConfigurationManager.AppSettings["EmailTo"].ToString()));
msg.Subject = "Request - " + FeasibilityID;
msg.Body = mailbody + "
"
 + mailbodytext;
smtp.EnableSsl = true;
object state = msg;
smtp.SendCompleted += newSendCompletedEventHandler(smtpClient_SendCompleted);
smtp.Send(msg);
}
private static void smtpClient_SendCompleted(object sender, System.ComponentModel.AsyncCompletedEventArgs e)
{
        MailMessage mail = e.UserState as MailMessage;
        if (!e.Cancelled && e.Error != null)
        {
            message.Text = "Mail sent successfully";
        }
        else
        {
            message.Text = "Error occured";
        }
 }




Add smtp server setting inwebconfig file
<system.net>
<mailSettings>
<smtp from="work@gmail.com" deliveryMethod="Network">
<network host="smtp.gmail.com" port="587"
userName="work@gmail.com" password="12345"/>
smtp>
mailSettings>
system.net>



No comments:

Post a Comment