柚子快报邀请码778899分享:群发邮件功能的完善

http://yzkb.51969.com/

邮件有需要加密的地方,提供一个加密方法类

public static class DesSet{    ///

    /// 加密方法 Key 必须为8位    ///     ///     ///     ///     public static string Encrypt(string pToEncrypt, string sKey)    {        DESCryptoServiceProvider des = new DESCryptoServiceProvider();

        byte[] inputByteArray = Encoding.Default.GetBytes(pToEncrypt);        des.Key = ASCIIEncoding.ASCII.GetBytes(sKey);        des.IV = ASCIIEncoding.ASCII.GetBytes(sKey);        MemoryStream ms = new MemoryStream();        CryptoStream cs = new CryptoStream(ms, des.CreateEncryptor(), CryptoStreamMode.Write);        cs.Write(inputByteArray, 0, inputByteArray.Length);        cs.FlushFinalBlock();        StringBuilder ret = new StringBuilder();        foreach (byte b in ms.ToArray())        {            ret.AppendFormat("{0:X2}", b);        }        ret.ToString();        return ret.ToString();    }    ///

    /// 解密方法 Key 必须为8位    ///     ///     ///     ///     public static string Decrypt(string pToDecrypt, string sKey)    {        try        {            DESCryptoServiceProvider des = new DESCryptoServiceProvider();            byte[] inputByteArray = new byte[pToDecrypt.Length / 2];            for (int x = 0; x < pToDecrypt.Length / 2; x++)            {                int i = (Convert.ToInt32(pToDecrypt.Substring(x * 2, 2), 16));                inputByteArray[x] = (byte)i;            }            des.Key = ASCIIEncoding.ASCII.GetBytes(sKey);            des.IV = ASCIIEncoding.ASCII.GetBytes(sKey);            MemoryStream ms = new MemoryStream();            CryptoStream cs = new CryptoStream(ms, des.CreateDecryptor(), CryptoStreamMode.Write);            cs.Write(inputByteArray, 0, inputByteArray.Length);            //如果数据为空字符串会报不正确的数据            cs.FlushFinalBlock();            StringBuilder ret = new StringBuilder();            return System.Text.Encoding.Default.GetString(ms.ToArray());        }        catch        {            return null;        }    }    ///     /// 解密方法 Key 必须为8位    ///     ///     ///     ///     public static string qxDecrypt(string pToDecrypt, string sKey)    {        DESCryptoServiceProvider des = new DESCryptoServiceProvider();        byte[] inputByteArray = new byte[pToDecrypt.Length / 2];        for (int x = 0; x < pToDecrypt.Length / 2; x++)        {            int i = (Convert.ToInt32(pToDecrypt.Substring(x * 2, 2), 16));            inputByteArray[x] = (byte)i;        }        des.Key = ASCIIEncoding.ASCII.GetBytes(sKey);        des.IV = ASCIIEncoding.ASCII.GetBytes(sKey);        MemoryStream ms = new MemoryStream();        CryptoStream cs = new CryptoStream(ms, des.CreateDecryptor(), CryptoStreamMode.Write);        cs.Write(inputByteArray, 0, inputByteArray.Length);        //如果数据为空字符串会报不正确的数据        cs.FlushFinalBlock();        StringBuilder ret = new StringBuilder();        return System.Text.Encoding.Default.GetString(ms.ToArray());    }}

********************************************************************************

群发上千封邮件,发送太快,会出现可能被服务器拒绝的情况。使用线程控制发送间隔

    protected void btn_sendMail_Click(object sender, EventArgs e)    {        ThreadStart mailThread = new ThreadStart(SendMail);        Thread sendMail = new Thread(mailThread);        sendMail.Name = "thread send mail";        sendMail.Start();    }

    private void SendMail()    {        Mails mySendMail = new Mails();        for (int i = 0; i < lists.Count; i++)        {            mySendMail = new Mails("nihao",lists[i].ToString(), lists[i]);            mySendMail.SendMail();            if ((i + 1) % 50 == 0)            {                Thread.Sleep(60000);//歇一分钟再发吧。。            }        }    }

*****************************************************************

Mails类

    public void SendMail()    {        lock (this)        {            Thread.Sleep(3000);            //创建smtpclient对象            System.Net.Mail.SmtpClient client = new SmtpClient();            client.Host = smtp;            client.UseDefaultCredentials = false;            client.Credentials = new System.Net.NetworkCredential(from,pwd);            client.DeliveryMethod = SmtpDeliveryMethod.Network;

            //创建mailMessage对象             System.Net.Mail.MailMessage message = new MailMessage(from,to);            message.Subject = subject;            message.SubjectEncoding = Encoding.UTF8;            message.Body = body;            message.BodyEncoding = System.Text.Encoding.UTF8;            message.IsBodyHtml = true;

            try            {                client.Send(message);                StreamWriter sw = new StreamWriter("c:/message.txt", true);                sw.Write(this.to+"  发送成功" + "\r\n");                sw.Close();            }            catch (Exception ex)            {                StreamWriter sw = new StreamWriter("c:/message.txt", true);                sw.Write(this.to+"  发送失败。失败原因:"+ex.Message + "\r\n");                sw.Close();            }        }    }

柚子快报邀请码778899分享:群发邮件功能的完善

http://yzkb.51969.com/

相关链接

评论可见,请评论后查看内容,谢谢!!!评论后请刷新页面。