/// <summary> /// 获取指定用户组的用户并向其发送邮件 /// </summary> /// <param name="groupidlist">用户组</param> /// <param name="topnumber">获取前N条记录</param> /// <param name="start_uid">大于该uid的用户记录</param> /// <param name="subject">主题</param> /// <param name="body">内容</param> /// <returns></returns> public static int SendEmailByGroupidList(string groupidlist, int topnumber, ref int start_uid, string subject, string body) { DataTable dt = Data.Users.GetUserListByGroupid(groupidlist, topnumber, start_uid); foreach (DataRow dr in dt.Rows) { if (string.IsNullOrEmpty(dr["Email"].ToString().Trim())) { EmailMultiThread emt = new EmailMultiThread(dr["UserName"].ToString().Trim(), dr["Email"].ToString().Trim(), subject, body); new System.Threading.Thread(new System.Threading.ThreadStart(emt.Send)).Start(); } start_uid = TypeConverter.ObjectToInt(dr["uid"]); } return(dt.Rows.Count); }
/// <summary> /// 向指定用户发送email,每次最多能给100人发邮件 /// </summary> /// <param name="uidlist">用户ID列表</param> /// <param name="subject">主题</param> /// <param name="body">内容</param> /// <returns></returns> public static string SendMailToUsers(string uidlist, string subject, string body) { DataTable dt = DatabaseProvider.GetInstance().GetMailTable(uidlist); if (dt == null || dt.Rows.Count < 1) { return(""); } Thread[] lThreads = new Thread[dt.Rows.Count]; int count = 0; int percount = 5; StringBuilder result = new StringBuilder(); int successfulCount = 0; foreach (DataRow dr in dt.Rows) { if (successfulCount > 100) { break; } EmailMultiThread emt = new EmailMultiThread(dr["username"].ToString().Trim(), dr["email"].ToString().Trim(), subject, body); lThreads[count] = new Thread(new ThreadStart(emt.Send)); lThreads[count].Start(); if (count >= percount) { Thread.Sleep(5000); count = 0; } result.Append(dr["uid"].ToString()); result.Append(","); successfulCount++; count++; } return(result.ToString().TrimEnd(',')); }
/// <summary> /// 发送验证注册请求链接 /// </summary> public void SendRegisterVerifyLink() { string email = DNTRequest.GetString(config.Antispamregisteremail).Trim().ToLower(); ValidateEmail(email); if (IsErr()) return; InviteCodeInfo inviteCode = allowinvite ? ValidateInviteInfo() : null; if (IsErr()) return; VerifyRegisterInfo verifyInfo = Users.CreateVerifyRegisterInfo(email, allowinvite ? invitecode : string.Empty); if (verifyInfo != null) { string verifyLink = string.Format("{0}register.aspx?action=reg&verifycode={1}", Utils.GetRootUrl(forumpath), verifyInfo.VerifyCode); string verifyContent = string.Format(config.Verifyregisteremailtemp, verifyInfo.Email.Split('@')[0], verifyLink); EmailMultiThread emt = new EmailMultiThread(verifyInfo.Email.Split('@')[0], verifyInfo.Email, string.Format("{0} 的安全注册链接,欢迎注册!", config.Forumtitle), verifyContent); new System.Threading.Thread(new System.Threading.ThreadStart(emt.Send)).Start(); } SetUrl("index.aspx"); SetShowBackLink(false); SetMetaRefresh(2); AddMsgLine("请求已经发送,请查收邮箱"); }
private void BatchSendEmail_Click(object sender, EventArgs e) { #region ���������ʼ� if (this.CheckCookie()) { string groupidlist = Usergroups.GetSelectString(","); if ((groupidlist == "") && (usernamelist.Text.Trim() == "")) { base.RegisterStartupScript( "", "<script>alert('����Ҫ��������ʼ��û����ƻ�ѡȡ��ص��û���,����ʼ�������');</script>"); return; } int percount = 5; //ÿ���ټ�¼Ϊһ�εȴ� //�����û��б��ʼ� if (usernamelist.Text.Trim() != "") { //string strwhere = " WHERE [Email] Is Not null AND ("; //foreach (string username in usernamelist.Text.Split(',')) //{ // if (username.Trim() != "") // strwhere += " [username] like '%" + username.Trim() + "%' OR "; //} //strwhere = strwhere.Substring(0, strwhere.Length - 3) + ")"; //DataTable dt = DbHelper.ExecuteDataset("SELECT [username],[Email] From [" + BaseConfigs.GetTablePrefix + "users] " + strwhere).Tables[0]; DataTable dt = Users.GetEmailListByUserNameList(usernamelist.Text); if (dt.Rows.Count <= 0) { base.RegisterStartupScript("", "<script>alert('������Ľ����ʼ��û���δ�ܲ��ҵ�����û�,����ʼ�������');</script>"); return; } base.LoadRegisterStartupScript("PAGE", "window.location.href='global_usergroupsendemail.aspx';"); Thread[] lThreads = new Thread[dt.Rows.Count]; int count = 0; foreach (DataRow dr in dt.Rows) { EmailMultiThread emt = new EmailMultiThread(dr["UserName"].ToString(), dr["Email"].ToString(), subject.Text, body.Text); lThreads[count] = new Thread(new ThreadStart(emt.Send)); lThreads[count].Start(); if (count >= percount) { Thread.Sleep(5000); count = 0; } count++; //ThreadPool.QueueUserWorkItem(new WaitCallback(SendMail),string.Format("http://bbs.ent.tom.com/forum/view_thread.php?forumid=1&threadid={0}&backurl=http%3A%2F%2Fbbs.ent.tom.com%2Fforum%2Flist_thread.php%3Fforumid%3D1%26page%3D1%26sort%3D0",PageNumber.ToString())); } } //�����û����ʼ� if (groupidlist != "") { //DataTable dt = DbHelper.ExecuteDataset("SELECT [username],[Email] From [" + BaseConfigs.GetTablePrefix + "users] WHERE [Email] Is Not null AND [Email]<>'' AND [groupid] IN(" + groupidlist + ")").Tables[0]; DataTable dt = Users.GetEmailListByGroupidList(groupidlist); Thread[] lThreads = new Thread[dt.Rows.Count]; int count = 0; foreach (DataRow dr in dt.Rows) { EmailMultiThread emt = new EmailMultiThread(dr["UserName"].ToString(), dr["Email"].ToString(), subject.Text, body.Text); lThreads[count] = new Thread(new ThreadStart(emt.Send)); lThreads[count].Start(); if (count >= percount) { Thread.Sleep(5000); count = 0; } count++; //ThreadPool.QueueUserWorkItem(new WaitCallback(SendMail),string.Format("http://bbs.ent.tom.com/forum/view_thread.php?forumid=1&threadid={0}&backurl=http%3A%2F%2Fbbs.ent.tom.com%2Fforum%2Flist_thread.php%3Fforumid%3D1%26page%3D1%26sort%3D0",PageNumber.ToString())); } } base.RegisterStartupScript( "PAGE", "window.location.href='global_usergroupsendemail.aspx';"); } #endregion }
/// <summary> /// 向指定用户发送email,每次最多能给100人发邮件 /// </summary> /// <param name="uidlist">用户ID列表</param> /// <param name="subject">主题</param> /// <param name="body">内容</param> /// <returns></returns> public static string SendMailToUsers(string uidlist, string subject, string body) { DataTable dt = DatabaseProvider.GetInstance().GetMailTable(uidlist); if (dt == null || dt.Rows.Count < 1) return ""; Thread[] lThreads = new Thread[dt.Rows.Count]; int count = 0; int percount = 5; StringBuilder result = new StringBuilder(); int successfulCount = 0; foreach (DataRow dr in dt.Rows) { if (successfulCount > 100) break; EmailMultiThread emt = new EmailMultiThread(dr["username"].ToString().Trim(), dr["email"].ToString().Trim(), subject, body); lThreads[count] = new Thread(new ThreadStart(emt.Send)); lThreads[count].Start(); if (count >= percount) { Thread.Sleep(5000); count = 0; } result.Append(dr["uid"].ToString()); result.Append(","); successfulCount++; count++; } return result.ToString().TrimEnd(','); }
/// <summary> /// 获取指定用户组的用户并向其发送邮件 /// </summary> /// <param name="groupidlist">用户组</param> /// <param name="topnumber">获取前N条记录</param> /// <param name="start_uid">大于该uid的用户记录</param> /// <param name="subject">主题</param> /// <param name="body">内容</param> /// <returns></returns> public static int SendEmailByGroupidList(string groupidlist, int topnumber, ref int start_uid, string subject, string body) { DataTable dt = Data.Users.GetUserListByGroupid(groupidlist, topnumber, start_uid); foreach (DataRow dr in dt.Rows) { if (string.IsNullOrEmpty(dr["Email"].ToString().Trim())) { EmailMultiThread emt = new EmailMultiThread(dr["UserName"].ToString().Trim(), dr["Email"].ToString().Trim(), subject, body); new System.Threading.Thread(new System.Threading.ThreadStart(emt.Send)).Start(); } start_uid = TypeConverter.ObjectToInt(dr["uid"]); } return dt.Rows.Count; }