mirror of
https://github.com/jhillyerd/inbucket.git
synced 2025-12-18 10:07:02 +00:00
@@ -58,7 +58,7 @@ const (
|
|||||||
// as quoted pair and in double quoted strings (?i) makes the regex case insensitive, (?:) is
|
// as quoted pair and in double quoted strings (?i) makes the regex case insensitive, (?:) is
|
||||||
// non-grouping sub-match. Accepts empty angle bracket value in options for 'AUTH=<>'.
|
// non-grouping sub-match. Accepts empty angle bracket value in options for 'AUTH=<>'.
|
||||||
var fromRegex = regexp.MustCompile(
|
var fromRegex = regexp.MustCompile(
|
||||||
`(?i)^FROM:\s*<((?:(?:\\>|[^>])+|"[^"]+"@[^>])+)?>( [\w= ]+(?:=<>)?)?$`)
|
`(?i)^FROM:\s*<((?:(?:\\>|[^>])+|"[^"]+"@[^>])+)?>( ([\w= ]|=<>)+)?$`)
|
||||||
|
|
||||||
func (s State) String() string {
|
func (s State) String() string {
|
||||||
switch s {
|
switch s {
|
||||||
@@ -619,7 +619,7 @@ func (s *Session) parseCmd(line string) (cmd string, arg string, ok bool) {
|
|||||||
// The leading space is mandatory.
|
// The leading space is mandatory.
|
||||||
func (s *Session) parseArgs(arg string) (args map[string]string, ok bool) {
|
func (s *Session) parseArgs(arg string) (args map[string]string, ok bool) {
|
||||||
args = make(map[string]string)
|
args = make(map[string]string)
|
||||||
re := regexp.MustCompile(` (\w+)=(\w+)`)
|
re := regexp.MustCompile(` (\w+)=(\w+|<>)`)
|
||||||
pm := re.FindAllStringSubmatch(arg, -1)
|
pm := re.FindAllStringSubmatch(arg, -1)
|
||||||
if pm == nil {
|
if pm == nil {
|
||||||
s.logger.Warn().Msgf("Failed to parse arg string: %q", arg)
|
s.logger.Warn().Msgf("Failed to parse arg string: %q", arg)
|
||||||
|
|||||||
@@ -197,6 +197,8 @@ func TestReadyState(t *testing.T) {
|
|||||||
{"RSET", 250},
|
{"RSET", 250},
|
||||||
{"MAIL FROM:<bounces@onmicrosoft.com> SIZE=4096 AUTH=<>", 250},
|
{"MAIL FROM:<bounces@onmicrosoft.com> SIZE=4096 AUTH=<>", 250},
|
||||||
{"RSET", 250},
|
{"RSET", 250},
|
||||||
|
{"MAIL FROM:<b@o.com> SIZE=4096 AUTH=<> BODY=7BIT", 250},
|
||||||
|
{"RSET", 250},
|
||||||
{"MAIL FROM:<host!host!user/data@foo.com>", 250},
|
{"MAIL FROM:<host!host!user/data@foo.com>", 250},
|
||||||
{"RSET", 250},
|
{"RSET", 250},
|
||||||
{"MAIL FROM:<\"first last\"@space.com>", 250},
|
{"MAIL FROM:<\"first last\"@space.com>", 250},
|
||||||
|
|||||||
Reference in New Issue
Block a user