📄 mainform.cs
字号:
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 + -