/// <summary> /// TopLines constructor. /// </summary> /// <param name="session">Reference to pop3 session.</param> /// <param name="message">Message which to get.</param> /// <param name="socket">Connected socket.</param> /// <param name="nLines">Number of lines to get.</param> public POP3_Message_EventArgs(POP3_Session session, POP3_Message message, Socket socket, int nLines) { m_pSession = session; m_pMessage = message; m_pSocket = socket; m_Lines = nLines; }
/// <summary> /// Default constructor. /// </summary> /// <param name="session">Reference to pop3 session.</param> /// <param name="userName">Username.</param> /// <param name="passwData">Password data.</param> /// <param name="data">Authentication specific data(as tag).</param> /// <param name="authType">Authentication type.</param> public AuthUser_EventArgs(POP3_Session session, string userName, string passwData, string data, AuthType authType) { m_pSession = session; m_UserName = userName; m_PasswData = passwData; m_Data = data; m_AuthType = authType; }
/// <summary> /// Default constructor. /// </summary> /// <param name="session">Reference to pop3 session.</param> /// <param name="userName">Username.</param> /// <param name="passwData">Password data.</param> /// <param name="data">Authentication specific data(as tag).</param> /// <param name="authType">Authentication type.</param> public AuthUser_EventArgs(POP3_Session session,string userName,string passwData,string data,AuthType authType) { m_pSession = session; m_UserName = userName; m_PasswData = passwData; m_Data = data; m_AuthType = authType; }
/// <summary> /// Gest pop3 messages info. /// </summary> /// <param name="session"></param> /// <param name="messages"></param> internal virtual void OnGetMessagesInfo(POP3_Session session, POP3_Messages messages) { GetMessagesInfo_EventArgs oArg = new GetMessagesInfo_EventArgs(session, messages, session.UserName); if (this.GetMessgesList != null) { this.GetMessgesList(this, oArg); } }
/// <summary> /// Raises event GetTopLines. /// </summary> /// <param name="session"></param> /// <param name="message">Message wich top lines to get.</param> /// <param name="nLines">Header + number of body lines to get.</param> /// <returns></returns> internal byte[] OnGetTopLines(POP3_Session session, POP3_Message message, int nLines) { POP3_Message_EventArgs oArgs = new POP3_Message_EventArgs(session, message, null, nLines); if (this.GetTopLines != null) { this.GetTopLines(this, oArgs); } return(oArgs.MessageData); }
/// <summary> /// Raises event 'GetMessageStream'. /// </summary> /// <param name="session">Reference to POP3 session.</param> /// <param name="messageInfo">Message info what message stream to get.</param> /// <returns></returns> internal POP3_eArgs_GetMessageStream OnGetMessageStream(POP3_Session session, POP3_Message messageInfo) { POP3_eArgs_GetMessageStream eArgs = new POP3_eArgs_GetMessageStream(session, messageInfo); if (this.GetMessageStream != null) { this.GetMessageStream(this, eArgs); } return(eArgs); }
/// <summary> /// Raises delete message event. /// </summary> /// <param name="session"></param> /// <param name="message">Message which to delete.</param> /// <returns></returns> internal virtual bool OnDeleteMessage(POP3_Session session, POP3_Message message) { POP3_Message_EventArgs oArg = new POP3_Message_EventArgs(session, message, null); if (this.DeleteMessage != null) { this.DeleteMessage(this, oArg); } return(true); }
/// <summary> /// Raises event get message. /// </summary> /// <param name="session"></param> /// <param name="message">Message which to get.</param> /// <param name="sessionSocket">Message which to get.</param> /// <returns></returns> internal virtual byte[] OnGetMail(POP3_Session session, POP3_Message message, Socket sessionSocket) { POP3_Message_EventArgs oArg = new POP3_Message_EventArgs(session, message, sessionSocket); if (this.GetMessage != null) { this.GetMessage(this, oArg); } return(oArg.MessageData); }
/// <summary> /// Authenticates user. /// </summary> /// <param name="session">Reference to current pop3 session.</param> /// <param name="userName">User name.</param> /// <param name="passwData"></param> /// <param name="data"></param> /// <param name="authType"></param> /// <returns></returns> internal virtual bool OnAuthUser(POP3_Session session, string userName, string passwData, string data, AuthType authType) { AuthUser_EventArgs oArg = new AuthUser_EventArgs(session, userName, passwData, data, authType); if (this.AuthUser != null) { this.AuthUser(this, oArg); } return(oArg.Validated); }
/// <summary> /// Initialize and start new session here. Session isn't added to session list automatically, /// session must add itself to server session list by calling AddSession(). /// </summary> /// <param name="socket">Connected client socket.</param> /// <param name="bindInfo">BindInfo what accepted socket.</param> protected override void InitNewSession(Socket socket, IPBindInfo bindInfo) { // Check maximum conncurent connections from 1 IP. if (m_MaxConnectionsPerIP > 0) { lock (this.Sessions){ int nSessions = 0; foreach (SocketServerSession s in this.Sessions) { IPEndPoint ipEndpoint = s.RemoteEndPoint; if (ipEndpoint != null) { if (ipEndpoint.Address.Equals(((IPEndPoint)socket.RemoteEndPoint).Address)) { nSessions++; } } // Maximum allowed exceeded if (nSessions >= m_MaxConnectionsPerIP) { socket.Send(System.Text.Encoding.ASCII.GetBytes("-ERR Maximum connections from your IP address is exceeded, try again later !\r\n")); socket.Shutdown(SocketShutdown.Both); socket.Close(); return; } } } } string sessionID = Guid.NewGuid().ToString(); SocketEx socketEx = new SocketEx(socket); if (LogCommands) { socketEx.Logger = new SocketLogger(socket, this.SessionLog); socketEx.Logger.SessionID = sessionID; } POP3_Session session = new POP3_Session(sessionID, socketEx, bindInfo, this); }
/// <summary> /// Default constructor. /// </summary> /// <param name="session">Reference to pop3 session.</param> /// <param name="message">Message which to get.</param> /// <param name="socket">Connected socket.</param> public POP3_Message_EventArgs(POP3_Session session, POP3_Message message, Socket socket) { m_pSession = session; m_pMessage = message; m_pSocket = socket; }
/// <summary> /// Default constructor. /// </summary> /// <param name="session">Reference to current POP3 session.</param> /// <param name="messageInfo">Message info what message items to get.</param> public POP3_eArgs_GetMessageStream(POP3_Session session, POP3_Message messageInfo) { m_pSession = session; m_pMessageInfo = messageInfo; }
/// <summary> /// /// </summary> /// <param name="socket"></param> protected override void InitNewSession(Socket socket) { _LogWriter logWriter = new _LogWriter(this.SessionLog); POP3_Session session = new POP3_Session(socket, this, logWriter); }
/// <summary> /// Default constructor. /// </summary> /// <param name="session">Reference to pop3 session.</param> /// <param name="messages"></param> /// <param name="mailbox">Mailbox name.</param> public GetMessagesInfo_EventArgs(POP3_Session session, POP3_MessageCollection messages, string mailbox) { m_pSession = session; m_pPOP3_Messages = messages; m_UserName = mailbox; }
/// <summary> /// Default constructor. /// </summary> /// <param name="session">Reference to pop3 session.</param> /// <param name="messages"></param> /// <param name="mailbox">Mailbox name.</param> public GetMessagesInfo_EventArgs(POP3_Session session, POP3_MessageCollection messages, string mailbox) { m_pSession = session; m_pPOP3_Messages = messages; m_UserName = mailbox; }