www.pudn.com > doc2pdf-0_7_1.rar > doc2pdf_pop3.h


///////////////////////////////////////////////////////////////////////////// 
//  
// Project:		Doc2pdf 
// 
// File:		doc2pdf_pop3.h 
// 
// Author(s):	Matt Peterson  
// 
// Description:	Pop3 email reader 
// 
///////////////////////////////////////////////////////////////////////////// 
 
#ifndef DOC2PDF_POP3_H_INCLUDED 
#define DOC2PDF_POP3_H_INCLUDED 
 
#include "doc2pdf_email.h" 
#include "doc2pdf_io.h" 
 
 
enum ParseState {UNKNOWN,FROM,TO,REPLYTO,CC,SUBJECT,CONTENTTYPE,CONTENTDISPOSITION,CONTENTENCODING,CONTENTDESCRIPTION}; 
 
//=========================================================================== 
// Reads email from Pop3 
class Doc2pdfPop3Reader 
{ 
protected: 
	CString m_Pop3host; 
	CString m_Pop3user; 
	CString m_Pop3passwd; 
	CString m_Maildir; 
 
	// For Fixing up ISO encoded filenames  
	int FixFilenameData(const CString& contenttype, 
		                CString& data); 
 
	 
	// Returns zero on success, non-zero on failure 
	int ReadAttachment(Doc2pdfIO* io,  
		               const CString& boundary, 
					   const CString& filename, 
					   ContentEncoding encoding, 
					   Doc2pdfEmail& email); 
 
	// Zero on success, non-zero on error 
	int FigureOutContentType(const CString& contenttype, 
		                     const CString& contentdisposition, 
							 const CString& contentencoding, 
							 const CString& contentdescription, 
							 ContentType& type, 
							 ContentEncoding& encoding, 
							 CString& data); 
		 
	// Returns zero on success, non-zero on failure 
	int ReadMultipart(Doc2pdfIO*  io,  
		              CString boundary, 
					  Doc2pdfEmail& email); 
	 
	// Returns zero on success, non-zero on failure 
	int ReadMultipartHeader(Doc2pdfIO*  io,  
		                    ContentType& type, 
							ContentEncoding& encoding, 
							CString& boundary); 
 
	// Returns zero on success, non-zero on failure 
	int ReadBody(Doc2pdfIO*  io,  
		         const CString& boundary, 
				 Doc2pdfEmail& email);	 
	 
	// Returns zero on success, non-zero on failure 
	int ReadHeader(Doc2pdfIO*  io,  
		           ContentType& type, 
				   ContentEncoding& encoding, 
				   Doc2pdfEmail& email); 
 
	// Returns zero on success, non-zero on failure 
	int ReadEmail(Doc2pdfIO*  io, int number, Doc2pdfEmail& email); 
 
	// Returns zero on success, non-zero on failure 
	int DeleteEmail(Doc2pdfIO*  io, int number); 
 
	// Returns zero on success, non-zero on failure 
	int Login(Doc2pdfIO* io); 
 
	// Returns zero on success, non-zero on failure 
	int Logout(Doc2pdfIO* io); 
 
public: 
	Doc2pdfPop3Reader(); 
	~Doc2pdfPop3Reader(); 
	 
	// Returns zero on success, non-zero on error 
	int Init(const CString& pop3host, 
		     const CString& pop3user, 
			 const CString& pop3passwd, 
			 const CString& maildir); 
	 
	// Returns number of emails read 
	int ReadAllEmail(Doc2pdfEmailList& email); 
	 
	// Delete count emails 
	int Doc2pdfPop3Reader::DeleteAllEmail(int count); 
}; 
 
#endif