Docs Get key
All server guides
Open Source Mail Servers

Install Haraka with explicit recipient and relay policy

Create an isolated Haraka configuration, review the plugin chain, and reject unauthorized recipients before enabling public SMTP.

Reviewed

Haraka is a programmable Node.js SMTP server. Its plugins define important acceptance and queue behavior; installing the package alone does not create a complete mailbox system.

For the difference between programmable SMTP and a finished mailbox platform, see Haraka in our Linux mail-server comparison.

Create a test configuration

Use the official getting-started guide and a supported Node.js/package release. Creating a configuration is distinct from starting a public mail listener:

haraka -i /path/to/haraka-test
  1. Inspect the generated configuration and set the correct SMTP hostname and accepted domains in the release’s documented files.
  2. Review config/plugins in order. Keep recipient authorization and relay permission explicit rather than trusting arbitrary connecting clients.
  3. Configure TLS and the selected queue/handoff plugin before enabling reception.
  4. Run under the supported service/privilege model and keep management/diagnostic access restricted.

The quickstart’s forwarding setup requires a configured downstream target; adding a domain to a host list does not create a mailbox or durable HTTP receiver.

Verify acceptance and handoff

Test a controlled accepted recipient, unknown local recipient, unauthenticated remote relay, and unavailable downstream service. Confirm the correct SMTP response and queue/log outcome.

Do not expose development defaults on public interfaces before these checks. If your application needs IMAP, storage, parsed JSON, or agent execution, add those components deliberately; Haraka’s plugin bus does not imply they are bundled or configured.