Safe Haskell | None |
---|---|
Language | Haskell98 |
- installed :: Property NoInfo
- restarted :: Property NoInfo
- reloaded :: Property NoInfo
- satellite :: Property NoInfo
- mappedFile :: Combines (Property x) (Property NoInfo) => FilePath -> (FilePath -> Property x) -> Property (CInfo x NoInfo)
- newaliases :: Property NoInfo
- mainCfFile :: FilePath
- mainCf :: (String, String) -> Property NoInfo
- getMainCf :: String -> IO (Maybe String)
- mainCfIsSet :: String -> IO Bool
- dedupMainCf :: Property NoInfo
- dedupCf :: [String] -> [String]
- masterCfFile :: FilePath
- data Service = Service {}
- data ServiceType
- type ServicePort = String
- type PrivateService = Bool
- data ServiceOpts = ServiceOpts {}
- defServiceOpts :: ServiceOpts
- formatServiceLine :: Service -> Line
- parseServiceLine :: Line -> Maybe Service
- service :: Service -> RevertableProperty NoInfo
- saslAuthdInstalled :: Property NoInfo
- saslPasswdSet :: Domain -> User -> Property HasInfo
Documentation
satellite :: Property NoInfo Source
Configures postfix as a satellite system, which
relays all mail through a relay host, which defaults to smtp.domain,
but can be changed by mainCf "relayhost"
.
The smarthost may refuse to relay mail on to other domains, without further configuration/keys. But this should be enough to get cron job mail flowing to a place where it will be seen.
mappedFile :: Combines (Property x) (Property NoInfo) => FilePath -> (FilePath -> Property x) -> Property (CInfo x NoInfo) Source
Sets up a file by running a property (which the filename is passed to). If the setup property makes a change, postmap will be run on the file, and postfix will be reloaded.
newaliases :: Property NoInfo Source
Run newaliases command, which should be done after changing
etcaliases
.
The main config file for postfix.
mainCf :: (String, String) -> Property NoInfo Source
Sets a main.cf name=value
pair. Does not reload postfix immediately.
mainCfIsSet :: String -> IO Bool Source
Checks if a main.cf field is set. A field that is set to the empty string is considered not set.
dedupMainCf :: Property NoInfo Source
Parses main.cf, and removes any initial configuration lines that are overridden to other values later in the file.
For example, to add some settings, removing any old settings:
mainCf `File.containsLines` [ "# I like bars." , "foo = bar" ] `onChange` dedupMainCf
Note that multiline configurations that continue onto the next line are not currently supported.
masterCfFile :: FilePath Source
The master config file for postfix.
A service that can be present in the master config file.
data ServiceType Source
type ServicePort = String Source
type PrivateService = Bool Source
formatServiceLine :: Service -> Line Source
parseServiceLine :: Line -> Maybe Service Source
Note that this does not handle multi-line service entries,
in which subsequent lines are indented. serviceLine
does not generate
such entries.
service :: Service -> RevertableProperty NoInfo Source
Enables a Service
in postfix's masterCfFile
.
saslAuthdInstalled :: Property NoInfo Source
Installs saslauthd and configures it for postfix, authenticating against PAM.
Does not configure postfix to use it; eg smtpd_sasl_auth_enable = yes
needs to be set to enable use. See
https://wiki.debian.org/PostfixAndSASL.
Password brute force attacks are possible when SASL auth is enabled. It would be wise to enable fail2ban, for example:
Fail2Ban.jailEnabled "postfix-sasl"