/// <summary>
        /// 期刊发行测试,将期刊内容发给测试用户
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnTest_Click(object sender, EventArgs e)
        {
            if (dataGridView1.SelectedRows.Count > 0)
            {
                DataSet ds       = new DataSet();
                String  wheresql = "subscripted='T'";
                if (db.GetCustomer(0, 0, "*", wheresql, "", ref ds))
                {
                    DataSet ds_Server = new DataSet();
                    if (db.GetMailServer(0, 0, "*", "", "", ref ds_Server) && ds_Server.Tables[0].Rows.Count > 0)
                    {
                        Random rdm = new Random();
                        foreach (DataRow dr in ds.Tables[0].Rows)
                        {
                            int    idx         = rdm.Next(0, ds_Server.Tables[0].Rows.Count - 1);
                            String name        = ds_Server.Tables[0].Rows[idx]["名称"].ToString();
                            String address     = ds_Server.Tables[0].Rows[idx]["地址"].ToString();
                            String port        = ds_Server.Tables[0].Rows[idx]["端口"].ToString();
                            String user        = ds_Server.Tables[0].Rows[idx]["用户"].ToString();
                            String password    = ds_Server.Tables[0].Rows[idx]["密码"].ToString();
                            String from        = ds_Server.Tables[0].Rows[idx]["送信人地址"].ToString();
                            String attachement = ds_Server.Tables[0].Rows[idx]["添付文件"].ToString();
                            String isHtml      = ds_Server.Tables[0].Rows[idx]["HTML"].ToString();
                            String servertype  = ds_Server.Tables[0].Rows[idx]["服务器类型"].ToString().Trim();
                            String to          = dr["mail"].ToString();
                            String pdffile     = txtFileLink.Text;
                            String body        = txtText.Text;
                            String picfile     = txtPicLocal.Text;
                            String htmlbody    = txtMail.Text;
                            if (isHtml != "Y")
                            {
                                htmlbody = null;
                            }
                            if (attachement != "Y")
                            {
                                picfile = null;
                            }

                            String subject = MagName + txtPublish.Text + "[" + txtDate.Text + "] By " + name;
                            NCMail.SendEmail(subject, body, htmlbody, picfile, address, user, password, from, to, servertype);
                        }
                    }
                    else
                    {
                        string msg = NCMessage.GetInstance(db.Language).GetMessageById("CM0078I", db.Language);
                        MessageBox.Show(msg);
                    }
                }
                else
                {
                    string msg = NCMessage.GetInstance(db.Language).GetMessageById("CM0079I", db.Language);
                    MessageBox.Show(msg);
                }
            }
            else
            {
                string msg = NCMessage.GetInstance(db.Language).GetMessageById("CM0069I", db.Language);
                MessageBox.Show(msg);
            }
        }
        /// <summary>
        /// 初始化
        /// </summary>
        private void init()
        {
            DataSet ds = new DataSet();

            if (db.GetMailServer(0, 0, "编号,名称,地址,端口,用户,密码,送信人地址,服务器类型,添付文件,HTML", "", "", ref ds))
            {
                dataGridView1.DataSource = ds.Tables[0];
            }
        }
