nany123

博客园 首页 新随笔 联系 订阅 管理

这一段时间,QQ邮箱每天都收到一堆垃圾邮件,发件人肯定是通过软件进行群发的。但是群发的邮件一般都被TX标记垃圾邮件。

我在想:

1.别人是怎么想知道我这个QQ邮箱的?是随机发送还是通过TX服务器数据库验证取得的?

2.如何群发QQ邮件,不别TX标识为垃圾邮件呢?

 

邮件发送一般都是基于SMTP协议。对于第一个问题,还好解决,第二问题好像比较复杂,暂且放一放。

今天首先简单解决实现第一个问题。

如果是随机发送,简单但发送的邮件非常盲目;如果是通TX数据库的,TX好像没有公开API,如何验证?我想了半天,估计目前大部分QQ邮件群发工具应该都是随机生成QQ号,然后组成QQ邮箱,然后通过配置SMTP发送邮件。

那么程序做起来非常简单,没有任何技术含量。

 这里我暂时把我想到的贴在这里,仅供新手参考,大虾们就不要看了。

 

程序主要代码:

View Code
   /// <summary>
         /// 发送邮件按钮
         /// </summary>
         /// <param name="sender"></param>
         /// <param name="e"></param>
         private void btnSend_Click(object sender, EventArgs e)
         {
             int start = 0;
             int end = 0;
             int count = 0;
             string port = txtPort.Text;
             string smtp = txtSmtp.Text;
             string mailForm = txtSend.Text;
             string mailPwd = txtPwd.Text;
             string title = txtTitle.Text;
             string content = rtxtContent.Text;
             if (string.IsNullOrEmpty(txtCount.Text))
             {
                 MessageBox.Show("目标邮箱个数不能为空", "系统提示");
                 txtCount.Focus();
                 return;
             }
             if (string.IsNullOrEmpty(txtStart.Text))
             {
                 MessageBox.Show("起始号码不能为空", "系统提示");
                 txtStart.Focus();
                 return;
             }
             if (string.IsNullOrEmpty(txtEnd.Text))
             {
                 MessageBox.Show("截止号码不能为空", "系统提示");
                 txtEnd.Focus();
                 return;
             }
             if (string.IsNullOrEmpty(port))
             {
                 MessageBox.Show("端口号不能为空", "系统提示");
                 txtPort.Focus();
                 return;
             }
             if (string.IsNullOrEmpty(smtp))
             {
                 MessageBox.Show("SMTP不能为空", "系统提示");
                 txtSmtp.Focus();
                 return;
             }
             if (string.IsNullOrEmpty(mailForm))
             {
                 MessageBox.Show("发件人邮箱不能为空", "系统提示");
                 txtSend.Focus();
                 return;
             }
             if (string.IsNullOrEmpty(mailPwd))
             {
                 MessageBox.Show("发件人邮箱密码不能为空", "系统提示");
                 txtPwd.Focus();
                 return;
             }
             if (string.IsNullOrEmpty(title))
             {
                 MessageBox.Show("邮件标题不能为空", "系统提示");
                 txtTitle.Focus();
                 return;
             }
 
             if (!DY.Network.Email.IsEmail(mailForm))
             {
                 MessageBox.Show("发件人邮箱格式不正确", "系统提示");
                 txtSend.Focus();
                 return;
             }
             Cursor.Current = Cursors.WaitCursor;
             btnSend.Enabled = false;
             start = Convert.ToInt32(txtStart.Text);
             end = Convert.ToInt32(txtEnd.Text);
             count = Convert.ToInt32(txtCount.Text);
             ArrayList arry = new ArrayList();
             Random ran = new Random();
             string temp = string.Empty;
             for (int i = 0; i < count; i++)
             {
                 temp = ran.Next(start, end).ToString() + "@qq.com";
                 arry.Add(temp);
             }
             arry.TrimToSize();
             string[] retArry = new string[] { "chyoki@126.com" };
             retArry = (string[])(arry.ToArray(typeof(string)));
             try
             {
                 DY.Network.Email email = new DY.Network.Email();
                 email.Sender = title;
                 email.From = mailForm;
                 email.Pwd = mailPwd;
                 email.Port = Convert.ToInt32(port);
                 email.IsSSL = chrbSsl.Checked;
                 email.SMTP = smtp;
                 email.Send(retArry, title, content);
                 MessageBox.Show("邮件群发成功", "系统提示");
             }
             catch (Exception ex)
             {
                 MessageBox.Show(ex.Message.ToString(), "系统提示");
             }
             btnSend.Enabled = true;
             Cursor.Current = Cursors.Default;
         }

posted on 2013-04-02 23:20  nany123  阅读(277)  评论(0)    收藏  举报