⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mainform.cs

📁 网络编程案例
💻 CS
📖 第 1 页 / 共 5 页
字号:
			this.Name = "frmMain";
			this.Text = "我的Outlook";
			this.Closing += new System.ComponentModel.CancelEventHandler(this.frmMain_Closing);
			this.Load += new System.EventHandler(this.frmMain_Load);
			this.pnlClient.ResumeLayout(false);
			this.pnlLeft.ResumeLayout(false);
			this.pnlPreview.ResumeLayout(false);
			this.ResumeLayout(false);

		}
		#endregion

		/// <summary>
		/// 应用程序的主入口点。
		/// </summary>
		[STAThread]
		static void Main() 
		{
			Application.Run(new frmMain());
		}


		private void frmMain_Load(object sender, System.EventArgs e)
		{
			//打开连接
			if (oledbcntMyOutLookDB.State==System.Data.ConnectionState.Closed)
			{
				oledbcntMyOutLookDB.Open();
			}
			ms = new MailStore(this.oledbcntMyOutLookDB, this.oledbadpMails);
			loadAccounts();
			loadMails();	
			System.Windows.Forms.TreeViewEventArgs ee = new TreeViewEventArgs(
				this.tvBoxesList.Nodes[0]);
			this.tvBoxesList_AfterSelect(this.tvBoxesList, ee);
		}

		private void frmMain_Closing(object sender, System.ComponentModel.CancelEventArgs e)
		{
			//关闭连接
			oledbcntMyOutLookDB.Close();
		}

		private void toolBar_ButtonClick(object sender, System.Windows.Forms.ToolBarButtonClickEventArgs e)
		{
			if (e.Button == this.tbbtnNew) 
			{
				this.miNew_Click(null, null);
			}
			else if (e.Button == this.tbbtnSend)
			{
				SendMails();
			}
			else if (e.Button == this.tbbtnDelete)
			{
				this.miDelete_Click(null, null);
			}
		}

		private void miAccountSetup_Click(object sender, System.EventArgs e)
		{
			FormAccount frmAccount = new FormAccount(this);
			frmAccount.ShowDialog();
		}

		private void miExit_Click(object sender, System.EventArgs e)
		{
			this.Close();
		}

		internal void loadAccounts() 
		{
			//从数据库中读取所有的邮件
			string mySelectQuery = "SELECT * FROM MailAccounts ORDER BY MailAccountID";
			OleDbCommand cmd = new OleDbCommand(mySelectQuery, oledbcntMyOutLookDB);
			cmd.CommandTimeout = 20;

			accounts.Clear();
			
			//打开连接
			if (oledbcntMyOutLookDB.State==System.Data.ConnectionState.Closed)
			{
				oledbcntMyOutLookDB.Open();
			}

			System.Data.OleDb.OleDbDataReader dr = cmd.ExecuteReader();
			if (dr.HasRows)
			{
				while (dr.Read())
				{
					MailAccount ma = new MailAccount();
					ma.MailAccountID = (int)dr["MailAccountID"];
					ma.Account = (string)dr["Account"];
					ma.OutServer = (string)dr["OutgoingMailServer"];
					ma.OutServerPassword = (string)dr["OutPassword"];
					ma.OutServerPort = (string)dr["OutPort"];
					ma.OutServerRequireAuth = (bool)dr["IsOutgoingAuthorized"];
					ma.OutServerUser = (string)dr["OutUserID"];

					ma.InServer = (string)dr["IncomingMailServer"];
					ma.InServerPort = (string)dr["InPort"];
					ma.InServerUser = (string)dr["InUserID"];
					
					ma.InServerPassword = (string)dr["InPassword"];;
					ma.IsLeaveMessage = (bool)dr["IsLeaveMessage"];
					ma.IsTheSameWithIncoming = (bool)dr["IsTheSameWithIncoming"];


					accounts.Add(ma);
				}
			}


			//关闭连接
			dr.Close();

			
			if (accounts.Count>0) 
			{
				this.cmAccounts.MenuItems.Clear();
				this.cmAccounts.MenuItems.Add(miReceiveAll);
				this.cmAccounts.MenuItems.Add(miLine);

				System.Collections.IEnumerator myEnumerator = accounts.GetEnumerator();
				while (myEnumerator.MoveNext())
				{
					MailAccount ma = (MailAccount)myEnumerator.Current;
					MenuItem mi = new MenuItem(ma.Account);
					mi.Click += new System.EventHandler(this.handleContextMenu_Click);
					this.cmAccounts.MenuItems.Add(mi);

				}
			}
		
		}

		//接收选定的邮箱
		private void handleContextMenu_Click(object sender, System.EventArgs e) 
		{
			if (sender is MenuItem) 
			{
				MenuItem mi = (MenuItem)sender;
				ReceiveMail(mi.Text);
			}
			
		}



		//接收全部的邮箱
		private void miReceiveAll_Click(object sender, System.EventArgs e)
		{
			if (this.cmAccounts.MenuItems.Count>2)
			{
				for (int i=2;i<cmAccounts.MenuItems.Count;i++)
				{
					MenuItem mi = this.cmAccounts.MenuItems[i];
					ReceiveMail(mi.Text);
				}
			}		
		}

		//接收指定邮箱的邮件
		private void ReceiveMail(string account) 
		{
			MailAccount ma = getMailAccountByName(account);
			if (ma == null) 
			{
				return;
			}

			frmProgress prg = new frmProgress();
			prg.Show();
				
			Pop3MailOperation mo = new Pop3MailOperation();
			string msg="";

			prg.UpdateUI("连接服务器...", 0, "");
			bool ok = mo.Connect(ma, true, ref msg);
			prg.UpdateUI("连接服务器...", 0, msg);
			if (!ok)
			{
				prg.UpdateUI("连接服务器...", 0,  
					msg + "\n连接错误,退出\n");
				return;
			}
			
			prg.UpdateUI("登录服务器...", 0, "");
			ok = mo.Pop3Login(ref msg);
			prg.UpdateUI("登录服务器...", 0, msg);
			if (!ok)
			{
				prg.UpdateUI("登录服务器...", 0,  
					msg + "\n登录错误,退出\n");
				mo.Close(ref msg);
				return;
			}
			
			prg.UpdateUI("获取邮件数目...", 0, "");
			int num = mo.GetMailNumber(ref msg);
			prg.UpdateUI("获取邮件数目...", 0, msg);
			if (num<1)
			{

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -