خیلی دیده بودم ارسال گروهی جدید ترین مطالب سایت میخواستین برای کاربران سایت.
1) گرفتن اطلاعات ایمیل کاربران
#region اطلاعات ایمیل
public DataTable All_Email()
{
SqlConnection con = new SqlConnection(DAL.ConnectionString);
SqlCommand cmd = new SqlCommand();
cmd.Connection = con;
cmd.CommandText = "SELECT email from [email]";
con.Open();
SqlDataAdapter da = new SqlDataAdapter(cmd);
DataTable dt = new DataTable();
da.Fill(dt);
con.Close();
return dt;
}
#endregion
2) گرفتن اطلاعات پست ها
#region اطلاعات جدید
public DataTable All_Topik()
{
SqlConnection con = new SqlConnection(DAL.ConnectionString);
SqlCommand cmd = new SqlCommand();
cmd.Connection = con;
cmd.CommandText = "SELECT top(10) Message,Subject from B_Topics order by TopicID desc";
con.Open();
SqlDataAdapter da = new SqlDataAdapter(cmd);
DataTable dt = new DataTable();
da.Fill(dt);
con.Close();
return dt;
}
#endregion
3) تابع ارسال ایمیل
#region ارسال ایمیل
public void send(string Body, string Subj, string send, string resv)
{
System.Net.Mail.MailMessage mail = new System.Net.Mail.MailMessage(send, resv);
mail.Body = Body;
mail.Subject = Subj;
mail.BodyEncoding = Encoding.UTF8;
mail.SubjectEncoding = Encoding.UTF8;
mail.IsBodyHtml = true;
SmtpClient c = new SmtpClient();
c.Host = "mail.a-velayat.com";
c.Send(mail);
}
#endregion
4) دکمه ارسال
protected void Button3_Click(object sender, EventArgs e)
{
DataTable dt = All_Topik();
DataTable dt2 = All_Email();
int ct = All_Topik().Rows.Count;
int ce = All_Email().Rows.Count;
for (int i = 0; i < ct; i++)
{
for (int b = 0; b < ce; b++)
{
send(dt.Rows[i]["Message"].ToString(), dt.Rows[i]["Subject"].ToString(), "fakhravary@yahoo.com", dt2.Rows[b]["email"].ToString());
}
}
}
تنظیم در کنفیگ
<system.net>
<mailSettings>
<smtp from="fakhr@a-velayat.com">
<network host="mail.a-velayat.com" password="tgkbvhhghj" userName="fakhr@a-velayat.com"/>
</smtp>
</mailSettings>
</system.net>
میتونید در یه UpdatePanel بزارید برای نمایش مدت زمان




پاسخ با نقل قول










