Beispiel #1
0
        private string _mailDom = null;                                 // domain part of a mail address
        #endregion

        #region "instance"
        // init
        public SMTPsession(TcpClient client)
        {
            try
            {
                this._sessCount = AppGlobals.addSession();
                this._sessionID = AppGlobals.sessionID();
                this._hostName  = AppGlobals.hostName;

                if (null != AppGlobals.LocalDomains)
                {
                    this._mailDomains = AppGlobals.LocalDomains;
                }
                if (null != AppGlobals.LocalMailBoxes)
                {
                    this._mailBoxes = AppGlobals.LocalMailBoxes;
                }

                this._client   = client;
                this._clientIP = this._client.Client.RemoteEndPoint.ToString();
                int i = this._clientIP.IndexOf(':');
                if (-1 != i)
                {
                    this._clientIP = this._clientIP.Substring(0, i);
                }
                this._client.ReceiveTimeout = AppGlobals.receiveTimeout;

                this._stream           = this._client.GetStream();
                this._reader           = new StreamReader(this._stream);
                this._writer           = new StreamWriter(this._stream);
                this._writer.NewLine   = "\r\n";
                this._writer.AutoFlush = true;

                AppGlobals.writeConsole("client {0} connected, sess={1}, ID={2}.", this._clientIP, this._sessCount, this._sessionID);
                this._initOk = true;
            }
            catch (Exception ex)
            {
                AppGlobals.writeConsole("SMTPsession::Exception: " + ex.Message);
                closeSession();
            }
        }