Sign inSign up

daniellerch/mailist

By daniellerch

•Updated 3 days ago

Email distribution lists for ChurchTools

Image
0

663

daniellerch/mailist repository overview

⁠Mailist

Build and tests

Mailist is a ChurchTools extension that enables you to create email distribution lists without operating an own mailserver and synchronize recipients with ChurchTools.

Mailist was previously named Korga for the german term Kirchen Organisation (church organization). It started as a standalone CMS and soon became an extension platform for ChurchTools when ChurchTools' extensions were not available.

⁠What can Mailist do?

Mailist makes it possible to send emails to ChurchTools groups via email. For example, anyone can send an email to [email protected]⁠ and Mailist will forward it to all members of your ChurchTools group Youth with role Leader.

⁠Installation

The only officially supported distribution are Docker containers. An official image is available at daniellerch/mailist⁠. If you are using Docker Compose, take a look our example compose file⁠ in the docs folder.

See Mailist server configuration⁠ for a full list of configuration options.

⁠ChurchTools integration

First you must create a service account which Mailist can use for API access to ChurchTools:

  1. Create a person with email address in your ChurchTools instance
    You might want to define a special status for API users
  2. Invite that person to ChurchTools
  3. Click on the invitation link and set a password
  4. Open https://example.church.tools/api/whoami⁠ to look up the ID of the newly created user
  5. Open https://example.church.tools/api/person/${ID}/logintoken⁠ to look up the long-term access token which will be used like an API key

Steps 4. and 5. can also be performed in the ChurchTools web interface: Official Documentation⁠

Warning

For security reasons it is not recommended to let Mailist use your ChurchTools admin account.

Grant the following permission to Mailist's user:

  • Administration > Berechtigungen anpassen churchcore:administer persons

After creating and configuring a ChurchTools user for Mailist you can finally configure it via environment variables⁠ in compose.yaml.

Do not forget to recreate your container to take these changes into effect.

⁠Email delivery

Email delivery requires an SMTP server and credentials. This is given for almost any email inbox. Depending on your email hosting provider you might need an app password. Email delivery can be configured via environment variables⁠ in compose.yaml.

⁠Email relay

Mailist's email relay requires a catchall IMAP inbox. Such an inbox receives all emails sent to a domain where no matching inbox was found, i.e. *@example.org. It can be configured via environment variables⁠ in compose.yaml.

⁠Contributing

Contributions are highly welcome. Please open an issue before implementing a feature to discuss your plans.

Mailist's source code is split into the backend (located in server) and the frontend (located in webapp). The following instructions are written for Windows but generally also apply to Linux development setups.

⁠Tech Stack

Backend

  • ASP.NET Core
  • Entity Framework Core
  • MySQL / MariaDB
  • Docker

Frontend

  • Vue 3
  • TypeScript
  • PrimeVue
  • Tailwind CSS
⁠Development Setup

Backend

  • Visual Studio 2026
  • .NET SDK 10.0
  • EF Core CLI Tools (e.g. dotnet tool install -g dotnet-ef)
  • MySQL or MariaDB (e.g. from PSModules⁠)

Frontend

  • Visual Studio Code
  • Vue Language Features (Volar) Extension
  • NodeJS 24 LTS

During development the frontend running on the Vue CLI development server will use http://localhost:10501⁠ as API endpoint. That means the backend can be running in Visual Studio with Debugger attached.

Tag summary

Content type

Image

Digest

sha256:b01b6f343…

Size

102.5 MB

Last updated

3 days ago

docker pull daniellerch/mailist