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)); }
public override SMTPResponse DoExecute(SMTPTransaction transaction, string parameters) { if (!string.IsNullOrWhiteSpace(parameters)) { return(new SMTPResponse(SMTPStatusCode.SyntaxError)); } transaction.Reset(); return(new SMTPResponse(SMTPStatusCode.Okay)); }
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)); }
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); } }
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())); }
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")); } }