goopendmarchistoryfile

package module
v0.0.5 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 4, 2022 License: MIT Imports: 6 Imported by: 0

README

go-opendmarc-historyfile

This package is a definition of a Record of the .dat historyfile used by the opendmarc tools to send aggregated dmarc reports.

The .dat file can be used by the opendmarc-tools:

https://manpages.debian.org/unstable/opendmarc/opendmarc-import.8.en.html https://manpages.debian.org/unstable/opendmarc/opendmarc-importstats.8.en.html https://manpages.debian.org/unstable/opendmarc/opendmarc-expire.8.en.html https://manpages.debian.org/unstable/opendmarc/opendmarc-reports.8.en.html

Documentation

Index

Constants

View Source
const SPF_RESULT_UNDEFINIED authres.ResultValue = "undefined"

Variables

This section is empty.

Functions

This section is empty.

Types

type ARCPolicyValue

type ARCPolicyValue int
const (
	DMARC_ARC_POLICY_RESULT_PASS   ARCPolicyValue = 0
	DMARC_ARC_POLICY_RESULT_UNUSED ARCPolicyValue = 1
	DMARC_ARC_POLICY_RESULT_FAIL   ARCPolicyValue = 2 // should be the default
)

type DMARCPolicy

type DMARCPolicy int

DMARCPolicy to enforce, as follows:

14 = unknown (no record found)
15 = pass
16 = reject
17 = quarantine
18 = none
const (
	DMARC_POLICY_ABSENT     DMARCPolicy = 14 /* Policy up to you. No DMARC record found */
	DMARC_POLICY_PASS       DMARCPolicy = 15 /* Policy OK so accept message */
	DMARC_POLICY_REJECT     DMARCPolicy = 16 /* Policy says to reject message */
	DMARC_POLICY_QUARANTINE DMARCPolicy = 17 /* Policy says to quarantine message */
	DMARC_POLICY_NONE       DMARCPolicy = 18 /* Policy says to monitor and report */

)

type DMARCResult

type DMARCResult int
const (
	DMARC_RESULT_REJECT     DMARCResult = 0
	DMARC_RESULT_DISCARD    DMARCResult = 1
	DMARC_RESULT_ACCEPT     DMARCResult = 2
	DMARC_RESULT_TEMPFAIL   DMARCResult = 3
	DMARC_RESULT_QUARANTINE DMARCResult = 4
)

type Record

type Record struct {
	Received  time.Time // %ld
	JobID     string
	Reporter  string // hostname
	IPAddr    string // ipv4 or v6
	From      string // MIME Header FROM Domain
	EnvFrom   string // MAIL FROM DOMAIN
	PDomain   string // policy domain (the "organizational" domain, the one asserting policy)
	ARCPolicy string // arc_policy %d(=ARCPolicyValue) json:[instance{"i":%d,"d":"%s","s":"%s","ip":"%s"},... instance{}...]
	RUA       string // empty value: "-""
	Policy    DMARCPolicy
	PCT       int                 // from DNS value 0 to 100 (not in dns=100)
	ADKIM     dmarc.AlignmentMode // published policy's alignment rule for DKIM and SPF (114 = relaxed, 115 = strict)
	ASPF      dmarc.AlignmentMode // published policy's alignment rule for DKIM and SPF (114 = relaxed, 115 = strict)
	P         dmarc.Policy        // Policy from DNS Record (required in dns)
	SP        dmarc.Policy        // SubDomainPolicy from DNS Record (optional in dns)
	AlignDKIM bool                // whether identifier alignment was established (4 = yes, 5 = no)
	AlignSPF  bool                // whether identifier alignment was established (4 = yes, 5 = no)
	ARC       bool                // ARC evaluation (0 = pass, 7 = fail) = https://github.com/trusteddomainproject/OpenDMARC/issues/214
	SPF       authres.ResultValue // SPF (0 = pass, 2 = fail, 6 = none, -1 = not evaluated)
	Action    DMARCResult
}

func (Record) String

func (r Record) String() string

func (*Record) WriteTo

func (r *Record) WriteTo(w io.Writer) (n int64, err error)

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL