mirror of
https://github.com/axllent/mailpit.git
synced 2025-07-17 01:32:33 +02:00
Merge branch 'release/v1.14.2'
This commit is contained in:
@ -2,6 +2,15 @@
|
||||
|
||||
Notable changes to Mailpit will be documented in this file.
|
||||
|
||||
## [v1.14.2]
|
||||
|
||||
### Chore
|
||||
- Allow setting of multiple message tags via plus addresses ([#253](https://github.com/axllent/mailpit/issues/253))
|
||||
|
||||
### Fix
|
||||
- Prevent runtime error when calculating total messages size of empty table ([#263](https://github.com/axllent/mailpit/issues/263))
|
||||
|
||||
|
||||
## [v1.14.1]
|
||||
|
||||
### Chore
|
||||
|
@ -51,7 +51,7 @@ func getDeletedSize() int64 {
|
||||
|
||||
// The total raw non-compressed messages size in bytes of all messages in the database
|
||||
func totalMessagesSize() int64 {
|
||||
var result int64
|
||||
var result sql.NullInt64
|
||||
err := sqlf.From("mailbox").
|
||||
Select("SUM(Size)").To(&result).
|
||||
QueryAndClose(nil, db, func(row *sql.Rows) {})
|
||||
@ -60,7 +60,7 @@ func totalMessagesSize() int64 {
|
||||
return 0
|
||||
}
|
||||
|
||||
return result
|
||||
return result.Int64
|
||||
}
|
||||
|
||||
// AddDeletedSize will add the value to the DeletedSize setting
|
||||
|
@ -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, ",")
|
||||
|
Reference in New Issue
Block a user