- 浏览: 395061 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
iris_1992:
2005年以前,国外开原报表完全碾压国产软件,但是现在国内软件 ...
JasperReport报表设计总结(一)(已完毕) -
水土第一:
在flash显示jasperprintlist的时候,根据下面 ...
JasperReport报表设计总结(三)(已完毕) -
水土第一:
结构分的很清晰。。。加上applet与jasper的东西就更完 ...
JasperReport报表设计总结(三)(已完毕) -
水土第一:
windowshead 写道import cn.com.rea ...
JasperReport报表设计总结(二)(已完毕) -
zwj1533:
下载的附件服务解压!
JasperReport报表设计总结(一)(已完毕)
目前互连网上,EMAIL的使用是越来越广泛了。在所有的TCP连接线路中,大概有一半的线路是用来收发EMAIL的。因此,许多网络应用程序要想离开POP3协议是不可能的。
而且,很多EMAIL系统都是使用SMTP协议来作为发送协议,而POP3协议来作为接受协议。关于这2个协议的许多资料,你可以看一下RCF821(关于SMTP的)和RCF1225(关于POP3的)。虽然在WINDOWS操作系统中,有一个叫MAPI应用程序是来管理EMAIL的,但是它的功能还不够强大,不足以直接处理一些EMAIL服务。所以,我写了一个有关于POP3协议的C++类,在这个类中我还使用了CSocket作为一个类成员(这好象有点不可想象),这样的话呢,我们可以在连接的时候使用它。并且,该POP类使用的一些功能类似于POP3协议中的一些命令。下面就代码:
而且,很多EMAIL系统都是使用SMTP协议来作为发送协议,而POP3协议来作为接受协议。关于这2个协议的许多资料,你可以看一下RCF821(关于SMTP的)和RCF1225(关于POP3的)。虽然在WINDOWS操作系统中,有一个叫MAPI应用程序是来管理EMAIL的,但是它的功能还不够强大,不足以直接处理一些EMAIL服务。所以,我写了一个有关于POP3协议的C++类,在这个类中我还使用了CSocket作为一个类成员(这好象有点不可想象),这样的话呢,我们可以在连接的时候使用它。并且,该POP类使用的一些功能类似于POP3协议中的一些命令。下面就代码:
c 代码
- /*--------------------------------------------------------------------
- Pop.h:mainheaderfileforthePOPapplication
- -----------------------------------------------------------------------*/
- #if!defined(AFX_POP_H__A44B38B6_697C_11D1_881E_00001C302581__INCLUDED_)
- #defineAFX_POP_H__A44B38B6_697C_11D1_881E_00001C302581__INCLUDED_
- #defineCONNECTION_CHECK0
- #defineUSER_CHECK1
- #definePASSWORD_CHECK2
- #defineQUIT_CHECK3
- #defineDELETE_CHECK4
- #defineRSET_CHECK5
- #defineSTAT_CHECK6
- #defineNOOP_CHECK7
- #defineLIST_CHECK8
- #defineRETR_CHECK9
- /////////////////////////////////////////////////////////////////////////////
- classCPop
- {
- public:
- BOOLList();
- CWordArraym_SizeOfMsg;
- CStringGetErrorMessage();//Ifthereisanyerrorthiswillreturnitmethod
- CStringGetPassword();//GettingPasswordstoredinclass
- voidSetPassword(CString&Password);//SettingPasswordinclass
- CStringGetUser();//Gettingusernamestoredinclass
- voidSetUser(CString&User);//Settingusernameinclass
- CStringGetHost();//GettingHostname(emailservername)storedinclass
- voidSetHost(CString&Host);//SettingHostname(emailservername)inclass
- BOOLConnect();//Connectingtoemailserver
- intGetTotalMailSize();//itreturnstheTotalMailSize
- intGetNumberOfMails();//Itreturnthenumberofmails
- CStringGetMsgContents();
- BOOLStatistics();//issuetheSTATcommandonemailserver
- BOOLRetrieve(intMsgNumber);//Gettinganyparticularmailmessage
- BOOLReset();//issuetheresetcommandonemailserver
- intGetMessageSize(intMsgNumber);//Returnasizeofanyparticularmail
- BOOLNoop();//issuetheNOOPcommandonemailserver
- BOOLDisconnect();//issuetheQUITcommandonemailserver
- BOOLDelete(int&MsgNumber);//Deleteingaparticularmessagefromemailserver
- BOOLConnect(CString&Host,CString&User,CString&Password);
- CPop();
- virtual~CPop();
- private:
- CStringm_ErrorMessage;
- BOOLCheckResponse(intResponseType);
- CStringm_Password;
- CStringm_User;
- CStringm_Host;
- CStringm_MsgContents;
- intm_TotalSize;
- intm_NumberMail;
- CSocketm_PopServer;
- };
- /#endif//!defined(AFX_POP_H__A44B38B6_697C_11D1_881E_00001C302581__INCLUDED_)
- /*-----------------------------------------------------------------------------------------------
- //Pop.cpp:Definestheclassbehaviorsfortheapplication.
- ---------------------------------------------------------------------------------------------------*/
- #include"stdafx.h"
- #include"Pop.h"
- #ifdef_DEBUG
- #definenewDEBUG_NEW
- #undefTHIS_FILE
- staticcharTHIS_FILE[]=__FILE__;
- #endif
- ////////////////////////////////////////////////////////////////////
- //CPopClass
- //////////////////////////////////////////////////////////////////////
- //////////////////////////////////////////////////////////////////////
- //Construction/Destruction
- //////////////////////////////////////////////////////////////////////
- CPop::CPop()
- {
- m_PopServer.Create();
- }
- //{4EEC1C91-6BE1-11d1-8824-00001C302581}
- CPop::~CPop()
- {
- m_PopServer.Close();
- }
- BOOLCPop::Connect(CString&Host,CString&User,CString&Password)
- {
- charbuf[512];
- if(!m_PopServer.Connect(Host,110))//110Pop3Port
- {
- m_ErrorMessage=_T("Servercannotbeconnected");
- returnFALSE;
- }
- else
- {
- if(CheckResponse(CONNECTION_CHECK)==FALSE)
- returnFALSE;
- wsprintf(buf,"USER%s\r\n",(LPCSTR)User);
- m_PopServer.Send(buf,strlen(buf));
- if(CheckResponse(USER_CHECK)==FALSE)
- returnFALSE;
- wsprintf(buf,"PASS%s\r\n",(LPCSTR)Password);
- m_PopServer.Send(buf,strlen(buf));
- if(CheckResponse(PASSWORD_CHECK)==FALSE)
- returnFALSE;
- returnTRUE;
- }
- }
- BOOLCPop::Delete(int&MsgNumber)
- {
- charbuf[512];
- wsprintf(buf,"DELE%d\r\n",MsgNumber);
- m_PopServer.Send(buf,strlen(buf));
- if(CheckResponse(DELETE_CHECK)==FALSE)
- returnFALSE;
- else
- returnTRUE;
- }
- BOOLCPop::Disconnect()
- {
- charbuf[512];
- wsprintf(buf,"QUIT\r\n");
- m_PopServer.Send(buf,strlen(buf));
- if(CheckResponse(QUIT_CHECK)==FALSE)
- returnFALSE;
- else
- returnTRUE;
- }
- BOOLCPop::Noop()
- {
- charbuf[512];
- wsprintf(buf,"NOOP\r\n");
- m_PopServer.Send(buf,strlen(buf));
- if(CheckResponse(NOOP_CHECK)==FALSE)
- returnFALSE;
- else
- returnTRUE;
- }
- //ReturntheMsgSizeforgivenmsgnumber
- intCPop::GetMessageSize(intMsgNumber)
- {
- if(m_SizeOfMsg.GetSize()<MsgNumber+1)
- return0;
- else
- returnm_SizeOfMsg[MsgNumber+1];
- }
- BOOLCPop::Reset()
- {
- charbuf[512];
- wsprintf(buf,"RSET\r\n");
- m_PopServer.Send(buf,strlen(buf));
- if(CheckResponse(RSET_CHECK)==FALSE)
- returnFALSE;
- else
- returnTRUE;
- }
- //MsgContentswillholdthemsgbody
- BOOLCPop::Retrieve(intMsgNumber)
- {
- charbuf[512];
- wsprintf(buf,"RETR%d\r\n",MsgNumber);
- m_PopServer.Send(buf,strlen(buf));
- if(CheckResponse(RETR_CHECK)==FALSE)
- returnFALSE;
- else
- returnTRUE;
- }
- BOOLCPop::Statistics()
- {
- charbuf[512];
- wsprintf(buf,"STAT\r\n");
- m_PopServer.Send(buf,strlen(buf));
- if(CheckResponse(STAT_CHECK)==FALSE)
- returnFALSE;
- else
- returnTRUE;
- }
- CStringCPop::GetMsgContents()
- {
- returnm_MsgContents;
- }
- intCPop::GetNumberOfMails()
- {
- returnm_NumberMail;
- }
- intCPop::GetTotalMailSize()
- {
- returnm_TotalSize;
- }
- BOOLCPop::Connect()
- {
- Connect(m_Host,m_User,m_Password);
- returnTRUE;
- }
- voidCPop::SetHost(CString&Host)
- {
- m_Host=Host;
- }
- CStringCPop::GetHost()
- {
- returnm_Host;
- }
- voidCPop::SetUser(CString&User)
- {
- m_User=User;
- }
- CStringCPop::GetUser()
- {
- returnm_User;
- }
- voidCPop::SetPassword(CString&Password)
- {
- m_Password=Password;
- }
- CStringCPop::GetPassword()
- {
- returnm_Password;
- }
- BOOLCPop::CheckResponse(intResponseType)
- {
- charbuf[1000];
- for(inti=0;i<512;i++)
- buf[i]=’\0’;
- m_PopServer.Receive(buf,sizeof(buf));
- switch(ResponseType)
- {
- caseCONNECTION_CHECK:
- if(strnicmp(buf,"-ERR",4)==0)
- m_ErrorMessage=_T("BadConnection");
- returnFALSE;
- }
- break;
- caseUSER_CHECK:
- if(strnicmp(buf,"-ERR",4)==0)
- {
- m_ErrorMessage=_T("BadUserName");
- returnFALSE;
- }
- break;
- casePASSWORD_CHECK:
- if(strnicmp(buf,"-ERR",4)==0)
- {
- m_ErrorMessage=_T("BadPasswordName");
- returnFALSE;
- }
- break;
- caseQUIT_CHECK:
- if(strnicmp(buf,"-ERR",4)==0)
- {
- m_ErrorMessage=_T("ErroroccuredduringQUIT");
- returnFALSE;
- }
- break;
- caseDELETE_CHECK:
- if(strnicmp(buf,"-ERR",4)==0)
- {
- m_ErrorMessage=_T("ErroroccuredduringDELE");
- returnFALSE;
- }
- break;
- caseRSET_CHECK:
- if(strnicmp(buf,"-ERR",4)==0)
- {
- m_ErrorMessage=_T("ErroroccuredduringRSET");
- returnFALSE;
- }
- break;
- caseSTAT_CHECK:
- if(strnicmp(buf,"-ERR",4)==0)
- {
- m_ErrorMessage=_T("ErroroccuredduringSTAT");
- returnFALSE;
- }
- else
- {
- BOOLEmailNumber=TRUE;
- for(char*p=buf;*p!=’\0’;p++)
- {
- if(*p==’\t’||*p==’’)
- {
- if(EmailNumber==TRUE)
- {
- m_NumberMail=atoi(p);
- EmailNumber=FALSE;
- }
- else
- {
- m_TotalSize=atoi(p);
- returnTRUE;
- }
- }
- }
- }
- break;
- caseNOOP_CHECK:
- if(strnicmp(buf,"-ERR",4)==0)
- {
- m_ErrorMessage=_T("ErroroccuredduringNOOP");
- returnFALSE;
- }
- break;
- caseLIST_CHECK:
- if(strnicmp(buf,"-ERR",4)==0)
- {
- m_ErrorMessage=_T("ErroroccuredduringLIST");
- returnFALSE;
- }
- else
- {
- m_PopServer.Receive(buf,sizeof(buf));
- for(char*p=buf;*p!=’.’;p++)
- if(*p==’\t’||*p==’’)
- m_SizeOfMsg.Add(atoi(p));
- }
- break;
- caseRETR_CHECK:
- if(strnicmp(buf,"-ERR",4)==0)
- {
- m_ErrorMessage=_T("ErroroccuredduringRETR");
- returnFALSE;
- }
- else
- {
- chartemp[9000];
- m_PopServer.Receive(temp,sizeof(temp));
- m_MsgContents=temp;
- }
- break;
- }
- returnTRUE;
- }
- CStringCPop::GetErrorMessage()
- {
- returnm_ErrorMessage;
- }
- BOOLCPop::List()
- {
- charbuf[512];
- wsprintf(buf,"LIST\r\n");
- m_PopServer.Send(buf,strlen(buf));
- if(CheckResponse(LIST_CHECK)==FALSE)
- returnFALSE;
- else
- returnTRUE;
- }
发表评论
-
JavaMail使用注意
2012-12-12 23:55 1005在使用JavaMail发送邮件时候,需要注意,如果在收件人中过 ... -
怎样接收电子邮件(POP3协议简介)
2007-08-15 09:04 1654在Internet,POP3(PostOfficeProtoc ... -
什么叫pop3服务
2007-08-15 09:03 1197POP3(Post Office Protocol 3) PO ... -
POP3邮局协议-版本3
2007-08-15 09:00 11281.简介 对于在网络上的 ... -
RFC1939-POP3协议中文版
2007-08-15 08:57 13781.简介 对于在网络上的比较小的结点,支持消息传输系统( ... -
POP3协议命令原始码及工作原理
2007-08-15 08:51 1281POP3协议命令原始码及工作原理 一 简介: 1. P ... -
SMTP服务扩展
2007-08-15 08:45 1309SMTP提供一种可靠的有效的传送机制,它用于传送电子邮件。虽然 ... -
SMTP协议的命令和应答
2007-08-15 08:44 1290从前面的通讯模型可以 ... -
SMTP协议通讯模型
2007-08-15 08:43 1508SMTP协议是TCP/IP协议族中的一员,主要对如何将电子邮件 ... -
SMTP协议简介
2007-08-15 08:42 1254SMTP被用来在因特网上传 ... -
SMTP协议原始命令码和工作原理
2007-08-15 08:41 14541.SMTP是工作在两种情况下:一是电子邮件从客户机传输到服务 ... -
SMTP、POP3、IMAP协议解释
2007-08-15 08:39 13242smtp协议简介 1 ... -
JavaMail发送接收邮件
2007-08-14 15:07 4269近日正在对于开发的框架进行完善。 已经很久没有更新博客了,天天 ...
相关推荐
pop3协议封装类pop3协议封装类pop3协议封装类pop3协议封装类pop3协议封装类pop3协议封装类pop3协议封装类
pop3协议封装类pop3协议封装类pop3协议封装类
在描述中提到的"自已根据SMTP/POP3协议封装的邮件发送组件",意味着这是一个由个人开发者创建的工具,它将SMTP和POP3协议的功能集成到了一个组件中,简化了邮件发送和接收的编程过程。这样的组件通常会提供C#等编程...
- 在MFC程序中实现POP3协议,通常需要创建自定义的网络通信类,如CMFCPOP3Client,该类负责与服务器交互。 - 使用MFC的CSocket或CInternetSession类进行网络通信,这些类封装了Winsock API,简化了TCP连接和数据...
8. **库的使用**:虽然可以直接使用套接字编程实现POP3客户端,但C#社区已有现成的库,如`MailKit`或`System.Net.Mail`,它们封装了POP3协议,提供了更高级别的接口,使开发更加便捷。 压缩包中的"source"文件可能...
标题 "支持pop3的mfc类" 指的是在Microsoft Foundation Class (MFC) 库中使用C++实现的类,这些类可以用来处理POP3(Post Office Protocol version 3)协议,POP3是一种标准的邮件接收协议,主要用于从邮件服务器...
本程序是一个可移植的(Win32/Linux)邮件接收(支持POP3协议)程序,并编写了可移 植SOCKET和POP3封装类,希望能为初学者提供一些帮助。 编译: Win32: 在VC++6.0下编译通过,并运行良好。 Linux: 在G++下编译通过,请...
POP3协议提供了一系列命令,如`LIST`和`RETR`,用于获取邮件信息和内容。 ```cpp void QMailManager::fetchMessages() { // 使用POP3的LIST命令获取邮件数量 // ... // 然后使用RETR命令逐个下载邮件 // ... } ...
“php_pop3操作类”是一个封装了POP3协议操作的PHP类库,其主要特点包括: - **连接管理**:提供建立、维护和关闭与POP3服务器的连接。 - **邮件检索**:支持从服务器上检索所有或特定邮件,包括邮件头部和体部。 -...
这个“POP3.rar_pop3_pop3.”文件很可能包含了一个完整的POP3协议实现,将该协议的功能集成到一个类中,便于开发者在自己的应用程序中使用。通过这个压缩包,我们可以深入理解POP3的工作原理以及如何在实际项目中...
- POP3协议主要用于下载邮件,而不是发送邮件,后者通常由SMTP(Simple Mail Transfer Protocol)处理。 - POP3工作流程包括登录、列出邮件、下载邮件和退出等步骤。 - 客户端与服务器之间的通信基于TCP/IP连接。...
在制作收发邮件的.NET程序时,一般使用JAMIL等第三方组件,但对于需要SSL安全验证的邮箱就有些麻烦了,其实有两种办法,SOCKET和POP3扩展协议,这里上传了一个Pop3mimeclient类实现的收发SSL类邮箱的小程序,该类是...
开发者不需要深入了解POP3协议的细节,只需调用相应的类方法,就可以实现邮件的下载和管理。这使得开发人员可以更专注于应用程序的其他核心功能,而不是花费大量时间在邮件系统的实现上。 在实际应用中,这个pop3类...
在给定的标题和描述中,我们看到“POP3.MFC”指的是使用Microsoft Foundation Class (MFC) 库来实现POP3协议的C++编程示例。 MFC是微软提供的一套C++库,它封装了Windows API,简化了Windows应用程序的开发。通过...
18.zip Net Tools<br>网络工具(7KB)<END><br>96,19.zip Network Enumeration 列举网络(7KB)<END><br>97,20.zip POP3 Protocol wrapper class 支持POP3协议的类(7KB)<END><br>98,21.zip Posting ...
在本文中,我们将深入探讨如何使用Microsoft Foundation Class (MFC)库来开发一个简单的邮件客户端,该客户端实现了POP3和SMTP协议,以便实现邮件的接收和发送。首先,我们需要了解这些基本概念: **POP3(Post ...
首先,要实现一个POP3客户端,需要理解和实现POP3协议的基本命令。POP3协议主要有以下步骤: 1. **连接服务器**:客户端通过TCP/IP建立与POP3服务器的连接,通常使用110端口。 2. **身份验证**:发送`USER`命令提供...
POP3协议主要负责从邮件服务器上下载邮件到本地客户端。它基于TCP/IP,通常在110端口上运行。POP3操作分为三个阶段:应答、登录和传输。在应答阶段,客户端与服务器建立连接;在登录阶段,客户端提供用户名和密码...
经过封装的socket类,内附简单的pop3和http协议的简单应用源码