mirror of
https://github.com/axllent/mailpit.git
synced 2025-03-17 21:18:19 +02:00
Chore: Allow setting of multiple message tags via plus addresses (#253)
This commit is contained in:
parent
d1d0ce4737
commit
e660d6bedd
@ -13,7 +13,7 @@ import (
|
||||
)
|
||||
|
||||
var (
|
||||
addressPlusRe = regexp.MustCompile(`^(.*){1,}\+(.*)@`)
|
||||
addressPlusRe = regexp.MustCompile(`(?U)^(.*){1,}\+(.*)@`)
|
||||
)
|
||||
|
||||
// SetMessageTags will set the tags for a given database ID
|
||||
@ -246,25 +246,25 @@ func (d DBMailSummary) tagsFromPlusAddresses() string {
|
||||
tags := []string{}
|
||||
for _, c := range d.To {
|
||||
matches := addressPlusRe.FindAllStringSubmatch(c.String(), 1)
|
||||
if len(matches) == 1 && config.ValidTagRegexp.MatchString(matches[0][2]) {
|
||||
tags = append(tags, matches[0][2])
|
||||
if len(matches) == 1 {
|
||||
tags = append(tags, strings.Split(matches[0][2], "+")...)
|
||||
}
|
||||
}
|
||||
for _, c := range d.Cc {
|
||||
matches := addressPlusRe.FindAllStringSubmatch(c.String(), 1)
|
||||
if len(matches) == 1 && config.ValidTagRegexp.MatchString(matches[0][2]) {
|
||||
tags = append(tags, matches[0][2])
|
||||
if len(matches) == 1 {
|
||||
tags = append(tags, strings.Split(matches[0][2], "+")...)
|
||||
}
|
||||
}
|
||||
for _, c := range d.Bcc {
|
||||
matches := addressPlusRe.FindAllStringSubmatch(c.String(), 1)
|
||||
if len(matches) == 1 && config.ValidTagRegexp.MatchString(matches[0][2]) {
|
||||
tags = append(tags, matches[0][2])
|
||||
if len(matches) == 1 {
|
||||
tags = append(tags, strings.Split(matches[0][2], "+")...)
|
||||
}
|
||||
}
|
||||
matches := addressPlusRe.FindAllStringSubmatch(d.From.String(), 1)
|
||||
if len(matches) == 1 && config.ValidTagRegexp.MatchString(matches[0][2]) {
|
||||
tags = append(tags, matches[0][2])
|
||||
if len(matches) == 1 {
|
||||
tags = append(tags, strings.Split(matches[0][2], "+")...)
|
||||
}
|
||||
|
||||
return strings.Join(tags, ",")
|
||||
|
Loading…
x
Reference in New Issue
Block a user