Link Directus to a SMTP Relay
Adding a mail transport service to Directus is very important, without this configured, user's will not receive any emails from Directus including password reset tokens. This article will cover some recommended SMTP providers and how you can add the smtp setting to you system.
Once you have your SMTP settings from your provider, edit the env file in your project folder and add the required parameters.
Choose an Email provider
First, you will need an email provider, not Gmail or Yahoo, but an email transport provider that allows you to send hundreds of thousands of email a month. It's worth considering how many emails you intend to send a month. I recommend the following providers which support SMTP.
- SendinBlue (Free up to 300 emails per day)
- MailerSend (Free up to 12,000 per month)
- Moosend (30 day free trial)
These have a free tier but check if the monthly volume is enough. If you want to start email marketing, these platforms will grow with you. Moosend in particular has an excellend online builder so you don't need to worry about coding emails.
Once you have an account, obtain the smtp settings and credentials. I recommend you integrate your domain name so you can send emails from your own domain and they get digitally signed so they won't go to spam. Some organisations will have a dedicated SMTP server or Saas, please speak to your IT team for the details.
What not use my own server?
It's very tempting to use your own server for sending emails but this tends to be more hassle than it's worth especially when the software consumes much needed resources away from Directus and any websites running on your server.
These 3rd party email providers will take care of all the security concerns and spam protection with some offering this service for free. So you won't need to set up DKIM keys, SPF verifications, Email Encryptions etc.
Update your Configuration File
Next, you need to edit your .env file using Vim in Linux or a text editor in Windows. It's located within the project folder that Directus was installed into. Use this command on Linux.
vim /path/to/your/project/.env
Near the bottom, you'll see the EMAIL_TRANSPORT setting, change this to smtp. Also make sure the EMAIL_FROM address is supported by your provider. Some will allow you to add your own domain name.
EMAIL_FROM="[email protected]"
EMAIL_TRANSPORT="smtp"
Then add the missing parameters listed below.
EMAIL_SMTP_HOST="smtp.example.com"
EMAIL_SMTP_PORT="587"
EMAIL_SMTP_USER="username"
EMAIL_SMTP_PASSWORD="password"
Save and close this file. For those new to Vim, press ESC to exit out of INSERT mode, then type :wq (colon is required) which will write changes and quit.
Restart Directus
You'll need to restart Directus for that changes to take effect.
Testing the SMTP Service
You can test the email capabilities by going to the login screen and clicking Forgot Password. This will email the address you provide (if it has an account) and you'll see it arrive in your inbox.
Conclusion
Email is a big part of any project. It's the main communication method between your platform and users. You can also use the SMTP service with your website. Some providers have a marketing interface so you can run campaigns. And best of all, they grow with you. If you need to expand, they offer various pricing tiers.