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

ایجاد و ارسال ایمیل HTML فرمت شده در ASP.Net با استفاده از C # و VB.Net
0 0
ایجاد و ارسال ایمیل HTML فرمت شده در ASP.Net با استفاده از C # و VB.Net

با سلام در این مقاله، با یک مثال، نحوه ایجاد و ارسال ایمیل های HTML فرمت شده در ASP.Net را با استفاده از C # و VB.Net توضیح خواهیم داد.
ایمیل های فرمت شده HTML برای ارسال خبرنامه و ایمیل های تبلیغاتی مورد استفاده قرار می گیرند. چنین ایمیل هایی حاوی متن Rich Text، تصاویر و انیمیشن ها هستند.
صفحه HTML
اولین گام این است که بر روی پروژه  Solution Explorer راست کلیک کنید و سپس روی افزودن و بعد عنصر جدید کلیک کنید و سپس صفحه HTML را انتخاب کنید و آن را به عنوان EmailTemplate.htm نام ببرید .

ساختن قالب HTML برای بدنه ایمیل
قالب HTML ایمیل با ایجاد یک HTML حاوی برخی متغیرهایی است که با محتوای واقعی جایگزین خواهند شد. استفاده از ایجاد الگوها به جای ایجاد HTML با استفاده از کلاس String Builder یا پیوند رشته در کد، این است که به راحتی می توانید HTML قالب را بدون تغییر کد تغییر دهید.
 قالب ایمیل HTML زیرشامل چهار متغیر است:
{UserName} - نام گیرنده
{Url} - آدرس مقاله
{Title} - عنوان مقاله
{Description} - شرح مقاله
هنگامی که ایمیل ارسال می شود، این متغیرها با ارزش واقعی جایگزین می شوند.

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title></title>
</head>
<body>
    <img src="http://www.aspsnippets.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 />
        ASPSnippets </span>
</body>
</html>

کد HTML
 کد HTML شامل یک دکمه ASP.Net می باشد.

<form id="form1" runat="server">
<asp:Button ID="btnSend" runat="server" Text="Send" OnClick="SendEmail" />
</form>

فضاهای نام
شما باید فضای نامهای زیر را وارد کنید.
C #

using System.Configuration;
using System.IO;
using System.Net.Mail;

VB.Net

Imports System.Configuration
Imports System.IO
Imports System.Net.Mail

جمع آوری بدنه HTML قالب بندی شده
در داخل تابع زیر، محتویات فایل الگو HTML ایمیل به متغیر رشته با استفاده از کلاس StreamReader خوانده می شود و متغیرهایی با مقادیر آنها جایگزین می شوند.
این روش در رویداد Click Send Button فراخوانی خواهد شد.
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
شما نیاز دارید پیکربندی زیر را در فایل Web.Config در بخش appSettings اضافه کنید .

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

ارسال ایمیل HTML فرمت شده
هنگامی که دکمه ارسال کلیک می شود ، ابتدا بدنه ایمیل با استفاده از روش PopulateBody تولید می شود و سپس بدنه HTML فرمت شده به عنوان پارامتر به روش SendHtmlFormattedEmail همراه با آدرس ایمیل گیرنده و موضوع منتقل می شود.
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

عکس روی صفحه

 


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

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