Esempio n. 1
0
 /// <summary>
 /// Create a new SMTP response.
 /// </summary>
 /// <param name="StatusCode">The SMTP status code.</param>
 /// <param name="Response">The SMTP response text.</param>
 /// <param name="MoreDataAvailable">True, if more result lines are available.</param>
 public SMTPExtendedResponse(SMTPStatusCode  StatusCode,
                             String          Response           = "",
                             Boolean         MoreDataAvailable  = false)
     : base(StatusCode, Response)
 {
     this._MoreDataAvailable  = MoreDataAvailable;
 }
Esempio n. 2
0
        /// <summary>
        /// Create a new SMTP response.
        /// </summary>
        /// <param name="StatusCode">The SMTP status code.</param>
        /// <param name="Response">The SMTP response text.</param>
        /// <param name="MoreDataAvailable">True, if more result lines are available.</param>
        public SMTPExtendedResponse(SMTPStatusCode StatusCode,
                                    String Response           = "",
                                    Boolean MoreDataAvailable = false)

            : base(StatusCode, Response)

        {
            this._MoreDataAvailable = MoreDataAvailable;
        }
Esempio n. 3
0
        public SMTPResponse(SMTPStatusCode code, params string[] args)
        {
            if (args == null)
            {
                throw new ArgumentNullException();
            }

            Code = code;
            Args = args;
        }
Esempio n. 4
0
        public static void WriteLineSMTP(this TCPConnection TCPConn, SMTPStatusCode StatusCode, params String[] Response)
        {
            var n = (UInt64) Response.Where(line => line.IsNotNullOrEmpty()).Count();

            Response.
                Where(line => line.IsNotNullOrEmpty()).
                ForEachCounted((response, i) => {
                    TCPConn.WriteLineToResponseStream(((Int32) StatusCode) + (i < n ? "-" : " ") + response);
                    Debug.WriteLine(">> " +           ((Int32) StatusCode) + (i < n ? "-" : " ") + response);
                });

            TCPConn.Flush();
        }
Esempio n. 5
0
        public static void WriteLineSMTP(this TCPConnection TCPConn, SMTPStatusCode StatusCode, params String[] Response)
        {
            var n = (UInt64)Response.Where(line => line.IsNotNullOrEmpty()).Count();

            Response.
            Where(line => line.IsNotNullOrEmpty()).
            ForEachCounted((response, i) => {
                TCPConn.WriteLineToResponseStream(((Int32)StatusCode) + (i < n ? "-" : " ") + response);
                Debug.WriteLine(">> " + ((Int32)StatusCode) + (i < n ? "-" : " ") + response);
            });

            TCPConn.Flush();
        }
Esempio n. 6
0
        private void NotifyErrors(TCPConnection TCPConnection,
                                  DateTime Timestamp,
                                  String SMTPCommand,
                                  SMTPStatusCode SMTPStatusCode,
                                  EMail EMail = null,
                                  SMTPExtendedResponse Response = null,
                                  String Error            = null,
                                  Exception LastException = null,
                                  Boolean CloseConnection = true)
        {
            var ErrorLogLocal = ErrorLog;

            if (ErrorLogLocal != null)
            {
                ErrorLogLocal(this, Timestamp, SMTPCommand, EMail, Response, Error, LastException);
            }
        }
Esempio n. 7
0
        public void TestToString(SMTPStatusCode code, string[] args, string expected)
        {
            var result = new SMTPResponse(code, args).ToString();

            Assert.Equal(expected, result);
        }
Esempio n. 8
0
 /// <summary>
 /// Create a new SMTP response.
 /// </summary>
 /// <param name="StatusCode">The SMTP status code.</param>
 /// <param name="Response">The SMTP response text.</param>
 public SMTPResponse(SMTPStatusCode StatusCode,
                     String Response = "")
 {
     this._StatusCode = StatusCode;
     this._Response   = Response;
 }
Esempio n. 9
0
 /// <summary>
 /// Create a new SMTP response.
 /// </summary>
 /// <param name="StatusCode">The SMTP status code.</param>
 /// <param name="Response">The SMTP response text.</param>
 public SMTPResponse(SMTPStatusCode  StatusCode,
                     String          Response  = "")
 {
     this._StatusCode  = StatusCode;
     this._Response    = Response;
 }
Esempio n. 10
0
        public void TestDoExecuteError(bool enableTLS, bool isSecured, string parameters, SMTPStatusCode code)
        {
            using (ShimsContext.Create())
            {
                Transaction.SettingsGet = () => new StubIReceiveSettings
                {
                    EnableTLSGet = () => enableTLS
                };
                Transaction.TLSActiveGet = () => isSecured;

                var started = false;
                Transaction.StartTLSCancelEventArgs = args => { started = true; };

                var handler  = new STARTTLSHandler();
                var response = handler.DoExecute(Transaction, parameters);

                Assert.Equal(code, response.Code);
                Assert.False(started);
            }
        }