你的位置:首页 > ASP.net教程

[ASP.net教程]网页获取邮箱并实现qq群发功能


转载请标明出处!

代码:

using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;using System.Threading;using System.Net.Mail;using System.Net;using System.IO;using System.Text.RegularExpressions;namespace WindowsFormsApplication1{  public partial class Form1 : Form  {    public Form1()    {      InitializeComponent();    }    private void send(string sender, string pwd, string receiver, string title, string content)    {      SmtpClient client = new SmtpClient();//邮箱传输协议类      client.Host = "smtp.qq.com";//邮件服务器      client.Port = 25;//smtp主机上的端口号,默认是25.      client.DeliveryMethod = SmtpDeliveryMethod.Network;//邮件发送方式:通过网络发送到SMTP服务器      client.Credentials = new NetworkCredential(sender, pwd); //凭证,发件人登录邮箱的用户名和密码      MailAddress Sender = new MailAddress(sender); //发件人Email,在邮箱是显示      MailAddress Receiver = new MailAddress(receiver); //收件人Email,在邮箱是显示      MailMessage mailMessage = new MailMessage(sender, receiver); //创建一个电子邮件类      mailMessage.Subject =txttitle.Text;//标题      mailMessage.Body = txtcontent.Text;//内容可为html格式文本      mailMessage.SubjectEncoding = System.Text.Encoding.UTF8;//邮件主题编码      mailMessage.BodyEncoding = System.Text.Encoding.GetEncoding("GB2312");//邮件内容编码      mailMessage.IsBodyHtml = true;//邮件内容是否为html格式      mailMessage.Priority = MailPriority.High;//邮件的优先级,有三个值:高(在邮件主题前有一个红色感叹号,表示紧急),低(在邮件主题前有一个蓝色向下箭头,表示缓慢),正常(无显示).      //添加附件      if (file!=null)      {        Attachment ss = new Attachment(file); //file是所选择的文件的路径  Attachment电子邮件的附件        mailMessage.Attachments.Add(ss);      }      //Attachment ss = new Attachment(file); //file是所选择的文件的路径  Attachment电子邮件的附件      //mailMessage.Attachments.Add(ss);      try      {        client.Send(mailMessage);//发送邮件        mailMessage.Dispose();//释放资源       }      catch (Exception ex)      {        MessageBox.Show(ex.Message);      }    }    private void button1_Click(object sender, EventArgs e)    {      if (string.IsNullOrWhiteSpace(txtadd.Text))      {        MessageBox.Show("请添加收件人邮箱");      }      else      {        ListViewItem lt = new ListViewItem();        lt.Text = txtadd.Text.Trim();        listView1.Items.Add(lt);        txtadd.Text = "";      }    }    private void button2_Click(object sender, EventArgs e)    {      for (int i = 0; i < listView1.Items.Count; i++)      {        send(txtsend.Text, txtpwd.Text, listView1.Items[i].Text, txtadd.Text,txtcontent.Text);        Thread.Sleep(2000);      }      MessageBox.Show("发送成功");    }    private void button3_Click(object sender, EventArgs e)    {      this.Close();    }    private void Form1_Load(object sender, EventArgs e)    {      txtsend.Text = "434418081@qq.com";      txtpwd.UseSystemPasswordChar = true;       textbiaoti.Text = "http://1111.baidu.com/p/3860763762";    }    string file;    private void button4_Click(object sender, EventArgs e)    {      openFileDialog1.Filter = "Word文件.doc|*.doc|表格文件.xls|*.xls|所有文件|*.*"; //筛选文件类型      DialogResult dr = openFileDialog1.ShowDialog(); //创建一个枚举类型的变量dr来接收打开这个对话框      if (dr == DialogResult.OK) //如果点的是确定,才会执行下面的代码      {        file = openFileDialog1.FileName;//定义一个变量来接收路径        //创建文件流 来将路径转换        StreamReader path = new StreamReader(file, Encoding.Default); //Encoding.Default 编码方式        MessageBox.Show("添加附件成功");        path.Close();//用完流之后必须关闭      }    }    //---------------------------------------------------------------    public String GetWebContent(String url, Encoding encode)// encode 编码    {      url = textbiaoti.Text.Trim(); //需要获取源代码的网页       WebRequest request = WebRequest.Create(url); //WebRequest.Create方法,返回WebRequest的子类HttpWebRequest       WebResponse response = request.GetResponse(); //WebRequest.GetResponse方法,返回对 Internet 请求的响应       Stream resStream = response.GetResponseStream(); //WebResponse.GetResponseStream 方法,从 Internet 资源返回数据流。        Encoding enc = Encoding.GetEncoding("utf-8"); // 如果是乱码就改成 utf-8 / GB2312       StreamReader sr = new StreamReader(resStream, enc); //命名空间:System.IO。 StreamReader 类实现一个 TextReader (TextReader类,表示可读取连续字符系列的读取器),使其以一种特定的编码从字节流中读取字符。        txtshow.Text = sr.ReadToEnd(); //输出(HTML代码),ContentHtml为Multiline模式的TextBox控件       return txtshow.Text;    }    private void button5_Click(object sender, EventArgs e)    {      try      {        string x = GetWebContent(textbiaoti.Text, Encoding.UTF8);        txtshow.Text = "";        Regex r = new Regex(@"([a-z0-9_\.-]+)@([\da-z\.-]+)\.([a-z\.]{2,6})");//正则         System.Text.RegularExpressions.MatchCollection mc = r.Matches(x);        for (int i = 0; i < mc.Count; i++)        {          if (mc.Count == 0)          {            txtshow.Text = "未查询到符合邮箱地址的信息。";          }          else          {            txtshow.Text += mc[i].Value + "\r\n";          }        }      }      catch (Exception ex)      {        MessageBox.Show("获取网站信息错误:" + ex.Message);      }    }    private void button6_Click(object sender, EventArgs e)    {      ListViewItem lt = new ListViewItem();      lt.Text = txtshow.SelectedText;      listView1.Items.Add(lt);    }  }}