DMARC/SPF: auto-add version info
This commit is contained in:
parent
97dbac5c2d
commit
95c36568d4
|
@ -137,7 +137,7 @@ func (s *EMail) GenRRs(domain string, ttl uint32, origin string) (rrs []dns.RR)
|
|||
Class: dns.ClassINET,
|
||||
Ttl: ttl,
|
||||
},
|
||||
Txt: utils.SplitN("v=spf1 "+s.SPF.String(), 255),
|
||||
Txt: utils.SplitN(s.SPF.String(), 255),
|
||||
})
|
||||
}
|
||||
|
||||
|
@ -276,7 +276,7 @@ func email_analyze(a *svcs.Analyzer) (err error) {
|
|||
}
|
||||
|
||||
if txt, ok := record.(*dns.TXT); ok {
|
||||
service.DMARC.Fields = append(service.DMARC.Fields, strings.Split(strings.Join(txt.Txt, ""), ";")...)
|
||||
service.DMARC.Fields = append(service.DMARC.Fields, strings.Split(strings.TrimPrefix(strings.Join(txt.Txt, ""), "v=DMARC1;"), ";")...)
|
||||
}
|
||||
|
||||
err = a.UseRR(record, domain, service)
|
||||
|
|
|
@ -40,5 +40,9 @@ type DMARC struct {
|
|||
}
|
||||
|
||||
func (t *DMARC) String() string {
|
||||
return strings.Join(t.Fields, ";")
|
||||
var fields = t.Fields[:]
|
||||
if len(t.Fields) == 0 || t.Fields[0] != "v=DMARC1" {
|
||||
fields = append([]string{"v=DMARC1"}, fields...)
|
||||
}
|
||||
return strings.Join(fields, ";")
|
||||
}
|
||||
|
|
|
@ -31,7 +31,9 @@
|
|||
|
||||
package svcs
|
||||
|
||||
import ()
|
||||
import (
|
||||
"strings"
|
||||
)
|
||||
|
||||
type SPFDirective struct {
|
||||
Qualifier byte
|
||||
|
@ -56,5 +58,9 @@ type SPF struct {
|
|||
}
|
||||
|
||||
func (t *SPF) String() string {
|
||||
return t.Content
|
||||
var ret = t.Content
|
||||
if !strings.HasPrefix(ret, "v=spf1") {
|
||||
ret = "v=spf1 " + ret
|
||||
}
|
||||
return ret
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue