# comments MUST begin with a #.

# boolean options recognise (true, 1, on, yes) as true
# and anything else as false

# string literals can be surrounded by the " character,
# but everything else CANNOT be

# whether to fork to the background. initscripts require
# this to be true most of the time.
background = true

# chroot to this directory on startup.
# this path is ABSOLUTE, it WON'T work with a relative path,
# because we are chrooting to the dir BEFORE chrooting, as a
# security measure.
# to disable chrooting, use an empty string (default).
chroot = ""

# drop privileges once running? recomended.
drop_privileges = true

# user to drop privileges to.
user = "mail"

# group to drop privileges to.
group = "mail"

# write a pid file with the pid of the main hermes server.
# if you set background=true above, this will write the pid
# of the forked hermes, not the original.
pid_file = "/var/run/hermes.pid"

# the port where hermes will listen for new connection.
# if you are going to use a port lower than 1024 (almost always,
# smtp is 25, smtps is 465 and delivery is 587), then you need
# to run as root (you can drop privileges) or with setUID active.
listening_port = 25

# the ip to bind to. if you leave it empty (default), then it
# listens on all available ips
bind_to = ""

# the host of the real smtp server.
# if your server is qmail and you have the AUTH patch,
# DON'T use localhost, use the external IP instead.
server_host = "twoja.domena.pl lub localhost"

# the port for the real smtp server.
server_port = 2525

# database file to use.
# if you are chrooting, the path is relative to the chroot:
# real filepath = chroot + database_file
database_file = "/var/lib/hermes/greylisting.db"

# whether to use greylisting.
# greylisting will slightly delay your emails (configurable, see below)
# to stop most spam. is the most efective technique in use by hermes.
greylist = true

# whether to throttle connection.
# it will force some spammers (the more impatient ones) to drop the connection
# and leave you alone.
throttle = false

# throttling time
# this is the time (in seconds) that hermes will wait between each sent line.
# don't set this too high (more than 3), as that will drop MANY connections
throttling_time = 1

# whether we should check if there is data before we send the SMTP banner.
# if there is data the email is almost certainly spam.
allow_data_before_banner = false

# dns blacklist domain list to check.
# if this is empty (default) hermes will not check anything, effectively disabling
# dns blacklisting.
# recommended value is "zen.spamhaus.org"
dns_blacklist_domains = ""

# percentage of domains that have to blacklist an ip before considering it blacklisted.
# for example if you need a domain to be listed in only half of the blacklists to be considered
# as listed, just define dns_blacklist_percentage as 50 (50%)
dns_blacklist_percentage = 100

# dns whitelist domain to check.
# if this is empty (default) hermes will not check anything, effectively disabling
# dns whitelisting.
# this lists should only list hosts that have a history of NOT sending spam.
# recommended value is "list.dnswl.org"
dns_whitelist_domains = ""

# percentage of domains that have to whitelist an ip before considering it whitelisted.
# for example if you need a domain to be listed in only half of the whitelists to be considered
# as listed, just define dns_whitelist_percentage as 50 (50%).
dns_whitelist_percentage = 100

# time to delay the initial SMTP banner
banner_delay_time = 5

# greylisting options.

# initial expiry time.
# when email is first recorded, it will expire after this time (in minutes).
initial_expiry = 240

# initial period of time (in minutes) during which a retry on the spammer's side will FAIL.
initial_blacklist = 5

# once we have whitelisted a triplet, how long it stays whitelisted (in days).
# 36 is a magic number, is the maximum days between a day and the same day next month
whitelist_expiry = 36

# whether to submit stats.
submit_stats = false

# should stats be submited using SSL?
# recomended, but some people will compile without ssl.
submit_stats_ssl = false

# username (used to submit stats).
# you can register on http:
submit_stats_username = "anonymous"

# password
submit_stats_password = "anonymous"

# if you are using the filelogger, which file to log to.
file_logger_filename = "hermes.log"

# whether to keep the logger file locked between writes
keep_file_locked = true

# whether to clean the database file and send stats.
# if you have two instances of hermes running (for example one for smtp and other for smtps)
# you want to configure all of them but one to use clean_db=false.
# also, you might prefer to not clean the database at all for many reasons (for example to
# keep a huge file around with all your system's email data).
# anyway, this doesn't mean in anyway that entries in the database won't expire, only that they
# will be left hanging around without any use.
clean_db = true

# ssl-related config options
# NOTE: this NEEDS the openssl library

# should we try to connect to our real smtp server using ssl?
# not really neccesary unless real smtp server is on other machine.
outgoing_ssl = false

# should we accept connections using ssl?
# NOTE: this does NOT disable the starttls capability, only starts hermes expecting SSL negotiation.
# starttls is handled the following way: if you have ssl, it is always on. clients can request it at
# any time an hermes will change to ssl at once. if you don't have ssl, hermes will refuse to starttls
# with a 354 error code, although it WILL still accept the command. connection should proceed normally
# even on that event
incoming_ssl = false

# file with our private key (PEM format).
# to generate, execute:
# # openssl genrsa 1024 > private.key
private_key_file = "/etc/mail/exim.key"

# file with our server certificate (PEM format).
# to generate, execute:
# # openssl req -new -x509 -nodes -sha1 -days 365 -key private.key > certificate.crt
# and answer the questions
certificate_file = "/etc/mail/exim.crt"

# whether to add headers to the email sent or no.
# to be rfc compatible this HAS to be true, but if you set to false, no one will know you are using hermes
add_headers = true

# the hostname to use for the headers. useful only in case that gethostname() returns
# something that is not correct. For example on windows, it seems to return only the host
# part of the name.

# if this is empty, hermes will use the value returned by gethostname()
hostname = "twoja.domena.pl"

# should a whitelisted hostname or whitelisted ip also disable throttling and banner delaying?
# it is useful to make remote hosts deliver mail almost at once
whitelisted_disables_everything = true

# whether to reject connections from hosts that do not provide DNS reverse resolution.
# don't enable if you don't know what you are doing or what this switch does
reject_no_reverse_resolution = false

# check whether your ehlo hostname matches your ip reverse resolution.
# don't enable unless you understand perfectly what this means
check_helo_against_reverse = false

# whether to query the spf record for the incoming domain.
# should help, enable if you have libspf (if you don't, install it and recompile)
query_spf = false

# return temporary error instead of permanent error.
# Currently, this only applies to SPF and DNSBL rejected email
# You should enable this while debugging your hermes installation,
# as configuration errors won't be fatal.
return_temp_error_on_reject = false
