2.2 KiB
SMTP Configuration and Emails
{% hint style="info" %}
Make sure you have a .env file created under the docker/
folder. You can either copy .env.example or run hexabot init
to create that file. The .env file contains environment variables that we use for configuring the Hexabot instance.
{% endhint %}
Development Environment
You have two options for handling email functionality during development:
- Without SMTP:
You can run the app without using SMTP by setting the environment variableEMAIL_SMTP_ENABLED=false
. Simply runhexabot start
and invite a new user. The app will behave as though it is sending emails, but nothing will happen in the background. - Using smtp4dev for Testing:
We usesmtp4dev
for email testing in the development environment. To use this service, set theEMAIL_SMTP_ENABLED
totrue
in the.env
file and restart the app. Then, invite a new user or reset a password and check whether emails are received in the smtp4dev UI interface at http://localhost:9002/. This also applies to other scenarios like the confirmation email after signup and the password reset email.
SMTP Config (Local Dev)
For local development with smtp4dev
, configure the following environment variables:
APP_SMTP_4_DEV_PORT=9002
EMAIL_SMTP_ENABLED=true
EMAIL_SMTP_HOST=smtp4dev
EMAIL_SMTP_PORT=25
EMAIL_SMTP_SECURE=false
EMAIL_SMTP_USER=dev_only
EMAIL_SMTP_PASS=dev_only
EMAIL_SMTP_FROM=noreply@example.com
Production Environment
In production, use a third-party SMTP service by configuring the environment variables before running hexabot start
, here is an example:
EMAIL_SMTP_ENABLED=true
EMAIL_SMTP_HOST=sandbox.smtp.mailtrap.io
EMAIL_SMTP_PORT=2525
EMAIL_SMTP_SECURE=false
EMAIL_SMTP_USER=***************
EMAIL_SMTP_PASS=***************
EMAIL_SMTP_FROM=from@example.com
Customizing Email Templates
Email templates are located in the api/src/templates
folder. These templates are written in MJML syntax (you can read more about MJML here).
Translations
Email strings are translated using the i18n system. You can find the translation files in the api/src/config/i18n
folder.