POP3的使用很简单,所以.net没有向SMTP那样给出相应的类来控制.
废话少说,程序员最需要的使代码,:)!
1.打开VS.NET 2003.
2.新建一个WinForm Application.
3.添加命名空间
using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;
using System.Net;
using System.Net.Sockets;
using System.Text;
using System.IO;
4.主要代码
为了防止界面在连接服务器时死锁,我另开了一个线程
private void button1_Click(object sender, System.EventArgs e)
{
Thread myThread=new Thread(new ThreadStart(TreadGet));
myThread.Start();
}
private void TreadGet()
{
ConnectToServer();
LogonServer();
GetEmailList();
}
//连接服务器
private void ConnectToServer()
{
this.myClient=new TcpClient();
try
{
this.myClient.Connect(this.serverNameTextBox.Text,110);
this.messageListBox.Items.Add("连接服务器成功");
//初始化网络流,数据就是通过这个对象读出来的
ns=this.myClient.GetStream();
sr=new StreamReader(ns);
sw=new StreamWriter(ns);
}
catch(Exception ex)
{
this.messageListBox.Items.Add(ex.Message);
}
}
//验证用户名,密码
private void LogonServer()
{
result=sr.ReadLine();
this.messageListBox.Items.Add(result);
sw.WriteLine("USER "+this.nameTextBox.Text);
sw.Flush();
result=sr.ReadLine();
if(result.Substring(0,3)=="-ER")
{
this.messageListBox.Items.Add("没有这个用户名");
return;
}
sw.WriteLine("PASS "+this.passTextBox.Text);
sw.Flush();
try
{
result=sr.ReadLine();
}
catch(IOException ioex)
{
this.messageListBox.Items.Add(ioex.Message);
return;
}
if(result.Substring(0,4)=="-ERR")
{
this.messageListBox.Items.Add("无法登录,可能使用户名密码错误!");
return;
}
this.messageListBox.Items.Add("登录成功");
}
//获取邮件列表
private void GetEmailList()
{
string from=null;
string subject=null;
sw.WriteLine("stat");
sw.Flush();
result=sr.ReadLine();
// MessageBox.Show(result);
string[] nummessage=result.Split(' ');
int totalnum=Convert.ToInt32(nummessage[1]);
if(totalnum>0)
this.messageListBox.Items.Add("你有"+totalnum.ToString()+"邮件");
else
this.messageListBox.Items.Add("邮箱里没有邮件");
for(int i=1;i<=totalnum;i++)
{
sw.WriteLine("top "+i.ToString()+" 0");
sw.Flush();
result=sr.ReadLine();
while(true)
{
result=sr.ReadLine();
if(result==".")
break;
if(result.Length>4)
{
if(result.Substring(0,5)=="From:")
from=result ;
if(result.Substring(0,8)=="Subject:")
subject=result ;
}
}
this.listBox1 .Items.Add(i.ToString()+" "+from+ " "+ subject);
}
}
private void button2_Click(object sender, System.EventArgs e)
{
this.listBox1.Items.Clear();
}
参考资料
网络邮件收取使用的是Pop3协议,了解Pop3协议有助于我们加深对邮件系统的理解。而且使用Pop3协议你还可以直接telnet 到邮件服务器上去收信。
一般telnet Pop3 Server 110后就可以用这些命令了,大小写不敏感, 不包括口令本身,注意不要让口令回显,等验证通过后再允许回显好了。
user username 用户认可
pass password 认可 执行成功则状态转换
apop name,digest 认可一种安全传输口令的办法,执行成功导致状态转换,请参见RFC 1321 。
stat 处理请求server回送邮箱统计资料,如邮件数、 邮件总字节数
uidl n 处理 server返回用于该指定邮件的唯一标识, 如果没有指定,返回所有的。
list n 处理 server返回指定邮件的大小等
retr n 处理 server返回邮件的全部文本
dele n 处理 server标记删除,quit命令执行时才真正删除
rset 处理撤消所有的dele命令
top n,m 处理 返回n号邮件的前m行内容,m必须是自然数
noop 处理 server返回一个肯定的响应
quit client 希望结束会话。如果server处于"处理" 状态,则现在进入"更新"状态,删除那些标记成删除的邮件。如果server处于"认可"状态, 则结束会话时server不进入"更新"状态 。
使用telnet 的一个完整的收信例子如下:
telnet pop3Server 110
user username
pass ****
stat
list
retr 1
retr 2
...
dele 1
dele 2
...
quit
分享到:
相关推荐
总结起来,这个项目涉及C#编程、POP3协议的使用、OpenPOP库的集成,以及实现自动化处理邮件附件的功能,包括获取当前日期的邮件、创建子文件夹和本地文件去重。这些技术在企业级邮件系统自动化、监控等场景中有广泛...
在C#编程语言中,实现一个POP3客户端可以帮助开发者理解邮件接收的底层机制,并为邮件服务的开发提供基础。这里我们将详细探讨POP3客户端的实现、工作原理以及C#中的相关知识点。 1. **POP3协议简介** - POP3协议...
在IT领域,C#是一种广泛使用的编程语言,尤其在开发Windows应用程序、Web应用程序以及游戏等方面。POP3(Post Office Protocol version 3)是互联网上的一种标准邮件协议,用于从邮件服务器检索电子邮件。在这个主题...
本主题将深入探讨如何利用`C#`和`POP3`协议来获取电子邮件联系人。`POP3`(Post Office Protocol version 3)是一种互联网标准,用于从邮件服务器检索电子邮件。对于需要处理邮件联系人的应用程序,理解如何使用`...
在IT领域,C#是一种广泛使用的编程语言,尤其在开发Windows桌面应用、Web应用和服务方面。Pop3(Post Office Protocol version 3)是用于从邮件服务器检索电子邮件的标准协议。本示例将深入探讨如何利用C#语言实现一...
如果不想使用第三方库,可以基于.NET Framework提供的`System.Net.Mail`命名空间来实现POP3通信,但这通常涉及更多低级的网络编程工作,如处理TCP套接字和解析邮件格式。LumiSoft.Net等库提供了更方便的接口和封装,...
在IT行业中,C#是一种广泛使用的编程语言,尤其在开发Windows应用程序、Web应用程序以及网络服务时。本主题聚焦于如何使用C#通过POP3协议来实现邮件的接收,并且能够下载其中的附件。POP3(Post Office Protocol ...
在本文中,我们将深入探讨如何使用C#编程语言通过POP3(Post Office Protocol version 3)服务下载电子邮件并解析其源码。POP3是一种广泛使用的协议,允许用户从邮件服务器检索电子邮件。C#中的.NET Framework提供了...
在C#编程环境中,我们可以使用.NET Framework或.NET Core提供的System.Net.Mail命名空间中的类来实现POP3客户端的功能。本教程将围绕如何使用C#编写一个简单的POP3邮件接收程序展开。 首先,了解POP3的基本工作原理...
在本文中,我们将深入探讨如何使用C#编程语言和OpenPOP库来实现POP3协议,以便从邮件服务器接收和处理电子邮件,特别是关注如何获取邮件中的附件。OpenPOP是一个开源的.NET库,它提供了简单易用的接口来处理POP3协议...
在IT领域,C#是一种广泛使用的编程语言,尤其在开发Windows桌面应用、Web应用以及游戏等方面。本主题聚焦于使用C#实现POP3协议来收发电子邮件,这是一项基础但至关重要的技能,对于构建邮件客户端或者自动化邮件处理...
标题提到的"C# POP3获取邮箱联系人"是一个关于使用C#编程语言通过POP3协议来访问和提取电子邮件服务器上的联系人列表的主题。POP3(Post Office Protocol version 3)是用于下载邮件的标准协议,但通常不直接用于...
在IT行业中,C#是一种广泛使用的编程语言,尤其在开发Windows应用程序、Web应用程序以及游戏等领域。POP3(Post Office Protocol version 3)是用于从邮件服务器检索电子邮件的标准协议。本教程将详细介绍如何在C#中...
C#是一种广泛使用的编程语言,尤其在Windows平台上,它提供了丰富的库和工具来实现各种网络通信,包括POP3协议的客户端程序。下面将详细讨论C#中实现POP3协议客户端程序的相关知识点。 首先,理解POP3协议的基本...
标题中的“51CTO下载-运用C#实现POP3邮件接收程序源代码”表明这是一个关于使用C#编程语言开发的邮件接收程序,基于POP3(Post Office Protocol version 3)协议。POP3是一种标准的互联网协议,允许用户从邮件服务器...
C#网络编程---第5章_SMTP与POP3应用编程.ppt C#网络编程---第6章_网络数据加密与解密.ppt C#网络编程---第7章_三维设计与多媒体编程.ppt C#网络编程---第8章_电子邮件协议编程.ppt C#网络编程---第9章_HTTP编程.ppt ...
在编程实现POP3登录并启用SSL时,你需要使用支持SSL/TLS的库。例如,对于.NET环境,可以使用System.Net.Mail命名空间中的SmtpClient类和MailMessage类来处理邮件发送,而对于POP3,可以使用MailKit或者SharpPop3这样...
摘要:C#源码,网络相关,POP3,收发邮件 C# POP3接收邮件程序,可学习一下C#使用TcpClient 类对象联接邮件服务器、NetworkStream类对象接收返回发送的数据、实例StreamReader类对象读取数据、如何将用户名显示在 ...
在IT行业中,C#是一种广泛使用的编程语言,尤其在开发Windows桌面应用、Web应用以及游戏等领域。本篇文章将深入探讨如何使用C#通过POP3协议来接收电子邮件,以实现从163、QQ等主流邮箱服务接收邮件的功能。首先,...
C#,作为.NET Framework的主要编程语言,提供了System.Net.Mail命名空间,用于处理邮件相关任务,包括与POP3服务器交互。 首先,我们需要引入必要的命名空间: ```csharp using System; using System.Net; using ...