eusend
SMTP

Ghost SMTP

Configure your Ghost blog to send transactional email — member sign-in links, password resets, staff invites — through eusend over SMTP.

Ghost sends two kinds of email: bulk newsletters (which require Mailgun) and transactional mail — member sign-in links, password resets, and staff invites. eusend handles the transactional mail through Ghost's mail SMTP configuration, DKIM-signed and tracked.

config.production.json

Ghost is configured through its config file (or the equivalent environment variables). Add a mail block:

config.production.json
{
  "mail": {
    "transport": "SMTP",
    "from": "Acme <[email protected]>",
    "options": {
      "host": "smtp.eusend.dev",
      "port": 465,
      "secure": true,
      "auth": {
        "user": "eusend",
        "pass": "eu_live_xxxxxxxxxxxx"
      }
    }
  }
}

The from address must be on a domain you have verified in eusend.

As environment variables

If you run Ghost via Docker or a managed host, the same settings map to environment variables:

mail__transport=SMTP
mail__from[email protected]
mail__options__host=smtp.eusend.dev
mail__options__port=465
mail__options__secure=true
mail__options__auth__user=eusend
mail__options__auth__pass=eu_live_xxxxxxxxxxxx

Restart Ghost after changing the config.

Keep "secure": true with port 465 (implicit TLS). Ghost's mail transport is Nodemailer under the hood, so secure: false would attempt STARTTLS on the wrong port and fail.

Verify

In Ghost admin, go to Settings → Staff and send yourself an invite, or trigger a member sign-in link — both are transactional and go through eusend. The message appears in your eusend dashboard.

Ghost still requires Mailgun specifically for bulk newsletter sending — that path is separate from transactional mail and is not configurable to other providers. eusend covers everything under the mail block above.