利用asp+的独特的底层操作的功能实现对Pop服务器的存取(实现了a

2016-02-19 22:48 5 1 收藏

下面图老师小编跟大家分享利用asp+的独特的底层操作的功能实现对Pop服务器的存取(实现了a,一起来学习下过程究竟如何进行吧!喜欢就赶紧收藏起来哦~

【 tulaoshi.com - Web开发 】

http://www.asp888.net 豆腐技术站

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/webkaifa/)

前面我曾经讲过如何在asp.net下利用socket编程实现域名查询,详细情况请看文章:asp+中实现域名查询的完整代码
豆腐有一天突然想,既然可以利用socket实现域名查询,那是不是只要是利用到socket客户端
编程的以前的 Windows 桌面程序都可以用asp.net 实现呢?说干就干,我第一个准备要做的就是
一个asp.net 版本的邮件接收程序,我们知道,在asp+中发送Email是见很方便的事情(asp+发送Email完全手册),可是怎么进行
收取pop信件的程序呢?看来只有拿出豆腐的杀手剑了:)
首先我们来看看这个程序的代码:pop.aspx
%@ Assembly Name="System.Net" %
%@ Import Namespace="System.Net" %
% @Import Namespace="System.Net.Sockets" %
%@ Import Namespace="System.IO" %
script language="C#" runat=server
protected void Page_Load(Object Src, EventArgs E){
String user="doufu"; //邮箱用户代码
String pass="asp888.net"; //邮箱用户密码
String popserver="localhost"; //pop服务器IP地址
TCPClient tcpc = new TCPClient();
if (0 == tcpc.Connect(popserver, 110))
{
//如果程序执行到这里,就表示连接Pop Server 成功
Stream s;
StreamReader sr ;
String strCmd;
Byte[] arrCmd;
String strRet;
String[] arrRet;

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/webkaifa/)

sr = new StreamReader(tcpc.GetStream(), Encoding.Default);
Response.Write(sr.ReadLine() + "br"); //mail server 的欢迎语

strRet=Logon(tcpc,user,pass);

if(JudgeString(strRet)!="+OK"){
Response.Write("对不起,没有这个用户/密码 不匹配");
return;
}

//用户和密码 匹配,下面开始 统计用户信箱的信息
//这个数组中包括了所有的返回信息
arrRet=StaticMailBox(tcpc);
if(arrRet[0]!="+OK"){
Response.Write("出错了!");
return;
}
Response.Write("当前的用户font color=blue" + user + "/font的信箱中共有font color=red" + arrRet + "/font封,共占font color=red" + arrRet + "/fontByte");

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/webkaifa/)

//收信
arrRet=PopMail(tcpc,4);
//判断返回
if(arrRet[0]!="+OK"){
Response.Write("出错了");
}
Response.Write("邮件日期:" + arrRet + "nbr");
Response.Write("发信人:" + arrRet + "nbr");
Response.Write("收信人:" + arrRet + "nbr");
Response.Write("邮件主题:" + arrRet + "nbr");
Response.Write("邮件内容:" + arrRet + "nbr");
//关闭Socket联结
tcpc.Close();
}
else
{
Response.Write("Could not connect to server!");
}
}
String SendPopCmd(TCPClient tcpc,String strCmd){
Byte[] arrCmd;
String strRet;
StreamReader sr;
Stream s;
s=tcpc.GetStream();
strCmd = strCmd + "rn";
arrCmd= Encoding.Default.GetBytes(strCmd.ToCharArray());
s=tcpc.GetStream();
s.Write(arrCmd, 0, strCmd.Length);
sr = new StreamReader(tcpc.GetStream(), Encoding.Default);
strRet=sr.ReadLine();
return strRet;
}
String Logon(TCPClient tcpc,String user,String pass){
//这个函数的功能是 对 获得联结的用户 身份进行验证
//发送 用户代码
String strRet;
strRet=SendPopCmd(tcpc,"user " + user);
strRet=SendPopCmd(tcpc,"pass " + pass);
return strRet;
}
String[] StaticMailBox(TCPClient tcpc){
String strRet;
strRet=SendPopCmd(tcpc,"stat");
if(JudgeString(strRet)!="+OK"){
return "-ERR -ERR".Split(" ".ToCharArray());
}
String[] arrRet=strRet.Split(" ".ToCharArray());
return arrRet;
}
String JudgeString(String strCheck){
if(strCheck.Substring(0,3)!="+OK"){
return "-ERR";
}
else
return "+OK";
}
String[] PopMail(TCPClient tcpc,int i){
String strRet;
bool strBody=false;
String[] arrRet =new String;
String[] arrTemp;
strRet=SendPopCmd(tcpc,"retr " + i.ToString());
if(JudgeString(strRet)!="+OK"){
//表示没有这个信件 或者 其他的错误
return "-ERR -ERR".Split(" ".ToCharArray());
}
StreamReader sr;
sr = new StreamReader(tcpc.GetStream(), Encoding.Default);
Response.Write("nBR");
Response.Write("font color=rednBR");
while (sr.Peek()!=46)
{
//呵呵,不知道 为什么 非要是 46 才可以!
strRet=sr.ReadLine();
arrTemp=strRet.Split(":".ToCharArray());
if(strR

来源:https://www.tulaoshi.com/n/20160219/1628936.html

延伸阅读
标签: Web开发
昨天一个朋友有个需求,是要通过WEB方式,修改IIS服务器上的时间,由于他的系统是ASP 3.0下开发的,所以本例子的代码是ASP的,不是ASP.NET,但是本人写这个文章是想抛砖引玉,毕竟编写程序关键的不是语言,更重要的是一种思想,把程序语言理解为一种工具,把编程思想理解为解决问题的思路和方法,那么编写出来的程序就是:利用“工具”按照...
标签: SQLServer
本文以SQL Server 2k为例说明SQL Server到Oracle连接服务器的具体实现过程。 1.要求pc机上安装oralce客户端软件和sqlserver2000软件。 2.客户端的配置tnsnames.ora文件,配置所要连接的数据库服务器(windows,unix等平台均可以) eg:tnsnames.ora ...... TEST = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST ...
WWW的工作基于客户机/服务器计算模型,由Web 浏览器(客户机)和Web服务器(服务器)构成,两者之间采用超文本传送协议(HTTP)进行通信,HTTP协议的作用原理包括四个步骤:连接,请求,应答。根据上述HTTP协议的作用原理,本文实现了GET请求的Web服务器程序的方法,通过创建TcpListener类对象,监听端口8080; 等待、接受客户机连接到端口8080...
标签: ASP
  重庆出版社电脑中心 陈刚 1.什么是ASP服务器组件 ASP(Active Server Page)是当今开发交互式Web页面、Web数据库应用最强大的技术。在其中可以混用HTML、DHTML、 ActiveX、VBScript或JavaScript。当这些技术都无法奏效时(例如进行高密度的数学运算、封装特定的数据库处理逻辑 等),可以使用服务器组件(Server SideComponent)进一...
我们中的大多数人都用过sql2008,有个小问题,就是每次打开的时候,都需要通过如下画面连接服务器 这个画面大家都很熟悉的,呵呵 今天突然想能不能把经常要用的服务器连接都保存好,不用每次都进这个画面,然后连接呢,经过查阅相关资料,果然有个懒人的方法 步骤1:   通过上图我们已经连接上服务器,在连接的服务器上点击右键...

经验教程

885

收藏

59
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部