Example #1
0
        public static SMTPResponse DataHandler(SMTPTransaction transaction, string data)
        {
            transaction.Server.TriggerNewMessage(transaction, transaction.GetProperty <MailPath>("ReversePath"),
                                                 transaction.GetListProperty <MailPath>("ForwardPath").ToArray(), data);

            transaction.Reset();

            return(new SMTPResponse(SMTPStatusCode.Okay));
        }
Example #2
0
        public override SMTPResponse DoExecute(SMTPTransaction transaction, string parameters)
        {
            if (!string.IsNullOrWhiteSpace(parameters))
            {
                return(new SMTPResponse(SMTPStatusCode.SyntaxError));
            }

            transaction.Reset();
            return(new SMTPResponse(SMTPStatusCode.Okay));
        }
Example #3
0
        public override SMTPResponse DoExecute(SMTPTransaction transaction, string parameters)
        {
            if (string.IsNullOrWhiteSpace(parameters))
            {
                return(new SMTPResponse(SMTPStatusCode.SyntaxError));
            }

            transaction.Reset();
            transaction.Initialize(parameters);

            return(new SMTPResponse(SMTPStatusCode.Okay, transaction.Settings.Greet));
        }
Example #4
0
        public void TestResetDataMode()
        {
            using (ShimsContext.Create())
            {
                var server      = new ShimSMTPServer();
                var settings    = new StubIReceiveSettings();
                var transaction = new SMTPTransaction(server, settings);

                Assert.False(transaction.InDataMode);

                transaction.StartDataMode((s, builder) => false, s => new SMTPResponse(SMTPStatusCode.Okay));
                Assert.True(transaction.InDataMode);

                transaction.Reset();
                Assert.False(transaction.InDataMode);
            }
        }
Example #5
0
        public override SMTPResponse DoExecute(SMTPTransaction transaction, string parameters)
        {
            if (string.IsNullOrWhiteSpace(parameters))
            {
                return(new SMTPResponse(SMTPStatusCode.SyntaxError));
            }

            transaction.Reset();
            transaction.Initialize(parameters);

            var ehlos = Server.GetListProperty <Func <SMTPTransaction, string> >("EHLOLines");
            var l     = new List <string> {
                transaction.Settings.Greet
            };

            l.AddRange(ehlos.Select(e => e(transaction)).Where(e => !string.IsNullOrEmpty(e)));

            return(new SMTPResponse(SMTPStatusCode.Okay, l.ToArray()));
        }
Example #6
0
        public void TestResetProperties()
        {
            using (ShimsContext.Create())
            {
                var server      = new ShimSMTPServer();
                var settings    = new StubIReceiveSettings();
                var transaction = new SMTPTransaction(server, settings);

                transaction.SetProperty("foo", "bar", false);
                transaction.SetProperty("foo2", "baz", true);
                Assert.True(transaction.HasProperty("foo"));
                Assert.Equal("bar", transaction.GetProperty <string>("foo"));
                Assert.True(transaction.HasProperty("foo2"));
                Assert.Equal("baz", transaction.GetProperty <string>("foo2"));

                transaction.Reset();
                Assert.False(transaction.HasProperty("foo"));
                Assert.Equal(default(string), transaction.GetProperty <string>("foo"));
                Assert.True(transaction.HasProperty("foo2"));
                Assert.Equal("baz", transaction.GetProperty <string>("foo2"));
            }
        }