Commit Graph

917 Commits (8da6117bb92aac66f0ab422ead887e9314d079c4)

Author SHA1 Message Date
NeroPcStation 365f21007d Translated using Weblate (Polish)
Currently translated at 90.2% (147 of 163 strings)

Translation: Mailu/admin
Translate-URL: https://translate.tedomum.net/projects/mailu/admin/pl/
kaiyou 8e88f1b8c3 Refactor the rate limiting code
Rate limiting was already redesigned to use Python limits. This
introduced some unexpected behavior, including the fact that only
one criteria is supported per limiter. Docs and setup utility are
updated with this in mind.

Also, the code was made more generic, so limiters can be delivered
for something else than authentication. Authentication-specific
code was moved directly to the authentication routine.
Philip Rosenberg-Watt ff1dfec39a Add port to relay if it contains a colon
This closes 
Philip Rosenberg-Watt 27e37577c6 Add IPv6 to allow_nets
Roundcube was not connecting to sieve with IPv6 enabled.

Fixes 
Weblate b248f6a800 Merge branch 'origin/master' into Weblate
Andrási István 395a0d14dc Translated using Weblate (Hungarian)
Currently translated at 100.0% (163 of 163 strings)

Translation: Mailu/admin
Translate-URL: https://translate.tedomum.net/projects/mailu/admin/hu/
bors[bot] 96f832835a
Merge
1278: Limiter implementation r=kaiyou a=micw

## What type of PR?

(Feature, enhancement, bug-fix, documentation)

## What does this PR do?

Adds a custom limter based on the "limits" lirary that counts up on failed auths only

### Related issue(s)
- closes 
- closes 

## Prerequistes

- [X] Unless it's docs or a minor change: add [changelog](https://mailu.io/master/contributors/guide.html#changelog) entry file.


Co-authored-by: Michael Wyraz <michael@wyraz.de>
Co-authored-by: micw <michael@wyraz.de>
bors[bot] 761fade9a9
Merge
1316: Fix the encoding of incoming user email and password r=mergify[bot] a=kaiyou

## What type of PR?

Bug fix

## What does this PR do?

As described in the changes, RFC2616 states that header should be considered ISO8859-1 in HTTP, which obviously nginx does not really care about when forwarding the password from SMTP authentication to the backend. Hence, we need to encode-then-decode passwords to get the proper value in case a special char is in there.

### Related issue(s)
- This fixes  
- This is also related to  
- This is also related to 

## Prerequistes
Before we can consider review and merge, please make sure the following list is done and checked.
If an entry in not applicable, you can check it or remove it from the list.

- [x] In case of feature or enhancement: documentation updated accordingly
- [x] Unless it's docs or a minor change: add [changelog](https://mailu.io/master/contributors/guide.html#changelog) entry file.


Co-authored-by: kaiyou <pierre@jaury.eu>
Tom Radtke 9d213b213a
Upgrading to a 2048-bit DKIM key
Torben Jensen 6f910c5738 Translated using Weblate (Danish)
Currently translated at 80.8% (122 of 151 strings)

Translation: Mailu/admin
Translate-URL: https://translate.tedomum.net/projects/mailu/admin/da/
kaiyou bd69b7a491 Add support for SRS, related to
kaiyou 9b7a027d6f Fix the encoding of incoming user email and password
Weblate 869f230e0d Merge branch 'origin/master' into Weblate
Torben Jensen 619a87a821 Added translation using Weblate (Danish)
bors[bot] 812439332a
Merge
1299: Don't remove the address extension in postfix r=mergify[bot] a=RobertMe

## What type of PR?
Bugfix

## What does this PR do?
Currently when the mail address is looked up by Postfix (using the admin
part) the address extension is removed. This is due to the address
extension being removed to look up the user, and afterwards returning
the users mail address. But by not returning the mail address including
the address extension it also isn't part anymore in the LMTP
communication to Dovecot. So Dovecot doesn't know about the extension,
and in turn the address extension can't be used in Sieve mail filtering.

This change fixes that by returning the original address by just
concatinating the "localpart" and domain again when the user is found.

### Related issue(s)
Fixes 

## Prerequistes
Before we can consider review and merge, please make sure the following list is done and checked.
If an entry in not applicable, you can check it or remove it from the list.

- [ ] In case of feature or enhancement: documentation updated accordingly
- [ ] Unless it's docs or a minor change: add [changelog](https://mailu.io/master/contributors/guide.html#changelog) entry file.


Co-authored-by: Robert Meijers <robert.meijers@gmail.com>
Angedestenebres c09f046ba7 Translated using Weblate (French)
Currently translated at 100.0% (163 of 163 strings)

Translation: Mailu/admin
Translate-URL: https://translate.tedomum.net/projects/mailu/admin/fr/
micw 7688caa784
Add missing self.
Robert Meijers 989e4d5db5 Don't remove the address extension in postfix
Currently when the mail address is looked up by Postfix (using the admin
part) the address extension is removed. This is due to the address
extension being removed to look up the user, and afterwards returning
the users mail address. But by not returning the mail address including
the address extension it also isn't part anymore in the LMTP
communication to Dovecot. So Dovecot doesn't know about the extension,
and in turn the address extension can't be used in Sieve mail filtering.

This change fixes that by returning the original address by just
concatinating the "localpart" and domain again when the user is found.

Fixes 
Marc Riera ba7364d5e9 Added translation using Weblate (Catalan)
Michael Wyraz 70f797dbd9 Don't raise rate limit exception on hit(), only on check()
Michael Wyraz a7f787f914 Make rate limit for subnet (webmail) configurable
Michael Wyraz bee80b5c64 Remove rate limit reset
Michael Wyraz 889386b4a6 Limiter implementation
Mordi Sacks ebc39b5308 Translated using Weblate (Hebrew)
Currently translated at 6.0% (9 of 151 strings)

Translation: Mailu/admin
Translate-URL: https://translate.tedomum.net/projects/mailu/admin/he/
Mordi Sacks 5b23e30b39 Added translation using Weblate (Hebrew)
Weblate e736abbe6f Merge branch 'origin/master' into Weblate
Simen Kildahl Eriksen 87c6984b99 Translated using Weblate (Norwegian Bokmål)
Currently translated at 100.0% (151 of 151 strings)

Translation: Mailu/admin
Translate-URL: https://translate.tedomum.net/projects/mailu/admin/nb_NO/
bors[bot] 0417c791ff
Merge
985: Permit raspberry pi (and other architectures) builds r=mergify[bot] a=abondis

## What type of PR?

Enhancement

## What does this PR do?

Add an option to select base images and permit building for different CPU architectures.

### Related issue(s)
N/A

## Prerequistes

- [X] documentation updated accordingly
- [x] Unless it's docs or a minor change: add [changelog](https://mailu.io/master/contributors/guide.html#changelog) entry file.


Co-authored-by: Aurélien Bondis <aurelien.bondis@gmail.com>
Co-authored-by: Aurelien <aurelien.bondis@gmail.com>
Weblate 60e5f551f9 Merge branch 'origin/master' into Weblate
Simen Kildahl Eriksen 4c3af0b905 Added translation using Weblate (Norwegian Bokmål)
bors[bot] 9bae9b3078
Merge
1213: Bump werkzeug from 0.15.2 to 0.15.3 in /core/admin r=mergify[bot] a=dependabot[bot]

Bumps [werkzeug](https://github.com/pallets/werkzeug) from 0.15.2 to 0.15.3.
<details>
<summary>Release notes</summary>

*Sourced from [werkzeug's releases](https://github.com/pallets/werkzeug/releases).*

> ## 0.15.3
> * Blog: https://palletsprojects.com/blog/werkzeug-0-15-3-released/
> * Changes: https://werkzeug.palletsprojects.com/en/0.15.x/changes/#version-0-15-3
> 
</details>
<details>
<summary>Changelog</summary>

*Sourced from [werkzeug's changelog](https://github.com/pallets/werkzeug/blob/master/CHANGES.rst).*

> Version 0.15.3
> --------------
> 
> Released 2019-05-14
> 
> -   Properly handle multi-line header folding in development server in
>     Python 2.7. (:issue:`1080`)
> -   Restore the ``response`` argument to :exc:`~exceptions.Unauthorized`.
>     (:pr:`1527`)
> -   :exc:`~exceptions.Unauthorized` doesn't add the ``WWW-Authenticate``
>     header if ``www_authenticate`` is not given. (:issue:`1516`)
> -   The default URL converter correctly encodes bytes to string rather
>     than representing them with ``b''``. (:issue:`1502`)
> -   Fix the filename format string in
>     :class:`~middleware.profiler.ProfilerMiddleware` to correctly handle
>     float values. (:issue:`1511`)
> -   Update :class:`~middleware.lint.LintMiddleware` to work on Python 3.
>     (:issue:`1510`)
> -   The debugger detects cycles in chained exceptions and does not time
>     out in that case. (:issue:`1536`)
> -   When running the development server in Docker, the debugger security
>     pin is now unique per container.
</details>
<details>
<summary>Commits</summary>

- [`9b1123a`](9b1123a779) release version 0.15.3
- [`00bc43b`](00bc43b167) unique debugger pin in Docker containers
- [`2cbdf2b`](2cbdf2b022) Merge pull request [](https://github-redirect.dependabot.com/pallets/werkzeug/issues/1542) from asottile/exceptions_arent_always_hashable
- [`0e669f6`](0e669f6be5) Fix unhashable exception types
- [`bdc17e4`](bdc17e4cd1) Merge pull request [](https://github-redirect.dependabot.com/pallets/werkzeug/issues/1540) from pallets/break-tb-cycle
- [`44e38c2`](44e38c2985) break cycle in chained exceptions
- [`777500b`](777500b646) Merge pull request [](https://github-redirect.dependabot.com/pallets/werkzeug/issues/1518) from NiklasMM/fix/1510_lint-middleware-python3-compa...
- [`e00c7c2`](e00c7c2ced) Make LintMiddleware Python 3 compatible and add tests
- [`d590cc7`](d590cc7cf2) Merge pull request [](https://github-redirect.dependabot.com/pallets/werkzeug/issues/1539) from pallets/profiler-format
- [`0388fc9`](0388fc95e6) update filename_format for ProfilerMiddleware.
- Additional commits viewable in [compare view](https://github.com/pallets/werkzeug/compare/0.15.2...0.15.3)
</details>
<br />

[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=werkzeug&package-manager=pip&previous-version=0.15.2&new-version=0.15.3)](https://help.github.com/articles/configuring-automated-security-fixes)

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot ignore this [patch|minor|major] version` will close this PR and stop Dependabot creating any more for this minor/major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
- `@dependabot use these labels` will set the current labels as the default for future PRs for this repo and language
- `@dependabot use these reviewers` will set the current reviewers as the default for future PRs for this repo and language
- `@dependabot use these assignees` will set the current assignees as the default for future PRs for this repo and language
- `@dependabot use this milestone` will set the current milestone as the default for future PRs for this repo and language

You can disable automated security fix PRs for this repo from the [Security Alerts page](https://github.com/Mailu/Mailu/network/alerts).

</details>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
bors[bot] dcda412b99
Merge
1211: Split HOST_ANTISPAM in HOST_ANTISPAM_MILTER and HOST_ANTISPAM_WEBUI r=mergify[bot] a=micw

## What type of PR?

bug-fix

## What does this PR do?

Fixes  by separating HOST_ANTISPAM into HOST_ANTISPAM_MILTER and HOST_ANTISPAM_WEBUI

### Related issue(s)
- closes 
- closes 

## Prerequistes
Before we can consider review and merge, please make sure the following list is done and checked.
If an entry in not applicable, you can check it or remove it from the list.

- [ ] In case of feature or enhancement: documentation updated accordingly
- [x] Unless it's docs or a minor change: add [changelog](https://mailu.io/master/contributors/guide.html#changelog) entry file.


Co-authored-by: Michael Wyraz <michael@wyraz.de>
bors[bot] 35160b770d
Merge
1198: Enable access log of admin service only for log levels of INFO and finer r=muhlemmer a=micw

## What type of PR?

bug fix

## What does this PR do?

### Related issue(s)
- closes 

## Prerequistes

- [x] Unless it's docs or a minor change: add [changelog](https://mailu.io/master/contributors/guide.html#changelog) entry file.


1204: Add initial admin account to kubernetes example r=muhlemmer a=micw

## What type of PR?

documentation

## What does this PR do?

Add INITIAL_ADMIN_* example to kubernetes configmap.yaml

### Related issue(s)

- closes 

## Prerequistes
Before we can consider review and merge, please make sure the following list is done and checked.
If an entry in not applicable, you can check it or remove it from the list.

- docs example only

1207: Add Japanese translation r=muhlemmer a=IchikawaYukko

## What type of PR?

Translation

## What does this PR do?

Provide completed Japanese translation.

### Related issue(s)

None

## Prerequistes
Before we can consider review and merge, please make sure the following list is done and checked.
If an entry in not applicable, you can check it or remove it from the list.

- [*] In case of feature or enhancement: documentation updated accordingly
- [*] Unless it's docs or a minor change: add [changelog](https://mailu.io/master/contributors/guide.html#changelog) entry file.


1208: Persist mailqueue r=muhlemmer a=micw

## What type of PR?

bug-fix

## What does this PR do?

Makes postfix mailqueue presistent (for docker, swarm and kubernetes)

### Related issue(s)
- closes 

## Prerequistes
Before we can consider review and merge, please make sure the following list is done and checked.
If an entry in not applicable, you can check it or remove it from the list.

- [x] Unless it's docs or a minor change: add [changelog](https://mailu.io/master/contributors/guide.html#changelog) entry file.


Co-authored-by: Michael Wyraz <michael@wyraz.de>
Co-authored-by: Michael Wyraz <michael.wyraz@evermind.de>
Co-authored-by: U-COREI3-3120M\市川ゆり子 <ichikawayuriko@yahoo.co.jp>
Co-authored-by: micw <michael@wyraz.de>
Michael Wyraz a907fe4cac Split HOST_ANTISPAM in HOST_ANTISPAM_MILTER and HOST_ANTISPAM_WEBUI
dependabot[bot] ed204766b2
Bump werkzeug from 0.15.2 to 0.15.3 in /core/admin
Bumps [werkzeug](https://github.com/pallets/werkzeug) from 0.15.2 to 0.15.3.
- [Release notes](https://github.com/pallets/werkzeug/releases)
- [Changelog](https://github.com/pallets/werkzeug/blob/master/CHANGES.rst)
- [Commits](https://github.com/pallets/werkzeug/compare/0.15.2...0.15.3)

Signed-off-by: dependabot[bot] <support@github.com>
U-COREI3-3120M\市川ゆり子 26955df7ae remove POT-Creation-Date, PO-Revision-Date
U-COREI3-3120M\市川ゆり子 efd628c338 add Japanese translation
bors[bot] 950a88bf0e
Merge
1196: Change default password scheme to PBKDF2 () r=mergify[bot] a=hoellen

## What type of PR?
enhancement

## What does this PR do?
This PR change the default password scheme to PBKDF2. It is already changed in some places (e.g. [docs/compose/.env](https://github.com/Mailu/Mailu/blob/master/docs/compose/.env#L142)).

### Related issue(s)
closes  

## Prerequistes
Before we can consider review and merge, please make sure the following list is done and checked.
If an entry in not applicable, you can check it or remove it from the list.

- [x] In case of feature or enhancement: documentation updated accordingly
- [x] Unless it's docs or a minor change: add [changelog](https://mailu.io/master/contributors/guide.html#changelog) entry file.


Co-authored-by: hoellen <dev@hoellen.eu>
Michael Wyraz d689a8eeb3 Enable access log of admin service only for log levels of INFO and finer
hoellen d3dd4802f4 Change default password scheme to PBKDF2 ()
Niduroki b58f06c03e Add a title to Mailu-Admin pages
Michael Wyraz de2f166bd1 Resolve HOST_* to *_ADDRESS only if *_ADDRESS is not already set
Aurélien Bondis 34079244a6 fix ARG positions
Aurélien Bondis e1a4bf32a6 only insert qemu binary if building for arm
kaiyou d50504fa2b Only set the redis address once, fixes
bors[bot] 3e626b8500
Merge
940: Fix host variables r=mergify[bot] a=ionutfilip

## What type of PR?
bug-fix

## What does this PR do?

### Related issue(s)
- Fix 

## Prerequistes
Before we can consider review and merge, please make sure the following list is done and checked.
If an entry in not applicable, you can check it or remove it from the list.

- [x] In case of feature or enhancement: documentation updated accordingly
- [x] Unless it's docs or a minor change: place entry in the [changelog](CHANGELOG.md), under the latest un-released version.


Co-authored-by: Ionut Filip <ionut.philip@gmail.com>
Co-authored-by: Tim Möhlmann <muhlemmer@gmail.com>
bors[bot] 2785bca1f4
Merge
883: Admin create user enhancement r=mergify[bot] a=cr1st1p

## What type of PR?
Enhancement

## What does this PR do?
It allows the admin docker image to also create the admin user.
The idea is that in my kubernetes setup, I do not want to manually do anything, as such, I need a way for the admin user to also be created automatically without me getting inside the pod.
So I had to change the manage.py function that creates the user to allow different 'modes' (me, I'll be using 'ifmissing') and also start.py to call that functionality if appropriate environment variables are present.

So now, in my Deployment, I add 3 more environment variables and I get the admin user created, IF not already present.

### Related issue(s)
none?

## Prerequistes
Before we can consider review and merge, please make sure the following list is done and checked.
If an entry in not applicable, you can check it or remove it from the list.

- [x] In case of feature or enhancement: documentation updated accordingly
- [x] Unless it's docs or a minor change: place entry in the [changelog](CHANGELOG.md), under the latest un-released version.


Co-authored-by: cristi <cristi.posoiu@gmail.com>
Co-authored-by: cr1st1p <cristi.posoiu@gmail.com>
Co-authored-by: Tim Möhlmann <muhlemmer@gmail.com>
Tim Möhlmann 348ea1a572
Remove obsolete log call
Ionut Filip 075417bf90 Merged master and fixed conflicts
Aurélien Bondis 124b1d4c71 rebase and update for 3.10, avoid adding qemu file to x86 images
Tim Möhlmann 7d964874e8
Cleanup spaces around '='
Tim Möhlmann 52971ed42e
Use os.environment.get()
Mildred Ki'Lya 95dce5575b Parameterize redis address
hoellen b720bedf72 Support domain literals for receiving emails
hoellen bed2c6ea09 Revert "Error handling for idna encoding"
This reverts commit 10034526a1.
hoellen 10034526a1 Error handling for idna encoding
bors[bot] 2788909a13 Merge
1052: Upgrade alpine to 3.10 r=mergify[bot] a=Nebukadneza

## What type of PR?
enhancement / bug-fix

## What does this PR do?
Upgrade the alpine base image to 3.10 and clean up ensuing problems. Also directly uses postfix foreground-running with stdout logging.

### Related issue(s)
closes 
closes 

Note: This is a duplicate effort of   …

## Prerequistes
- [X] In case of feature or enhancement: documentation updated accordingly
- [X] Unless it's docs or a minor change: add [changelog](https://mailu.io/master/contributors/guide.html#changelog) entry file.

With these images, I have tested manually:
- Email receive to user
  - on main domain
  - on additional domain
  - via an alias on main-domain
  - via an alias on additional domain
  - via catchall
- Email reject
  - of eicar testfiles
- Email sending
- Fetchmail from legacy POP
- Front LE certificates
- Simple overriding for postfix (only postfix.cf), nginx, dovecot, rspamd
- Creating a CalDAV calendar and CardDAV entry using davx5

I have not (yet) tested:
- certdumper
- databases other than sqlite

Todo:
- [x] Get rid of podop at `git+https://github.com/Nebukadneza/Podop.git@fix_py37` once https://github.com/Mailu/Podop/pull/6 is merged
- [x] Bend Mailustart back to original repository
- [x] Test more (? also help wanted ?)

Co-authored-by: Thomas Sänger <thomas@gecko.space>
Co-authored-by: Dario Ernst <dario@kanojo.de>
Co-authored-by: Reto Glauser <git@blinkeye.ch>
kaiyou 23871d9180 Translated using Weblate (Russian)
Currently translated at 100.0% (163 of 163 strings)

Translation: Mailu/admin
Translate-URL: https://translate.tedomum.net/projects/mailu/admin/ru/
kaiyou 0281b5a595 Translated using Weblate (Italian)
Currently translated at 71.8% (117 of 163 strings)

Translation: Mailu/admin
Translate-URL: https://translate.tedomum.net/projects/mailu/admin/it/
kaiyou 45789d3f22 Translated using Weblate (Hungarian)
Currently translated at 100.0% (163 of 163 strings)

Translation: Mailu/admin
Translate-URL: https://translate.tedomum.net/projects/mailu/admin/hu/
Bambie07 e70d1e1455
fix dns dkim entry
Dario Ernst 8c2e22f666 Merge branch 'master' into HorayNarea-feat-upgrade-alpine
bors[bot] f77e1bdd0e Merge
1048: Refactor admin using webpack r=mergify[bot] a=kaiyou

## What type of PR?

Refactoring

## What does this PR do?

This PR brings some refactoring to the admin container :
- remove the dependency to mailustart and replace it with socrate
- remove static assets from the repo and use Webpack for building them


Co-authored-by: hoellen <dev@hoellen.eu>
Co-authored-by: kaiyou <pierre@jaury.eu>
Dario Ernst 0306be1eed Re-add missing MailuStar in admin
It turns out we were all blind and admin *does* use MailuStart
Dario Ernst ce0c24e076 Merge branch 'master' into HorayNarea-feat-upgrade-alpine
Dario Ernst 53f754f5ac Remove MailuStart from admin and correct layer-sharing comments
hoellen 31464c5c44 Change image back to alpine
hoellen b351841418 Expose jQuery for use outside Webpack build
hoellen 90f678de52 add app.css and fix align of menu button
hoellen 616d40d225 Update password in commandline
Dario Ernst bb2edb6eb6 Revert "Move alpine version definition out to variable"
This reverts commit c787e4bdbd.
hoellen 81a8acf9ec fix resolve issue
Dario Ernst c787e4bdbd Move alpine version definition out to variable
Dario Ernst a253ca47fe Use official Mailu/MailuStart
Dario Ernst d1f80cca99 Update Dockerfiles to most recent alpine 3.10
Thomas Sänger ef3c6c407a upgrade alpine base-image
kaiyou baa5a8a4e0 Fix hostname resolution
kaiyou c20a502695 Do not forcefully resolve optional hostnames
kaiyou a3abf8c353 Add the assets source
kaiyou 4b620ba5d1 Merge branch 'hoellen-fix-sidebar-toggle' into refactor-admin-webpack
kaiyou c147a371d7 Merge branch 'fix-sidebar-toggle' of https://github.com/hoellen/Mailu into hoellen-fix-sidebar-toggle
kaiyou 2d3560b396 Fix select2 using webpack-built assets
kaiyou c2a04ab1d4 Update the build configuration to use webpack and compiled assets
kaiyou ecdf0c25b3 Use webpack for building static assets
kaiyou d7747639e9 Remove the dependency to mailustart, introducing socrate
cristi f2a009795b Merge branch 'master' into admin_create_user_enhancement
bors[bot] f1f5aef7d3 Merge
931: Resolve webmail in admin r=mergify[bot] a=ionutfilip

## What type of PR?
bug-fix

## What does this PR do?
Implement mailustart to resolve webmail in admin

### Related issue(s)
Fix  

## Prerequistes
Before we can consider review and merge, please make sure the following list is done and checked.
If an entry in not applicable, you can check it or remove it from the list.

- [x] In case of feature or enhancement: documentation updated accordingly
- [x] Unless it's docs or a minor change: place entry in the [changelog](CHANGELOG.md), under the latest un-released version.


Co-authored-by: Ionut Filip <ionut.philip@gmail.com>
bors[bot] 2c90ac3334 Merge
962: Open some admin sidebar links in a new browser tab r=kaiyou a=mariooos

## What type of PR?

Enhancement

## What does this PR do?

Add target=_blank attribute to html <a href ...> tag in following admin sidebar links:
- Antispam
- Webmail
- Website
- Help


Co-authored-by: mariooos <48351788+mariooos@users.noreply.github.com>
bors[bot] 7021278bfb Merge
993: Make aliases case-insensitive (too) r=mergify[bot] a=Nebukadneza

Even though RFC5321 2.4 explains that local-parts are to be case-sensitive,
this does not seem to be how EMail is used today. Thus, instead of reverting
user-emails back to being case sensitive, let’s make aliases case-insensitive
too. Not only more consistent, this also allows users to enjoy receiving EMails
from large airlines or car-rental agencies onto their already existing aliases.

For the rare case of case sensitive aliases existing, let’s query for the
forced-lowercase alias only in the event that the preserved-case one isn’t
found …

closes 

## What type of PR?
bug-fix

## What does this PR do?
Make aliases optionally case-insensitive: After attempting to resolve an alias in its preserved case, also attempt to match it case-insensitively.

This followed after some more thought from   …

### Related issue(s)
closes 

## Prerequistes
Before we can consider review and merge, please make sure the following list is done and checked.
If an entry in not applicable, you can check it or remove it from the list.

- [x] In case of feature or enhancement: documentation updated accordingly
- [x] Unless it's docs or a minor change: add [changelog](https://mailu.io/master/contributors/guide.html#changelog) entry file.


Co-authored-by: Dario Ernst <dario@kanojo.de>
bors[bot] d76ba5ee39 Merge
1005: distinguish disabled users in user list view by row color r=kaiyou a=zhuangyy

## What type of PR?

enhancement

## What does this PR do?

distinguish disabled users in user list view by row color

## Prerequistes
Before we can consider review and merge, please make sure the following list is done and checked.
If an entry in not applicable, you can check it or remove it from the list.

- [ ] In case of feature or enhancement: documentation updated accordingly
- [ ] Unless it's docs or a minor change: add [changelog](https://mailu.io/master/contributors/guide.html#changelog) entry file.


Co-authored-by: Zhuang Yuyao <jssyan@qq.com>
kaiyou 645c423d09 Update messages.po (POEditor.com)
kaiyou 08bdc715bb Update messages.po (POEditor.com)
kaiyou a150315c1d Added translation using Weblate (Japanese)
Weblate abece125f4 Merge branch 'origin/master' into Weblate
kaiyou d99ad5fe3e Added translation using Weblate (Hungarian)
kaiyou b91c7f64ee Update messages.po (POEditor.com)
kaiyou d929413784 Update messages.po (POEditor.com)
kaiyou 91c8ca1279 Update messages.po (POEditor.com)
kaiyou c0263a2ae9 Update messages.po (POEditor.com)
kaiyou 80c57b597b Update messages.po (POEditor.com)
kaiyou 0566b00664 Update messages.po (POEditor.com)
kaiyou c939b30e6b Update messages.po (POEditor.com)
kaiyou 308521ff9a Update messages.po (POEditor.com)
kaiyou 0ca18035e1 Update messages.po (POEditor.com)
kaiyou 8bcb4deb7e Update messages.po (POEditor.com)
kaiyou 65a61ad5c8 Added translation using Weblate (Icelandic)
kaiyou 57385df15c Deleted translation using Weblate (Icelandic)
kaiyou cfc224352a Added translation using Weblate (Icelandic)
Zhuang Yuyao 67d5c8fcb3 distinguish disabled user in user list view by row color
Dario Ernst e22324adcd Make aliases case-insensitive (too)
Even though RFC5321 2.4 explains that local-parts are to be case-sensitive,
this does not seem to be how EMail is used today. Thus, instead of reverting
user-emails back to being case sensitive, let’s make aliases case-insensitive
too. Not only more consistent, this also allows users to enjoy receiving EMails
from large airlines or car-rental agencies onto their already existing aliases.

For the rare case of case sensitive aliases existing, let’s query for the
forced-lowercase alias only in the event that the preserved-case one isn’t
found …

closes 
hoellen 167e5a87e1 add sidebar toggle button
hoellen 92ef73fa74 update AdminLTE to version 2.4
mariooos 253ae9fad8 Open some admin sidebar links (Antispam, Webmail, Website, Help) in a new browser tab
Ionut Filip ac0fc41421
Merge branch 'master' into replace-gethostbyname
Ionut Filip dd7710951e
Replaced double quotes with single ones
Ionut Filip 0ce0b5ec02 Fix addresses in front
Ionut Filip 4c25c83419 HOST_* and *_ADDRESS variables cleanup
Ionut Filip f9e3cd3c5d Use corret host_* variables
Ionut Filip ef49357eb3 Update redis urls
Ionut Filip 43abbf4d63 Resolve redis and add logging
bors[bot] 211136f9b1 Merge
934: Pass optional arguments to domain model r=mergify[bot] a=ionutfilip

## What type of PR?
bug-fix

## What does this PR do?
Passing optional args to domain model when using cli.

### Related issue(s)
Fixes 

## Prerequistes
Before we can consider review and merge, please make sure the following list is done and checked.
If an entry in not applicable, you can check it or remove it from the list.

- [ ] In case of feature or enhancement: documentation updated accordingly
- [ ] Unless it's docs or a minor change: place entry in the [changelog](CHANGELOG.md), under the latest un-released version.


Co-authored-by: Ionut Filip <ionut.philip@gmail.com>
bors[bot] d129733fac Merge
919: Install bash in alpine based images. r=mergify[bot] a=firvida

This fixes 

Bash shell is used by default in Kubernetes' dashboard console, which is very
useful for admins.

## What type of PR?

bug-fix

## What does this PR do?

### Related issue(s)
- closes  

## Prerequistes
Before we can consider review and merge, please make sure the following list is done and checked.
If an entry in not applicable, you can check it or remove it from the list.

- [ ] In case of feature or enhancement: documentation updated accordingly
- [ ] Unless it's docs or a minor change: place entry in the [changelog](CHANGELOG.md), under the latest un-released version.


Co-authored-by: Abel Alfonso Fírvida Donéstevez <abel@merchise.org>
hoellen 62511b723b
Merge branch 'master' into fix-doc-commands-1
Ionut Filip 4d2844c1f5 Fixed arguments passed to domain
Roman Hoellen 1dfef1609a add domain cli to docs
Ionut Filip cebc64a280 Resolve HOST_WEBMAIL in admin
Roman Hoellen bc617cf8ec replace _ with - in cli options
Tim Möhlmann 111dae351a
Fix typo in migration file
Fixes 
Abel Alfonso Fírvida Donéstevez 39444c794e Install bash in alpine based images.
This fix https://github.com/Mailu/Mailu/issues/918

Bash shell is used by default in Kubernetes' dashboard console, which is very
useful for admins.
bors[bot] 86b4242f82 Merge
886: Ipv6 support r=mergify[bot] a=muhlemmer

## What type of PR?

(Feature, enhancement, bug-fix, documentation) -> A bit of everything

## What does this PR do?

Document how to use ipv6nat. This, however triggers some kind of flaky behavior with the Docker DNS resolver, resulting in lookup failures between containers.  So all resolving needs to be done during container startup/configuration.

In order not to pollute every single start.py file, we've created a small library called [Mailu/MailuStart](https://github.com/Mailu/MailuStart). As an addition, this library also defines the template generation function, including its logging facility.

Note: `docker-compose.yml` downgrade is necessary, as IPv6 settings are not supported by the Docker Compose file format 3 😞  

### Related issue(s)
Supersedes  PR 
- Fixes  
- Hopefully helps with  and 

## No backport yet

This PR directly imports MailuStart from git. This makes it a bit more simple to implement on the short term an do some testing and probably some future improvements. When everything is proved stable, we will create a proper PyPi package with versioning and consider back porting.

## Prerequistes
Before we can consider review and merge, please make sure the following list is done and checked.
If an entry in not applicable, you can check it or remove it from the list.

- [x] In case of feature or enhancement: documentation updated accordingly
- [x] Unless it's docs or a minor change: place entry in the [changelog](CHANGELOG.md), under the latest un-released version.


Co-authored-by: Ionut Filip <ionut.philip@gmail.com>
Co-authored-by: Tim Möhlmann <muhlemmer@gmail.com>
Tim Möhlmann 06457e9617
Merge branch 'master' into fix_fetches_create
cr1st1p 9b65a6c862
Merge branch 'master' into admin_create_user_enhancement
Ionut Filip f8dffe5a19
Resolve hosts in admin
Dario Ernst 34b31727c4 Fix password validator for creating fetched accounts
cristi a071181c61 Allow to automatically create admin account during startup.
hoellen fba246e9a1 add wildcard option to cli (alias)
hoellen 808092c65e
Merge pull request from hoellen/token-ipv6
allow ipv6 addresses for tokens
Tim Möhlmann e341e0141f
Merge remote-tracking branch 'upstream/master' into token-ipv6
Manuel Vázquez Acosta dfe5ddb18e
Check if sender address is not null before trying to check the domain.
Tim Möhlmann fd236e4ea5
Fix syntax error
nathan-sain 23bad0e042
Set value for SQLALCHEMY_DATABASE_URI in admin DEFAULT_CONFIG to SQLite URI
nathan-sain db8977e17a
Update SQLite DB file in DEFAULT_CONFIG and DB_TEMPLATES
hoellen 6dea8b422a
Merge pull request from hoellen/fix-create-onupdate-default
fix default value for created_at and updated_at
hoellen 79c4edcaf1
Merge pull request from hoellen/schema-maxUserQuota-1
Change quota columns type to BigInteger
hoellen 54169db7e3
Merge branch 'master' into fix-forward-validation
hoellen 9721df0bc5 fix default value for created_at and updated_at
Use date instead of datetime for created_at and updated_at.
hoellen cfa7ca3838 Merge branch 'master' into schema-maxUserQuota-1
hoellen f1e1c96c3b create migration file for changing quota to big integer
Ionut Filip 2d34f0ee52 Fixed auto-forward email validation
hoellen c8758a6526 allow ipv6 addresses for tokens
hoellen 2af540a1c9 change quota columns to bigint
Dario Ernst 66df7a31b0 Unify and coerce booleans from env used in admin
At some places, the string that DOMAIN_REGISTRATION is got used like a boolean
(an easy misassumption to make while in python and dealing with the config
dict), making `DOMAIN_REGISTRATION=False` act as a truthy value. To stop such
future problems from happening, coerce environment config strings to real
bools.

closes 
mergify[bot] 9175b15d49
Merge pull request from Nebukadneza/reverse_user_alias_pref
Reverse the resolution order of user and alias
mergify[bot] 278bcfb13a
Merge pull request from Nebukadneza/fix_delimiter_alias
Deliver mails to alias-stripped-of-delimeter, even if catchall exists
Dario Ernst 276dc3ffda Reverse the resolution order of user and alias
Since it’s common for wildcard~ish systems to prefer concrete objects over
wildcards, and aliases can be broad-wildcards (think catchall, %@xxx.tld), it
may be more intuitive for users that user-names rank higher than aliases. This
makes it impossible for user-names to be unreachable, since they can be
completely overridden by a catchall otherwise.

This changes default behavior, and is not configurable.

closes 
Tim Möhlmann 8541ae2c46
Fix migration order after merge
mergify[bot] 99cd1d714b
Merge pull request from hoellen/fix-domain-negative-values-1
don't allow negative values on domain creation/edit
Tim Möhlmann 2567646f47
Merge branch 'master' into fix-domain-negative-values-1
Ionut Filip 50343f354e Merge remote-tracking branch 'upstream/master' into feat-psql-support
Dario Ernst b8d1beed29 Simplify alias-wildcard detection to not consider actual % anymore
Dario Ernst 10d2601963 Unsimplify alias precedence handling
As discussed with hoellen on matrix, since postfix indeed supports including
the recipient delimiter character in a verbatim alias, we should support so too
— and handle its precedence correctly. The clearer and simpler formulation of
the precedence-clauses are credit to @hoellen. Thanks!
mergify[bot] 161394a774
Merge pull request from hoellen/fix-fetch-passwordfield-1
fix edit of fetched acc without changing password
Dario Ernst ac64a75743 Simplify alias precedence handling; Remove bogus changelog
hoellen 7247b4b10c
Merge branch 'master' into fix-password-on-user-edit
hoellen a59d5dad23 fix edit of fetched acc without changing password
hoellen f08491dc46 fix forced password on user edit
Ionut Filip 2b0a2d561b Fix connection to mysql db
Dario Ernst 291f8a457b Deliver mails to alias-stripped-of-delimeter, even if catchall exists
This fixes delivery to an alias minus recipient delimiter in cases where a
wildcard alias would also match. For example,
* foo@xxx.tld
* %@xxx.tld
Sending to foo+spam@xxx.tld would get eaten by the catchall before this fix.
Now, the order of alias resolution is made clearer.

closes 
hoellen 732b5fe161 change password field type in fetch creation/edit and add validators.
mergify[bot] 3b5f3af207
Merge pull request from Nebukadneza/fix_recipient_delimiter
Attempt stripping recipient delimiter from localpart
Ionut Filip 9077bf7313 Merge remote-tracking branch 'upstream/master' into feat-psql-support
Ionut Filip 953aa04354 Added postgresql-libs to admin
Tim Möhlmann 561e2fda67
Merge remote-tracking branch 'upstream/master' into fix-favicon
hoellen 501ecf13c1 add migration script
Tim Möhlmann a358b5305f
Merge pull request from Mailu/upgrade-pyyaml
Upgrade PyYAML
Tim Möhlmann 4f93e09028
Implement favicon package
Credit to:
- https://stackoverflow.com/a/19590415/1816774
- https://realfavicongenerator.net/
Tim Möhlmann 284d54190a
Upgrade PyYAML to 4.2b4
hoellen dda64fe91e allow to disable aliases or users for domains and don't allow negativ values on domain creation/edit
hoellen 8fe1e788b3 add missing route fixes
Tim Möhlmann 3c7bf58211
Upgrade PyYAML
CVE-2017-18342
Vulnerable versions: < 4.2b1
Patched version: 4.2b1
In PyYAML before 4.1, the yaml.load() API could execute arbitrary code. In other words, yaml.safe_load is not used.
hoellen d5d4d6c337 harden email address validation and fix routes with user_email
Ionut Filip 01ec6e7bf3 Removed undefined function
mergify[bot] d483ef3c2a
Merge pull request from hoellen/admin-broken-links-1
fix broken webmail and logo url in admin
Tim Möhlmann 74fe177297
Merge pull request from TheLegend875/feat-displayed-name
Feature: send auto reply with displayed name
hoellen f617e82c06 fix broken webmail and logo url in admin
Tim Möhlmann 4068c5b751
Versioning for mysqlclient and psycopg2
Tim Möhlmann b2823c23b8
Merge remote-tracking branch 'upstream/master' into feat-psql-support
Tim Möhlmann 9eaeb80a27
Finalize merge with kaiyou/feat-multiple-db
TheLegend875 999d2a9557 changed default.sieve to send displayed name
TheLegend875 2954d84790 added necessary ui elements
TheLegend875 56f4d4c894 fixed auto-forward
TheLegend875 5bdbbf60d7 fixed display of username when not logged in
Dario Ernst c2d45a47fe Attempt stripping recipient delimiter from localpart
Since postfix now asks us for the complete email over podop, which
includes the recipient-delimiter-and-what-follows not stripped, we need
to attempt to find both the verbatim localpart, as well as the localpart
stripped of the delimited part ….

Fixes 
Tim Möhlmann 19df86f13f
Merge pull request from usrpro/fix-alias-bug
Added regex validation for alias username
Tim Möhlmann af086bbdbe
Include DKIM in VOLUME
Ionut Filip 8fc2846924 Added regex validation for alias username
Tim Möhlmann 3c4ee1b31e
Merge pull request from kaiyou/master
Fixes  regarding application context
ofthesun9 97b3a85090
Merge pull request from hoellen/fix-alias-match-behaviour
fix alias match behaviour
mergify-bot 09a50b6cfc Merge branch 'master' into 'master'
kaiyou 4060ac2223 Remove some forgotten debugging
kaiyou 087841d5b7 Fix the way we handle the application context
The init script was pushing an application context, which maked
flask.g global and persisted across requests. This was evaluated
to have a minimal security impact.

This explains/fixes : flask_wtf caches the csrf token in the
application context to have a single token per request, and only
sets the session attribute after the first generation.
kaiyou b5f51b0e2e Update python dependencies
kaiyou 8707b0fcd7 Use a dictionary of db connection string templates
kaiyou 19f18e2240 Lowercase relays as well as other tables
kaiyou 7e388e472a Handle relay name as an Idna domain
kaiyou 871aa14c9a Lowercase every domain name and email
kaiyou 3df9b3962d Add default columns to the configuration table
kaiyou b88f61f183 Name all constraints when creating them
Prefious commit set the constraint names for existing databases.
New databases can now have named constraints from the ground up.
kaiyou b8282b1d46 Support named constraints for multiple backends
Supporting multiple backends requires that specific sqlite
collations are not used, thus lowercase is applied to all non
case-sensitive columns. However, lowercasing the database requires
temporary disabling foreign key constraints, which is not possible
on SQLite and requires we specify the constraint names.

This migration specific to sqlite and postgresql drops every
constraint, whether it is named or not, and recreates all of them
with known names so we can later disable them.
kaiyou e022513a94 Fix support for postgres and mysql
kaiyou a881a1a839 Revert "Make current migrations work with postgresql"
This reverts commit 9b9f3731f6.
kaiyou 76925e82f3 Revert "Implement CIText as NOCASE alternative in postgresql"
This reverts commit 0f3c1b9d15.
kaiyou f52ae5535c Revert "Created function for returning email type"
This reverts commit 436055f02c.
kaiyou f6520eace6 Merge branch 'feat-psql-support' of https://github.com/usrpro/Mailu into usrpro-feat-psql-support
hoellen 8fe9e695f3 prefer non-wildcard aliases over wildcard aliases
hoellen 79768c09f6 fix alias matching behaviour
Tim Möhlmann 8172f3eab8
Move the Mailu Docker network to a fixed subnet.
This will make network configuration and host based authentication
more robust, across different deployment platforms.
The options `RELAYNETS` and`POD_ADDRESS_RANGE` are kept for compatibility.
However, their usage have become optional.
kaiyou b6aaf57be1 Merge branch 'refactor-config' of github.com:kaiyou/mailu into refactor-config
kaiyou d0f07984b0 Merge remote-tracking branch 'upstream/master' into refactor-config
mergify[bot] 2d4bac03ad
Merge pull request from usrpro/clean-healthcheck-logs
Admin: Prevent redirects during health checking
mergify[bot] a382f74680
Merge pull request from usrpro/fix-recaptcha
Fix recaptcha
mergify[bot] 37027cfce7
Merge pull request from kaiyou/fix-sender-checks
Improve sender checks
Tim Möhlmann d18cf7cb25
Prevent redirects during health checking
Tim Möhlmann c9df311a0d
Set forward_destination to an empty list
The value of `None` resulted in an error, since a list was expected.
Tim Möhlmann eff6c34632
Catch asterisk before resolve_domain
Asterisk results in IDNA error and a 500 return code.
Ionut Filip 7b8835070d Added tenacity retry fir migrations connection
David Rothera 88c174fb7a Query alternative table for domain matches
At present postfix checks this view for matches in the domain table and is used to accept/deny messages sent into it however it never checks for matches in the alternative table.

Fixes 
Ionut Filip 436055f02c Created function for returning email type
Tim Möhlmann 47a3fd47b5
Fix DB_FLAVOR condition testing for models.py
Tim Möhlmann 0f3c1b9d15
Implement CIText as NOCASE alternative in postgresql
Tim Möhlmann 9b9f3731f6
Make current migrations work with postgresql
Tim Möhlmann 8bdc0c71af
Allow for setting a different DB flavor
Ionut Filip fed7146873 Captcha check on signup form
Tim Möhlmann 4783e61693
Fix password context
Fixes the following error:
```
admin_1      | [2018-11-09 09:44:10,533] ERROR in app: Exception on /internal/auth/email [GET]
admin_1      | Traceback (most recent call last):
admin_1      |   File "/usr/lib/python3.6/site-packages/flask/app.py", line 2292, in wsgi_app
admin_1      |     response = self.full_dispatch_request()
admin_1      |   File "/usr/lib/python3.6/site-packages/flask/app.py", line 1815, in full_dispatch_request
admin_1      |     rv = self.handle_user_exception(e)
admin_1      |   File "/usr/lib/python3.6/site-packages/flask/app.py", line 1718, in handle_user_exception
admin_1      |     reraise(exc_type, exc_value, tb)
admin_1      |   File "/usr/lib/python3.6/site-packages/flask/_compat.py", line 35, in reraise
admin_1      |     raise value
admin_1      |   File "/usr/lib/python3.6/site-packages/flask/app.py", line 1813, in full_dispatch_request
admin_1      |     rv = self.dispatch_request()
admin_1      |   File "/usr/lib/python3.6/site-packages/flask/app.py", line 1799, in dispatch_request
admin_1      |     return self.view_functions[rule.endpoint](**req.view_args)
admin_1      |   File "/usr/lib/python3.6/site-packages/flask_limiter/extension.py", line 544, in __inner
admin_1      |     return obj(*a, **k)
admin_1      |   File "/app/mailu/internal/views/auth.py", line 18, in nginx_authentication
admin_1      |     headers = nginx.handle_authentication(flask.request.headers)
admin_1      |   File "/app/mailu/internal/nginx.py", line 48, in handle_authentication
admin_1      |     if user.check_password(password):
admin_1      |   File "/app/mailu/models.py", line 333, in check_password
admin_1      |     context = User.pw_context
admin_1      | AttributeError: type object 'User' has no attribute 'pw_context'
```
kaiyou 72e1b444ca Merge alembic migrations
kaiyou 5b769e23da Merge branch 'master' into refactor-config
kaiyou 02995f0a15 Add a mailu command line to flask
kaiyou f9e30bd87c Update the dockerfile and upgrade dependencies
kaiyou 4a7eb1eb6c Explicitely declare flask migrate
kaiyou 2a8808bdec Add the configuration table migration
kaiyou f57d4859f3 Provide an in-context wrapper for getting users
kaiyou f6013aa29f Fix an old migration that was reading configuration before migrating
kaiyou 206cce0b47 Finish the configuration bits
Ionut Filip 1bbf3f235d Using a new class when captcha is enabled
mergify[bot] 12689965bd
Merge pull request from usrpro/fix-admin-bug
Fixed admin_1 errors in the logs
hoellen 680ad4b67a
Catching only ValueError
Co-Authored-By: ionutfilip <ionut.philip@gmail.com>
mergify[bot] e08f3e81d0
Merge pull request from usrpro/feat-startup
Standarize images
Ionut Filip 6dcc33e390 Fixed admin_1 errors in the logs
Fixed errors when trying to log in with an account without domain.
This closes 
Tim Möhlmann 42e2dbe35d
Standarize image by using shared / similair layers
Tim Möhlmann 5fa2aac569
Fix imap login when no webmail selected
Tim Möhlmann 903bb70c5b
Merge remote-tracking branch 'upstream/master' into standarize-images
Scott 56fb74c502 Fix typo (duplicate self). Fixes
Ionut Filip 8a44a44688
Merge branch 'master' into feat-startup
Ionut Filip 1187cac5e1 Finished up switching from .sh to .py
Tim Möhlmann ed81c076f2
Take out "models" path, as we are already in it
Tim Möhlmann aed80a74fa
Rectify decleration of domain_name
Tim Möhlmann 2d382f2d67
Merge branch 'master' into fix-sender-checks
Ionut Filip 0e5606d493 Changed start.sh to start.py
Tim Möhlmann 81b24f61e8
Merge branch 'master' into feat-healthchecks
kaiyou 1fcaef7c7e
Merge branch 'master' into fix-sender-checks
hoellen 72d4fa2bc9
remove empty line from merge conflict
hoellen 857ad50509
Merge branch 'master' into feat-reply-startdate
kaiyou 82069ea3f0 Clean most of the refactored code
kaiyou f40fcd7ac0 Use click for the manager command
kaiyou fc24426291 First batch of refactoring, using the app factory pattern
kaiyou 01fa179767 Update the user password in database when needed
kaiyou 988e09e65e Add a profiler in debug mode for improving performance
kaiyou dba8f1810d Do not check the password another time in Dovecot
kaiyou ed3388ed6e Merge branch 'master' into feat-reply-startdate
Thomas Sänger 39272ab05c
add healthcheck for http services
kaiyou e784556330 Fix an edge case with old values containing None for coma separated lists
kaiyou f647d1a0bc Merge branch 'master' into fix-sender-checks
kaiyou 5ada669f43 Rebase reply startdate on master
mergify[bot] bee81d1a54
Merge pull request from HorayNarea/bcrypt
support bcrypt and use it as default
kaiyou c6846fd8db Merge branch 'master' into feat-reply-startdate
Thomas Sänger 6aafef88bd
remove apk-warning about cache
Thomas Sänger c8b39c5d4a
support bcrypt and use it as default
kaiyou 00b5ae11db
Merge branch 'master' into feat-abstract-db
kaiyou 508e519a34 Refactor the postfix views and implement sender checks
kaiyou fc99eb7b34 Re-enable sender access check to prevent source spoofing
kaiyou 4d70a8737e Expose the data volume for admin container
kaiyou fcad52b145 Implement a start date filter for autoreply, fixes
kaiyou 82bb8c2fd9 Merge remote-tracking branch 'github/master' into feat-abstract-db
kaiyou f5668dea51 Handle relays as virtual transports through podop
kaiyou 42c6bdb4df Split the internal blueprint into multiple view files
kaiyou f9c6c98180 Remove fetchmail dependency to the databse
kaiyou 542793260b Handle wildcard aliases using podop
kaiyou 0d52364eac Fix alias resolution through podop
kaiyou 6ba55ee377 Implement the sieve script name resolution pattern
kaiyou 3c725bf634 Only support generating the default sieve script
kaiyou ca6c0bc8fd Fix the user sieve script generation
kaiyou 4d25083847 Move sieve script generation to the admin container
kaiyou cfeaa189f9 Use proper 404 return codes for missing objects
kaiyou d8365bfbcf Use simpler routes for Dovecot
kaiyou 7143fb8c47 Implement some basic views for podop
kaiyou 68aa797720 Merge branch 'master' into feat-abstract-db
Thomas Sänger 0b885548ab
bind to any protocol
kaiyou 73ca5fb3d3 Provide a more generic skeletton for postfix virtual lookups
kaiyou 313b79538e
Merge pull request from mprihoda/feature/better-ratelimit-error
Return correct status codes from auth rate limiter failure.
Pierre Jaury 5ad02ae2e5 Use a more uniform 'Save' for most form submits, fixes
Pierre Jaury 809fe78f82 Add dovecot views to the internal API
Pierre Jaury 28001213d4 Remove the redis-based quota code
Pierre Jaury 76617a3c97 Store the quota status in database
Michal Prihoda f5e7751835 Return correct status codes from auth rate limiter failure.
kaiyou 74b72375cb
Merge pull request from MFAshby/user_validation
Made User and UserSignup validation consistent for the local part of
hoellen 9091e54fda Hide administration header in sidebar for normal users.
mfashby 0284b6a8e9 Made User and UserSignup validation consistent for the local part of the email address
Pierre Jaury 14687d09ba Fix announcements for idna domains
Pierre Jaury 1371ba5f5e Add the keep field to fetch forms, fixes
Pierre Jaury ea658a174d Fix a typo in the base html template
Pierre Jaury b6c76a5e39 Do not remove openssl when purging build deps, fixes
kaiyou 91e51a24c8
Merge pull request from sanduhrs/feature/463
Remove services status page
Thomas Sänger 7d661ab80d
don't require BootstrapCDN for FontAwesome (GDPR-compliance)
Stefan Auditor 6177571e4d Remove services status localization
Stefan Auditor b541d4c257 Remove services status sidebar link
Stefan Auditor e89b32a3f4 Remove services route
Stefan Auditor ec8e82aaca Remove services status template
kaiyou f55e5e26cd Update messages.po (POEditor.com)
kaiyou 2b96abbef4 Update messages.po (POEditor.com)
kaiyou af38d5ab0c Update messages.po (POEditor.com)
kaiyou fc89b30e8a Update messages.po (POEditor.com)
kaiyou 791fab688a Update messages.po (POEditor.com)
kaiyou c9b0832899 Update messages.po (POEditor.com)
kaiyou fa1b0ac32c Update messages.po (POEditor.com)
kaiyou 75f0791965 Update messages.po (POEditor.com)
kaiyou c91c5c7493 Update messages.po (POEditor.com)
kaiyou 299a654e97 Update messages.po (POEditor.com)
kaiyou 494e52d8f0 Update messages.po (POEditor.com)
kaiyou 3b7014d563 Add dummy spanish and russion languages
kaiyou be0a0b4ac8 Update translation strings
kaiyou 8bad30cd59 Move the domain MX status to the detail page
kaiyou 7f0447514c Finish storing the user quota to redis
kaiyou 80893be68b Add a missing import to dnspython
kaiyou 091369915b Display the user quota in the admin interface
kaiyou e13593f29a Switch to database 2 for rate limiting
kaiyou d1dbba2d3a Add expose instructions in Dockerfiles, fixes
kaiyou 62d1a0c104 Add a status field to the domain list
kaiyou bb0d7bf6dc Enforce the nocase collation on the email table
kaiyou 186c30d2ac Have the admin listen on ipv6
kaiyou dfaedb76f1
Merge pull request from sanduhrs/feature/446
Add a sqlalchemy custom type for unicode to idna conversion of domain names
kaiyou 9968d708f1 Update the prod requirements
kaiyou 381e76511d Add self-service domain registration
Stefan Auditor c688970b32 Respect user enabled flag in admin authentication
Stefan Auditor d3064579f4 Respect user enabled flag in basic authentication
Stefan Auditor 92f4858323 Respect user.enabled status in internal authentication
Stefan Auditor d2c6cecca6 Remove is_enabled method and use the enabled attribute instead
Stefan Auditor 5bfdd75738 Respect user enabled flag on user.login
Stefan Auditor 78f4fa7db9 Add field to ui for user enabled flag
Stefan Auditor 20d6fbae48 Add enabled flag to user model
Scott 2c2a1ed042 Remove stale link to old auto-forward settings. Fixes
Also update a reference to 'smtp' to use HOST_AUTHSMTP
kaiyou a51416a4af
Merge pull request from sanduhrs/feature/449
Add enabled flag to user model
Stefan Auditor e843f7ef1f Respect user enabled flag in admin authentication
Stefan Auditor c8540ddba7 Respect user enabled flag in basic authentication
Stefan Auditor 6fc22e5432 Respect user.enabled status in internal authentication
Stefan Auditor 733b89bff5 Remove is_enabled method and use the enabled attribute instead
Stefan Auditor 3b66fcada7 Respect user enabled flag on user.login
Stefan Auditor 7139a27bf1 Add field to ui for user enabled flag
Stefan Auditor f585197e52 Add enabled flag to user model
Scott e5c25c395f Remove stale link to old auto-forward settings. Fixes
Also update a reference to 'smtp' to use HOST_AUTHSMTP
Stefan Auditor 7f5bd98a2e Add parameters to database field
Stefan Auditor 93d5254b3f Add another type decorator for idna email support
Stefan Auditor 792c720c13 Save user email domain_name as idna representation
Stefan Auditor c40e255f3b Reset relay columns to string
Stefan Auditor d9ea64fac7 Import idna library and move code a bit upwards
Stefan Auditor 5a7272ff12 Replace other occurences of domain names with idna
Stefan Auditor 1b666cd25b Add a sqlalchemy custom type for unicode to idna conersion of domain names
kaiyou db0cd8efb4 Fix the client setup page when not logged in
kaiyou b4134b7774 Add a client setup page, fixes
kaiyou fa0bda7b69 Merge the auto-forward and antispam settings
kaiyou 3ef4e1f6b7 Add support for recaptcha upon signup
Mildred Ki'Lya f538e33dcf Parametrize hosts
Allows to use mailu without docker-compose when hostnames are not set up
by docker itself but provided via a separate resolver.

Use case: use mailu using nomad scheduler and consul resolver instead of
docker-compose. Other servers are provided by the DNS resolver that
resolves names like admin.service.consul or webmail.service.consul.
These names needs to be configurable.
kaiyou d8ebfbe020 Display infinite user quotas correctly, fixes
kaiyou d98f16333a Display an infinite quota when necessary for users, fixes
kaiyou 8d224824ea Display a conditional button for generation dkim keys, fixes
kaiyou 42314d3d75 Remove a remaining rebug print() statement
kaiyou a4f46ced49 Properly use x-forwarded-proto with redirects in the webui, related to
kaiyou 319965a4af Add a format check for the email localpart when signing up
kaiyou 18ae6a4a0f Fix the signup quota
kaiyou e85eada522 Fix the login view when no next page is provided
kaiyou def0a8b89d Fix the signup domain list with non infinite mailbox max count
kaiyou 2662abedef Enable self-service account signup
kaiyou 3b79e5196a Add a default quota setting for new accounts
kaiyou 6d71fa96ad Add a signup field to domains
kaiyou c545b8d110 Honor feature limitations for imap and pop3
kaiyou 3e464b0b70 Update messages.po (POEditor.com)
kaiyou 952a50665b Update messages.po (POEditor.com)
kaiyou d4441b6815 Move nl and sv loca to LC_MESSAGES
kaiyou ab34ce4e8e Add dummy files for pl and it loca
kaiyou 2f4758a445 Update messages.po (POEditor.com)
kaiyou e368c200b1 Update messages.po (POEditor.com)
kaiyou 17b184e5c8 Implement a basic authentication API
kaiyou 059cbb37a4 Update messages.po (POEditor.com)
kaiyou e9f4719a40 Update messages.po (POEditor.com)
kaiyou 112cff3621 Update messages.po (POEditor.com)
kaiyou f30a09f182 Update messages.po (POEditor.com)
kaiyou 826d212a75 Update messages.po (POEditor.com)
kaiyou 72029ca220 Update messages.po (POEditor.com)
kaiyou aa9a065d5b Update messages.po (POEditor.com)
kaiyou 2e370e3731 Update messages.po (POEditor.com)
kaiyou ebddc7bec2 Add dummy translations for swedish and dutch
kaiyou 011e1fa52d Add an end of vacation field, related to
kaiyou fb42797ab7 Use SITENAME and WEBSITE properly in the admin ui
kaiyou 872271cb47 Clean the configuration variable list
kaiyou 1a3f85fbc2 Make the rspamd webui available, fixes
kaiyou ac0c339aa8 Implement welcome emails, fixes
kaiyou 570e90acbc Move email send features to the User model
kaiyou 6e61500eb1 Fix the authentication behavior with non-existing users
HouMingtao [侯明涛] b0f8d7ab78 move to new translation folder
Change-Id: If4b4a25b305aab3d96155283881573a125272f81
kaiyou 2427544972 Move statistics to the start.sh script for clarity
kaiyou e9813f99bf Fix the annonucement feature by sending mail to the proper smtp server, fixes
kaiyou 6eaffd514d Make it possible to opt out of statistics
kaiyou 45902ae012 Fix a bug when trying to authenticate with a non existing user
kaiyou baff8dd043 Avoid blacklisting the webmail
kaiyou f5ee77519e Rename spam threshold to spam tolerance
kaiyou edbea372e9 Merge branch 'master' into refactor-repo
kaiyou ac53b3ed97 Merge branch 'master' into refactor-repo
kaiyou 689be5f2d9 Move all directories per theme