如何编程实现删除邮件? 使用Jmail组件根据你指定的邮件服务器和用户名密码,并设置其接受到邮件以后删除服务器上的邮件这样接受邮件后就会把邮件服务器上的邮件删除 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 要知道邮件的编号 然后用pop3中的命令 del 邮件编号 这个要网络编程 主要用TcpClient 和NetworkStream 来向mail服务器发送命令和接收信息:一般命令: 连接上mail服务器后USER username //发送用户名PASS password// 发送密码UIDL //得到邮件idSTAT //查看有多少emailDELE mailid //删除id为mailid的email (用quit命令退出后生效)上面的命令可以telnet 一个邮件服务器的110端口进行测试下面是几个函数://发送用户名private string senduid(string uid,NetworkStream ns,StreamReader sr) { string com="USER "+uid+"\r\n"; byte[] b=System.Text.Encoding.ASCII.GetBytes(com); ns.Write(b,0,b.Length); return sr.ReadLine(); }////////////发送密码//////////// private string sendpwd(string pwd,NetworkStream ns,StreamReader sr) { string com="PASS "+pwd+"\r\n"; byte[] b=System.Text.Encoding.ASCII.GetBytes(com); ns.Write(b,0,b.Length); return sr.ReadLine(); }//////////////发送命令private void command(string command,NetworkStream ns,StreamReader sr) { string com=command+" \r\n"; byte[] b=System.Text.Encoding.ASCII.GetBytes(com); ns.Write(b,0,b.Length); }/////////////退出private void quit(NetworkStream ns) { string com="QUIT\r\n"; byte[] b=System.Text.Encoding.ASCII.GetBytes(com); ns.Write(b,0,b.Length); }//////////////得到邮件id列表////////////返回arraylist alprivate ArrayList idlist(string server,string uid,string pwd) { tc=new TcpClient(server.Trim(),110); ns=tc.GetStream(); StreamReader sr=new StreamReader(ns); sr.ReadLine(); senduid(uid,ns,sr); sendpwd(pwd,ns,sr); int num=getmailnum("STAT",ns,sr); ArrayList al=new ArrayList(); for(int i=1;i<=num;i++) al.Add(getmailid(i,ns,sr)); quit(ns); return al; }for(int i=0;i<al.Count;i++){ command("DELE "+al[i].Tostring(),ns,sr); //删除在id列表中的邮件}quit(ns);//退出使删除生效 Dim pop3 As New jmail.POP3 '创建对象 pop3.Connect(St1, jspwd, jsip) '连接服务器 pop3.connect Dim msg As New jmail.Message Dim i As Integer pop3.DeleteMessages() pop3.Disconnect() 一个很小的问题,请大家说说 如何实现客户端随时监听服务器数据 母版页调用js文件问题 Html怎么调用js脚本啊? TextBox输入回车变换行 哪位gg给我介绍一本学习水晶报表的好书,要与asp.net(c#)结合的!万分感谢! 2个用户控件中传递参数的问题,谢谢 比较难的问题:怎么让一个方法超时,返回? 如何实现点DATAGRID的行的任意地方都可以触发行改变(或者说触发ItemCommand事件?) 如何给自定义web控件添加图标? 高手:怎么样知道一个页面是否已经加载完毕? 如何把数据按输入格式保存到数据库?
这个要网络编程
一般命令: 连接上mail服务器后
USER username //发送用户名
PASS password// 发送密码
UIDL //得到邮件id
STAT //查看有多少email
DELE mailid //删除id为mailid的email (用quit命令退出后生效)
上面的命令可以telnet 一个邮件服务器的110端口进行测试
下面是几个函数:
//发送用户名
private string senduid(string uid,NetworkStream ns,StreamReader sr)
{
string com="USER "+uid+"\r\n";
byte[] b=System.Text.Encoding.ASCII.GetBytes(com);
ns.Write(b,0,b.Length);
return sr.ReadLine();
}
////////////发送密码////////////
private string sendpwd(string pwd,NetworkStream ns,StreamReader sr)
{
string com="PASS "+pwd+"\r\n";
byte[] b=System.Text.Encoding.ASCII.GetBytes(com);
ns.Write(b,0,b.Length);
return sr.ReadLine();
}
//////////////发送命令
private void command(string command,NetworkStream ns,StreamReader sr)
{
string com=command+" \r\n";
byte[] b=System.Text.Encoding.ASCII.GetBytes(com);
ns.Write(b,0,b.Length);
}
/////////////退出
private void quit(NetworkStream ns)
{
string com="QUIT\r\n";
byte[] b=System.Text.Encoding.ASCII.GetBytes(com);
ns.Write(b,0,b.Length);
}
//////////////得到邮件id列表////////////返回arraylist al
private ArrayList idlist(string server,string uid,string pwd)
{
tc=new TcpClient(server.Trim(),110);
ns=tc.GetStream();
StreamReader sr=new StreamReader(ns);
sr.ReadLine();
senduid(uid,ns,sr);
sendpwd(pwd,ns,sr);
int num=getmailnum("STAT",ns,sr);
ArrayList al=new ArrayList();
for(int i=1;i<=num;i++)
al.Add(getmailid(i,ns,sr));
quit(ns);
return al;
}
for(int i=0;i<al.Count;i++){
command("DELE "+al[i].Tostring(),ns,sr); //删除在id列表中的邮件
}
quit(ns);//退出使删除生效
'创建对象
pop3.Connect(St1, jspwd, jsip) '连接服务器 pop3.connect
Dim msg As New jmail.Message
Dim i As Integer
pop3.DeleteMessages()
pop3.Disconnect()