validator

package
v0.0.14 Latest Latest
Warning

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

Go to latest
Published: Aug 29, 2022 License: MIT Imports: 12 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	ErrInvalidHost        = errors.New("invalid host")
	ErrEmailAddressSyntax = errors.New("invalid syntax")
)

Functions

func MightBeAHostOrIP

func MightBeAHostOrIP(h string) bool

MightBeAHostOrIP is a very rudimentary check to see if the argument could be either a host name or IP address It aims at speed and not correctness. It's intended to weed-out bogus responses such as '.'

Types

type Artifact

type Artifact struct {
	Validations validations.Validations
	Steps       validations.Steps
	Timings
	// contains filtered or unexported fields
}

type ArtifactFn

type ArtifactFn func(artifact *Artifact)

func WithDeadlineCTX

func WithDeadlineCTX(ctx context.Context) ArtifactFn

func WithDialer

func WithDialer(dialer *net.Dialer) ArtifactFn

type CheckFn

type CheckFn func(ctx context.Context, parts types.EmailParts, options ...ArtifactFn) Result

type Details added in v0.0.9

type Details struct {
	Result

	ValidUntil time.Time
}

type DialContext

type DialContext interface {
	DialContext(ctx context.Context, network, address string) (net.Conn, error)
}

type EmailValidator

type EmailValidator struct {
	// contains filtered or unexported fields
}

func NewEmailAddressValidator

func NewEmailAddressValidator(dialer *net.Dialer) EmailValidator

func (*EmailValidator) CheckWithConnect

func (v *EmailValidator) CheckWithConnect(ctx context.Context, emailParts types.EmailParts, options ...ArtifactFn) Result

CheckWithConnect performs a thorough check, which has the low chance of false-positives. It also tests if the MX server accepts connections, but won't try any mail commands.

func (*EmailValidator) CheckWithLookup

func (v *EmailValidator) CheckWithLookup(ctx context.Context, emailParts types.EmailParts, options ...ArtifactFn) Result

CheckWithLookup performs a sanity check using DNS lookups. It won't connect to the actual hosts.

func (*EmailValidator) CheckWithRCPT added in v0.0.14

func (v *EmailValidator) CheckWithRCPT(ctx context.Context, emailParts types.EmailParts, options ...ArtifactFn) Result

CheckWithRCPT performs a thorough check, which includes a RCPT check. It requires a valid PTR and is probably not something you want to offer as a user-facing service.

Warning: Using this _can_ degrade your IPs reputation, since it's also a process spammers use.

func (*EmailValidator) CheckWithSyntax

func (v *EmailValidator) CheckWithSyntax(ctx context.Context, emailParts types.EmailParts, options ...ArtifactFn) Result

CheckWithSyntax performs only a syntax check.

type LookupMX

type LookupMX interface {
	LookupMX(ctx context.Context, domain string) ([]*net.MX, error)
}

type Result

type Result struct {
	Validations validations.Validations
	Steps       validations.Steps
}

func (Result) HasValidStructure

func (r Result) HasValidStructure() bool

func (Result) ValidatorsRan

func (r Result) ValidatorsRan() bool

type Timing

type Timing struct {
	Label    string
	Duration time.Duration
}

type Timings

type Timings []Timing

func (*Timings) Add

func (t *Timings) Add(l string, d time.Duration)

type ValidationError

type ValidationError struct {
	Validator string
	Internal  error
	// contains filtered or unexported fields
}

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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