domain-auth-0.2.4: Domain authentication library
Safe HaskellSafe-Inferred
LanguageHaskell2010

Network.DomainAuth.SPF

Description

Synopsis

Documentation

runSPF :: Limit -> Resolver -> Domain -> IP -> IO DAResult Source #

Process SPF authentication. IP is an IP address of an SMTP peer. If Domain is specified from SMTP MAIL FROM, authentication is based on SPF. If Domain is specified from the From field of mail header, authentication is based on SenderID. If condition reaches Limit, SpfPermError is returned.

>>> rs <- makeResolvSeed defaultResolvConf

pass (IPv4 & IPv6):

>>> withResolver rs $ \rslv -> runSPF defaultLimit rslv "mew.org" "202.238.220.92"
pass
>>> withResolver rs $ \rslv -> runSPF defaultLimit rslv "iij.ad.jp" "2001:240:bb5f:86c::1:41"
pass

hardfail:

>>> withResolver rs $ \rslv -> runSPF defaultLimit rslv "example.org" "192.0.2.1"
hardfail

redirect and include:

>>> withResolver rs $ \rslv -> runSPF defaultLimit rslv "gmail.com" "72.14.192.1"
pass
>>> withResolver rs $ \rslv -> runSPF defaultLimit rslv "gmail.com" "72.14.128.1"
softfail

limit:

>>> let limit1 = defaultLimit { ipv4_masklen = 24 }
>>> withResolver rs $ \rslv -> runSPF limit1 rslv "gmail.com" "72.14.192.1"
softfail

data Limit Source #

Limit for SPF authentication.

Constructors

Limit 

Fields

Instances

Instances details
Show Limit Source # 
Instance details

Defined in Network.DomainAuth.SPF.Eval

Methods

showsPrec :: Int -> Limit -> ShowS #

show :: Limit -> String #

showList :: [Limit] -> ShowS #

Eq Limit Source # 
Instance details

Defined in Network.DomainAuth.SPF.Eval

Methods

(==) :: Limit -> Limit -> Bool #

(/=) :: Limit -> Limit -> Bool #

defaultLimit :: Limit Source #

Default value for Limit.

>>> defaultLimit
Limit {limit = 10, ipv4_masklen = 16, ipv6_masklen = 48, reject_plus_all = True}