Introduction
This article explains how to send bulk email using ASP.Net 4.5.
Using
- ASP .NET web page
- Grid View
- HTML Email Templates
- Gmail SMTP Mail Server
Create a new project using "File" -> "New" -> "Project..." then select web "ASP .Net Web Forms Application". Name it " Bulk Email".
Now in the Design page “Default.aspx” design the web page as in the following screen:
In the Design Source (Default.aspx) write the code as:
Default.aspx.cs
- <%@ Page Title="Home Page" Language="C#" MasterPageFile="~/Site.Master" AutoEventWireup="true"
- CodeBehind="Default.aspx.cs" Inherits="BulkEmail._Default" %>
-
- <asp:Content runat="server" ID="FeaturedContent" ContentPlaceHolderID="FeaturedContent">
- <section class="featured">
- <div class="content-wrapper">
- <hgroup class="title">
- <h2>Send Bulk email using asp.net</h2>
- </hgroup>
- <p>
- To learn more about ASP.NET
- </p>
- </div>
- </section>
- </asp:Content>
- <asp:Content runat="server" ID="BodyContent" ContentPlaceHolderID="MainContent">
- <h3>We suggest the following:</h3>
- <asp:Panel ID="Panel1" runat="server" Width="100%" ScrollBars="Horizontal">
- <p>
- <asp:Button ID="btnBind" runat="server" Text="View" OnClick="btnBind_Click" /> <asp:Label
- ID="Label1" runat="server" Font-Bold="true" ForeColor="Green" Text="Total Customers:">
- </asp:Label><asp:Label ID="lbltotalcount" runat="server" ForeColor="Red" Font
- Size="Larger"></asp:Label> </p>
- <asp:Button ID="btnSend" runat="server" Text="Send" OnClick="btnSend_Click" />
- <asp:GridView ID="grvCustomers" runat="server"></asp:GridView>
- </asp:Panel>
- </asp:Content>
In the Web.config file create the connection string as:
Web.config
- <connectionStrings>
- <add name="ConnectionString"connectionString="Server=localhost;userid=root;password=;Database=
- orthwind"providerName="MySql.Data.MySqlClient"/>
- </connectionStrings>
In the code behind file (Default.aspx.cs) write the code as:
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Web;
- using System.Web.UI;
- using System.Web.UI.WebControls;
-
-
- using MySql.Data.MySqlClient;
- using System.Configuration;
- using System.Text;
- using System.Net;
- using System.Net.Mail;
- using System.Data;
-
- namespace BulkEmail
- {
- public partial class _Default : Page
- {
- #region MySqlConnection Connection
- MySqlConnection conn = new
- MySqlConnection(ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString);
-
- protected void Page_Load(object sender, EventArgs e)
- {
- Try
- {
- if (!Page.IsPostBack)
- {
- }
- }
- catch (Exception ex)
- {
- ShowMessage(ex.Message);
- }
- }
- #endregion
- #region show message
-
-
-
-
- void ShowMessage(string msg)
- {
- ClientScript.RegisterStartupScript(Page.GetType(), "validation", "<script
- language='javascript'>alert('" + msg + "');</script>");
- }
- #endregion
- #region Bind Data
-
-
- MySqlDataAdapter
-
-
-
- protected void btnBind_Click(object sender, EventArgs e)
- {
- Try
- {
- conn.Open();
- MySqlCommand cmd = new MySqlCommand("Select
- CustomerID,ContactName,Address,Phone,Email from customers", conn);
- MySqlDataAdapter adp = new MySqlDataAdapter(cmd);
- DataSet ds = new DataSet();
- adp.Fill(ds);
- grvCustomers.DataSource = ds;
- grvCustomers.DataBind();
- lbltotalcount.Text = grvCustomers.Rows.Count.ToString();
- }
- catch (MySqlException ex)
- {
- ShowMessage(ex.Message);
- }
- Finally
- {
- conn.Close();
- }
- btnBind.Visible = false;
- }
- #endregion
- #region Bulk email,GridView,gmail
-
-
-
-
-
- protected void btnSend_Click(object sender, EventArgs e)
- {
- Try
- {
- lbltotalcount.Text = string.Empty;
- foreach (GridViewRow grow in grvCustomers.Rows)
- {
- string strCustomerID = grow.Cells[0].Text.Trim();
- string strContactName = grow.Cells[1].Text.Trim();
- string strAddress = grow.Cells[2].Text.Trim();
- string strPhone = grow.Cells[3].Text.Trim();
- string strEmail = grow.Cells[4].Text.Trim();
- string filename = Server.MapPath("~/Event.html");
- string mailbody = System.IO.File.ReadAllText(filename);
- mailbody = mailbody.Replace("##NAME##", strContactName);
- string to = strEmail;
- string from = "[email protected]";
- MailMessage message = new MailMessage(from, to);
- message.Subject = "Auto Response Email";
- message.Body = mailbody;
- message.BodyEncoding = Encoding.UTF8;
- message.IsBodyHtml = true;
- SmtpClient client = new SmtpClient("smtp.gmail.com", 587);
- System.Net.NetworkCredential basicCredential = new
- System.Net.NetworkCredential("[email protected]", "Password");
- client.EnableSsl = true;
- client.UseDefaultCredentials = true;
- client.Credentials = basicCredential;
- try
- {
- client.Send(message);
- ShowMessage("Email Sending successfully...!" + strContactName + " ");
- }
- catch (Exception ex)
- {
- ShowMessage(ex.Message);
- }
- }
- }
- catch (MySqlException ex)
- {
- ShowMessage(ex.Message);
- }
- Finally
- {
- conn.Close();
- }
- }
- #endregion
- }
- }
See the following screen for the Default.aspx: Total Customers data bind.
Now, see the following screen for the Default.aspx: send email waiting.
Now, show in the Message box “Email sending successfully”.
Now "Email Account Open" - > "View Email".
Now, see the following screen: 93 mails receive in the inbox and the Total Customers Email ID: 93
93 messages were received in the inbox. Bulk Sending an E-Mail Using ASP.NET 4.5 with HTML Email Templates and Gmail SMTP Mail Server. I hope this article is useful. If you have any other questions then please provide your comments below.