ارسال ایمیل با استفاده از HTML Template در ASP.Net

شنبه 25 مهر 1394

در این مقاله قصد داریم نحوه ارسال ایمیل با استفاده از HTML Template در ASP.Net و چگونگی طراحی قالب یک ایمیل منحصر به فرد را بررسی کنیم. یک مثال برای درک بهتر این مفهوم ارائه خواهیم داد .

ارسال ایمیل با استفاده از HTML Template در ASP.Net

در این مقاله قصد داریم نحوه ارسال ایمیل با استفاده از HTML Template  در ASP.Net   و چگونگی طراحی قالب  یک ایمیل منحصر به فرد را بررسی کنیم.  یک مثال برای درک بهتر این مفهوم ارائه خواهیم داد .

برای شروع یک پروژه ASP.net ایجاد کرده و یک صفحه  web form  به آن اضافه میکنیم.

برای استفاده از HTML Template  یک صفحه HTML به پروژه اضافه میکنیم.

قسمت Solution explorer  به صورت زیر خواهد بود.

htmlTemplate.html را به صورت زیر طراحی میکنیم.


    <html xmlns="http://www.w3.org/1999/xhtml">  
      
    <head>  
        <title></title>  
    </head>  
      
    <body>  
      
        <table>  
      
            <tr>  
      
                <td>  
      
                    <img src="http://www.c-sharpcorner.com/App_themes/csharp/images/sitelogo.png" width="150px" height="60px" />  
                    <br />  
                    <br />  
      
                    <div style="border-top:3px solid #22BCE5"> </div>  
      
                    <span style="font-family:Arial;font-size:10pt">  
      
    Hello <b>{UserName}</b>,<br /><br />  
      
    <a style = "color:#22BCE5" href = "{Url}">{Title}</a><br />  
      
    {message}  
      
    <br /><br />  
      
    Thanks<br />  
      
    Debendra dash  
      
    </span>  
      
                </td>  
      
            </tr>  
      
        </table>  
      
    </body>  
      
    </html> 

در صفحه default.aspx کدها به صورت زیر نوشته می شوند.


    <body>  
        <form id="form1" runat="server">  
            <div>  
                <table>  
                    <tr>  
                        <td>  
                            Name  
                        </td>  
                        <td>  
                            <asp:TextBox ID="txt_name" Width="200px" runat="server"></asp:TextBox>  
                        </td>  
                    </tr>  
                    <tr>  
                        <td>  
                            Email Id  
                        </td>  
                        <td>  
                            <asp:TextBox ID="txt_email" Width="200px" runat="server"></asp:TextBox>  
                        </td>  
                    </tr>  
                    <tr>  
                        <td>  
                            Message  
                        </td>  
                        <td>  
                            <asp:TextBox ID="txt_message" Width="200px" runat="server" TextMode="MultiLine" Height="60px"></asp:TextBox>  
                        </td>  
                    </tr>  
                </table>  
                <asp:Button ID="btnSend" runat="server" Text="Send Email" OnClick="SendEmail" />  
            </div>  
        </form>  
    </body> 

در اینجا چیزی شبیه به تصویر خواهیم داشت.

 

در صفحه  default.aspx.cs کدها به صورت زیر نوشته می شوند .

using System;  
  
using System.Collections.Generic;  
  
using System.Linq;  
  
using System.Web;  
  
using System.Web.UI;  
  
using System.Web.UI.WebControls;  
  
using System.Net.Mail;  
  
using System.Configuration;  
  
using System.IO;  
  
public partial class _Default: System.Web.UI.Page  
  
{  
  
    protected void SendEmail(object sender, EventArgs e)  
  
    {  
        //calling for creating the email body with html template   
  
        string body = this.createEmailBody(txt_name.Text, "Please check your account Information", txt_message.Text);  
  
        this.SendHtmlFormattedEmail("New article published!", body);  
  
    }  
  
    private string createEmailBody(string userName, string title, string message)  
  
    {  
  
        string body = string.Empty;  
        //using streamreader for reading my htmltemplate   
  
        using(StreamReader reader = new StreamReader(Server.MapPath("~/HtmlTemplate.html")))  
  
        {  
  
            body = reader.ReadToEnd();  
  
        }  
  
        body = body.Replace("{UserName}", userName); //replacing the required things  
  
        body = body.Replace("{Title}", title);  
  
        body = body.Replace("{message}", message);  
  
        return body;  
  
    }  
  
    private void SendHtmlFormattedEmail(string subject, string body)  
  
    {  
  
        using(MailMessage mailMessage = new MailMessage())  
  
        {  
  
            mailMessage.From = new MailAddress(ConfigurationManager.AppSettings["UserName"]);  
  
            mailMessage.Subject = subject;  
  
            mailMessage.Body = body;  
  
            mailMessage.IsBodyHtml = true;  
  
            mailMessage.To.Add(new MailAddress(txt_email.Text));  
  
            SmtpClient smtp = new SmtpClient();  
  
            smtp.Host = ConfigurationManager.AppSettings["Host"];  
  
            smtp.EnableSsl = Convert.ToBoolean(ConfigurationManager.AppSettings["EnableSsl"]);  
  
            System.Net.NetworkCredential NetworkCred = new System.Net.NetworkCredential();  
  
            NetworkCred.UserName = ConfigurationManager.AppSettings["UserName"]; //reading from web.config  
  
            NetworkCred.Password = ConfigurationManager.AppSettings["Password"]; //reading from web.config  
  
            smtp.UseDefaultCredentials = true;  
  
            smtp.Credentials = NetworkCred;  
  
            smtp.Port = int.Parse(ConfigurationManager.AppSettings["Port"]); //reading from web.config  
  
            smtp.Send(mailMessage);  
  
        }  
  
    }  
  
}  

در web config  تنظیمات را انجام می دهیم.

پروژه را اجرا کنید و فرم را پر کنید .

 بعد از کلیک کردن ارسال ایمیل ، ایمیل خود را چک کنید که در ایمیل ارسال شده صفحه HTML Template  طراحی شده را می توانید ببینید .

 

 

فایل های ضمیمه

برنامه نویسان

نویسنده 3355 مقاله در برنامه نویسان

کاربرانی که از نویسنده این مقاله تشکر کرده اند

در صورتی که در رابطه با این مقاله سوالی دارید، در تاپیک های انجمن مطرح کنید