Example #1
0
        /// <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);
        }
Example #2
0
        /// <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(','));
        }
Example #3
0
        /// <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
        }
Example #5
0
        /// <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(',');
        }
Example #6
0
 /// <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;
 }