Ghost email troubleshooting: when sign-in links and signup emails miss

Members not getting sign-in links or signup emails? On self-hosted Ghost these go through the SMTP server in your config. Here is how to check it and point it at SecureSMTP. Newsletters are a separate system.

6-minute readLast updated · June 2026Ghost setup guide →

A reader signs up on your Ghost site but never gets the confirmation email. A member tries to sign in, and the sign-in link never arrives. On self-hosted Ghost, the cause is usually the mail settings in your config file.

Ghost has two email systems

  1. Transactional email: sign-in and signup links, email confirmation, staff invitations, password resets. Self-hosted Ghost sends these with the mail settings in config.production.json.
  2. Newsletters: posts sent to your members. Ghost sends these through Mailgun only. They cannot go through SMTP, so SecureSMTP cannot send them.

Ghost(Pro) users

On Ghost(Pro), Ghost handles both kinds of email and there is no SMTP setting. If your site is on Ghost(Pro) and emails go missing, contact Ghost support.

Why transactional email fails on self-hosted Ghost

1. No SMTP server configured

If mail is not set in your config, Ghost tries to deliver mail directly from your server. Most VPS providers block or limit outgoing mail on port 25, and mail sent straight from a VPS IP is often rejected or filtered.

2. The From address is not authenticated

If Ghost sends from an address on your domain through a server that is not allowed to send for it (no SPF, no DKIM), Gmail and Outlook often send the message to spam.

3. Mailgun is set up but transactional mail is not

The Mailgun settings in Ghost Admin are for newsletters only. They do not cover sign-in links. Transactional email still needs the mail block in the config file.

Check where it breaks

  1. Request a sign-in link from a private browser window, using an address you control. Wait a few minutes. Check the inbox and spam folder.
  2. Read the Ghost log. Look in content/logs/ in your Ghost install for mail errors such as timeouts or failed logins.
  3. Check the mail block in config.production.json. If there is no mail section, Ghost has no SMTP server.
  4. Check the headers of an email that did arrive (Gmail: Show original). SPF, DKIM and DMARC should say PASS.

Point self-hosted Ghost at SecureSMTP

  1. Sign up at securessmtp.com/signup (the Free plan includes 5,000 emails a month).
  2. Dashboard → Forms → Sites → + Add Site. Copy the API key from the last step. It is shown only once. It is your SMTP password.
  3. Edit config.production.json:
    "mail": {
      "transport": "SMTP",
      "from": "Your Site <[email protected]>",
      "options": {
        "host": "smtp.securessmtp.com",
        "port": 587,
        "secure": false,
        "auth": {
          "user": "securessmtp",
          "pass": "qcs_live_..."
        }
      }
    }
    Port 587 uses STARTTLS ("secure": false is correct). For port 465 set "secure": true. Then restart Ghost: ghost restart.
  4. Request a sign-in link again. The email shows up in the Email log in your SecureSMTP dashboard.
  5. To send from your own address, add a sending domain in the dashboard (any plan, including Free) and publish its DKIM record. New accounts need this to send. See Domains and DNS.

Full SMTP details are in the SMTP guide.

Frequently asked questions

Does this work on Ghost(Pro)?+

No. On Ghost(Pro), Ghost handles email for you and there is no SMTP setting to change. This guide is for self-hosted Ghost, where you set the mail server in config.production.json.

Can SecureSMTP send my Ghost newsletters?+

No. Ghost sends newsletters (bulk email to members) through Mailgun only; it does not support bulk sending over SMTP. SecureSMTP covers the transactional side: sign-in links, signup confirmations and staff emails.

What does Ghost send over SMTP?+

Transactional email: member sign-in and signup links, email address confirmation, staff invitations and password resets. These use the mail settings in config.production.json.

Which From address will members see?+

New accounts send from their own verified sending domain, so emails go out from the address you set for that domain. Any plan, including Free, can add one. Until it is verified you can send test emails to yourself. Older accounts can keep using [email protected] for a limited time, with your site name as the sender name and the From address Ghost used as the Reply-To.

Will switching SMTP affect my members or posts?+

No. Members, posts and settings live in Ghost’s database. Changing the SMTP server only changes how emails are delivered.

Stop guessing whether your email is landing.

SecureSMTP sends your website and app email with SPF, DKIM and DMARC passing, from your own domain once you verify it, and logs every email. 5,000 free emails a month, no card required.

More delivery guides

WordPress · 8-min read

Fix WordPress wp_mail() going to spam: the complete diagnostic + fix guide

WordPress sends mail from [email protected] by default — an address that fails SPF, DKIM, and DMARC. Here's why your wp_mail() emails land in spam and how to fix it.

Shopify · 7-min read

Shopify SMTP: why there is no SMTP setting, and how to send from your own domain

Shopify sends store emails itself and has no custom SMTP setting. Here’s how to authenticate your domain in Shopify, and when to send through the SecureSMTP API instead.

Squarespace · 6-min read

Squarespace email troubleshooting: why your form submissions aren't arriving

Form submitted. No email. Here’s how to check Squarespace’s notification settings and forward submissions through Zapier to SecureSMTP.

Webflow · 6-min read

Webflow form delivery: why form notifications go missing, and how to fix it

Webflow forms collect submissions reliably; the notification emails are the weak spot. Here’s how to send them through an automation tool and SecureSMTP instead.

Wix · 6-min read

Wix contact form email not working: how to fix it

Wix contact form submitted but no email arrived? Wix has no SMTP setting, so here’s how to send notifications through Zapier, Make or Velo code instead.

Mailchimp Transactional · 7-min read

Mailchimp Transactional (Mandrill) email problems: how to diagnose and fix them

Mailchimp Transactional rebrand of Mandrill is confusing, expensive, and shares IPs across customers. Here's why delivery fails and the simpler alternative.

Fluent Forms · 5-min read

Fluent Forms not sending email? Here's why, and how to fix it

Fluent Forms submissions arrive in the dashboard but the notification email never lands? It's a wp_mail() problem, not a Fluent Forms bug. Here's the real fix.

Forminator · 6-min read

Forminator email setup: configure notifications that actually arrive

Forminator notification emails going to spam — or missing entirely? It's WordPress's wp_mail() problem, not Forminator. Here's the fix that works on any host.

WP Mail SMTP · 6-min read

WP Mail SMTP setup with SecureSMTP: the Other SMTP settings, step by step

Use the WP Mail SMTP plugin with SecureSMTP as your SMTP server. The exact Other SMTP settings, how to keep your key out of the database, how to test, and what to do when it fails.