Howto use Mailjet as a free SMTP service for Discourse

In this small tutorial I will show you howto use mailjet as a free SMTP service for Discourse.

At the moment mailjet let you send 6000 mails per month or 200 per day for free and without sharing your credit card information.

Signup
You can sign up here Mailjet - Sign up (not a affiliate link)

Then validate your account by clicking the link in the email.

Create your domain
Go to your account settings: Mailjet

Press “Add a Sender Domain or Address”
Skærmbillede 2021-10-17 kl. 10.17.32

Then add your domain
(Please note that to validate a domain, you need to have access to your website hosting or your domain registration account.)

Adding a new domain

DNS verify your domain
Login to your DNS host.

Add a new DNS record based on the info from mailjet

Add the new TXT DNS record to you DNS service. In this case cloudflare.

End the validation by returning to your mailjet window. And press Check Now

You’ll see a window like this when you’re done
Skærmbillede 2021-10-17 kl. 10.29.05

Setup SPF Authentication
Under Mailjet “Sender & Domain” you find this option
Skærmbillede 2021-10-17 kl. 10.31.21

Make a new TXT DNS record with the recommended settings:

After this you should get a green setting window

Skærmbillede 2021-10-17 kl. 10.37.32

Set up DomainKeys/DKIM

Make a new TXT DNS record
Please make sure it stays on one line!

Setup Your Username and Password
First you need to generate your secret key, this will eventually be your SMTP Password. To do this go to API Key Management page.

On this page you see that your API Key (this will be your SMTP username) is created but partially redacted, but your Secret key needs to be generated:

Click the Generate Secret Key button. This will give you a new modal screen which contains your API Key and Secret Key. Copy these into a safe place as you’ll need them in the next step. If you lose your Secret Key you’ll need to regenerate it and setup Discourse SMTP again.

With that generated you can now visit the MailJet SMTP and SEND API Settings page to grab the rest of the settings you’ll need.

Installation of Discourse.
In the initial setup of discourse, use the following settings:

  • SMTP Server Address = MailJet SMTP server
  • SMTP Port = SMTP port it will be 25 or 587, note that some providers block port 25.
  • SMTP Username = MailJet API Key you copied.
  • SMTP Password = MailJet Secret key you copied.

Your setup will look similar to this:

Skærmbillede 2021-10-17 kl. 13.04.04

Then you should be done and ready to use the service. :partying_face: :partying_face: :partying_face:

8 Likes

I set up an account on MailJet and testing it.

When a new user registers an account on Discourse, they receive activation email from noreply@XXX.com. This works fine.

But if the user wants to send email to me (admin) admin@XXX.com then it bounce back

554 5.7.1 admin@XXX.com: Relay access denied

How can i fix this?

Depending what your trying to do this likely isn’t a Discourse issue.

If you are trying to use Mailjet as an SMTP server for your individual email in addition to the mass email functions that Discourse uses, it doesn’t really support that: Can I use Mailjet for my internal office email communications? You would need to setup a different service to send and receive that sort of email (Google Workspace, Zoho Mail, etc)

1 Like

@JammyDodger I can’t update this, but some of the screenshots and steps are out of date for this one.

1 Like

If you’re interested in updating it I can make it a wiki and slide it over to the guide section? (:crossed_fingers:)

1 Like

Sure, happy to walk through it and update what I can, might take me a couple days.

2 Likes

@JammyDodger I’ve updated the Discourse setup part. I didn’t confirm the DKIM, etc settings yet, I will see what I can do with those as well.

1 Like

A screenshot for Namecheap

Note:
The domain name itself should not be included in the Host field. It means that if you need to add the record for something._domainkey.yourdomain.tld, only something._domainkey is to be added as a Host value (even if your service provider asked you to add the domain itself as well). This is a system requirement.

1 Like

Thank you! How can I change the SMTP data afterwards? This guide describes how to do this during the initial installation of Discourse.

Not specifically about MailJet but Change SMTP settings in a working forum - #5 by slackmoehrle has the details.