توضیحات و دانلود

ارسال نامه الکترونیکی با تصاویر تعبیه شده در بدنه HTML و متن در ASP.Net
0 0
ارسال نامه الکترونیکی با تصاویر تعبیه شده در بدنه HTML و متن در ASP.Net

با سلام در این مقاله نحوه ارسال ایمیل های فرمت شده HTML را توضیح خواهیم داد.  بسیاری از وب سایت های روزنامه ، ایمیل های تبلیغاتی ارسال می کنند. این ایمیلها حاوی محتوا و تصاویر Rich Text هستندپس بیایید با آن شروع کنیم.
الگوی HTML بدنه ایمیل
در مرحله اول شما نیاز به ایجاد یک الگوی HTML از بدنه دارید که دارای برخی متغیرهایی است که با محتوای واقعی جایگزین می شوند. مزیت ایجاد قالب به جای ایجاد HTML با استفاده از رشته Builder در کد این است که می توانید به راحتی قالب HTML را بدون تغییر کد تغییر دهید.

<html xmlns="http://www.w3.org/1999/xhtml">
<head><title></title></head>
<body>
<img src = "//www.asps.com/images/Blue/Logo.png" /><br /><br />
<div style = "border-top:3px solid #22BCE5">&nbsp;</div>
<span style = "font-family:Arial;font-size:10pt">
Hello <b>{UserName}</b>,<br /><br />
A new article has been published on ASPSnippets.<br /><br />
<a style = "color:#22BCE5" href = "{Url}">{Title}</a><br />
{Description}
<br /><br />
Thanks<br />
ASPS
</span>
</body>
</html>

در قسمت زرد رنگ چهار متغیر زیر را در الگوی HTML Email ایجاد کرده ایم.
{UserName - نام گیرنده
{Url} - آدرس مقاله
{Title} - عنوان مقاله
{Description} - توضیحات مقاله
اکنون تنها کاری که ما باید انجام دهیم این است که متغیرها را با مقادیر واقعی آنها جایگزین کنیم و ایمیل را ارسال کنیم.

جمع کردن بدنه قالب بندی شده HTML
در صورت کلیک بر رویداد handler دکمه ، ابتدا فایل HTML Template را می خوانیم و سپس متغیرهای متغیر را با مقادیر آنها جایگزین می کنیم.
C #

private string PopulateBody(string userName, string title, string url, string description)
{
    string body = string.Empty;
    using (StreamReader reader = new StreamReader(Server.MapPath("~/EmailTemplate.htm")))
    {
        body = reader.ReadToEnd();
    }
    body = body.Replace("{UserName}", userName);
    body = body.Replace("{Title}", title);
    body = body.Replace("{Url}", url);
    body = body.Replace("{Description}", description);
    return body;
}

VB.Net

Private Function PopulateBody(ByVal userName As String, ByVal title As String, ByVal url As String, ByVal description As String) As String
    Dim body As String = String.Empty
    Dim reader As StreamReader = New StreamReader(Server.MapPath("~/EmailTemplate.htm"))
    body = reader.ReadToEnd
    body = body.Replace("{UserName}", userName)
    body = body.Replace("{Title}", title)
    body = body.Replace("{Url}", url)
    body = body.Replace("{Description}", description)
    Return body
End Function

روش ارسال ایمیل
روش زیر به سادگی ایمیل گیرنده ، موضوع و بدنه را می پذیرد و ایمیل را ارسال و تنظیمات SMTP را از فایل web.config جمع می کند
C #

private void SendHtmlFormattedEmail(string recepientEmail, 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(recepientEmail));
        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"];
        NetworkCred.Password = ConfigurationManager.AppSettings["Password"];
        smtp.UseDefaultCredentials = true;
        smtp.Credentials = NetworkCred;
        smtp.Port = int.Parse(ConfigurationManager.AppSettings["Port"]);
        smtp.Send(mailMessage);
    }
}

VB.Net

