在.net代码中运行时编辑HTML电子邮件模板

时间:2012-09-05 12:24:47

标签: c# asp.net html system.net.mail

我下面的代码是通过阅读模板html发送电子邮件,它工作正常。但现在我的问题是如何在运行时将Salutation customerName从我的.net代码传递给模板。

 StringBuilder strBlr = new StringBuilder();
            string strHTML = string.Empty;
            string strTempalteHtmlpath = string.Empty;

            //create the mail message
            MailMessage mail;

 string strFrom = ConfigurationSettings.AppSettings["fromAddressForBT"];
                string strSubject = "Thanks for choosing Email contact preference";
                mail = new MailMessage(strFrom, customerDetails.EmailId);

                mail.Subject = strSubject;

                //Read Html Template File Path
                strTempalteHtmlpath = Convert.ToString(ConfigurationSettings.AppSettings["TemplatePath"]);
                strHTML = File.ReadAllText(strTempalteHtmlpath);
                strBlr = strBlr.Append(strHTML);
                mail.Body = strBlr.ToString();
                mail.IsBodyHtml = true;


                //first we create the Plain Text part
                AlternateView plainView = AlternateView.CreateAlternateViewFromString(strBlr.ToString(), null, "text/plain");
                AlternateView htmlView = AlternateView.CreateAlternateViewFromString(strBlr.ToString(), null, "text/html");

 mail.AlternateViews.Add(plainView);
                mail.AlternateViews.Add(htmlView);

                //send the message
                SmtpClient smtpMail = new SmtpClient(ConfigurationSettings.AppSettings["smtpClient"]);
                smtpMail.Send(mail);

                mail.Dispose();

感谢。

1 个答案:

答案 0 :(得分:4)

这是sendemail按钮的代码

    StreamReader sr = new StreamReader(Server.MapPath("Sendpage.htm"));
    string body = sr.ReadToEnd();         
    sr.Close();          
    body = body.Replace("#NameFamily#", txtNameFamily.Text);     
    body = body.Replace("#Email#", txtEmail.Text);        
    body = body.Replace("#Tellphone#", txtTellphone.Text);   
    body = body.Replace("#Text#", txtText.Text);       
    body = body.Replace("#Date#", DateTime.Now);        
    string Time = Convert.ToString(DateTime.Now.ToShortTimeString());    
    body = body.Replace("#Time#", Time);        
    SendMail("email that you want to send to it", body); 

这是sendmail功能代码:

 private void SendMail(string To, string Body)
    {
        SmtpClient Mailing = new SmtpClient("mail.domain.com");
        MailMessage Message = new MailMessage();
        Message.From = new MailAddress("mail@domain.com", "Your name or company name");
        Message.Subject = "Subject";
        Message.SubjectEncoding = Encoding.UTF8;
        Message.IsBodyHtml = true;
        Message.BodyEncoding = Encoding.UTF8;
        Message.Body = Body;
        Message.To.Add(new MailAddress(To));
        Mailing.UseDefaultCredentials = false;
        NetworkCredential MyCredential = new NetworkCredential("mail@domain.com", "password");
        Mailing.Credentials = MyCredential; Mailing.Send(Message);
    }