DMARC/SPF: auto-add version info
This commit is contained in:
parent
97dbac5c2d
commit
95c36568d4
3 changed files with 15 additions and 5 deletions
|
@ -137,7 +137,7 @@ func (s *EMail) GenRRs(domain string, ttl uint32, origin string) (rrs []dns.RR)
|
||||||
Class: dns.ClassINET,
|
Class: dns.ClassINET,
|
||||||
Ttl: ttl,
|
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 {
|
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)
|
err = a.UseRR(record, domain, service)
|
||||||
|
|
|
@ -40,5 +40,9 @@ type DMARC struct {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (t *DMARC) String() string {
|
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
|
package svcs
|
||||||
|
|
||||||
import ()
|
import (
|
||||||
|
"strings"
|
||||||
|
)
|
||||||
|
|
||||||
type SPFDirective struct {
|
type SPFDirective struct {
|
||||||
Qualifier byte
|
Qualifier byte
|
||||||
|
@ -56,5 +58,9 @@ type SPF struct {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (t *SPF) String() string {
|
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…
Add table
Add a link
Reference in a new issue