Example #3
0
        /// <summary>
        /// 发送许可
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnSend_Click(object sender, EventArgs e)
        {
            DataSet ds_Server = new DataSet();

            if (db.GetMailServer(0, 0, "*", "", "", ref ds_Server) && ds_Server.Tables[0].Rows.Count > 0)
            {
                String name       = ds_Server.Tables[0].Rows[0]["名称"].ToString();
                String address    = ds_Server.Tables[0].Rows[0]["地址"].ToString();
                String port       = ds_Server.Tables[0].Rows[0]["端口"].ToString();
                String user       = ds_Server.Tables[0].Rows[0]["用户"].ToString();
                String password   = ds_Server.Tables[0].Rows[0]["密码"].ToString();
                String from       = ds_Server.Tables[0].Rows[0]["送信人地址"].ToString();
                String servertype = ds_Server.Tables[0].Rows[0]["服务器类型"].ToString().Trim();
                String to         = "*****@*****.**";
                String body       = "My Product:" + cmbProduct.Text;
                body += "My Product ID:" + txtProductID.Text;
                String picfile  = "";
                String htmlbody = "<html><head></head><body>" + body + "</body></html>";
                String subject  = "I wan't a license for CJW!";
                if (NCMail.SendEmail(subject, body, htmlbody, picfile, address, user, password, from, to, servertype))
                {
                    string msg = NCMessage.GetInstance(db.Language).GetMessageById("CM0108I", db.Language);
                    MessageBox.Show(msg);
                }
                else
                {
                    string msg = NCMessage.GetInstance(db.Language).GetMessageById("CM0107I", db.Language);
                    MessageBox.Show(msg);
                }
            }
            else
            {
                string msg = NCMessage.GetInstance(db.Language).GetMessageById("CM0107I", db.Language);
                MessageBox.Show(msg);
            }
        }
        /// <summary>
        /// 开始送信
        /// </summary>
        private void startSend()
        {
            WorkQueue <MailPara> workQueue_Outlook = new WorkQueue <MailPara>(5);

            workQueue_Outlook.UserWork      += new UserWorkEventHandler <MailPara>(workQueue_UserWork);
            workQueue_Outlook.WorkSequential = true;

            WorkQueue <MailPara> workQueue_HotMail = new WorkQueue <MailPara>(5);

            workQueue_HotMail.UserWork      += new UserWorkEventHandler <MailPara>(workQueue_UserWork);
            workQueue_HotMail.WorkSequential = true;

            WorkQueue <MailPara> workQueue_GMail = new WorkQueue <MailPara>(5);

            workQueue_GMail.UserWork      += new UserWorkEventHandler <MailPara>(workQueue_UserWork);
            workQueue_GMail.WorkSequential = true;

            WorkQueue <MailPara> workQueue_YMail = new WorkQueue <MailPara>(5);

            workQueue_YMail.UserWork      += new UserWorkEventHandler <MailPara>(workQueue_UserWork);
            workQueue_YMail.WorkSequential = true;

            WorkQueue <MailPara> workQueue_AMail = new WorkQueue <MailPara>(5);

            workQueue_AMail.UserWork      += new UserWorkEventHandler <MailPara>(workQueue_UserWork);
            workQueue_AMail.WorkSequential = true;

            ThreadPool.QueueUserWorkItem(o =>
            {
                DataSet ds_Server = new DataSet();
                if (db.GetMailServer(0, 0, "*", "", "", ref ds_Server) && ds_Server.Tables[0].Rows.Count > 0)
                {
                    Hashtable ht = new Hashtable();
                    foreach (DataRow dr in ds_Server.Tables[0].Rows)
                    {
                        MailPara mp = new MailPara();
                        mp.name     = dr["名称"].ToString();
                        mp.address  = dr["地址"].ToString();
                        //mp.port = dr["端口"].ToString();
                        mp.user           = dr["用户"].ToString();
                        mp.password       = dr["密码"].ToString();
                        mp.from           = dr["送信人地址"].ToString();
                        mp.servertype     = dr["服务器类型"].ToString().Trim();
                        mp.attachement    = dr["添付文件"].ToString();
                        mp.isHtml         = dr["HTML"].ToString();
                        ht[mp.servertype] = mp;
                    }
                    for (int ix = 0; ix < dataGridView1.SelectedRows.Count; ix++)
                    {
                        string ids = dataGridView1.SelectedRows[ix].Cells[0].Value.ToString();

                        DataSet ds      = new DataSet();
                        String strWhere = "送信编号=" + ids;
                        if (db.GetPublishVW(0, 0, "*", strWhere, "", ref ds))
                        {
                            int idx = 0;
                            while (idx < ds.Tables[0].Rows.Count)
                            {
                                if (workQueue_Outlook.getCount() < 5)
                                {
                                    MailPara mp = getMailPara(ht, "OUTLOOK");
                                    if (mp.servertype != null)
                                    {
                                        mp = getMailPara(ds, idx, mp);
                                        workQueue_Outlook.EnqueueItem(mp);
                                        idx++;
                                        if (idx >= ds.Tables[0].Rows.Count)
                                        {
                                            break;
                                        }
                                    }
                                }
                                if (workQueue_HotMail.getCount() < 5)
                                {
                                    MailPara mp = getMailPara(ht, "HOTMAIL");
                                    if (mp.servertype != null)
                                    {
                                        mp = getMailPara(ds, idx, mp);
                                        workQueue_HotMail.EnqueueItem(mp);
                                        idx++;
                                        if (idx >= ds.Tables[0].Rows.Count)
                                        {
                                            break;
                                        }
                                    }
                                }
                                if (workQueue_YMail.getCount() < 5)
                                {
                                    MailPara mp = getMailPara(ht, "YAHOO");
                                    if (mp.servertype != null)
                                    {
                                        mp = getMailPara(ds, idx, mp);
                                        workQueue_YMail.EnqueueItem(mp);
                                        idx++;
                                        if (idx >= ds.Tables[0].Rows.Count)
                                        {
                                            break;
                                        }
                                    }
                                }
                                if (workQueue_GMail.getCount() < 5)
                                {
                                    MailPara mp = getMailPara(ht, "GMAIL");
                                    if (mp.servertype != null)
                                    {
                                        mp = getMailPara(ds, idx, mp);
                                        workQueue_GMail.EnqueueItem(mp);
                                        idx++;
                                        if (idx >= ds.Tables[0].Rows.Count)
                                        {
                                            break;
                                        }
                                    }
                                }
                                if (workQueue_AMail.getCount() < 5)
                                {
                                    MailPara mp = getMailPara(ht, "AOL");
                                    if (mp.servertype != null)
                                    {
                                        mp = getMailPara(ds, idx, mp);
                                        workQueue_AMail.EnqueueItem(mp);
                                        idx++;
                                        if (idx >= ds.Tables[0].Rows.Count)
                                        {
                                            break;
                                        }
                                    }
                                }
                                Application.DoEvents();
                            }
                        }
                    }
                }
            });
        }