我開發的代碼,發送郵件到數據庫的電子郵件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等
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
.............
..............
這裏是發送郵件功能
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("[email protected]", "xxxxx");
System.Net.Mail.MailAddress From = new System.Net.Mail.MailAddress("[email protected]", "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();
}
}
這裏的問題是每個頁面加載時間將郵件發送...
我不想在送越多則一次不使用網頁加載概念 一天我想自動發送,請給我任何建議,請
感謝 普拉迪普
當你上次發送它們時,只保存在數據庫中。但我有一個問題:如果這是一個預定的操作,爲什麼你在ASP.NET頁面中執行它?不是更好的預定任務?此外不要忘記處理一次性對象(如SQL連接,命令和閱讀器)。 –
我不知道如何開發計劃任務可以請給我建議... Adriano – user3440749
只是一個建議:這是一個好主意,不從表中讀取,而是使用視圖,SP和函數(並阻止訪問表...)。它也將是更好的STUFF項目,並獲得所有郵件地址在一個和一個行。相關的問題,我與@Adriano - 將其存儲在數據庫中... –