VisualC#编写实现POP3的程序

VisualC#编写实现POP3的程序,第1张

VisualC#编写实现POP3的程序,第2张

1.打开VS.net 2003。

2.创建新的WinForm应用程序。

3.添加命名的空房间

4.主代码

为了防止连接服务器时接口死锁,我启动了另一个线程。

私有void button1_Click(对象发送方,系统。EventArgs e)
{
Thread myThread = new Thread(new ThreadStart(TreadGet));
myThread。start();
}

private void TreadGet()
{
ConnectToServer();
logon server();
gete mail list();
}

//连接到服务器
private void connect to server()
{
this . my client = newtcpclient();
try
{
this . my client . connect(this . servername textbox . text,110);
this . message listbox . items . add("成功连接到服务器");
//初始化网络流,数据通过这个对象读出
ns = this . my client . getstream();
Sr =新的StreamReader(ns);
SW =新StreamWriter(ns);
}
catch(Exception ex)
{
this . message listbox . items . add(ex。消息);
}
}
/验证用户名和密码
private void logon server()
{
result = Sr . readline();
this . message listbox . items . add(结果);
软件。WriteLine(" USER "+this . name textbox . text);
软件。flush();

result = Sr . ReadLine();
if (result.substring (0,3)= "-er ")
{
this . message listbox . items . add("没有这个用户名");
退货;
}

西南。WriteLine(" PASS "+this . passtextbox . text);
软件。flush();

try
{
result = Sr . ReadLine();
}
catch(io exception ioex)
{
this . message listbox . items . add(ioex。消息);
退货;
}

If (result.substring (0,4)= "-err ")
{
this . message listbox . items . add("无法登录,可能会使用户名和密码错误!");
退货;
}

This.messageListBox.Items.Add("成功登录");

}

//获取邮件列表
Private Void Gete Maillist()
{
String from = null;
string subject = null;
软件。WriteLine(" stat ");
软件。flush();

result = Sr . ReadLine();
// MessageBox。显示(结果);
string[]nummessage = result。拆分(“”);
int totalnum=Convert。toint 32(nummessage[1]);
if(total num > 0)
this . message listbox . items . add("你有"+totalnum。ToString()+" mail ");
else
this . message listbox . items . add("邮箱里没有邮件");

for(int I = 1;i4)
{
if(结果。Substring(0,5)= = " From:")
From = result;
if(结果。Substring(0,8)= = " Subject:")
Subject = result;

}
}
this . listbox 1 . items . add(I . ToString()+" "+from+" "+subject);
}
}

私有void button2_Click(对象发送方,系统。EventArgs e)
{
this . listbox 1 . items . clear();
}

参考数据

互联网邮件收集使用Pop3协议。了解Pop3协议有助于我们加深对邮件系统的理解。而且,使用Pop3协议,可以直接telnet到邮件服务器接收邮件。

通常,您可以在telnet Pop3 Server 110之后使用这些命令,不区分大小写,并且不包括密码本身。注意不要让密码回显,验证通过后再允许回显。

用户名用户批准

密码批准成功,然后状态改变。

Apop名称,digest识别一种安全传输密码的方法,成功执行会导致状态转换。请参考RFC 1321。

stat请求服务器发回的邮箱的统计信息,如邮件数量和邮件的总字节数。

UIN处理服务器返回用于指定邮件的ID,如果没有指定,则返回all。

列表处理服务器返回指定消息的大小等。

Retr n处理服务器返回的所有邮件文本。

Dele n处理服务器标签的删除,它实际上是在执行quit命令时被删除的。

Rset处理撤销所有dele命令。

Top,m处理第n封邮件的前m行内容,m必须是自然数。

Noop处理服务器返回肯定的响应。

退出客户端想要结束会话。如果服务器处于“正在处理”状态,它现在将进入“正在更新”状态,并删除那些标记为删除的邮件。如果服务器处于“已批准”状态,当会话结束时,服务器将不会进入“已更新”状态。

使用telnet接收消息的完整示例如下:

telnet pop3Server 110
用户用户名
pass * * * *
stat
list
retr 1
retr 2
...
删除1
删除2
...
退出

位律师回复
DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
白度搜_经验知识百科全书 » VisualC#编写实现POP3的程序

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情