mirror of
https://github.com/mjl-/mox.git
synced 2025-07-13 06:54:38 +03:00
when message is delivered, save whether it is from a mailing list; in webmail, show if message was a forward or mailing list, and don't enable requiretls when sending to a list.
This commit is contained in:
@ -68,6 +68,18 @@ const (
|
||||
reasonIPrev = "iprev" // No or mild junk reputation signals, and bad iprev.
|
||||
)
|
||||
|
||||
func isListDomain(d delivery, ld dns.Domain) bool {
|
||||
if d.m.MailFromValidated && ld.Name() == d.m.MailFromDomain {
|
||||
return true
|
||||
}
|
||||
for _, r := range d.dkimResults {
|
||||
if r.Status == dkim.StatusPass && r.Sig.Domain == ld {
|
||||
return true
|
||||
}
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
func analyze(ctx context.Context, log *mlog.Log, resolver dns.Resolver, d delivery) analysis {
|
||||
mailbox := d.rcptAcc.destination.Mailbox
|
||||
if mailbox == "" {
|
||||
@ -81,16 +93,11 @@ func analyze(ctx context.Context, log *mlog.Log, resolver dns.Resolver, d delive
|
||||
mailbox = rs.Mailbox
|
||||
}
|
||||
if rs != nil && !rs.ListAllowDNSDomain.IsZero() {
|
||||
ld := rs.ListAllowDNSDomain
|
||||
// todo: on temporary failures, reject temporarily?
|
||||
if d.m.MailFromValidated && ld.Name() == d.m.MailFromDomain {
|
||||
if isListDomain(d, rs.ListAllowDNSDomain) {
|
||||
d.m.IsMailingList = true
|
||||
return analysis{accept: true, mailbox: mailbox, reason: reasonListAllow, dmarcOverrideReason: string(dmarcrpt.PolicyOverrideMailingList)}
|
||||
}
|
||||
for _, r := range d.dkimResults {
|
||||
if r.Status == dkim.StatusPass && r.Sig.Domain == ld {
|
||||
return analysis{accept: true, mailbox: mailbox, reason: reasonListAllow, dmarcOverrideReason: string(dmarcrpt.PolicyOverrideMailingList)}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
var dmarcOverrideReason string
|
||||
|
Reference in New Issue
Block a user