using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;
using System.Net.Mail;
using System.Net;
//using System.Web.Mail;
using System.IO;
public partial class Bulkmail_SendMail : System.Web.UI.Page
{
static DataTable dt=new DataTable();
static int NoOfMail;
protected void Page_Load(object sender, EventArgs e)
{
if (Page.IsPostBack == false)
{
if (Session["Bulkmail"] == null)
{
Response.Redirect("BulkmailLogin.aspx");
}
try
{
ModCommon.Fill_Combo("Select Category_KId, Category_Name from BEM_Category",ddlCategory);
ModCommon.Fill_Combo("Select Template_KId, Template_Name from BEM_Template", ddlTemplate);
ModCommon.Fill_Combo("Select Server_Kid,Server_ServerName from BEM_Server", ddlServer);
//NoOfMail = count();
lblCount.Text = "";
btnStop.Visible = false;
lblTotal.Text = "";
dt = null;
Timer1.Enabled = false;
Image1.Visible = false;
NoOfMail = 0;
}
catch
{
}
}
//if (lblCount.Text != "")
//{
// if (int.Parse(lblCount.Text) == count())
// {
// Timer1.Enabled = false;
// }
//}
}
public int count()
{
try
{
SqlConnection con = new SqlConnection(ConfigurationManager.AppSettings["ConnectionString"]);
SqlCommand cmd = new SqlCommand();
cmd.CommandText = "Select Count(Email) from BEM_Prospect_Detail where Categoryid ='" + ddlCategory.SelectedItem.Value +"'";
cmd.CommandType = CommandType.Text;
cmd.Connection = con;
if (con.State == ConnectionState.Open)
{
con.Close();
}
else
{
con.Open();
}
return (int)cmd.ExecuteScalar();
}
catch
{
return 0;
}
}
protected void btnStart_Click(object sender, EventArgs e)
{
try
{
dt = null;
lblCount.Text = "";
lblTotal.Text = "";
btnStop.Visible = true;
Timer1.Enabled = true;
btnStart.Visible = false;
Image1.Visible = true;
btnReset.Visible = false;
}
catch
{
}
}
protected void btnStop_Click(object sender, EventArgs e)
{
try
{
Timer1.Enabled = false;
btnStart.Visible = true;
btnStop.Visible = false;
Image1.Visible = false;
btnReset.Visible = true;
dt = null;
}
catch
{
}
}
protected void Timer1_Tick(object sender, EventArgs e)
{
try
{
if (lblCount.Text == "")
{
SendMail(0);
}
else
{
SendMail(int.Parse(lblCount.Text));
}
}
catch
{
}
}
public void SendMail(int index)
{
try
{
if(dt==null)
{
dt = ModCommon.ReturnDataTable("Select Email From BEM_Prospect_Detail where Categoryid ='"+ ddlCategory.SelectedItem.Value + "' order by Email ");
}
string strmail;
strmail="Test ";
//MailMessage mail = new MailMessage();
//mail.To = "me@mycompany.com";
//mail.From = "you@yourcompany.com";
//mail.Subject = "this is a test email.";
//string url = "http://www.microsoft.com";
//mail.Body = HttpContent(url);
//mail.BodyFormat = MailFormat.Html;
//mail.UrlContentBase = url;
//SmtpMail.SmtpServer = "localhost"; //your real server goes here
//SmtpMail.Send(mail);
string str;
str = Server.MapPath("Upload");
// HttpContent(str + "\\test.htm",index);
System.Net.WebRequest objRequest = System.Net.HttpWebRequest.Create(str + "\\" + ddlTemplate.SelectedItem.Text);
StreamReader sr = new StreamReader(objRequest.GetResponse().GetResponseStream());
string result = sr.ReadToEnd();
string testresult = result;
sr.Close();
AlternateView view;
LinkedResource resource;
string MediaType = "text/html";
AlternateView hc = AlternateView.CreateAlternateViewFromString(result, null, MediaType);
string[] imgtag = new string[10];
int i = 0;
while (testresult.Contains("
"));
}
view = AlternateView.CreateAlternateViewFromString(result, null, MediaType);
// string sub = result.Substring(result.IndexOf("src=")+5);
//// char c = '"';
// string url1 = sub.Substring(0, sub.IndexOf('"'));
// result=result.Replace("\"" + url1 + "\"", "cid:image1");
// LinkedResource lnk = new LinkedResource(url1);
// lnk.ContentId = "image1";
// string MediaType = "text/html";
// AlternateView hc = AlternateView.CreateAlternateViewFromString(result, null, MediaType);
// //AlternateView hc = new AlternateView .(result,MediaType);
// hc.LinkedResources.Add(lnk);
// //int startindex = result.IndexOf("src=");
// //int lastindex = result.IndexOf(".")
// //MyMailMessage.From=new MailAddress("contact@atcomaart.com", "Atcomaart Ltd.");
// //MyMailMessage.To=new MailAddress(dt.Rows[index]["Email"].ToString(),dt.Rows[index]["ContactPerson"].ToString());
// //MyMailMessage.Bcc=new MailAddress("pankaj.mishra@edeskservices.com", "eDesk Services Ltd.");
for (int count = 0; count < i; count++)
{
string name;
name = imgtag[count].Substring(imgtag[count].LastIndexOf("\\") + 1);
//result = result.Replace("Upload" + "\\" + name, "cid:image" + Convert.ToString(count));
LinkedResource lnk = new LinkedResource(Server.MapPath("Upload")+"\\"+name);
lnk.ContentId = "image" + Convert.ToString(count);
view.LinkedResources.Insert(count, lnk);
}
System.Net.Mail.MailMessage MyMailMessage = new System.Net.Mail.MailMessage(ModCommon.ReturnValue("Select Server_UserName from BEM_Server where Server_Kid='" + ddlServer.SelectedItem.Value.ToString() + "'"), dt.Rows[index]["Email"].ToString());
MyMailMessage.Subject = txtSubject.Text;
MyMailMessage.IsBodyHtml = true;
MyMailMessage.Body = result;
MyMailMessage.AlternateViews.Add(view);
SmtpClient sc = new SmtpClient();
sc.Host = ModCommon.ReturnValue("Select Server_Name from BEM_Server where Server_Kid='" + ddlServer.SelectedItem.Value.ToString() + "'");
sc.UseDefaultCredentials = false;
sc.EnableSsl = Convert.ToBoolean(ModCommon.ReturnValue("Select Server_SSL from BEM_Server where Server_Kid='" + ddlServer.SelectedItem.Value.ToString() + "'"));
sc.Credentials = new System.Net.NetworkCredential(ModCommon.ReturnValue("Select Server_UserName from BEM_Server where Server_Kid='" + ddlServer.SelectedItem.Value.ToString() + "'"), ModCommon.ReturnValue("Select Server_Password from BEM_Server where Server_Kid='" + ddlServer.SelectedItem.Value.ToString() + "'"));
// sc.Port = 465;
// sc.Host = "smtp.gmail.com";
//sc.Timeout = 20000;
sc.Send(MyMailMessage);
//SmtpClient sc = new SmtpClient();
//sc.Host = ModCommon.ReturnValue("Select Server_Name from BEM_Server where Server_Kid='" + ddlServer.SelectedItem.Value.ToString() + "'");
//sc.Credentials = new System.Net.NetworkCredential("smt.pillai@gmail.com", "smita123");
//sc.EnableSsl=true;
//sc.Port = 465;
//sc.Timeout = 5000;
//sc.Send(MyMailMessage);
int j;
if (lblCount.Text == "")
{
lblCount.Text = "1";
if (count() == 1)
{
Timer1.Enabled = false;
btnReset.Visible = true;
btnStart.Visible = true;
btnStop.Visible = false;
Image1.Visible = false;
}
}
else
{
j = int.Parse(lblCount.Text);
//while (i < count())
//{
//}
if (j < count() - 1)
{
j = j + 1;
lblCount.Text = j.ToString();
}
else
{
j = j + 1;
lblCount.Text = j.ToString();
Timer1.Enabled = false;
btnReset.Visible = true;
btnStart.Visible = true;
btnStop.Visible = false;
Image1.Visible = false;
}
}
lblTotal.Text = "Out Of " + NoOfMail + " Mail Sent";
}
catch (System.Exception e)
{
// Label1.Text = e.Message;
int j;
j=(int.Parse(lblCount.Text) + 1);
lblCount.Text = Convert.ToString(j);
}
}
protected void ddlTemplate_SelectedIndexChanged(object sender, EventArgs e)
{
try
{
string str;
str = Server.MapPath("Upload");
System.Net.WebRequest objRequest = System.Net.HttpWebRequest.Create(str + "\\" + ddlTemplate.SelectedItem.Text);
StreamReader sr = new StreamReader(objRequest.GetResponse().GetResponseStream());
string result = sr.ReadToEnd();
string testresult = result;
sr.Close();
string[] imgtag = new string[10];
int i = 0;
while (testresult.Contains("
"));
}
Literal1.Text = result;
}
catch
{
}
}
protected void btnReset_Click(object sender, EventArgs e)
{
try
{
ddlCategory.ClearSelection();
ddlTemplate.ClearSelection();
txtSubject.Text = "";
lblCount.Text = "";
Literal1.Text = "";
btnStop.Visible = false;
btnStart.Visible = true;
lblTotal.Text = "";
Image1.Visible = false;
}
catch
{
}
}
protected void ddlCategory_SelectedIndexChanged(object sender, EventArgs e)
{
try
{
NoOfMail = count();
}
catch
{
}
}
protected void ddlServer_SelectedIndexChanged(object sender, EventArgs e)
{
if (ModCommon.ReturnValue("Select Server_Name from BEM_Server where Server_Kid='" + ddlServer.SelectedItem.Value + "'") == "smtp.gmail.com")
{
Timer1.Interval = 15000;
}
else
{
Timer1.Interval = 7000;
}
}
}