---
title: Direct Admin
description: "![DirectAdmin to Mailbaby Smarthost Setup](https://www.mail.baby/wp-content/uploads/2021/03/direct-1024x512.jpg) Configuring DirectAdmin to use Mailbaby as a smarthost is straightforward. DirectAdmin uses include files within `exim.conf`, which allows you to easily extend your mail configuration without overwriting the core setup. **Note on DirectAdmin 1.702+:** The…"
url: "https://www.mail.baby/tips/direct-admin/"
updated: "2026-07-06"
category: Tutorials
---

# Direct Admin

![DirectAdmin to Mailbaby Smarthost Setup](https://www.mail.baby/wp-content/uploads/2021/03/direct-1024x512.jpg)

Configuring DirectAdmin to use Mailbaby as a smarthost is straightforward. DirectAdmin uses include files within `exim.conf`, which allows you to easily extend your mail configuration without overwriting the core setup.

**Note on DirectAdmin 1.702+:** The configuration line `condition = "${perl{check_limits}}"` has been completely removed as of DirectAdmin version 1.702. If your server is running DA 1.702 or newer, please omit this line when configuring your routers in Step 3.

Directadmin also publishes a smart host set up example at [https://docs.directadmin.com/other-hosting-services/exim/smarthost.html](https://docs.directadmin.com/other-hosting-services/exim/smarthost.html)

### Step 1: Configure Authentication

First, create the file **/etc/exim.authenticators.post.conf**.

Add the following code, replacing `YOURUSERNAME` and `YOURPASSWORD` with your Mailbaby credentials. Your Mailbaby username is a single string and does not contain an @domain.com extension.

```text
auth_login:
  driver = plaintext
  public_name = LOGIN
  hide client_send = : YOURUSERNAME : YOURPASSWORD
```

### Step 2: Set Up Outbound Transports

Next, edit or create **/etc/exim.transports.pre.conf** and add the configuration below to handle outbound SMTP connections:

```text
auth_relay:
  driver = smtp
  port = 25
  hosts_require_auth = $host_address
  hosts_require_tls = $host_address
  headers_add = "${if def:authenticated_id{X-AuthUser: ${authenticated_id}}}"
  interface = <; ${if exists{/etc/virtual/domainips}{${lookup{$sender_address_domain}lsearch*{/etc/virtual/domainips}}}}
  helo_data = ${if exists{/etc/virtual/helo_data}{${lookup{$sending_ip_address}iplsearch{/etc/virtual/helo_data}{$value}{$primary_hostname}}}{$primary_hostname}}
  hosts_try_chunking =
  hosts_try_fastopen =
.include_if_exists /etc/exim.dkim.conf

auth_relay_forward:
  driver = smtp
  port = 25
  hosts_require_auth = $host_address
  hosts_require_tls = $host_address
  headers_add = "${if def:authenticated_id{X-AuthUser: ${authenticated_id}}}"
  interface = <; ${if exists{/etc/virtual/domainips}{${lookup{$sender_address_domain}lsearch*{/etc/virtual/domainips}}}}
  helo_data = ${if exists{/etc/virtual/helo_data}{${lookup{$sending_ip_address}iplsearch{/etc/virtual/helo_data}{$value}{$primary_hostname}}}{$primary_hostname}}
  hosts_try_chunking =
  hosts_try_fastopen =
  max_rcpt = 1
  return_path = ${srs_encode {SRS_SECRET} {$return_path} {$original_domain}}
.include_if_exists /etc/exim.dkim.conf
```

### Step 3: Configure the Routers

Create **/etc/exim.routers.pre.conf** to route outbound mail through the Mailbaby network. (Remember to remove the `perl{check_limits}` condition line shown below if you are on DirectAdmin 1.702 or later).

```text
smart_route_forward:
  driver = manualroute
  domains = ! +local_domains
  ignore_target_hosts = 127.0.0.0/8
  condition = ${if !eq{$original_domain}{$domain}}
  condition = ${if !eq{$original_domain}{}}
  
  transport = auth_relay_forward

  route_list = * relay.mailbaby.net
  no_more

smart_route:
  driver = manualroute
  domains = ! +local_domains
  ignore_target_hosts = 127.0.0.0/8
  condition = "${perl{check_limits}}"

  transport = auth_relay

  route_list = * relay.mailbaby.net
  no_more
```
