我正在开发一个代码,将邮件发送到数据库电子邮件ID
这是aspx.cs文件中的页面加载
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
loadEmp_Emailid();
}
}
在具有此代码的loadEmp_Emailid()函数之后
protected void loadEmp_Emailid()
{
con.Open();
SqlCommand cmd = new SqlCommand("select email from emailtable", con);
SqlDataAdapter da = new SqlDataAdapter(cmd);
DataSet ds = new DataSet();
da.Fill(ds);
int size_arr = ds.Tables[0].Rows.Count;
string[] arr = new string[size_arr];
int i = 0;
if (ds.Tables[0].Rows.Count > 0)
{
foreach (DataRow dr in ds_.Tables[0].Rows)
{
arr[i] = dr["email"].ToString();
if (dr["email"].ToString() == "")
{
}
else
{
sendmail(arr[i]);
}
i++;
}
}
else
{
}
}
上面的代码我得到10个电子邮件ID,如
test@gmail.com
test1@gmail.com
test2@gmail.com
test3@gmail.com
test4@gmail.com
test5@gmail.com
.............
..............
这是发送邮件功能
public void sendmail(string emailTo)
{
System.Net.Mail.SmtpClient smtpClient = new System.Net.Mail.SmtpClient();
smtpClient.Host = "smtp.247headhunting.com";
smtpClient.Credentials = new System.Net.NetworkCredential("test@test.com", "xxxxx");
System.Net.Mail.MailAddress From = new System.Net.Mail.MailAddress("test@test.com", "XXXXXX");
System.Net.Mail.MailMessage Message = new System.Net.Mail.MailMessage();
Message.From = From;
Message.To.Add(new System.Net.Mail.MailAddress(emailTo));
Message.Subject = "Subject ";
Message.Body = "Testing";
Message.IsBodyHtml = true;
try
{
smtpClient.Send(Message);
}
catch (Exception ex)
{
}
finally
{
Message.Dispose();
}
}
这里的问题是邮件发送的每个页面加载时间......
我不希望在不使用页面加载概念的情况下在一天内发送更多一次 我想自动发送请给我任何建议
由于 普拉迪普
答案 0 :(得分:1)
不要从ASP.NET页面执行批处理作业。您可以改为使用Quartz.NET enterprise scheduler(开源)等专用调度程序。
您可以查看Quick start guide和various tutorials。
注意:基本的想法是将您的quartz.net服务器作为Windows服务托管在您的asp.net网站旁边。在asp.net网站上托管一个asp.net网站可能是一个坏主意(例如,应用程序池回收的不可预测性可能导致意外行为)。
答案 1 :(得分:0)