C# POP3编程

Visual C#使用PoP3协议构建客户端邮件接收程序 电子邮件系统中的协议主要有RFC822,SMTP,POP,IMAP,MIME五种协议,这里将介绍一个简单的基于POP3协议的邮件接收程序。 The main  protocols of Email System is RFC822,SMTP,POP,IMAP ,MIME fiv 阅读详情

 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#.NET实现电子邮件客户程序 <br />用C#.NET实现电子邮件客户程序 <br />周华清 戴晟辉(东华理工学院计算机与通信系 江西 抚州 344000) <br />【摘要】通过C#这种VisualSTudio.NET中新引入的面向对象且类型安全的编程语言,在.NET平台上开发电子邮件客户程序。通过套接字编程实现网络通信连接,阐述SMTP(简单邮件传输协议)和POP3(邮局协议)的工作原理,然后具体讲解了根据SMTP协议开发电子邮件客户端的邮件发送程序,根据POP3协议开发电子邮件客户端的邮件接收程序。 <br />【关键词】套 阅读详情

相关推荐

C#收邮件

用visual c#实现邮件接收程序_邮件服务器 本文通过运用C#来实现一个基于POP3协议的邮件接收程序来向大家展示C#网络编程的功能强大,同时也向大家介绍一下基于POP3协议的电子邮件接收原理。  首先我向大家介绍邮件接收的基本原理:  一开始便是客户端与服务器的连接。不过,在客户端连接到服务器之前,注意把端口设为POP3协议默认的110号。  客户端连接服务器成功后,服务器会返回以下信息:

書畵 657

C#实现POP3邮件接收程序

本文通过运用C#来实现一个基于POP3协议的邮件接收程序来向大家展示C#网络编程的功能强大,同时也向大家介绍一下基于POP3协议的电子邮件接收原理。 首先我向大家介绍邮件接收的基本原理: 一开始便是客户端与服务器的连接。不过,在客户端连接到服务器之前,注意把端口设为POP3协议默认的110号。 客户端连接服务器成功后,服务器会返回以下信息: +OK…… 字符+OK是P

303

c#中邮件收发处理(POP3,IMAP,SMTP)

 c#中邮件收发处理(POP3,IMAP,SMTP)本文涉及的内容:1:自己制作Pop3Helper   信件格式的处理有麻烦2:使用现成的pop3类   LumiSoft.Net.POP3.Client;      有两种处理方法3:使用IMAP收邮件      功能似乎更多,比起pop3来。4:SMTP发送邮件   关于 Mailbox unavailable. The server re

踏雪无痕 1万+

C# 网络编程之基于SMTP发送电子邮件

本文主要讲述基于C#网络编程的发送邮件的编程,邮件发送功能是基于邮件协议的,常见的电子邮件协议有SMTP(简单邮件传输协议)、POP3(邮局协议)、IMAP(Internet邮件访问协议),主要通过SmtpClient类用于smtp发送邮件,MailMessage类用于设置邮件内容以及与邮件内容相关的信息,如发送人地址、收信人地址等,Attachment类表示电子邮件的附件,源码://点击"发送邮件"按钮 private void button1_Click(object sender, EventArgs

杨秀璋的专栏 1万+

C#中POP3客户端程序的设计与实现

POP3(Post Office Protocol version 3)是互联网上的一种电子邮箱协议,用于从远程邮件服务器下载电子邮件到本地客户端。它允许用户在离线状态下阅读邮件,并支持邮件的存储、检索和删除等操作。SMTP是用于发送邮件的协议,而IMAP则用于接收邮件。SMTP使用25端口(或587端口,如使用TLS/SSL加密),而IMAP默认使用143端口(加密通常使用993端口)。SMTP和IMAP在C#中一般不直接使用Socket进行编程,而是使用封装好的API或者第三方库来实现。

weixin_35006125的博客 1114

SMTP与POP3协议的编程实现

本文介绍了SMTP和POP3协议在VB.NET和C#中的编程实现。通过创建TCP监听器和套接字处理,展示了如何响应SMTP命令并进行邮件发送和接收的简单流程。同时,通过实例展示了如何使用POP3协议从服务器获取邮件摘要信息、读取邮件内容以及删除邮件。本文还简要介绍了SMTP和POP3协议的基础知识,并讨论了在实现邮件客户端和服务器时需要考虑的一些问题。

weixin_35019679的博客 409

C# Builder 实现POP3信箱的监视

作者:徐长友(http://yousoft.hi.com.cn)摘要:Borland的C# Builder是一个基于C#语言的编程工具,C# Builder允许开发者用Java或CORBA工具开发,C# Builder同时也具有从多种数据库中读取数据的能力,可以混合和适应不同开发标准的能力。本文向大家介绍怎样用Borland C# Builder编写一个信箱监视程序, 程序主要是通过WinSock

悠游在线 1683

深入理解C#编程中的核心概念

本文旨在详细解读《C#高级编程》中的关键章节,涵盖stackalloc、多态性、异步编程等多个主题。通过对各个概念的深入分析,帮助读者更好地理解C#语言的高级特性,以及如何在实际开发中应用这些概念。文章不仅提供理论知识,还结合实例和代码片段,以加深理解。

weixin_33759613的博客 299

C#调用Mail发送QQ邮件

需要用到: 1.System.Net.Mail; 2.QQ邮箱的POP3/SMTP服务码 QQ邮箱的POP3/SMTP服务码获取方法: 1.打开qq邮箱: 2.进入设置页面--》账户:(往下翻)开启服务POP3/SMTP服务,QQ邮箱会给一个POP3/SMTP服务码保存下来 代码: /// /// 发送邮件,成功返回true,否则f

侞婼冇罪 9191

C#实现邮件接收系统教程

本文还有配套的精品资源,点击获取 简介:本文档包含了一个使用C#语言编写,用于接收和存储电子邮件的程序源代码。该程序支持通过POP3和IMAP协议与邮件服务器交互,并将邮件内容存储到数据库中。程序涵盖了从网络编程、邮件协议解析、数据库操作到用户界面设计和安全措施等多方面的技术要点,适合希望提升邮件处理系统开发能力的开发者学习参考。 1. C#语言基础 1.1 C...

weixin_42452924的博客 1689

C#邮件接收程序实践指南:IMAP实现教程

C#(发音为 “看”)是由微软开发的一种面向对象的编程语言,它是.NET平台的核心语言之一。C#的设计旨在结合VB的简洁性和C++的强大功能。自从2002年首次发布以来,C#经过了多个版本的迭代,其语法和功能不断得到丰富和增强,特别是与.NET平台的紧密集成,使得C#成为构建各种类型应用程序的热门选择。在软件开发领域,C#广泛用于开发Windows桌面应用程序、网站、游戏、以及如今流行的云计算服务和微服务架构中。

weixin_28721743的博客 747
上一篇: C#实现SMTP服务器,使用TCP命令实现,功能比较完善
下一篇: EMAIL发送系统(C#+基于SMTP认证) 2.0
beichen_
博客等级 码龄19年 17粉丝 110原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值