Private Sub SendHtmlFormattedEmail(ByVal recepientEmail As String, ByVal subject As String, ByVal body As String)
    Dim mailMessage As MailMessage = New MailMessage
    mailMessage.From = New MailAddress(ConfigurationManager.AppSettings("UserName"))
    mailMessage.Subject = subject
    mailMessage.Body = body
    mailMessage.IsBodyHtml = True
    mailMessage.To.Add(New MailAddress(recepientEmail))
    Dim smtp As SmtpClient = New SmtpClient
    smtp.Host = ConfigurationManager.AppSettings("Host")
    smtp.EnableSsl = Convert.ToBoolean(ConfigurationManager.AppSettings("EnableSsl"))
    Dim NetworkCred As System.Net.NetworkCredential = New System.Net.NetworkCredential
    NetworkCred.UserName = ConfigurationManager.AppSettings("UserName")
    NetworkCred.Password = ConfigurationManager.AppSettings("Password")
    smtp.UseDefaultCredentials = True
    smtp.Credentials = NetworkCred
    smtp.Port = Integer.Parse(ConfigurationManager.AppSettings("Port"))
    smtp.Send(mailMessage)
End Sub

و در زیر تنظیمات web.config آورده شده است. برای ارسال ایمیل از سرور GMAIL SMTP استفاده می کنیم

<appSettings>
      <addkey="Host"value="smtp.gmail.com"/>
      <addkey="EnableSsl"value="true"/>
      <addkey="UserName"value="sender@gmail.com"/>
      <addkey="Password"value="xxxxx"/>
      <addkey="Port"value="587"/>
</appSettings>

ارسال ایمیل فرمت شده HTML
با کلیک روی دکمه ارسال ، ایمیل های HTML فرمت شده را ارسال می کنیم.
C #

protected void SendEmail(object sender, EventArgs e)
{
    string body = this.PopulateBody("John",
        "Fetch multiple values as Key Value pair in ASP.Net AJAX AutoCompleteExtender",
        "//www.aspsnippets.com/Articles/Fetch-multiple-values-as-Key-Value-pair-" +
        "in-ASP.Net-AJAX-AutoCompleteExtender.aspx",
        "Here Mudassar Ahmed Khan has explained how to fetch multiple column values i.e." +
        " ID and Text values in the ASP.Net AJAX Control Toolkit AutocompleteExtender"
        + "and also how to fetch the select text and value server side on postback");
    this.SendHtmlFormattedEmail("recipient@gmail.com", "New article published!" , body);
}

VB.Net

Protected Sub SendEmail(ByVal sender As Object, ByVal e As EventArgs)
    Dim body As String = Me.PopulateBody("John", _
       "Fetch multiple values as Key Value pair in ASP.Net AJAX AutoCompleteExtender", _
       "//www.aspsnippets.com/Articles/Fetch-multiple-values-as-Key-Value" & _
       "-pair-in-ASP.Net-AJAX-AutoCompleteExtender.aspx", _
       ("Here Mudassar Ahmed Khan has explained how to fetch multiple column values i.e. ID and Text values in" & _
       " the ASP.Net AJAX Control Toolkit AutocompleteExtender" & _
       "and also how to fetch the select text and value server side on postback"))
    Me.SendHtmlFormattedEmail("recipient@gmail.com", "New article published!", body)
End Sub

در بالا ابتدا متن HTML ایمیل از قالب در حال جمع آوری و ارسال ایمیل برای گیرنده می باشد.

 


دانلود
  • لینک های دانلود دوره های آموزشی تا پایان دوره قابل دانلود می باشد.
  • برای خارج کردن فایل ها از حالت فشرده از ورژن جدید نرم افزار winrar استفاده کنید.
  • برای خارج کردن فایل ها از حالت فشرده لینک های دانلودی که چندین قسمت می باشند فقط قسمت اول را از حالت فشرده خارج کنید.
  • لطفا توضیحات نوشته شده برای مطالب را با دقت بخوانید.
  • برای نمایش فیلم ها می توانید از نرم افزار هایی مانند Km Player , VLC Player یا Media Player Classic استفاده کنید.

ارسال نظر
ارسال پیام به :