📄 form3.cs
字号:
q2=msgconbody.IndexOf(list,q1+list.Length);
if(q2!=-1)
{
string msgconbody1=msgconbody.Substring(q1+list.Length,q2-q1-list.Length-1).Trim();
if(msgconbody1.IndexOf("text/plain")!=-1)//这是取出的正文部分
{
int q3=msgconbody1.IndexOf(CRLF+CRLF);
string msgconbody2=msgconbody1.Substring(q3,msgconbody1.Length-q3-1).Trim();
string msgconbody3=msgconbody1.Substring(0,q3).Trim();
string[] head=msgconbody3.Split(new char[] {'\n'});
string charsty="";
string sty="";
if(head.Length==3)
{
q3=head[0].IndexOf(":");
sty=head[0].Substring(q3+1,head[0].Length-q3-2).Trim();
q3=head[1].IndexOf("=");
charsty=head[1].Substring(q3+2,head[1].Length-q3-3).Trim();
q3=head[2].IndexOf(":");
Mtype=head[2].Substring(q3+1,head[2].Length-q3-1).Trim();
}
else
{
q3=head[0].IndexOf(":");
int q4=head[0].IndexOf(";");
sty=head[0].Substring(q3+1,q4-q3-1).Trim(); //媒体类型
int q5=head[0].IndexOf("=");
charsty=head[0].Substring(q5+1,head[0].Length-q5-1).Trim(); //获取的是字符集
q3=head[1].IndexOf(":");
Mtype=head[1].Substring(q3+1,head[1].Length-q3-1).Trim(); //获取编码的方式
}
switch(Mtype)
{
case "base64":
textBox1.Text=Base64Decode(msgconbody2);
break;
case "quoted-printable":
textBox1.Text=QDecode(msgconbody);
break;
case "8bit":
break;
}
}
if(msgconbody1.IndexOf("filename")!=-1 ||msgconbody1.IndexOf("name")!=-1)//这是取出的附件部分
{
int q3=msgconbody1.IndexOf(CRLF+CRLF);
string msgconbody2=msgconbody1.Substring(q3,msgconbody1.Length-q3).Trim();
string msgconbody3=msgconbody1.Substring(0,q3).Trim();
string[] head=msgconbody3.Split(new char[] {'\n'});
string attfilename="";
q3=head[2].IndexOf("=");
attfilename=head[2].Substring(q3+2,head[2].Length-q3-3).Trim();
q3=head[1].IndexOf(":");
Mtype=head[1].Substring(q3+1,head[1].Length-q3-1).Trim();
switch(Mtype)
{
case "base64":
//对附件和附件内容进行解码
//附件名称
string[] m1=attfilename.Split(new char[] {'?'});
attfilename=m1[3];
string type=m1[2];
if(type.IndexOf("B")!=-1)
attfilename=this.Base64Decode(attfilename);
if(type.IndexOf("Q")!=-1)
attfilename=this.QDecode(attfilename);
attfilename=attfilename.Remove(0,1);
listView2.Items.Add (attfilename);
//附件内容,创建临时文件
msgconbody2=msgconbody2.Substring(0,msgconbody2.LastIndexOf("=="));
byte[] binaryData;
string tempPath = Path.GetTempPath();//获取临时目录的路径,将附件写入临时目录
binaryData=Convert.FromBase64String(msgconbody2);
System.IO.FileStream outFile;
outFile = new System.IO.FileStream(tempPath+attfilename,System.IO.FileMode.Create,System.IO.FileAccess.Write);
outFile.Write(binaryData, 0, binaryData.Length);
outFile.Close();
break;
case "quoted-printable":
textBox1.Text=QDecode(msgconbody);
break;
case "8bit":
break;
}
}
msgconbody=msgconbody.Remove(0,q2);
// int d=1;
}
else
{
end=false;
}
}
}
}
else
{
MessageBox.Show("您帐号的邮件数据可能丢失!");
}
}
private string Base64Decode(string bases)///base64编码的解码
{
byte[] barray;
if(bases.Length >0)
{
barray=Convert.FromBase64String(bases);
return (Encoding.Default.GetString(barray));
}
else
{
return(bases);//如果主题的内容为空的时候
}
}
private string Base64Encode(string estr)
{
byte[] barray;
barray=Encoding.Default.GetBytes(estr);
return Convert.ToBase64String(barray);
}
private string QDecode(string bases)///Q编码的解码
{
return("ok");
}
private void toolBar1_ButtonClick(object sender, System.Windows.Forms.ToolBarButtonClickEventArgs e)
{
switch (toolBar1.Buttons.IndexOf(e.Button))
{
case 0 :
//MessageBox.Show("收邮件");
Form2 dd =new Form2();
dd.ShowDialog();
DispAll("main.wg");
treeView1.Focus();
TreeNode treed=new TreeNode("收件箱");
treeView1.SelectedNode=treed;
break;
case 1 :
MessageBox.Show("发送邮件");
break;
case 2 :
Form4 ss=new Form4();
ss.Show();
break;
case 3 :
MessageBox.Show("回复邮件");
break;
case 4 :
MessageBox.Show("转发邮件");
break;
case 5 :
Form5 d=new Form5();
d.Show();
//d.Dispose();
break;
case 6 :
// Form1 cc =new Form1();
// cc.Show();
// cc.Dispose();
FrmConf cc =new FrmConf();
cc.Show();
//cc.Dispose();
break;
case 7 :
//MessageBox.Show("帮助信息");
Form9 f=new Form9();
f.ShowDialog();
break;
}
}
private void treeView1_AfterSelect(object sender, System.Windows.Forms.TreeViewEventArgs e)
{
//Form载入之后首先执行此代码触发邮件列表显示代码
string f=e.Node.Text;
string temp="";
if(!f.Equals("本地文件夹"))
{
string con=e.Node.Parent.Text +(char)92+f;
string[] f1=con.Trim().Split((char)92);
string parstr=f1[0];
string childstr=f1[1];
for(int i=0;i<treeView1.Nodes.Count;i++)
{
if(treeView1.Nodes[i].Text.Equals(parstr)) //如果第一层就已经找到了父节点,则判断有没有重名的文件夹
{
for(int r=0;r<treeView1.Nodes[i].Nodes.Count;r++)
{
if(treeView1.Nodes[i].Nodes[r].Text.Equals(childstr))
{
temp=childstr.Trim() + "0"+".wg";
break;
}
}
}
for(int j=0;j<treeView1.Nodes[i].Nodes.Count;j++)
{
if(treeView1.Nodes[i].Nodes[j].Text.Equals(parstr))
{
for(int r=0;r<treeView1.Nodes[i].Nodes[j].Nodes.Count;r++)
{
if(treeView1.Nodes[i].Nodes[j].Nodes[r].Text.Equals(childstr))
{
temp=childstr.Trim() + "1"+".wg";
}
}
}
}
}
switch (f)
{
case "收件箱":
temp="main.wg";
break;
case "发件箱":
temp="out.wg";
break;
case "已发送邮件":
temp="sent.wg";
break;
case "垃圾箱":
temp="trash.wg";
break;
}
if(temp.Length>1)
{
DispAll(temp);
}
else
{
textBox1.Text="";
listView1.Items.Clear();
listView2.Items.Clear();
MessageBox.Show ("no");
}
}
}
private void menuItem18_Click(object sender, System.EventArgs e)
{
this.Close();//退出程序
}
private void menuItem14_Click(object sender, System.EventArgs e)
{
this.Focus();
}
private void menuItem15_Click(object sender, System.EventArgs e)
{
// Form1 dd = new Form1();
// dd.EmailCheck();
// dd.Close();
DispAll("main.wg");
}
private void menuItem16_Click(object sender, System.EventArgs e)
{
// Form1 dd = new Form1();
// dd.Activate();
}
private void listView1_ColumnClick(object sender,System.Windows.Forms.ColumnClickEventArgs e)
{
ListViewSorter sorter=new ListViewSorter();
sorter.Column=0; // Sort first column
Cfirst=e.Column;
if(Cb)
{
Ctwo=Cfirst;
Cb=false;
}
else
{
Cb=true;
}
if(Ctwo==Cfirst)
{
if(Cb)
{
sorter.Sorting=SortOrder.Ascending;
}
else
{
sorter.Sorting=SortOrder.Descending;
}
}
sorter.Columns.Count=5; // Number of columns in the listview
sorter.Columns[0].SortType=SortTypes.SortText; // 是否阅读
sorter.Columns[1].SortType=SortTypes.SortText; //发件人
sorter.Columns[2].SortType=SortTypes.SortText; // 主题
sorter.Columns[3].SortType=SortTypes.SortDate; // 日期
sorter.Columns[4].SortType=SortTypes.SortNumeric ; // 大小
listView1.ListViewItemSorter=sorter;
if (sorter.Column==e.Column)
sorter.SwitchSortOrder();
// Set column to sort
sorter.Column=e.Column;
// Perform sort
listView1.Sort();
}
private void menuItem9_Click(object sender, System.EventArgs e)//邮件删除功能
{
int i;
StreamReader sr =new StreamReader(@filename,Encoding.GetEncoding("gb2312")) ;
bool error =false;
int j=0;
string temp="";
string deltemp="";
while(!error)
{
string szTemp="";
while(szTemp!=".")
{
szTemp = sr.ReadLine();
if( szTemp==null)
{szTemp="";error=true;break; }
else
{
bool wf=true;
for(i=0;i<listView1.SelectedItems.Count;i++)
{
if(j==(int)listView1.SelectedItems[i].Tag)
{
wf=false;
}
}
if(wf)
{
temp += szTemp+CRLF;
}
else
{
deltemp+= szTemp+CRLF;
//将删除的邮件写入一删除邮件中
}
}
}
j=j+1;
}
sr.Close();
StreamWriter sw =new StreamWriter(@filename,false,Encoding.GetEncoding("gb2312")) ;
sw.Write(temp);
sw.Close();
if(filename.IndexOf("trash.wg")==-1)
{
sw =new StreamWriter(@"trash.wg",false,Encoding.GetEncoding("gb2312")) ;
sw.Write(deltemp);
sw.Close();
}
DispAll(filename);
}
private void listView1_Click(object sender, System.EventArgs e)
{
}
private void menuItem1_Click(object sender, System.EventArgs e)
{
Form4 d=new Form4();
d.Show();
}
private void listView1_SelectedIndexChanged(object sender, System.EventArgs e)
{
int d=-1;
if(listView1.SelectedItems.Count>0)
{
int g=listView1.SelectedItems.Count-1;
d=(int)listView1.SelectedItems[g].Index;
if(d!=-1)
{
textBox1.Text="";
listView2.Items.Clear();
this.Bodydisp(d);
if(listView1.SelectedItems[0].SubItems[0].Text.IndexOf("新")!=-1)
{
timer1.Interval=1000;
timer1.Start();
}
}
}
}
//对需要调用的dll进行导入
[DllImport("shell32.dll")]
//声明函数结构
//原型的数据类型要进行更改
private static extern int ShellExecute(int d, string ff, string fg, string gf, string hh, int y);
private void 打开附件_Click(object sender, System.EventArgs e)
{
string filepath=Path.GetTempPath()+listView2.SelectedItems[0].Text;
int f=ShellExecute(0,"open",filepath,"","",1);
//("user32.dll",CharSet=CharSet.Auto,CallingConvention=CallingConvention.StdCall)]
}
private void menuItem19_Click(object sender, System.EventArgs e)
{
if(listView2.SelectedItems.Count >0 )
{
saveFileDialog1.FileName =listView2.SelectedItems[0].Text;
saveFileDialog1.Filter="所有文件 (*.*)|*.*" ;
if(saveFileDialog1.ShowDialog() == DialogResult.OK)
{
string filepath=Path.GetTempPath()+listView2.SelectedItems[0].Text;
File.Copy(filepath,saveFileDialog1.FileName);
}
}
}
private void timer1_Tick(object sender, System.EventArgs e)
{
IntTimer=IntTimer+1;
if(IntTimer==5)
{
int g=listView1.SelectedItems.Count-1;
int d=(int)listView1.SelectedItems[g].Index;
if(g!=-1)
{
string f=listView1.Items[d].Font.FontFamily.Name;
float f1=listView1.Items[d].Font.Size;
listView1.Items[d].Font= new Font(f,f1);
this.ChangeSta(filename,"新"); //修改文件中的阅读状态
listView1.Items[d].SubItems[0].Text="旧";
}
else
{
} timer1.Stop();
}
}
private void ChangeSta(string fname,string fstr)
{
timer1.Stop();
IntTimer=0;
// int i;
StreamReader sr =new StreamReader(@fname,Encoding.GetEncoding("gb2312")) ;
bool error =false;
int j=0;
string temp="";
// string deltemp="";
if(fstr.IndexOf("新")!=-1)
{
fstr="R";
}
else
{
fstr="U";
}
while(!error)
{
string szTemp="";
while(szTemp!=".")
{
szTemp = sr.ReadLine();
if( szTemp==null)
{
szTemp="";
error=true;
break;
}
else
{
int g=listView1.SelectedItems.Count-1;
if(j==(int)listView1.SelectedItems[g].Tag)
{
int s=szTemp.IndexOf("Status");
if(s!=-1)
szTemp="Status:"+fstr;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -