How to deliver Ghost emails from your local dev setup

How to get Ghost sending mail from your development install, without a whole lot of extra fuss.

How to deliver Ghost emails from your local dev setup

I do a lot of Ghost theme customization on my Windows laptop. It's super nice being able to do theme customization work from anywhere, with or without reliable internet.

My one problem has been getting signed in as a user and testing subscriber functionality. Ghost wants to send email for that, and my laptop doesn't grok that. I tried fake-smtp-server, but couldn't come up with a set of settings that Ghost liked. (It was complaining about self-signed SSL certificates when I threw in the towel.)

I switched to delivering through Gmail. Here's what I had to do to get it working.

I headed over to https://myaccount.google.com/ . All the directions I was reading said to click Security and then the 'app passwords' link, but the app passwords link was nowhere to be found. It turns out that link is only visible with 2FA turned on, and I didn't have it on for the account I was using. I turned it on (from the same screen), did the type-in-the-code dance with my phone, and then was able to create an app password.

Then I needed to update config.development.json (in the Ghost root directory), to this (and restart Ghost):

  "mail": {
    "transport": "SMTP",
    "options": {
      "host": "smtp.gmail.com",
      "port": 587,
      "auth": {
        "user": "[email protected]",
        "pass": "your APP password"
      }
    }
  },

Then I went and hit the subscribe button on my test site, and bam, credentials by Gmail.

This is somewhat non-ideal because I still need some internet to make it work, but delivering an email over hotspot is way better than trying to edit code that way!

Update 6/2023: Thanks to r002 over on the Ghost Forum for the improvement to the settings above. (I had a stray 'service' line that didn't prevent 'ghost restart' but did mess with 'ghost start', at least on WSL.