Greg Morris

Follow @gr36 on Micro.blog.

Ghost Members Sign Up Form Not Working? Three Things To Check

Sending email newsletters from Ghost can be a draughting experience, especially if you have not done anything like this before. A big issue I have come across is the signup form not working for people trying to get set up. It either does nothing, or just spins and doesn’t set up a subscriber.

This is more than likely due to the email service and nothing you have done wrong. Emails are actually split into two types on Ghost so you might be able to send out a newsletter to thousands of people, but none of them are able to log in. The two types of emails sent by your Ghost install are:

  • Bulk - Your actual newsletter. So you can send test emails and posts out to all of your subscribers.
  • Transactional - These are everything else. Sign up emails, log in emails and everything else to do with memberships.

If you’re having issues these areas are where to check.

Set Up Mailgun API

Chances are you’ve already done this, most guides walk you through this part. Head into your Labs section, turn on Members and at the bottom under Email Newsletter settings paste in your Mailgun API and the domain you are using.

If in doubt click on the links under the boxes to head straight to the area you need in Mailgun. Don’t forget to change your region to EU if you have an EU flag next to your domain.

This will enable you to send all your ‘bulk’ emails.

Set Up SMTP

Depending on where you host your Ghost blog, this part may not be needed, however if your on Digital Ocean like me, you’ll need to send your transactional emails by SMTP and not direct from your server.

SSH into your droplet and

nano /var/www/ghost/config.production.json

Then copy in this code to replace the mail JSON item that is there already. Changing the “user” and “pass” to your own Mailgun details.

If you have a droplet in the EU change the “host” to your version.

"mail": {
"from": "Your name <noreply@your_domain>",
"transport": "SMTP",
"options": {
"service": "Mailgun",
"host": "smtp.mailgun.org",
"port": 465,
"secureConnection": true,
"auth": {
"user": "your_user_name",
"pass": "your_password"
}
}
},

Also set the email you want these transaction emails to appear from as this is different from your newsletter ones. An email address that is in use anyway is advisable to avoid spam filters.

This should allow you to send all of your transactional emails.

Check Domain And SSL

This is the part that drove me crazy. I have set everything up and still my Ghost members subscribe from did not work. This was due to a miss match in the domain set up in my production.json. So head back into there:

nano /var/www/ghost/config.production.json

And check right at the top where it says “URL” that this is https:// and not http:// if you are using SSL - which you will be.

"url": "https://YOURDOMAIN",

Your sign up form should now be working correctly and you can start gaining subscribers!