Handles mail generation and sending (pw reset, welcome mail, etc)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
Nicolai Ort 15b98e8309 Merge pull request 'Release 0.1.2' (#14) from dev into main 2 months ago
.vscode Added custom i18n ally framework 3 months ago
scripts Now generateing api key via eng_gen script 3 months ago
src Fixed typos and added missing translations🌎 2 months ago
.drone.yml Revert "Now using more images powered by us 🚀🚀🚀" 3 months ago
.gitignore Not ignoring i18n ally framework any more 3 months ago
CHANGELOG.md 🧾New changelog file version [CI SKIP] [skip ci] 2 months ago
Dockerfile Dockerfile with cached images 🔥 3 months ago
LICENSE Initial commit 3 months ago
README.md Added env var docs to readme 3 months ago
docker-compose.yml Added dockerfile and docker-compose 3 months ago
jest.config.js Added jest config and first tests 3 months ago
licenses.md 📖New license file version [CI SKIP] [skip ci] 3 months ago
package.json 🚀Bumped version to v0.1.2 2 months ago
tsconfig.json Added basic files and depedencies 3 months ago

README.md

@lfk/mailer

Build Status

Handles mail generation and sending (pw reset, welcome mail, etc)

Dev Setup 🛠

Local dev setup

  1. Rename the .env.example file to .env (you can adjust app port and other settings, if needed) or generate a example env with yarn && yarn test:generate_env.
  2. Install Dependencies
    yarn
    
  3. Start the server
    yarn dev
    

Templates

The mailer uses html and plaintext templates to generate various mails. The templates are stored in src/templates by default.

We provide a set of default templates that we use for the "Lauf für Kaya!" charity run. We use handlebars for templateing utilizing i18next for translation - the i18n string format in the templates is : {{__ "string"}} You can provide your own templates by replacing the ones we provided before compiling the project or by simply mounting your custom templates into the docker container.

The server currently needs the following templates to work:

  • pw-reset.html
  • pw-reset.txt
  • test.html
  • test.txt
  • welcome_runner.html
  • welcome_runner.txt
Name Type Default Description
APP_PORT Number 4010 The port the backend server listens on. Is optional.
NODE_ENV String dev The apps env - influences debug info.
API_KEY String(min length: 64) Random generated string The api key you want to use for auth (query-param key), has to be at least 64 chars long.
API_URL String(url) "http://localhost:8080" The URL ponting to the base (root) of the lfk runner system.
MAIL_SERVER String(FQDN) None The mailserver (smtp) used to send mails via nodemailer.
MAIL_PORT Number 25 The mailserver's port (smtp).
MAIL_USER String None The username used to authenticate against the mailserver.
MAIL_PASSWORD String None The password used to authenticate against the mailserver.
MAIL_FROM String None The mail address that mails get sent from.
PRIVACY_URL String "/privacy" The url path that get's attached to the app url to link to the privacy page.
IMPRINT_URL String "/imprint" The url path that get's attached to the app url to link to the imprint page.
COPYRIGHT_OWNER String "LfK!" Text that gets inserted as the "copyright by" owner in the mails.
EVENT_NAME String "Testing 4 Kaya" The event's name - used to generate the mail text.
CONTACT_MAIL String(email) MAIL_FROM Contact mail address listed at the bottom of some mail templates.

Visual Studio Code

  • will be automatically recommended via ./vscode/extensions.json
  • we also provide a config for i18n-ally in the .vscode folder

Staging

Branches & Tags

  • vX.Y.Z: Release tags created from the main branch
    • The version numbers follow the semver standard
    • A new release tag automaticly triggers the release ci pipeline
  • main: Protected "release" branch
    • The latest tag of the docker image get's build from this
    • New releases get created as tags from this
  • dev: Current dev branch for merging the different feature branches and bugfixes
    • The dev tag of the docker image get's build from this
    • Only push minor changes to this branch!
    • To merge a feature branch into this please create a pull request
  • feature/xyz: Feature branches - nameing scheme: feature/issueid-title
  • bugfix/xyz: Branches for bugfixes - nameing scheme:bugfix/issueid-title