Пример #1
0
        public virtual EhloSmtpResponse Ehlo(String localHostName)
        {
            EhloSmtpResponse ehloResponse = new EhloSmtpResponse();

            ehloResponse.AddAvailableAuthType("login");
            ehloResponse.Message      = "OK";
            ehloResponse.ResponseCode = 250;
            return(ehloResponse);
        }
Пример #2
0
        public void TestFailedSmtpNegotiationWithAuth()
        {
            SmtpServer smtpserver = new SmtpServer("localhost");

            smtpserver.SmtpAuthToken = new SmtpAuthToken("test", "test");


            Base64Encoder encoder        = Base64Encoder.GetInstance();
            String        base64Username = encoder.EncodeString(smtpserver.SmtpAuthToken.UserName, System.Text.Encoding.ASCII);
            String        base64Password = encoder.EncodeString(smtpserver.SmtpAuthToken.Password, System.Text.Encoding.ASCII);

            EmailMessage emailMessage = GetTestHtmlAndTextMessage();

            IMock mockSmtpProxy = new DynamicMock(typeof(ISmtpProxy));

            mockSmtpProxy.ExpectAndReturn("Open", new SmtpResponse(220, "welcome to the mock object server"), null);

            EhloSmtpResponse ehloResponse = new EhloSmtpResponse();

            ehloResponse.AddAvailableAuthType("login");

            ehloResponse.Message      = "OK";
            ehloResponse.ResponseCode = 250;
            mockSmtpProxy.ExpectAndReturn("Ehlo", ehloResponse, Dns.GetHostName());
            mockSmtpProxy.ExpectAndReturn("Auth", new SmtpResponse(554, "Unrecognized auth type"), "login");

            ISmtpProxy smtpProxy = (ISmtpProxy)mockSmtpProxy.MockInstance;

            smtpserver.OverrideSmtpProxy(smtpProxy);

            /*
             * mockSmtpProxy.ExpectAndReturn("SendString", new SmtpResponse(554, "Invalid UserName"), base64Username);
             * mockSmtpProxy.ExpectAndReturn("SendString", new SmtpResponse(554, "Invalid Password"), base64Password);
             * mockSmtpProxy.ExpectAndReturn("MailFrom", new SmtpResponse(250, "mail from"), emailMessage.FromAddress);
             * foreach (EmailAddress rcpttoaddr in emailMessage.ToAddresses)
             * {
             *      mockSmtpProxy.ExpectAndReturn("RcptTo", new SmtpResponse(250, "receipt to"), rcpttoaddr);
             * }
             * mockSmtpProxy.ExpectAndReturn("Data", new SmtpResponse(354, "data open"), null);
             * mockSmtpProxy.ExpectAndReturn("WriteData", new SmtpResponse(250, "data"), emailMessage.ToDataString());
             *
             * mockSmtpProxy.ExpectAndReturn("Quit", new SmtpResponse(221, "quit"), null);
             * mockSmtpProxy.Expect("Close", null);
             */

            try
            {
                emailMessage.Send(smtpserver);
                Assert.Fail("The auth type is wrong");
            }
            catch (SmtpException ex)
            {
                log.Debug("ERROR CODE IS " + 554);
                Assert.AreEqual(554, ex.ErrorCode);
            }
        }
Пример #3
0
        public void TestForcedLoginSmtpNegotiationWithAuth()
        {
            SmtpServer smtpserver = new SmtpServer("localhost");

            smtpserver.SmtpAuthToken = new LoginAuthToken("test", "testtest");


            Base64Encoder encoder        = Base64Encoder.GetInstance();
            String        base64Username = encoder.EncodeString(smtpserver.SmtpAuthToken.UserName, System.Text.Encoding.ASCII);
            String        base64Password = encoder.EncodeString(smtpserver.SmtpAuthToken.Password, System.Text.Encoding.ASCII);

            EmailMessage emailMessage = GetTestHtmlAndTextMessage();

            IMock mockSmtpProxy = new DynamicMock(typeof(ISmtpProxy));

            mockSmtpProxy.ExpectAndReturn("Open", new SmtpResponse(220, "welcome to the mock object server"), null);

            EhloSmtpResponse ehloResponse = new EhloSmtpResponse();

            ehloResponse.AddAvailableAuthType("login");

            ehloResponse.Message      = "OK";
            ehloResponse.ResponseCode = 250;
            mockSmtpProxy.ExpectAndReturn("Ehlo", ehloResponse, Dns.GetHostName());

            mockSmtpProxy.ExpectAndReturn("Auth", new SmtpResponse(334, encoder.EncodeString("Username:"******"login");
            mockSmtpProxy.ExpectAndReturn("SendString", new SmtpResponse(334, encoder.EncodeString("Password:"******"SendString", new SmtpResponse(235, "Hooray, Authenticated"), base64Password);
            mockSmtpProxy.ExpectAndReturn("MailFrom", new SmtpResponse(250, "mail from"), emailMessage.FromAddress);
            foreach (EmailAddress rcpttoaddr in emailMessage.ToAddresses)
            {
                mockSmtpProxy.ExpectAndReturn("RcptTo", new SmtpResponse(250, "receipt to"), rcpttoaddr);
            }
            mockSmtpProxy.ExpectAndReturn("Data", new SmtpResponse(354, "data open"), null);
            mockSmtpProxy.ExpectAndReturn("WriteData", new SmtpResponse(250, "data"), emailMessage.ToDataString());

            mockSmtpProxy.ExpectAndReturn("Quit", new SmtpResponse(221, "quit"), null);
            mockSmtpProxy.Expect("Close", null);

            ISmtpProxy smtpProxy = (ISmtpProxy)mockSmtpProxy.MockInstance;


            smtpserver.OverrideSmtpProxy(smtpProxy);

            try
            {
                emailMessage.Send(smtpserver);
            }
            catch (SmtpException ex)
            {
                log.Debug("Exception was " + ex.Message);
                log.Debug(ex.StackTrace);
                throw ex;
            }
        }