protected override SmtpResponse ProcessCommandRcptTo(string name, string arguments)
        {
            var notIdentified = CreateResponseIfNotIdentified();

            if (notIdentified.HasValue)
            {
                return(notIdentified);
            }

            var hasNotMailFrom = CreateResponseIfHasNotMailFrom();

            if (hasNotMailFrom.HasValue)
            {
                return(hasNotMailFrom);
            }

            var recipient = arguments.Trim();
            MailAddressWithParameters mailAddressWithParameters;

            try { mailAddressWithParameters = MailAddressWithParameters.Parse(recipient); }
            catch (FormatException)
            {
                return(SmtpResponses.SyntaxError);
            }

            var response = _responderFactory.RecipientToResponder.VerifyRecipientTo(SessionInfo, mailAddressWithParameters);

            if (response.Success)
            {
                SessionInfo.Recipients.Add(mailAddressWithParameters);
            }

            return(response);
        }
        public SmtpResponse VerifyMailFrom(ISmtpSessionInfo sessionInfo, MailAddressWithParameters mailAddressWithParameters)
        {
            if (!_emailValidator.Validate(mailAddressWithParameters.MailAddress))
                return SmtpResponses.SyntaxError;

            return SmtpResponses.OK;
        }
        public void multiple_nonvalue_parameters_with_mail_address_and_whitespaces(string rawMailAddress)
        {
            var mailAddressWithParameters = MailAddressWithParameters.Parse(rawMailAddress);

            Assert.Equal("", mailAddressWithParameters.Parameters["PARAM1"]);
            Assert.Equal("", mailAddressWithParameters.Parameters["PARAM2"]);
        }
        private static SmtpSessionInfoResponder RecipientMailFromIdentifiedParseResponder(ISmtpResponderFactory factory = null)
        {
            var parseResponder = MailFromIdentifiedParseResponder(factory);

            parseResponder.SessionInfo.Recipients.Add(MailAddressWithParameters.Parse("test@localhost"));
            return(parseResponder);
        }
        public void multiple_value_parameters_parsed_with_mail_address_and_whitespaces(string rawMailAddress)
        {
            var mailAddressWithParameters = MailAddressWithParameters.Parse(rawMailAddress);

            Assert.Equal("VALUE1", mailAddressWithParameters.Parameters["NAME1"]);
            Assert.Equal("VALUE2", mailAddressWithParameters.Parameters["NAME2"]);
        }
Beispiel #6
0
        protected override SmtpResponse ProcessCommandMailFrom(string name, string arguments)
        {
            var notIdentified = CreateResponseIfNotIdentified();

            if (notIdentified != SmtpResponse.None)
            {
                return(notIdentified);
            }

            var mailFrom = arguments.Trim();
            MailAddressWithParameters mailAddressWithParameters;

            try { mailAddressWithParameters = MailAddressWithParameters.Parse(mailFrom); }
            catch (FormatException)
            {
                return(SmtpResponse.SyntaxError);
            }

            var response = _responderFactory.MailFromResponder.VerifyMailFrom(SessionInfo, mailAddressWithParameters);

            if (response.Success)
            {
                SessionInfo.MailFrom = mailAddressWithParameters;
            }

            return(response);
        }
Beispiel #7
0
        public SmtpResponse VerifyRecipientTo(ISmtpSessionInfo sessionInfo, MailAddressWithParameters mailAddressWithParameters)
        {
            if (!_emailValidator.Validate(mailAddressWithParameters.MailAddress))
            {
                return(SmtpResponses.SyntaxError);
            }

            return(SmtpResponses.OK);
        }
 virtual public SmtpResponse VerifyMailFrom(ISmtpSessionInfo sessionInfo, MailAddressWithParameters mailAddressWithParameters)
 {
     return !_emailValidator.Validate(mailAddressWithParameters.MailAddress) ? SmtpResponses.SyntaxError : SmtpResponses.MailFromOk;
 }
Beispiel #9
0
 public SmtpResponse VerifyRecipientTo(SmtpSessionInfo sessionInfo, MailAddressWithParameters mailAddressWithParameters)
 {
     return(SmtpResponse.OK);
 }
 public SmtpResponse VerifyRecipientTo(ISmtpSessionInfo sessionInfo, MailAddressWithParameters mailAddressWithParameters)
 {
     return !_emailValidator.Validate(mailAddressWithParameters.MailAddress) ? SmtpResponses.SyntaxError : SmtpResponses.RcptToOk;
 }
        public void parameter_values_parsed_with_mail_address_and_whitespaces(string rawMailAddress)
        {
            var mailAddressWithParameters = MailAddressWithParameters.Parse(rawMailAddress);

            Assert.Equal("VALUE", mailAddressWithParameters.Parameters["name"]);
        }
 public void mail_address_parsed_with_whitespaces_and_parameter_values(string rawMailAddress)
 {
     Assert.Equal("*****@*****.**", MailAddressWithParameters.Parse(rawMailAddress).MailAddress);
 }
 public void parse_valid_mail_addresses_with_same_host(string rawMailAddress)
 {
     Assert.Equal("test.com", MailAddressWithParameters.Parse(rawMailAddress).Host);
 }
 public void parse_blank_throws_exception()
 {
     Assert.Throws <ArgumentException>(
         () => MailAddressWithParameters.Parse(""));
 }
 public void parse_null_throws_exception()
 {
     Assert.Throws <ArgumentNullException>(
         () => MailAddressWithParameters.Parse(null));
 }
Beispiel #16
0
 public SmtpResponse VerifyMailFrom(SmtpSessionInfo sessionInfo, MailAddressWithParameters mailAddressWithParameters)
 {
     return(SmtpResponse.OK);
 }