3. Configuration

halon loads the non-reloadable configuration from the plugins section in /etc/halon/smtpd.yaml. It is described by, and can be validated with, the submission.schema.json JSON schema.

3.1. Authentication directives

apikeys[]

List of allowed API keys for the HTTP server (sent in the X-API-Key header).

3.2. Listener directives

serverid

Which serverid to use. The server should be of type plugin. Required.

transportid

Which transportid to use. The default is the one configured for the server in smtpd-app.yaml.

port

Which TCP port to listen on. Required.

address

IPv4 or IPv6 address to listen on. The default is to listen to all IPv4 and IPv6 addresses.

pki

The X.509 certificate and private key. The private key and certificate should have either a path or data property.

pki:
  certificate:
    data: |-
      -----BEGIN CERTIFICATE-----
      ...
  privatekey:
    data: |-
      -----BEGIN PRIVATE KEY-----
      ...
proxy[]

Can either be a boolean or a list of IP addresses and subnets to trust as being reverse proxies. If it’s a boolean and it’s set to true it will trust all IP-addresses and subnets as being reverse proxies.

3.3. Tracking directives

tracking.click

If click tracking should be enabled or not. The default is false.

Note

This setting can be overriden in the HTTP request by setting the tracking.click property. It can also be turned off for individual links by including the tracking=off attribute inside the anchor of a link before the href.

tracking.open

If open tracking should be enabled or not. The default is false.

Note

This setting can be overriden in the HTTP request by setting the tracking.open property.

tracking.unsubscribe

If one-click list unsubscribe should be enabled or not. The default is false.

Note

This setting can be overriden in the HTTP request by setting the tracking.unsubscribe property.

tracking.url

The base url that should be used for the rewritten links and tracking pixels. Required.

Note

This setting can be overriden in the HTTP request by setting the tracking.url property.

tracking.secret.id

The ID of the secret that should be used to generate the hash of the tracking payload. This must be an integer between 1 and 254. Required.

tracking.secret.key

The key for the secret that should be used to generate the hash of the tracking payload. Required.

3.4. Other directives

threads

The amount of worker threads that should be started to handle incoming requests. The default is as many as there are CPU cores.

maxsize

The maximum request body size to accept. The default is 10 485 760 bytes.