propellor-2.7.0: property-based host configuration management in haskell

Safe HaskellNone
LanguageHaskell98

Propellor.Property.Postfix

Synopsis

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.

mainCfFile :: FilePath Source

The main config file for postfix.

mainCf :: (String, String) -> Property NoInfo Source

Sets a main.cf name=value pair. Does not reload postfix immediately.

getMainCf :: String -> IO (Maybe String) Source

Gets a main.cf setting.

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.

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.