public void Send() { //初始化两个委托用来改变窗体发送按钮的可操作属性 MethodInvoker dgMyBtnTrue = new MethodInvoker(SetButtontrue); MethodInvoker dgMyBtnFalse = new MethodInvoker(SetButtonfalse); //初始化委托来更新状态信息窗口的消息 dgMyListBox = new SetMyListBox(SetListBox); //发送时设置发送按钮不可用 BeginInvoke(dgMyBtnFalse); //更新状态“正在连接服务器” statelistBox.Invoke(dgMyListBox, new object[] { "正在连接服务器。。。" }); //使用mySendEmail类的Login方法进行登录 mySendEmail.Login(); //更新状态“正在发送消息” statelistBox.Invoke(dgMyListBox, new object[] { "正在发送。。。" }); //使用mySendEmail类的EGLPABC_SendEmails方法发送邮件 mySendEmail.EGLPABC_SendEmails(); //邮件发送完毕后 设置发送按钮可用 BeginInvoke(dgMyBtnTrue); }
public void ReMail() { //初始化改变接收按钮可操作性的委托 MethodInvoker dgMyBtnTrue = new MethodInvoker(SetButtontrue); MethodInvoker dgMyBtnFalse = new MethodInvoker(SetButtonfalse); //初始化委托来更新窗体消息栏 dgMyListBox = new SetMyListBox(SetListBox); dgMyMailBox = new SetMyListBox(SetMailBox); dgMyMessageBox = new SetMyListBox(SetMessageBox); //更新状态栏 “正在连接服务器。。。” statlistBox.Invoke(dgMyListBox, new object[] { "正在连接服务器。。。" }); //设置接收邮件按钮不可用 BeginInvoke(dgMyBtnFalse); //调用myReMail的Connect方法 如果失败就返回 if (!(myReMail.Connect())) { return; } //设置netStream的值 以便以后用来获得邮件正文 netStream = myReMail.GetNetStream(); //若连接成功 更新状态栏 “已连接” statlistBox.Invoke(dgMyListBox, new object[] { "已连接" }); //更新状态栏 “正在验证用户名和密码。。。” statlistBox.Invoke(dgMyListBox, new object[] { "正在验证用户名和密码。。。" }); //若登录失败则返回 if (!(myReMail.Login())) { return; } //若输入密码错误则返回 并设置接收邮件按钮不可用提示用户改变密码 if (!myReMail.EnterPass()) { BeginInvoke(dgMyBtnFalse); return; } //若密码正确 更新状态栏 “已登录” statlistBox.Invoke(dgMyListBox, new object[] { "已登录" }); //更新状态栏 “正在获得邮件数。。。” statlistBox.Invoke(dgMyListBox, new object[] { "正在获得邮件数。。。" }); //调用GetMailCount()方法来获得用户邮件数 int count = myReMail.GetMailCount(); if (count > 0) { //如果邮件数大于零,则提示用户邮件数 maillabel.Invoke(dgMyMailBox, new object[] { "你有" + count + "封邮件" }); } else { //否则显示无邮件 maillabel.Invoke(dgMyMailBox, new object[] { "你没有邮件" }); } //初始化字符串数组来获得邮件头 string[] mailtop; //循环获得所有邮件的头部信息 for (int i = 1; i <= count; i++) { //获得第i封邮件的头部信息 mailtop = myReMail.GetMailTop(i); //更新窗体中电子邮件信息窗口 并将邮件标为已读 messagelistBox.Invoke(dgMyMessageBox, new object[] { "未读" + " " + i + " " + " " + mailtop[0] + " " + mailtop[1] }); } //接收邮件完毕 设置接收邮件按钮可用 BeginInvoke(dgMyBtnTrue); }
public void ReMail() { //初始化改变接收按钮可操作性的委托 MethodInvoker dgMyBtnTrue = new MethodInvoker(SetButtontrue); MethodInvoker dgMyBtnFalse = new MethodInvoker(SetButtonfalse); //初始化委托来更新窗体消息栏 dgMyListBox = new SetMyListBox(SetListBox); dgMyMailBox = new SetMyListBox(SetMailBox); dgMyMessageBox = new SetMyListBox(SetMessageBox); //更新状态栏 “正在连接服务器。。。” statlistBox.Invoke(dgMyListBox, new object[] { "正在连接服务器。。。" }); //设置接收邮件按钮不可用 BeginInvoke(dgMyBtnFalse); //调用myReMail的Connect方法 如果失败就返回 if (!(myReMail.Connect())) return; //设置netStream的值 以便以后用来获得邮件正文 netStream = myReMail.GetNetStream(); //若连接成功 更新状态栏 “已连接” statlistBox.Invoke(dgMyListBox, new object[] { "已连接" }); //更新状态栏 “正在验证用户名和密码。。。” statlistBox.Invoke(dgMyListBox, new object[] { "正在验证用户名和密码。。。" }); //若登录失败则返回 if (!(myReMail.Login())) return; //若输入密码错误则返回 并设置接收邮件按钮不可用提示用户改变密码 if (!myReMail.EnterPass()) { BeginInvoke(dgMyBtnFalse); return; } //若密码正确 更新状态栏 “已登录” statlistBox.Invoke(dgMyListBox, new object[] { "已登录" }); //更新状态栏 “正在获得邮件数。。。” statlistBox.Invoke(dgMyListBox, new object[] { "正在获得邮件数。。。" }); //调用GetMailCount()方法来获得用户邮件数 int count = myReMail.GetMailCount(); if (count > 0) //如果邮件数大于零,则提示用户邮件数 maillabel.Invoke(dgMyMailBox, new object[] { "你有" + count + "封邮件" }); else //否则显示无邮件 maillabel.Invoke(dgMyMailBox, new object[] { "你没有邮件" }); //初始化字符串数组来获得邮件头 string[] mailtop; //循环获得所有邮件的头部信息 for (int i = 1; i <= count; i++) { //获得第i封邮件的头部信息 mailtop = myReMail.GetMailTop(i); //更新窗体中电子邮件信息窗口 并将邮件标为已读 messagelistBox.Invoke(dgMyMessageBox, new object[] { "未读" + " " + i + " " + " " + mailtop[0] + " " + mailtop[1] }); } //接收邮件完毕 设置接收邮件按钮可用 BeginInvoke(dgMyBtnTrue); }