⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 inetmail.h

📁 radius协议源码÷The Radius Stack will connect to a Radius Server. This stack implementation is built upo
💻 H
📖 第 1 页 / 共 2 页
字号:
    );    virtual void OnSendMail(      const PCaselessString & sender  // Name of sender.    );    // Common code for OnMAIL(), OnSEND(), OnSOML() and OnSAML() funtions.    /** Read a standard text message that is being received by the socket. The       text message is terminated by a line with a '.' character alone.       The default behaviour is to read the data into the <CODE>buffer</CODE>       parameter until either the end of the message or when the       <CODE>messageBufferSize</CODE> bytes have been read.       @return       TRUE if partial message received, FALSE if the end of the data was       received.     */    virtual BOOL OnTextData(PCharArray & buffer, BOOL & completed);    /** Read an eight bit MIME message that is being received by the socket. The       MIME message is terminated by the CR/LF/./CR/LF sequence.       The default behaviour is to read the data into the <CODE>buffer</CODE>       parameter until either the end of the message or when the       <CODE>messageBufferSize</CODE> bytes have been read.       @return       TRUE if partial message received, FALSE if the end of the data was       received.     */    virtual BOOL OnMIMEData(PCharArray & buffer, BOOL & completed);  // Member variables    BOOL        extendedHello;    BOOL        eightBitMIME;    PString     fromAddress;    PString     fromPath;    PStringList toNames;    PStringList toDomains;    PINDEX      messageBufferSize;    enum { WasMAIL, WasSEND, WasSAML, WasSOML } sendCommand;    StuffState  endMIMEDetectState;};//////////////////////////////////////////////////////////////////////////////// PPOP3/** A TCP/IP socket for the Post Office Protocol version 3.   When acting as a client, the procedure is to make the connection to a   remote server, then to retrieve a message using the following procedure:      <PRE><CODE>      PPOP3Client mail("popserver");      if (mail.IsOpen()) {        if (mail.LogIn("Me", "password")) {          if (mail.GetMessageCount() > 0) {            PUnsignedArray sizes = mail.GetMessageSizes();            for (PINDEX i = 0; i < sizes.GetSize(); i++) {              if (mail.BeginMessage(i+1))                mail.Read(myMessage, sizes[i]);              else                PError << "Error getting mail message." << endl;            }          }          else            PError << "No mail messages." << endl;        }        else           PError << "Mail log in failed." << endl;      }      else         PError << "Mail conection failed." << endl;      </PRE></CODE>    When acting as a server, a descendant class would be created to override    at least the <A>HandleOpenMailbox()</A>, <A>HandleSendMessage()</A> and    <A>HandleDeleteMessage()</A> functions. Other functions may be overridden    for further enhancement to the sockets capabilities, but these will give a    basic POP3 server functionality.    The server socket thread would continuously call the    <A>ProcessMessage()</A> function until it returns FALSE. This will then    call the appropriate virtual function on parsing the POP3 protocol. */class PPOP3 : public PInternetProtocol{  PCLASSINFO(PPOP3, PInternetProtocol)  public:    enum Commands {      USER, PASS, QUIT, RSET, NOOP, STATcmd,      LIST, RETR, DELE, APOP, TOP,  UIDL,      NumCommands    };  protected:    PPOP3();    /** Parse a response line string into a response code and any extra info       on the line. Results are placed into the member variables       <CODE>lastResponseCode</CODE> and <CODE>lastResponseInfo</CODE>.       The default bahaviour looks for a space or a '-' and splits the code       and info either side of that character, then returns FALSE.       @return       Position of continuation character in response, 0 if no continuation       lines are possible.     */    virtual PINDEX ParseResponse(      const PString & line // Input response line to be parsed    );  // Member variables    static PString okResponse;    static PString errResponse;};/** A TCP/IP socket for the Post Office Protocol version 3.   When acting as a client, the procedure is to make the connection to a   remote server, then to retrieve a message using the following procedure:      <PRE><CODE>      PPOP3Client mail;      if (mail.Connect("popserver")) {        if (mail.LogIn("Me", "password")) {          if (mail.GetMessageCount() > 0) {            PUnsignedArray sizes = mail.GetMessageSizes();            for (PINDEX i = 0; i < sizes.GetSize(); i++) {              if (mail.BeginMessage(i+1))                mail.Read(myMessage, sizes[i]);              else                PError << "Error getting mail message." << endl;            }          }          else            PError << "No mail messages." << endl;        }        else           PError << "Mail log in failed." << endl;      }      else         PError << "Mail conection failed." << endl;      </PRE></CODE> */class PPOP3Client : public PPOP3{  PCLASSINFO(PPOP3Client, PPOP3)  public:    /** Create a TCP/IP POP3 protocol socket channel. The parameterless form       creates an unopened socket, the form with the <CODE>address</CODE>       parameter makes a connection to a remote system, opening the socket. The       form with the <CODE>socket</CODE> parameter opens the socket to an       incoming call from a "listening" socket.     */    PPOP3Client();    /** Destroy the channel object. This will close the channel and as a       client, QUIT from remote POP3 server.     */    ~PPOP3Client();  // Overrides from class PChannel.    /** Close the socket, and if connected as a client, QUITs from server.       @return       TRUE if the channel was closed and the QUIT accepted by the server.     */    virtual BOOL Close();  // New functions for class.    /** Log into the POP server using the mailbox and access codes specified.       @return       TRUE if logged in.     */    BOOL LogIn(      const PString & username,   // User name on remote system.      const PString & password    // Password for user name.    );    /** Get a count of the number of messages in the mail box.       @return       Number of messages in mailbox or -1 if an error occurred.     */    int GetMessageCount();    /** Get an array of a integers representing the sizes of each of the       messages in the mail box.       @return       Array of integers representing the size of each message.     */    PUnsignedArray GetMessageSizes();    /** Get an array of a strings representing the standard internet message       headers of each of the messages in the mail box.       Note that the remote server may not support this function, in which       case an empty array will be returned.       @return       Array of strings continaing message headers.     */    PStringArray GetMessageHeaders();    /* Begin the retrieval of an entire message. The application may then use       the <A>PApplicationSocket::ReadLine()</A> function with the       <CODE>unstuffLine</CODE> parameter set to TRUE. Repeated calls until       its return valus is FALSE will read the message headers and body.       @return       Array of strings continaing message headers.     */    BOOL BeginMessage(      PINDEX messageNumber        /** Number of message to retrieve. This is an integer from 1 to the           maximum number of messages available.         */    );    /** Delete the message specified from the mail box.       @return       Array of strings continaing message headers.     */    BOOL DeleteMessage(      PINDEX messageNumber        /* Number of message to retrieve. This is an integer from 1 to the           maximum number of messages available.         */    );  protected:    BOOL OnOpen();  // Member variables    BOOL loggedIn;};/** A TCP/IP socket for the Post Office Protocol version 3.    When acting as a server, a descendant class would be created to override    at least the <A>HandleOpenMailbox()</A>, <A>HandleSendMessage()</A> and    <A>HandleDeleteMessage()</A> functions. Other functions may be overridden    for further enhancement to the sockets capabilities, but these will give a    basic POP3 server functionality.    The server socket thread would continuously call the    <A>ProcessMessage()</A> function until it returns FALSE. This will then    call the appropriate virtual function on parsing the POP3 protocol. */class PPOP3Server : public PPOP3{  PCLASSINFO(PPOP3Server, PPOP3)  public:    /** Create a TCP/IP POP3 protocol socket channel. The parameterless form       creates an unopened socket, the form with the <CODE>address</CODE>       parameter makes a connection to a remote system, opening the socket. The       form with the <CODE>socket</CODE> parameter opens the socket to an       incoming call from a "listening" socket.     */    PPOP3Server();  // New functions for class.    /** Process commands, dispatching to the appropriate virtual function. This       is used when the socket is acting as a server.       @return       TRUE if more processing may be done, FALSE if the QUIT command was       received or the <A>OnUnknown()</A> function returns FALSE.     */    BOOL ProcessCommand();    /** Log the specified user into the mail system and return sizes of each       message in mail box.       The user override of this function is expected to populate the protected       member fields <CODE>messageSizes</CODE> and <CODE>messageIDs</CODE>.       @return       TRUE if user and password were valid.     */    virtual BOOL HandleOpenMailbox(      const PString & username,  // User name for mail box      const PString & password   // Password for user name    );    /** Handle the sending of the specified message to the remote client. The       data written to the socket will automatically have the '.' character       stuffing enabled.       @return       TRUE if successfully sent message.     */    virtual void HandleSendMessage(      PINDEX messageNumber, // Number of message to send.      const PString & id,   // Unique id of message to send.      PINDEX lines          // Nuumber of lines in body of message to send.    );        /** Handle the deleting of the specified message from the mail box. This is       called when the OnQUIT command is called for each message that was       deleted using the DELE command.       @return       TRUE if successfully sent message.     */    virtual void HandleDeleteMessage(      PINDEX messageNumber, // Number of message to send.      const PString & id    // Unique id of message to send.    );      protected:    BOOL OnOpen();    virtual void OnUSER(      const PString & name  // Name of user.    );    // Specify user name (mailbox).    virtual void OnPASS(      const PString & passwd  // Password for account.    );    // Specify password and log user in.    virtual void OnQUIT();    // End connection, saving all changes (delete messages).    virtual void OnRSET();    // Reset connection (undelete messages).    virtual void OnNOOP();    // Do nothing.    virtual void OnSTAT();    // Get number of messages in mailbox.    /** Get the size of a message in mailbox. If <CODE>msg</CODE> is 0 then get       sizes of all messages in mailbox.     */    virtual void OnLIST(      PINDEX msg  // Number of message.    );    virtual void OnRETR(      PINDEX msg  // Number of message.    );    // Retrieve a message from mailbox.    virtual void OnDELE(      PINDEX msg  // Number of message.    );    // Delete a message from mailbox.    virtual void OnTOP(      PINDEX msg,  // Number of message.      PINDEX count // Count of messages    );    // Get the message header and top <CODE>count</CODE> lines of message.    /** Get unique ID for message in mailbox. If <CODE>msg</CODE> is 0 then get       all IDs for all messages in mailbox.     */    virtual void OnUIDL(      PINDEX msg  // Number of message.    );    /** Handle an unknown command.       @return       TRUE if more processing may be done, FALSE if the       <A>ProcessCommand()</A> function is to return FALSE.     */    virtual BOOL OnUnknown(      const PCaselessString & command  // Complete command line received.    );  // Member variables    PString        username;    PUnsignedArray messageSizes;    PStringArray   messageIDs;    PBYTEArray     messageDeletions;};#endif  // _PMAILPROTOCOL// End Of File ///////////////////////////////////////////////////////////////

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -