No description
Find a file
Slavi Pantaleev 16ce4314b9 Sanitize settings on Get() and add convenience getters
Sanitizing options on Get() ensures that when someone asks
for a given option which may not be defined (`nosubject`, `nosender`),
we'll return a valid value (`'true'` or `'false'`) and not `''` (empty
string, undefined).

This way, users do not need to wonder if "nosender is not set" is
handled like "true" or "false" or in some 3rd way. They also don't need
to think about "how to unset this setting, now that I've set it to something".
Options will appear to have a default sanitized value no matter if
they've explicitly been set or not.

The `NoSender()` and `NoSubject()` getters are just there for
convenience, so that we won't need to do casting in other places.
2022-08-24 10:16:28 +03:00
bot Sanitize settings on Get() and add convenience getters 2022-08-24 10:16:28 +03:00
cmd lint; rearrange code 2022-08-23 22:12:11 +03:00
config add noowner and federation 2022-08-22 22:08:32 +03:00
e2e bugfixes; email parsing; send emails into matrix rooms; e2e tests 2022-08-22 12:28:29 +03:00
smtp lint; rearrange code 2022-08-23 22:12:11 +03:00
utils refactor options to be more generic 2022-08-23 21:58:05 +03:00
.gitignore wip 2022-08-21 18:41:35 +03:00
.gitlab-ci.yml lint fixes 2022-08-23 17:56:38 +03:00
.golangci.yml lint; rearrange code 2022-08-23 22:12:11 +03:00
Dockerfile prepare dockerfile 2022-08-22 18:47:53 +03:00
go.mod update deps 2022-08-23 15:45:40 +03:00
go.sum update deps 2022-08-23 15:45:40 +03:00
LICENSE.md update readme and license 2022-08-22 19:11:00 +03:00
Makefile enable multi-arch build 2022-08-23 14:33:37 +03:00
README.md add noowner and federation 2022-08-22 22:08:32 +03:00

Postmoogle Matrixko-fi coverage report Go Report Card Go Reference

more about that name

An Email to Matrix bridge

Roadmap

Receive

  • SMTP server
  • Matrix bot
  • Configuration in room's account data
  • Receive emails to matrix rooms
  • Receive attachments
  • Map email threads to matrix threads

Send

  • SMTP client
  • Reply to matrix thread sends reply into email thread
  • Send a message to matrix room with special format to send a new email

Configuration

env vars

mandatory

  • POSTMOOGLE_HOMESERVER - homeserver url, eg: https://matrix.example.com
  • POSTMOOGLE_LOGIN - user login/localpart, eg: moogle
  • POSTMOOGLE_PASSWORD - user password
  • POSTMOOGLE_DOMAIN - SMTP domain to listen for new emails
  • POSTMOOGLE_PORT - SMTP port to listen for new emails

optional

  • POSTMOOGLE_NOOWNER - allow change room settings by any room partisipant
  • POSTMOOGLE_FEDERATION - allow usage of Postmoogle by users from others homeservers
  • POSTMOOGLE_NOENCRYPTION - disable encryption support
  • POSTMOOGLE_SENTRY_DSN - sentry DSN
  • POSTMOOGLE_SENTRY_RATE - sentry sample rate, from 0 to 100 (default: 20)
  • POSTMOOGLE_LOGLEVEL - log level
  • POSTMOOGLE_DB_DSN - database connection string
  • POSTMOOGLE_DB_DIALECT - database dialect (postgres, sqlite3)
  • POSTMOOGLE_MAXSIZE - max email size (including attachments) in megabytes

You can find default values in config/defaults.go

Where to get

docker registry, etke.cc