实例介绍
【实例简介】
【实例截图】
【实例截图】
【核心代码】
using System; using System.Drawing; using System.Collections; using System.ComponentModel; using System.Windows.Forms; using System.Data; using System.Net; using System.Net.Sockets; using System.IO; using System.Text; namespace Notify { /// <summary> /// Form1 的摘要说明。 /// </summary> public class Form1 : System.Windows.Forms.Form { private System.Windows.Forms.NotifyIcon notifyIcon1; private System.Windows.Forms.ContextMenu contextMenu1; private System.Windows.Forms.Button button2; private System.Windows.Forms.Button button1; private System.Windows.Forms.Timer timer1; private System.Windows.Forms.GroupBox groupBox1; private System.Windows.Forms.Label label6; private System.Windows.Forms.TextBox textBox3; private System.Windows.Forms.Label label3; private System.Windows.Forms.TextBox textBox4; private System.Windows.Forms.Label label4; private System.Windows.Forms.TextBox textBox2; private System.Windows.Forms.Label label2; private System.Windows.Forms.TextBox textBox1; private System.Windows.Forms.Label label1; private System.Windows.Forms.MenuItem menuItem1; private System.Windows.Forms.MenuItem menuItem2; private System.Windows.Forms.MenuItem menuItem3; private System.Windows.Forms.MenuItem menuItem4; private System.Windows.Forms.MenuItem menuItem5; private System.Windows.Forms.TextBox textBox5; private System.ComponentModel.IContainer components; public Form1() { // // Windows 窗体设计器支持所必需的 // InitializeComponent(); // // TODO: 在 InitializeComponent 调用后添加任何构造函数代码 // } /// <summary> /// 清理所有正在使用的资源。 /// </summary> protected override void Dispose( bool disposing ) { if( disposing ) { if (components != null) { components.Dispose(); } } base.Dispose( disposing ); } #region Windows 窗体设计器生成的代码 /// <summary> /// 设计器支持所需的方法 - 不要使用代码编辑器修改 /// 此方法的内容。 /// </summary> private void InitializeComponent() { this.components = new System.ComponentModel.Container(); System.Resources.ResourceManager resources = new System.Resources.ResourceManager(typeof(Form1)); this.notifyIcon1 = new System.Windows.Forms.NotifyIcon(this.components); this.contextMenu1 = new System.Windows.Forms.ContextMenu(); this.menuItem1 = new System.Windows.Forms.MenuItem(); this.menuItem2 = new System.Windows.Forms.MenuItem(); this.menuItem3 = new System.Windows.Forms.MenuItem(); this.menuItem4 = new System.Windows.Forms.MenuItem(); this.menuItem5 = new System.Windows.Forms.MenuItem(); this.button2 = new System.Windows.Forms.Button(); this.button1 = new System.Windows.Forms.Button(); this.timer1 = new System.Windows.Forms.Timer(this.components); this.groupBox1 = new System.Windows.Forms.GroupBox(); this.textBox5 = new System.Windows.Forms.TextBox(); this.label6 = new System.Windows.Forms.Label(); this.textBox3 = new System.Windows.Forms.TextBox(); this.label3 = new System.Windows.Forms.Label(); this.textBox4 = new System.Windows.Forms.TextBox(); this.label4 = new System.Windows.Forms.Label(); this.textBox2 = new System.Windows.Forms.TextBox(); this.label2 = new System.Windows.Forms.Label(); this.textBox1 = new System.Windows.Forms.TextBox(); this.label1 = new System.Windows.Forms.Label(); this.groupBox1.SuspendLayout(); this.SuspendLayout(); // // notifyIcon1 // this.notifyIcon1.ContextMenu = this.contextMenu1; this.notifyIcon1.Icon = ((System.Drawing.Icon)(resources.GetObject("notifyIcon1.Icon"))); this.notifyIcon1.Text = "邮件检查程序"; this.notifyIcon1.Visible = true; // // contextMenu1 // this.contextMenu1.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] { this.menuItem1, this.menuItem2, this.menuItem3, this.menuItem4, this.menuItem5}); // // menuItem1 // this.menuItem1.Index = 0; this.menuItem1.Text = "设置(&S)"; this.menuItem1.Click = new System.EventHandler(this.menuItem1_Click); // // menuItem2 // this.menuItem2.Index = 1; this.menuItem2.Text = "-"; // // menuItem3 // this.menuItem3.Index = 2; this.menuItem3.Text = "检查(&C)"; this.menuItem3.Click = new System.EventHandler(this.menuItem3_Click); // // menuItem4 // this.menuItem4.Index = 3; this.menuItem4.Text = "-"; // // menuItem5 // this.menuItem5.Index = 4; this.menuItem5.Text = "退出(&E)"; this.menuItem5.Click = new System.EventHandler(this.menuItem5_Click); // // button2 // this.button2.Location = new System.Drawing.Point(200, 152); this.button2.Name = "button2"; this.button2.TabIndex = 5; this.button2.Text = "检查"; this.button2.Click = new System.EventHandler(this.button2_Click); // // button1 // this.button1.Location = new System.Drawing.Point(56, 152); this.button1.Name = "button1"; this.button1.TabIndex = 4; this.button1.Text = "隐藏"; this.button1.Click = new System.EventHandler(this.button1_Click); // // timer1 // this.timer1.Interval = 30000; this.timer1.Tick = new System.EventHandler(this.timer1_Tick); // // groupBox1 // this.groupBox1.Controls.Add(this.textBox5); this.groupBox1.Controls.Add(this.label6); this.groupBox1.Controls.Add(this.textBox3); this.groupBox1.Controls.Add(this.label3); this.groupBox1.Controls.Add(this.textBox4); this.groupBox1.Controls.Add(this.label4); this.groupBox1.Controls.Add(this.textBox2); this.groupBox1.Controls.Add(this.label2); this.groupBox1.Controls.Add(this.textBox1); this.groupBox1.Controls.Add(this.label1); this.groupBox1.Location = new System.Drawing.Point(8, 8); this.groupBox1.Name = "groupBox1"; this.groupBox1.Size = new System.Drawing.Size(328, 136); this.groupBox1.TabIndex = 3; this.groupBox1.TabStop = false; this.groupBox1.Text = "邮件检查设置"; // // textBox5 // this.textBox5.Location = new System.Drawing.Point(120, 112); this.textBox5.Name = "textBox5"; this.textBox5.Size = new System.Drawing.Size(192, 21); this.textBox5.TabIndex = 13; this.textBox5.Text = ""; // // label6 // this.label6.Location = new System.Drawing.Point(16, 112); this.label6.Name = "label6"; this.label6.Size = new System.Drawing.Size(96, 16); this.label6.TabIndex = 12; this.label6.Text = "间隔时间(ms):"; // // textBox3 // this.textBox3.BackColor = System.Drawing.SystemColors.ActiveCaptionText; this.textBox3.Location = new System.Drawing.Point(120, 64); this.textBox3.Name = "textBox3"; this.textBox3.Size = new System.Drawing.Size(192, 21); this.textBox3.TabIndex = 11; this.textBox3.Text = ""; // // label3 // this.label3.Location = new System.Drawing.Point(16, 92); this.label3.Name = "label3"; this.label3.Size = new System.Drawing.Size(88, 16); this.label3.TabIndex = 10; this.label3.Text = "密码:"; // // textBox4 // this.textBox4.Location = new System.Drawing.Point(120, 88); this.textBox4.Name = "textBox4"; this.textBox4.PasswordChar = '*'; this.textBox4.Size = new System.Drawing.Size(192, 21); this.textBox4.TabIndex = 9; this.textBox4.Text = ""; // // label4 // this.label4.Location = new System.Drawing.Point(16, 68); this.label4.Name = "label4"; this.label4.Size = new System.Drawing.Size(112, 16); this.label4.TabIndex = 8; this.label4.Text = "用户名:"; // // textBox2 // this.textBox2.BackColor = System.Drawing.SystemColors.ActiveCaptionText; this.textBox2.Location = new System.Drawing.Point(120, 40); this.textBox2.Name = "textBox2"; this.textBox2.Size = new System.Drawing.Size(192, 21); this.textBox2.TabIndex = 7; this.textBox2.Text = ""; // // label2 // this.label2.Location = new System.Drawing.Point(16, 48); this.label2.Name = "label2"; this.label2.Size = new System.Drawing.Size(88, 16); this.label2.TabIndex = 6; this.label2.Text = "通信端口号:"; // // textBox1 // this.textBox1.Location = new System.Drawing.Point(120, 16); this.textBox1.Name = "textBox1"; this.textBox1.Size = new System.Drawing.Size(192, 21); this.textBox1.TabIndex = 5; this.textBox1.Text = ""; // // label1 // this.label1.Location = new System.Drawing.Point(16, 24); this.label1.Name = "label1"; this.label1.Size = new System.Drawing.Size(112, 16); this.label1.TabIndex = 4; this.label1.Text = "邮件服务器地址:"; // // Form1 // this.AutoScaleBaseSize = new System.Drawing.Size(6, 14); this.ClientSize = new System.Drawing.Size(344, 182); this.Controls.Add(this.button2); this.Controls.Add(this.button1); this.Controls.Add(this.groupBox1); this.MaximizeBox = false; this.Name = "Form1"; this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; this.Text = "演示检查邮件"; this.WindowState = System.Windows.Forms.FormWindowState.Minimized; this.Load = new System.EventHandler(this.Form1_Load); this.groupBox1.ResumeLayout(false); this.ResumeLayout(false); } #endregion /// <summary> /// 应用程序的主入口点。 /// </summary> [STAThread] static void Main() { Application.Run(new Form1()); } private void WriteToNetStream(ref NetworkStream MyStream, string MyCommand) {//处理邮件命令 string MySendCommand = MyCommand "\r\n"; Byte[] SendArray = Encoding.ASCII.GetBytes(MySendCommand.ToCharArray()); MyStream.Write(SendArray, 0, SendArray.Length); } private String ReadFromNetStream(ref NetworkStream MyStream) {//读取邮件信息 StringBuilder MyReceived= new StringBuilder(); StreamReader MyStreamReader= new StreamReader(MyStream); String MyLine = MyStreamReader.ReadLine(); while(MyLine==null || MyLine.Length==0) { MyLine = MyStreamReader.ReadLine(); } MyReceived.Append(MyLine); if(MyStreamReader.Peek()!=-1) { while ((MyLine=MyStreamReader.ReadLine())!=null) { MyReceived.Append(MyLine); } } return MyReceived.ToString(); } //检查流中是否有错误 private void checkForError(String MyMessage) { if (MyMessage.IndexOf(" OK") == -1) throw new Exception("ERROR - . Recieved: " MyMessage); } private void button1_Click(object sender, System.EventArgs e) {//隐藏程序界面 this.WindowState=FormWindowState.Minimized; this.Hide(); } private void menuItem5_Click(object sender, System.EventArgs e) {//退出 this.Close(); } private void menuItem1_Click(object sender, System.EventArgs e) {//设置 this.Show(); this.WindowState=FormWindowState.Normal; } private void button2_Click(object sender, System.EventArgs e) {//检查邮件 if(this.textBox1.Text==""|this.textBox2.Text==""| this.textBox3.Text==""|this.textBox4.Text==""| this.textBox5.Text=="") { MessageBox.Show("请设置邮件服务器信息!","信息提示",MessageBoxButtons.OK,MessageBoxIcon.Information); return; } TcpClient MyClient = new TcpClient(); try { MyClient.Connect(this.textBox1.Text,Int32.Parse(this.textBox2.Text)); } catch(Exception Err) { MessageBox.Show("不能连接POP3服务器 " Err.Message,"信息提示",MessageBoxButtons.OK,MessageBoxIcon.Information); } try { NetworkStream MyStream = MyClient.GetStream(); if(MyStream == null) { throw new Exception("没有邮件信息"); } string MailMessage=ReadFromNetStream(ref MyStream); checkForError(MailMessage); //发送用户信息 WriteToNetStream(ref MyStream, "USER " this.textBox3.Text); MailMessage=ReadFromNetStream(ref MyStream); checkForError(MailMessage); //发送密码信息 WriteToNetStream(ref MyStream, "PASS " this.textBox4.Text); MailMessage=ReadFromNetStream(ref MyStream); checkForError(MailMessage); WriteToNetStream(ref MyStream, "STAT"); string MyMessage=ReadFromNetStream(ref MyStream); checkForError(MyMessage); ///处理邮件信息 string[] TotalStat=MyMessage.Split(new char[] {' '}); int count=Int32.Parse(TotalStat[1]); int totalSize=Int32.Parse(TotalStat[2]); this.notifyIcon1.Text="您有" count.ToString() "封邮件"; MyStream.Close(); MyClient.Close(); this.timer1.Interval=Int32.Parse(this.textBox5.Text); } catch(Exception Err) { MessageBox.Show("接收邮件信息错误!" Err.Message,"信息提示",MessageBoxButtons.OK,MessageBoxIcon.Information); } } private void menuItem3_Click(object sender, System.EventArgs e) {//检查 button2_Click(null,null); } private void timer1_Tick(object sender, System.EventArgs e) {//检查邮件信息 button2_Click(null,null); } private void Form1_Load(object sender, System.EventArgs e) {//隐藏程序界面 this.Visible=false; } } }
好例子网口号:伸出你的我的手 — 分享!
小贴士
感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。
- 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
- 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
- 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
- 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。
关于好例子网
本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明
网友评论
我要评论