Normalized Configuration Directives

The following uses the convention of listing possible options as a list, with the default option being first. If Int() or String() is specified, any valid integer or string is allowed.

# Enable TurboMail e-mail subsystem.
mail.on = [False, True]

# Queue management policies.
mail.manager = ["turbomail.demand", "turbomail.polling", String()]
mail.manager.debug = [False, True]

# Multi-threaded queue policies.
mail.manager.threading.threads = [4, Int()]
mail.manager.threading.jobs = [10, Int()]
mail.manager.threading.timeout = [60, Int()]

# turbomail.polling policies.
mail.manager.interval = [10, Int()]

# Mail delivery providers.
mail.provider = ["turbomail.smtp", "turbomail.sendmail", String()]
mail.provider.debug = [False, True]

# turbomail.smtp -specific provider policies.
mail.provider.host = String() # e.g. "server.domain.tld:2500"
mail.provider.username = [None, String()]
mail.provider.password = [None, String()]
mail.provider.tls = [None, True, False] # None = Auto-Detect

# turbomail.sendmail -specific provider policies.
mail.provider.executable = [None, String()] # None = Auto-Detect

# Personal information.
mail.sender.name = String()
mail.sender.email = String()

# Mail defaults.  You can specify any mail property using its **kw name.
mail.default.encoding = ["us-ascii", "utf-8", ..., String()]
# mail.default.property = [None, ...]

# S/MIME settings.
mail.security.on = [False, True]
mail.security.key = String()
mail.security.certificate = String()
mail.security.sign = [False, True]
mail.security.encrypt = [None, True, False]