package dmarc

import ""

Package dmarc implements DMARC as specified in RFC 7489.


Package Files

dmarc.go lookup.go


const (
    PolicyNone       Policy = "none"
    PolicyQuarantine        = "quarantine"
    PolicyReject            = "reject"


var ErrNoPolicy = errors.New("dmarc: no policy found for domain")

func IsTempFail

func IsTempFail(err error) bool

IsTempFail returns true if the error returned by Lookup is a temporary failure.

type AlignmentMode

type AlignmentMode string
const (
    AlignmentStrict  AlignmentMode = "s"
    AlignmentRelaxed               = "r"

type FailureOptions

type FailureOptions int
const (
    FailureAll  FailureOptions = 1 << iota // "0"
    FailureAny                             // "1"
    FailureDKIM                            // "d"
    FailureSPF                             // "s"

type LookupOptions

type LookupOptions struct {
    LookupTXT func(domain string) ([]string, error)

LookupOptions allows to customize the default signature verification behavior LookupTXT returns the DNS TXT records for the given domain name. If nil, net.LookupTXT is used

type Policy

type Policy string

type Record

type Record struct {
    DKIMAlignment      AlignmentMode  // "adkim"
    SPFAlignment       AlignmentMode  // "aspf"
    FailureOptions     FailureOptions // "fo"
    Policy             Policy         // "p"
    Percent            *int           // "pct"
    ReportFormat       []ReportFormat // "rf"
    ReportInterval     time.Duration  // "ri"
    ReportURIAggregate []string       // "rua"
    ReportURIFailure   []string       // "ruf"
    SubdomainPolicy    Policy         // "sp"

Record is a DMARC record, as defined in RFC 7489 section 6.3.

func Lookup

func Lookup(domain string) (*Record, error)

Lookup queries a DMARC record for a specified domain.

func LookupWithOptions

func LookupWithOptions(domain string, options *LookupOptions) (*Record, error)

func Parse

func Parse(txt string) (*Record, error)

type ReportFormat

type ReportFormat string
const (
    ReportFormatAFRF ReportFormat = "afrf"

Package dmarc imports 6 packages (graph).

Version v0.6.5 (latest) | Published Mar 30, 2021 | Platform: linux/amd64 | Updated 6 days ago

Tools for package owners.