455 Commits
1.4 ... 1.5

Author SHA1 Message Date
70251ea215 Downgrade postfix back to 1.4 configuration 2021-04-26 21:52:18 +02:00
87ac211e03 Fixes 2021-04-26 20:23:45 +02:00
eb8380fa5b Fix python3 compatibility 2021-04-26 18:31:20 +02:00
a6491fd87f Fix build.sh 2021-04-26 18:25:46 +02:00
4ab9ba97ca Update to alpine 3.13 2021-04-26 18:24:31 +02:00
e2aa247c2d Fix rspamd 2021-04-26 18:20:48 +02:00
Tim Möhlmann
f75b2fb631 Disable healthcheck, like on master 2018-12-17 00:30:26 +02:00
Tim Möhlmann
0739224fc4 Add dockerfile and enable Docs build 2018-12-17 00:19:44 +02:00
Tim Möhlmann
fc83a7d829 Merge pull request #749 from usrpro/1.5-autobuild
1.5 autobuild
2018-12-16 23:43:56 +02:00
mergify-bot
2b1ed25148 Merge branch '1.5' into '1.5-autobuild' 2018-12-16 22:36:47 +01:00
kaiyou
a4551870aa Backport documentation build from master 2018-12-16 22:31:28 +01:00
Tim Möhlmann
6869b3096b Use MAILU_VERSION from Travis for Docs build 2018-12-15 21:46:30 +02:00
Tim Möhlmann
1c39af464d Move radicale to edge in able to build 2018-12-15 21:00:58 +02:00
Tim Möhlmann
f02a183694 Enable Travis autobuilds for 1.5
This is a simplified backport from master, whitout any testing.
2018-12-15 20:52:57 +02:00
Tim Möhlmann
cd80fda12e Merge pull request #735 from HorayNarea/fix-dhparam
fix dhparam.pem shadowing in 1.5
2018-12-08 11:58:15 +02:00
kaiyou
8c7138d69b Move dhparam to /conf 2018-12-08 09:02:26 +01:00
kaiyou
28f8e69ebb Merge pull request #709 from rbarazzutti/1.5-htaccess-php7
1.5 htaccess php7
2018-12-06 10:01:57 +01:00
kaiyou
09934c460c Merge pull request #706 from usrpro/backport-incl-dhparam
Use a predefined dhparam.pem (Backport)
2018-12-06 10:00:40 +01:00
Raphaël P. Barazzutti
18f4f0bed8 adapt the .htaccess file for PHP7 as required 2018-11-18 10:27:08 +01:00
Greg Fitzgerald
e2ce62cbd0 Use a predefined dhparam.pem, This fixes issue #322 2018-11-09 13:34:28 +02:00
kaiyou
a36fc369f9 Merge pull request #658 from bluedynamics/backport/309-Announces-fail
Only check login mismatch for authenticated users, fixes #309
2018-10-16 19:49:25 +02:00
Pierre Jaury
c91953b5df Only check login mismatch for authenticated users, fixes #309 2018-10-15 16:05:55 +02:00
kaiyou
790e32cfb8 Merge pull request #572 from ofthesun9/1.5-alpine_3.8
alpine 3.8 for nginx front container
2018-10-07 11:56:23 +02:00
kaiyou
bbcf3edb10 Merge branch '1.5' into 1.5-alpine_3.8 2018-10-07 11:56:13 +02:00
kaiyou
e4b63cb043 Merge pull request #617 from HorayNarea/patch-3
backport fix for #474 to 1.5
2018-10-06 19:08:50 +02:00
kaiyou
a7a27625cc Merge pull request #621 from usrpro/fix-1.5-no-travis
1.5: Travis to always succeed
2018-10-06 17:14:47 +02:00
Tim Möhlmann
57188345f0 Travis to always succeed 2018-10-01 00:44:37 +03:00
Thomas Sänger
4dd66e4964 backport fix for #474 to 1.5 2018-09-29 15:59:36 +02:00
kaiyou
cfff8953e5 Merge pull request #556 from usrpro/patch-1
Libpng12-dev is now called libpng-dev
2018-09-16 19:56:09 +02:00
kaiyou
9bf6f84c05 Merge pull request #557 from usrpro/1.5
Pin Alpine 3.7
2018-09-16 19:55:16 +02:00
kaiyou
cd0bc5562a Merge pull request #587 from nasa9084/patch-1
fix typo
2018-09-16 19:47:53 +02:00
nasa9084
eb4e65be64 fix typo 2018-09-14 15:59:19 +09:00
Hypriot Pirate
5d26c9a097 fix for #522 2018-08-18 13:08:36 +00:00
Tim Möhlmann
f0e56bb80e Libpng12-dev is now called libpng-dev
Like PR #514, this prevents re-building the image in the 1.5 branch.
2018-08-07 19:13:17 +03:00
Tim Möhlmann
465ccda95f Pin Alpine 3.7 to preserve the Postfix version 2018-08-07 18:38:22 +03:00
kaiyou
e14fcd1b8a Merge pull request #549 from muhlemmer/1.5
Use alpine:3.7 tag to prevent postix upgrade
2018-08-03 08:19:53 +02:00
kaiyou
4d62861b78 Pin alpine 3.7 2018-08-03 07:25:36 +02:00
kaiyou
550470d604 Pin alpine 3.7 in order to preserve Postfix version 2018-08-03 07:24:20 +02:00
Tim Möhlmann
43b64229d1 Use alpine:3.7 tag to prevent postix upgrade 2018-08-03 00:31:28 +03:00
kaiyou
ad6bc4060d Merge pull request #536 from WBasson/patch-1
Update index.rst
2018-08-01 21:08:20 +02:00
WBasson
53da190863 Update index.rst
administration was mis-spelled
2018-07-26 11:00:10 +02:00
ofthesun9
6674af8881 Switching to alpine:3.8 2018-07-21 15:19:43 +00:00
kaiyou
c24cabc305 Merge pull request #488 from ofthesun9/1.5
Fix rspamd behavior, currently failing due to worker-fuzzy for 1.5
2018-06-03 17:06:53 +02:00
ofthesun9
ce4db065c6 Fix rspamd behavior, currently failing due to worker-fuzzy for 1.5 2018-06-03 11:35:53 +00:00
kaiyou
3e6f0d7842 Merge pull request #486 from ofthesun9/1.5
Do not remove openssl when purging build deps, fixes #481
2018-06-03 11:48:57 +02:00
Pierre Jaury
11f145da8c Do not remove openssl when purging build deps, fixes #481 2018-06-03 09:51:49 +02:00
Pierre Jaury
6a3236200d Fix the path of the nginx pid in startup scripts, fixes #483
(cherry picked from commit 6828231c28)
2018-06-02 10:23:58 +02:00
kaiyou
e17c587b78 Remove a reference to 1.5.1 2018-04-21 12:29:55 +02:00
kaiyou
9caab592ed Switch to edge for clamav 2018-03-21 21:25:22 +01:00
AdrienM
6afde67525 Add explicit ssl_protocols in conf 2018-03-21 08:20:24 +01:00
kaiyou
564f5ad070 Merge pull request #397 from pbinks/patch-2
Update setup.rst
2018-03-05 21:21:35 +01:00
kaiyou
fb74adf1dc Remove the reference to stable in the setup docs, fixes #393
(cherry picked from commit a0d7b987ca)
2018-03-05 21:19:29 +01:00
kaiyou
91bb76ecd3 Merge pull request #402 from pbinks/patch-7
Update cli.rst
2018-03-05 20:46:47 +01:00
kaiyou
f7dfee4c60 Merge pull request #401 from pbinks/patch-6
Update maintain.rst
2018-03-05 20:46:28 +01:00
kaiyou
dbe0cfe129 Merge pull request #400 from pbinks/patch-5
Update reverse.rst
2018-03-05 20:45:45 +01:00
kaiyou
fdeb302eff Merge pull request #399 from pbinks/patch-4
Update dns.rst
2018-03-05 20:45:28 +01:00
kaiyou
8eeb9b22b4 Merge pull request #398 from pbinks/patch-3
Update index.rst
2018-03-05 20:45:12 +01:00
kaiyou
b362940388 Merge pull request #396 from pbinks/patch-1
Update requirements.rst
2018-03-05 20:41:58 +01:00
Paul Binks
ce01389669 Update cli.rst 2018-03-01 16:49:30 +00:00
Paul Binks
37ba915e7b Update maintain.rst 2018-03-01 16:46:21 +00:00
Paul Binks
6c47dfb997 Update reverse.rst 2018-03-01 16:41:17 +00:00
Paul Binks
4b6e48d826 Update dns.rst 2018-03-01 16:36:43 +00:00
Paul Binks
2f7dbe92bf Update index.rst 2018-03-01 16:33:13 +00:00
Paul Binks
0ff9d3c953 Update setup.rst 2018-03-01 16:30:13 +00:00
Paul Binks
cce0de24e9 Update requirements.rst 2018-03-01 16:20:43 +00:00
kaiyou
2b144bc574 Specify the client max body size in the front, related to #371
(cherry picked from commit 6c56c8e298)
2018-02-19 14:18:35 +01:00
kaiyou
449af8eb0b Make sure stale pid files are dealt with, fix #341
(cherry picked from commit 4761646616)
2018-02-08 21:09:32 +01:00
Rafael Cossovan
e03097b505 Update configuration.rst
Fix env variable.

(cherry picked from commit 23f392efb2)
2018-02-01 00:41:46 +01:00
kaiyou
c157088385 Set the temp directory for Roundcube, related to #365
(cherry picked from commit 34d88144b2)
2017-12-19 22:19:38 +01:00
kaiyou
4ce3a04287 Use relative redirect for / to the webmail
(cherry picked from commit acb5d7da38)
2017-12-05 20:08:36 +01:00
kaiyou
8854d76bcc Use a map for passing x-forwarded-proto along
(cherry picked from commit 2dfc91ac4d)
2017-12-05 20:08:29 +01:00
kaiyou
13ffb85912 Remove a remaining rebug print() statement
(cherry picked from commit 42314d3d75)
2017-12-05 20:08:19 +01:00
kaiyou
f5b78ffff0 Properly use x-forwarded-proto with redirects in the webui, related to #347
(cherry picked from commit a4f46ced49)
2017-12-05 20:08:11 +01:00
kaiyou
46dc9b0b16 Fix the Webdav behavior with Radicale, related to #334 2017-11-30 22:03:22 +01:00
kaiyou
820f6dee82 Merge branch '1.5' into 1.5.1 2017-11-26 22:10:36 +01:00
kaiyou
92c21613ff Set the title of web pages in the docs
(cherry picked from commit 03d3351496)
2017-11-21 22:44:11 +01:00
kaiyou
017a2611cc Release version 1.5.1 2017-11-21 22:05:23 +01:00
kaiyou
f3dd8c2112 Merge branch '1.5' 2017-11-21 22:03:23 +01:00
kaiyou
e311606cf6 Update the changelog for version 1.5.1 2017-11-21 22:01:32 +01:00
kaiyou
c545b8d110 Honor feature limitations for imap and pop3 2017-11-21 20:46:32 +01:00
kaiyou
b6a7e04124 Update messages.po (POEditor.com) 2017-11-20 00:17:51 +01:00
kaiyou
2c9ad0d486 Update messages.po (POEditor.com) 2017-11-20 00:17:48 +01:00
kaiyou
53b14d2fb5 Update messages.po (POEditor.com) 2017-11-20 00:17:46 +01:00
kaiyou
3e464b0b70 Update messages.po (POEditor.com) 2017-11-20 00:17:44 +01:00
kaiyou
952a50665b Update messages.po (POEditor.com) 2017-11-20 00:17:42 +01:00
kaiyou
68828a313b Update messages.po (POEditor.com) 2017-11-20 00:17:39 +01:00
kaiyou
4932510e08 Update messages.po (POEditor.com) 2017-11-20 00:17:37 +01:00
kaiyou
8fc64057d6 Update messages.po (POEditor.com) 2017-11-20 00:17:35 +01:00
kaiyou
d4441b6815 Move nl and sv loca to LC_MESSAGES 2017-11-20 00:15:33 +01:00
kaiyou
ab34ce4e8e Add dummy files for pl and it loca 2017-11-20 00:12:39 +01:00
kaiyou
1b4248a0a3 Update messages.po (POEditor.com) 2017-11-20 00:11:38 +01:00
kaiyou
b3c5566db1 Update messages.po (POEditor.com) 2017-11-20 00:11:36 +01:00
kaiyou
2f4758a445 Update messages.po (POEditor.com) 2017-11-20 00:11:34 +01:00
kaiyou
e368c200b1 Update messages.po (POEditor.com) 2017-11-20 00:11:31 +01:00
kaiyou
9f7b1fd817 Update messages.po (POEditor.com) 2017-11-20 00:11:29 +01:00
kaiyou
de8701a705 Update messages.po (POEditor.com) 2017-11-20 00:11:27 +01:00
kaiyou
f3ae318132 Perform webdav authentication in nginx, fixes #330 2017-11-20 00:09:19 +01:00
kaiyou
17b184e5c8 Implement a basic authentication API 2017-11-20 00:08:48 +01:00
kaiyou
8920982213 Properly pass the request uri to the authentication backend 2017-11-18 16:40:01 +01:00
kaiyou
97dd9ed77c Fix a missing variable in the nginx config 2017-11-18 15:22:38 +01:00
kaiyou
c877d1affb Merge pull request #326 from HorayNarea/roundcube
upgrade php for roundcube and rainloop to v1.3.3.3
2017-11-13 21:40:57 +01:00
kaiyou
1c3df2b1fc Fix the compose dependencies for front and admin container 2017-11-13 21:40:22 +01:00
kaiyou
eb32871904 Force nginx to run dns queries at runtime 2017-11-13 21:40:22 +01:00
Thomas Sänger
c0fc9b045b bump roundcube version (security update) 2017-11-13 15:55:18 +01:00
kaiyou
dc79e6e539 Merge pull request #325 from HorayNarea/redis
use alpine-image for redis
2017-11-13 08:12:30 +01:00
kaiyou
caec94389d Merge pull request #324 from HorayNarea/rspamd
remove previous rspamd start-script
2017-11-13 08:11:47 +01:00
kaiyou
e7ca93173a Merge pull request #323 from HorayNarea/front
automatically set nginx-worker based on CPU-count
2017-11-13 08:11:22 +01:00
Thomas Sänger
352d77bf33 upgrade php for roundcube 2017-11-12 23:34:57 +01:00
Thomas Sänger
a9350953c6 use alpine-image for redis 2017-11-12 23:23:54 +01:00
Thomas Sänger
c83676e02f remove previous rspamd start-script 2017-11-12 23:23:03 +01:00
Thomas Sänger
ad7c5e48c5 automatically set nginx-worker based on CPU-count 2017-11-12 23:21:00 +01:00
kaiyou
118f93d049 Add a code of conduct, fixes #319 2017-11-12 11:42:53 +01:00
kaiyou
7f3ac3a51c Add contributing guidelines 2017-11-12 11:38:49 +01:00
kaiyou
fc1bf5ed34 Merge pull request #318 from HorayNarea/patch-1
Update AUTHORS.md
2017-11-11 23:50:30 +01:00
Thomas Sänger
d8506053a9 Update AUTHORS.md 2017-11-11 23:43:30 +01:00
kaiyou
059cbb37a4 Update messages.po (POEditor.com) 2017-11-11 15:21:28 +01:00
kaiyou
e9f4719a40 Update messages.po (POEditor.com) 2017-11-11 15:21:26 +01:00
kaiyou
112cff3621 Update messages.po (POEditor.com) 2017-11-11 15:21:24 +01:00
kaiyou
f30a09f182 Update messages.po (POEditor.com) 2017-11-11 15:21:22 +01:00
kaiyou
826d212a75 Update messages.po (POEditor.com) 2017-11-11 15:21:19 +01:00
kaiyou
72029ca220 Update messages.po (POEditor.com) 2017-11-11 15:21:17 +01:00
kaiyou
aa9a065d5b Update messages.po (POEditor.com) 2017-11-11 15:14:30 +01:00
kaiyou
2e370e3731 Update messages.po (POEditor.com) 2017-11-11 15:14:27 +01:00
kaiyou
ebddc7bec2 Add dummy translations for swedish and dutch 2017-11-11 15:12:14 +01:00
kaiyou
89ac22dd90 Express dependencies in the Compose configuration, related to #316 2017-11-11 15:08:23 +01:00
kaiyou
f362ecdb19 Fix the missing trailing space on /webmail, fixes #304 2017-11-10 16:04:40 +01:00
kaiyou
652ca769dc Allow authentication from webmail directly, fixes #308 2017-11-10 15:54:41 +01:00
kaiyou
28eff398d1 Send a vacation response only until the end date, fixes #218 2017-11-10 15:39:16 +01:00
kaiyou
011e1fa52d Add an end of vacation field, related to #218 2017-11-10 15:25:30 +01:00
kaiyou
fb42797ab7 Use SITENAME and WEBSITE properly in the admin ui 2017-11-10 15:00:51 +01:00
kaiyou
872271cb47 Clean the configuration variable list 2017-11-10 14:56:55 +01:00
kaiyou
1a3f85fbc2 Make the rspamd webui available, fixes #157 2017-11-10 14:49:36 +01:00
kaiyou
3675fdb915 Install the proper rspamd modules on top of Alpine 2017-11-10 14:48:13 +01:00
kaiyou
ac0c339aa8 Implement welcome emails, fixes #107 2017-11-10 11:56:43 +01:00
kaiyou
570e90acbc Move email send features to the User model 2017-11-10 11:55:58 +01:00
kaiyou
92f2025d7c Enable pop3 on the frontend, fix #313 2017-11-10 10:15:30 +01:00
kaiyou
6e61500eb1 Fix the authentication behavior with non-existing users 2017-11-10 10:15:30 +01:00
kaiyou
b676366a1d Merge pull request #312 from julywind/master
merge Chinese Simple translation
2017-11-09 11:37:56 +01:00
HouMingtao [侯明涛]
b0f8d7ab78 move to new translation folder
Change-Id: If4b4a25b305aab3d96155283881573a125272f81
2017-11-09 15:21:00 +08:00
HouMingtao [侯明涛]
0873fc4eb9 add Chinese Simple Language 2017-11-09 15:03:31 +08:00
kaiyou
558528ff96 Merge pull request #310 from ltouro/ltouro-tls-flavor-env
Add the new TLS_FLAVOR "mail" to the env file
2017-11-08 19:23:53 +01:00
Lucas
8f6f01e07f Add the new TLS_FLAVOR "mail" to the env file
Update the env file to add the new TLS_FLAVOR "mail" in the list of possible values.
2017-11-08 14:29:04 -02:00
kaiyou
2427544972 Move statistics to the start.sh script for clarity 2017-11-08 09:39:34 +01:00
kaiyou
8f70d40ac3 Add a missing volume for dkim to work on rspamd
(cherry picked from commit 8cab079af6)
2017-11-08 00:27:42 +01:00
kaiyou
8cab079af6 Add a missing volume for dkim to work on rspamd 2017-11-08 00:26:08 +01:00
kaiyou
e9813f99bf Fix the annonucement feature by sending mail to the proper smtp server, fixes #309 2017-11-07 17:21:32 +01:00
kaiyou
bfa50c5aa7 Add a new TLS flavor named 'mail' 2017-11-07 16:16:41 +01:00
kaiyou
41c73ac6b7 Update the version in .env 2017-11-07 16:08:42 +01:00
kaiyou
5fd29a6593 Update the version in .env 2017-11-07 16:07:58 +01:00
kaiyou
6d4a0507f2 Add a note about the stable branch 2017-11-07 16:05:54 +01:00
kaiyou
e3ccf8b51f Add a note about the stable branch 2017-11-07 16:05:46 +01:00
kaiyou
3966a9a401 Fix the documentation about exposing the admin interface
(cherry picked from commit 1ac0576af0)
2017-11-06 13:46:30 +01:00
kaiyou
1ac0576af0 Fix the documentation about exposing the admin interface 2017-11-06 13:46:22 +01:00
kaiyou
2500a32234 Use a template to replace the version tag
(cherry picked from commit 5831221c0e)
2017-11-06 13:24:49 +01:00
kaiyou
5831221c0e Use a template to replace the version tag 2017-11-06 13:24:40 +01:00
kaiyou
8c71037d3d Merge branch '1.5' 2017-11-06 12:47:53 +01:00
kaiyou
ea9f3c0242 Fix a Jinja compilation issue 2017-11-06 12:46:21 +01:00
kaiyou
49bfeda3d3 Use proper jinja templating inside rst templates 2017-11-06 12:21:28 +01:00
kaiyou
30a1657155 Use a custom role for including github_version 2017-11-06 12:10:54 +01:00
kaiyou
8b9d9ef86d Use github_version in literals 2017-11-06 11:48:39 +01:00
kaiyou
e170ecaeee Fix a typo in the release notes and remove the mention of the stable branch
(cherry picked from commit 0edd4864d2)
2017-11-06 11:43:24 +01:00
kaiyou
12447e42ff Generate dynamic download links for the configuration
(cherry picked from commit 881fae382a)
2017-11-06 11:43:15 +01:00
kaiyou
0edd4864d2 Fix a typo in the release notes and remove the mention of the stable branch 2017-11-06 11:42:49 +01:00
kaiyou
881fae382a Generate dynamic download links for the configuration 2017-11-06 11:41:32 +01:00
kaiyou
2f24c45c4c Set the statistics endpoint for version 1.5 2017-11-05 21:53:13 +01:00
kaiyou
a4055e2f49 Add a link to the changelog 2017-11-05 18:46:28 +01:00
kaiyou
71eb30c4b6 Fix some typos in the release notes 2017-11-05 18:38:57 +01:00
kaiyou
e15b11dc7e Publish release notes for version 1.5 2017-11-05 18:31:15 +01:00
kaiyou
6eaffd514d Make it possible to opt out of statistics 2017-11-05 18:30:53 +01:00
kaiyou
45902ae012 Fix a bug when trying to authenticate with a non existing user 2017-11-05 18:12:50 +01:00
kaiyou
baff8dd043 Avoid blacklisting the webmail 2017-11-05 18:12:26 +01:00
kaiyou
e625bc9adb Update the milter port on Postfix 2017-11-05 17:36:13 +01:00
kaiyou
81ec977e6e Make rspamd configuration overridable 2017-11-05 17:23:40 +01:00
kaiyou
f5ee77519e Rename spam threshold to spam tolerance 2017-11-05 17:17:51 +01:00
kaiyou
baf3b7d276 Update the changelog for version 1.5 2017-11-05 16:59:37 +01:00
kaiyou
3d6ad9c3ca Update the kubernetes docs and warn about incompatibility with version 1.5 2017-11-05 16:58:44 +01:00
kaiyou
08b567e3d9 Disable deprecated rmilter 2017-11-05 16:55:37 +01:00
kaiyou
1d9b3b00a7 Use rspamd as a milter service instead of deprecated rmilter 2017-11-05 16:54:23 +01:00
kaiyou
f943dc85a2 Update webmails 2017-11-05 14:18:06 +01:00
kaiyou
51f21a43fb Fix the screenshot in the README 2017-11-05 00:45:37 +01:00
kaiyou
4b73c35b34 Update the docs to reflect the new website 2017-11-05 00:44:03 +01:00
kaiyou
e0dd708ce0 Fix the reverse proxy documentation 2017-11-05 00:34:32 +01:00
kaiyou
0d7ab122d5 Add the documentation about reverse proxies 2017-11-05 00:30:03 +01:00
kaiyou
17f49e77e5 Update the documentation index 2017-11-05 00:24:30 +01:00
kaiyou
f8a6c8a415 Add contributors documentations 2017-11-05 00:24:18 +01:00
kaiyou
a68802b3b5 Add the demo server and release notes 2017-11-05 00:24:10 +01:00
kaiyou
8e1e937808 Add a page with features and screenshots 2017-11-04 23:56:15 +01:00
kaiyou
f0759ffda0 Update the readme to link to the new Website 2017-11-04 23:41:21 +01:00
kaiyou
408e9dc85e Fix the build directory path when deploying 2017-11-04 23:21:58 +01:00
kaiyou
f5db5d183b Add the deploy command to travis builds 2017-11-04 23:19:47 +01:00
kaiyou
d433c7a0ed Add paramiko to upload documentations after the build 2017-11-04 23:16:29 +01:00
kaiyou
9fbdf70dc2 Add a travis build for the documentation 2017-11-04 22:47:40 +01:00
kaiyou
56c0c00840 Add some shields on the homepage 2017-11-04 22:05:11 +01:00
kaiyou
70c32787d6 Insert a dynamic template for multiversion rendering 2017-11-04 21:38:29 +01:00
kaiyou
8746fafc14 Simplify the Sphinx configuration 2017-11-04 19:28:19 +01:00
kaiyou
ce9d991a13 Improve the documentation menu 2017-11-04 19:07:55 +01:00
kaiyou
f5ccc0e09c Remove unused makefiles 2017-11-04 19:01:00 +01:00
kaiyou
f2ff77d554 Remove unused directories 2017-11-04 19:00:45 +01:00
kaiyou
1434e788ee Add a requirement list 2017-11-04 18:59:23 +01:00
kaiyou
f22194d78b Rename the webmails directory 2017-11-04 18:48:22 +01:00
kaiyou
edbea372e9 Merge branch 'master' into refactor-repo 2017-11-04 18:40:53 +01:00
kaiyou
b0eadadc5c Update the gitignore 2017-11-04 18:20:53 +01:00
kaiyou
48bc67428b Add a first version of the tracking code 2017-11-03 21:50:28 +01:00
kaiyou
40e6604d16 Enable dhparam and weaken TLS on port 25 using starttls 2017-11-03 20:37:10 +01:00
kaiyou
2d22e9cabe Add the Mailu logo 2017-11-02 20:22:49 +01:00
kaiyou
bc44b83819 Update links for the compose setup 2017-11-02 20:16:07 +01:00
kaiyou
5d395a2dd0 Fix the version number in the documentation 2017-11-02 20:05:49 +01:00
kaiyou
fcf9515bff Fix the rst syntax for most documentation 2017-11-02 20:05:12 +01:00
kaiyou
dc2f1280ed Import the documentation from the wiki 2017-11-01 20:12:17 +01:00
kaiyou
ac53b3ed97 Merge branch 'master' into refactor-repo 2017-11-01 18:29:25 +01:00
kaiyou
f9708e874a Fix the service list page 2017-11-01 16:29:05 +01:00
kaiyou
8722e72f8d Fix the token list template 2017-11-01 16:28:14 +01:00
kaiyou
de2a06aec1 Fix letsencrypt by using a separate port than the proxy 2017-11-01 15:24:22 +01:00
kaiyou
c59e05bb09 Add initial sphinx config 2017-11-01 12:37:32 +01:00
kaiyou
75842df0d4 Move compose base files to the docs 2017-11-01 12:11:59 +01:00
kaiyou
689be5f2d9 Move all directories per theme 2017-11-01 12:11:04 +01:00
kaiyou
26da4f306d Move images to the documentation folder 2017-11-01 12:04:31 +01:00
kaiyou
3f43b205d3 Prepare the changelog for 1.5.0 2017-11-01 12:03:09 +01:00
kaiyou
494db6a14a Add a note about changing the license related to contributors 2017-10-29 21:15:43 +01:00
kaiyou
7e0399a8be Update authors with translation 2017-10-29 21:14:20 +01:00
kaiyou
aac488d7e3 Update translations 2017-10-29 19:13:17 +01:00
kaiyou
51e9d56b89 Add gettext calls for i18n 2017-10-29 19:10:04 +01:00
kaiyou
cd90f0beb0 Merge pull request #292 from Mailu/feature-auth-tokens
Implement authentication tokens
2017-10-29 19:05:19 +01:00
kaiyou
23bb932785 Merge branch 'master' into feature-auth-tokens 2017-10-29 19:05:09 +01:00
kaiyou
19fe73b388 Implement authentication rate limit, fixes #116 2017-10-29 18:42:35 +01:00
kaiyou
716e166b11 Improve the sidebar, display site title and website link 2017-10-29 18:13:59 +01:00
kaiyou
924760273c Update the ui macros and polish the overall UI 2017-10-29 17:53:48 +01:00
kaiyou
8095798a04 Enable token-based authentication 2017-10-29 15:39:28 +01:00
kaiyou
51c301ec56 Switch to 1000 rounds for tokens (performance) 2017-10-29 15:39:14 +01:00
kaiyou
30dfefb24d Fix the token generation process 2017-10-29 15:39:01 +01:00
kaiyou
291fbe7bc4 Add views and templates for authentication tokens 2017-10-29 14:49:07 +01:00
kaiyou
814ed77d7f Add data structure for authentication tokens 2017-10-29 14:48:34 +01:00
kaiyou
eb40ea830f Make users and aliases email case insensitive 2017-10-29 13:44:49 +01:00
kaiyou
249f5d94d6 Add a debugging bar for development 2017-10-29 13:44:49 +01:00
kaiyou
db91889f0f Merge pull request #288 from bcyrill/patch-1
Update details.html
2017-10-26 08:16:26 +02:00
bcyrill
0eebd4a00d Update details.html
- Fix assignment in template
- Use updated environment option
2017-10-26 00:13:08 +02:00
kaiyou
8e25de6050 Fix vacation messages by setting the submission host properly 2017-10-22 23:43:50 +02:00
kaiyou
166aa02b01 Merge branch 'refactor-nginx' 2017-10-22 20:04:44 +02:00
kaiyou
6765a17545 Explicitely enable sasl_auth for the internal SMTP (Postifx, sigh..) 2017-10-22 19:44:58 +02:00
kaiyou
05b9ecbb34 Remove misinformed open relay for the internal smtp 2017-10-22 19:05:51 +02:00
kaiyou
47f453e494 Allow relaying when using the intenral SMTPd 2017-10-22 18:15:28 +02:00
kaiyou
c94e976f43 Fix a typo in the sqlite query 2017-10-22 18:07:36 +02:00
kaiyou
ff71e70360 Rename the authentication endpoint 2017-10-22 16:43:06 +02:00
kaiyou
3c9552a14b Make it possible to serve Mailu over ipv6 2017-10-22 16:13:13 +02:00
kaiyou
bb4c5150b5 Remove the scary warning 2017-10-22 16:07:12 +02:00
kaiyou
64cbab5104 Allow xclient even for non authenticated clients 2017-10-22 15:45:32 +02:00
kaiyou
690c05ea64 Switch behavior if the user is not authenticated 2017-10-22 15:44:44 +02:00
kaiyou
80d728c233 Forward SMTP to the xclient-authenticated endpoint 2017-10-22 15:01:25 +02:00
kaiyou
2c8810d7d3 Use an HTTP proxy for resolving the admin address dynamically 2017-10-22 15:01:04 +02:00
kaiyou
7d348440d8 Have radicale authenticate against the front 2017-10-22 15:00:41 +02:00
kaiyou
ea1d876d93 Add a specific server for xclient-authenticated connections 2017-10-22 15:00:16 +02:00
kaiyou
cac00086c9 Fix the outclean filter which was not embedded anymore 2017-10-22 11:31:55 +02:00
kaiyou
04a25fc4e3 Add specific unencrypted servers for internal connexions (webmails) 2017-10-22 11:31:32 +02:00
kaiyou
ec6d5acc18 Unescape passwords before cecking 2017-10-22 10:49:31 +02:00
kaiyou
0a74213eae Have nginx listen over ipv6 2017-10-21 19:50:49 +02:00
kaiyou
3230554b0d Do not enable starttls if no certificate 2017-10-21 18:58:18 +02:00
kaiyou
8a2ddcdf30 Fix a typo in the nginx config 2017-10-21 15:54:09 +02:00
kaiyou
9dd4150e7c Merge branch 'refactor-nginx' 2017-10-21 15:23:17 +02:00
kaiyou
5786bb3e1b Return the server address dynamically 2017-10-21 15:22:40 +02:00
kaiyou
9e3e86f0d0 Remove spaces around = sign in .env 2017-09-28 21:47:01 +02:00
kaiyou
3e2dfee431 Merge pull request #276 from droopy4096/master-backports
multiple bugfixes for config_sync and full coverage of user/alias/domain attributes added
2017-09-28 20:21:44 +02:00
Dmytro Makovey
18ba724505 pep8/flake8 applied 2017-09-28 08:37:39 -07:00
Dmytro Makovey
d50ba01892 autopep8 applied 2017-09-28 08:28:10 -07:00
Dmytro Makovey
b05e924f3b merged config_sync improvements/bugfixes 2017-09-27 21:57:57 -07:00
Dmytro Makovey
83e6d4400c fix user params updates 2017-09-27 21:48:20 -07:00
Dmytro Makovey
a6944582a3 fix python2-ism 2017-09-27 21:34:10 -07:00
Dmytro Makovey
c9f124c9b9 expand user and alias params 2017-09-27 21:29:42 -07:00
Dmytro Makovey
06d7828e06 fix multi-add of managers 2017-09-27 20:52:03 -07:00
Dmytro Makovey
4fed48eae1 commit earlier to fix issues with missing domains 2017-09-27 20:31:51 -07:00
Dmytro Makovey
977fcd01e0 add more verbosity for operations 2017-09-27 20:16:23 -07:00
Dmytro Makovey
454264ba31 fix typo 2017-09-27 19:44:19 -07:00
kaiyou
d84b63453f Merge pull request #271 from droopy4096/master-backports
Added config_update verbosity and expanded YAML format a touch
2017-09-27 20:25:14 +02:00
Dmytro Makovey
319b3e68bb backported proper empty field handling 2017-09-27 11:05:29 -07:00
Dmytro Makovey
2ffd779324 add some fail-safe for empty passwords 2017-09-27 11:04:19 -07:00
Dmytro Makovey
b64582b456 retracting dovecot cipher settings 2017-09-27 07:28:39 -07:00
kaiyou
7c483adfbb Merge pull request #273 from t3hmrman/add-kubernetes-resource-configs
Add kubernetes NGINX ingress and Mailu resource config
2017-09-27 08:10:14 +02:00
t3hmrman
f22c4899fd Add light documentation structure and README for kubernetes 2017-09-27 10:37:34 +09:00
Dmytro Makovey
9f267a44ee backported CLI options for domain command 2017-09-26 14:21:50 -07:00
Dmytro Makovey
1ee4f5db15 fix domain command invocation 2017-09-26 14:18:37 -07:00
Dmytro Makovey
292853fd57 backported domain/manager sync 2017-09-26 14:11:00 -07:00
Dmytro Makovey
ce2ad32efc add manager/domain configuration sync 2017-09-26 13:20:33 -07:00
t3hmrman
3ecb54b4e3 Add kubernetes NGINX ingress and Mailu resource config 2017-09-26 12:52:58 +09:00
Dmytro Makovey
5e55182b90 fix type check as per pull request comment 2017-09-25 06:59:01 -07:00
kaiyou
effb311742 Use relative redirects, as suggsted in #272 2017-09-24 22:43:16 +02:00
kaiyou
ba4ed579df Support TLS and STARTTLS for mail 2017-09-24 18:43:14 +02:00
kaiyou
4892fe47e6 Limit xclient to connections from the front container 2017-09-24 18:33:13 +02:00
kaiyou
4521fa9e29 Make path to admin and webmail configurable, related to #236 2017-09-24 18:16:36 +02:00
kaiyou
648d092e88 Fix proxifying to static assets 2017-09-24 17:59:58 +02:00
kaiyou
808809b37a Add letsencrypt support in the nginx container 2017-09-24 17:50:20 +02:00
kaiyou
a57096e613 Support specifyin multiple hostnames 2017-09-24 17:49:39 +02:00
kaiyou
7e9c04cd65 Do not include appscheduler 2017-09-24 17:48:27 +02:00
kaiyou
3b01f968b3 Remove traefik which has become incompatible 2017-09-24 15:45:10 +02:00
kaiyou
1b13728df3 Fix the dovecot startup script 2017-09-24 15:44:44 +02:00
kaiyou
3dac7fc597 Point roundcube to the front container 2017-09-24 15:44:23 +02:00
kaiyou
3c44006ccb Point rainloop to the front container 2017-09-24 15:44:01 +02:00
kaiyou
5097f57855 Redirect nginx authentication requests to the admin container 2017-09-24 15:43:46 +02:00
kaiyou
94a13aabf0 Handle nginx authentication requests in the admin container 2017-09-24 15:43:23 +02:00
kaiyou
a4851914d0 Do not disable login mismatch check in Postfix 2017-09-24 15:42:51 +02:00
kaiyou
13b9a9207d Switch to python and Jinja2 for the dovecot container 2017-09-24 14:42:40 +02:00
kaiyou
a11eb4ba35 Switch to python and Jinja2 for the Postfix container 2017-09-24 14:34:46 +02:00
kaiyou
67423b057d Prepare the docker compose configuration for nginx as a uninque frontend 2017-09-24 14:01:26 +02:00
kaiyou
755d9f0520 Prepare nginx as a unique frontend 2017-09-24 14:01:03 +02:00
kaiyou
995147f444 Create the conf/ directory for nginx 2017-09-24 13:09:47 +02:00
kaiyou
1854349ecc Use jinja2 for building nginx config 2017-09-24 13:09:12 +02:00
kaiyou
87cbeacecd Do not install openssl in the admin container anymore 2017-09-24 12:05:38 +02:00
kaiyou
870c7dbe5c Remove unused requirements from the admin app 2017-09-24 12:04:52 +02:00
kaiyou
97505d1367 Remove TLS tasks from the admin container 2017-09-24 12:02:26 +02:00
kaiyou
974c351802 Move the admin interface back to a blueprint 2017-09-24 12:00:39 +02:00
kaiyou
914427f852 Merge pull request #262 from Mailu/feature-xforwarded-prefix
Stop hardcoding URL prefix in containers
2017-09-24 11:47:45 +02:00
kaiyou
971e839201 Merge branch 'master' into feature-xforwarded-prefix 2017-09-24 11:46:58 +02:00
kaiyou
1d75cd8a33 Improve the warning message 2017-09-24 11:22:59 +02:00
kaiyou
d6dec0c1c7 Add a warning about 1.5 and traefik 2017-09-24 11:18:22 +02:00
Dmytro Makovey
d4cf5430e8 nginx is gone 2017-09-22 00:50:42 -07:00
Dmytro Makovey
8cf93ab999 added bacports and resolved conflicts 2017-09-22 00:42:37 -07:00
Dmytro Makovey
b3d961a3dc adding nginx modularity 2017-09-21 23:56:15 -07:00
Dmytro Makovey
f86391f839 be smarted about destination field 2017-09-19 08:27:19 -07:00
Dmytro Makovey
9ddfa0a633 adjust ciphers to a more secure set 2017-09-19 08:05:10 -07:00
kaiyou
e14f93d429 Do not remove openssl during the admin container setup 2017-09-18 21:34:43 +02:00
kaiyou
4ea0030f78 Merge pull request #263 from agglrx/feature-rainloop-update
Update to RainLoop v1.11.1
2017-09-17 20:47:06 +02:00
agglr
23b5e5873d Update to RainLoop v1.11.1 2017-09-17 20:29:06 +02:00
kaiyou
5c45aa6b38 Strip the path when accessing the webmail 2017-09-17 19:19:58 +02:00
kaiyou
8fc080898b Prepare the webmail to be accessed at / directly 2017-09-17 19:19:28 +02:00
kaiyou
6cd8e0e336 Fix the redirect to /webmail 2017-09-17 19:01:02 +02:00
kaiyou
f615af4a88 Fix the behavior during login 2017-09-17 18:55:54 +02:00
kaiyou
2b13af4638 Update messages.po (POEditor.com) 2017-09-17 16:32:59 +02:00
kaiyou
9fd60c3fa8 Update translations 2017-09-17 16:26:40 +02:00
kaiyou
924ca02016 Update messages.po (POEditor.com) 2017-09-17 16:25:56 +02:00
kaiyou
bb8c4e86c1 Update translations after moving mailu.admin 2017-09-17 14:38:00 +02:00
kaiyou
fed7665a0a Fix all references to mailu.admin 2017-09-17 14:37:10 +02:00
kaiyou
9358a76d89 Start moving things out of the admin module 2017-09-17 14:36:44 +02:00
kaiyou
0223999a04 Deprecate nginx as a Web frontend 2017-09-17 14:15:12 +02:00
kaiyou
a880bc908e Add some details to the README file 2017-09-17 12:59:37 +02:00
kaiyou
5192034c02 Fix the missing openssl requirement 2017-09-17 12:56:55 +02:00
kaiyou
01182d3708 Switch to rule-based hosts for certificate generation 2017-09-17 12:30:54 +02:00
kaiyou
52daccb74e Clean the requirements after removing certbot 2017-09-17 12:03:50 +02:00
kaiyou
a96478c496 Fix remaining migration scripts and remove initdb/flushdb from manage.py 2017-09-17 11:55:12 +02:00
kaiyou
829e4a5e28 Merge pull request #254 from Mailu/feature-traefik
Switch to traefik for proxying and querying letsencrypt
2017-09-16 22:39:07 +02:00
kaiyou
95970cd7b8 Stamp the database when creating it, fixes #259 2017-09-16 22:29:36 +02:00
kaiyou
00d09cf386 Fix the traefik labels in the compose configuration 2017-09-16 19:24:55 +02:00
kaiyou
a138bed95e Fix the docker-compose.yml so that / is handled by the admin container 2017-09-16 18:12:21 +02:00
kaiyou
a08185911d Merge branch 'master' into feature-traefik 2017-09-16 17:54:09 +02:00
kaiyou
9ee795a694 Redirect / to /webmail by default 2017-09-16 17:53:16 +02:00
kaiyou
68ba514297 Merge pull request #257 from Mailu/feature-relays
Implement relaying emails to specific SMTP
2017-09-16 13:07:49 +02:00
kaiyou
4463a4eade Merge pull request #252 from Mailu/feature-alternative-domains
Implement alternative domains
2017-09-16 13:06:52 +02:00
Dmytro Makovey
e6bedabef0 fix print call 2017-09-11 14:06:00 -07:00
kaiyou
7a4d3c0cb6 Generate Dovecot dh params locally until release 2.3 2017-09-11 20:41:32 +02:00
kaiyou
c4eeaad676 Disable MX queries when relaying mail to a remote smtp 2017-09-11 20:31:14 +02:00
Dmytro Makovey
e6a92af806 add verbosity level configuration option 2017-09-11 09:48:35 -07:00
Dmytro Makovey
e28285155e Expect list instead of string for destination 2017-09-11 09:11:12 -07:00
kaiyou
6b7a33c435 Add a (not working) postfix conf for transports 2017-09-11 08:12:04 +02:00
kaiyou
c4120dc132 Install openssl for dhparam generation 2017-09-10 21:07:43 +02:00
kaiyou
70d9972584 Check if a certificate already exists before trying to read it 2017-09-10 21:05:54 +02:00
kaiyou
d4254bfd1f Avoid duplicating relays with alternatives or domains 2017-09-10 20:49:49 +02:00
kaiyou
01ddfef149 Implement relayed domains in the admin interface 2017-09-10 20:48:39 +02:00
kaiyou
b5c55d10d3 Add the relay concept to the model 2017-09-10 20:30:03 +02:00
kaiyou
897609c667 Merge branch 'letzkus-fix-remove-clamav' 2017-09-10 19:43:13 +02:00
kaiyou
a092e3f9b2 Properly include the rmilter clamav configuration 2017-09-10 19:42:54 +02:00
kaiyou
89228c5b4b Merge branch 'fix-remove-clamav' of https://github.com/letzkus/Mailu into letzkus-fix-remove-clamav 2017-09-10 19:41:50 +02:00
kaiyou
22b4315a26 Merge pull request #253 from Mailu/Xumeiquer-master
Implement RUA and RUF for Dmarc
2017-09-10 19:41:31 +02:00
kaiyou
03b352cbcd Declare the DMARC RUA/RUF configuration items 2017-09-10 19:35:43 +02:00
kaiyou
9754fffbc4 Simplify the details page for RUA/RUF 2017-09-10 19:35:31 +02:00
kaiyou
d90b7444c8 Move settings to the email section 2017-09-10 19:28:59 +02:00
kaiyou
9acad29a24 Merge branch 'master' of https://github.com/Xumeiquer/Mailu into Xumeiquer-master 2017-09-10 19:28:00 +02:00
kaiyou
17b0471e73 Use the proper HOSTNAME parameter for HTTP hostname 2017-09-10 19:02:18 +02:00
kaiyou
4e0bd32d50 Support using dhparam in Postfix and Dovecot 2017-09-10 19:00:22 +02:00
kaiyou
53c3153229 Implement loading the certificate from traefik 2017-09-10 18:53:41 +02:00
kaiyou
9fc3ef4dd1 Add a traefik frontend with basic features 2017-09-10 18:07:19 +02:00
kaiyou
856d6176ca Handle redirects properly when logging in, fixes #195 2017-09-10 15:56:08 +02:00
kaiyou
52da307fa5 Freeze dependencies for the Docker container 2017-09-10 15:37:09 +02:00
kaiyou
64ded60b5e Implement the postfix part of domain aliasing 2017-09-10 15:30:25 +02:00
kaiyou
2631de8977 Merge branch 'master' into feature-alternative-domains 2017-09-10 15:01:29 +02:00
kaiyou
4e1869b635 Increase the max size of http requests, fix #207 2017-09-10 14:39:12 +02:00
kaiyou
901796f4ac Merge pull request #251 from Mailu/feature-recipient-delimiter
Feature recipient delimiter
2017-09-10 14:14:07 +02:00
kaiyou
4ee086a52a Make the recipient delimiter customizeable, fixes #233 and #164 2017-09-10 14:09:16 +02:00
kaiyou
a06d1146d8 Merge pull request #248 from Mailu/feature-postfix-master
Add the ability to customize the Postfix master configuration
2017-09-10 14:01:02 +02:00
kaiyou
1deee71e51 Fix the postconf command and rename the override file, fix #239 2017-09-10 13:56:46 +02:00
kaiyou
7af3c46f35 Merge pull request #247 from Mailu/feature-keep-forward
Feature keep forward
2017-09-10 13:40:55 +02:00
kaiyou
7f50f4c184 Fix the sqlite query, fix #243 2017-09-10 13:36:24 +02:00
kaiyou
921f9f73c3 Fix #249 2017-09-10 13:04:43 +02:00
kaiyou
e53c0db60d Merge branch 'stable' 2017-09-10 12:33:54 +02:00
Dmytro Makovey
fcf37e6d5e ignore vscode artefacts 2017-09-08 15:06:23 -07:00
Dmytro Makovey
6525969a56 ignoring virtualenv artefacts etc. 2017-09-08 15:06:22 -07:00
Dmytro Makovey
95fd89808c add more CLI operations: deletions of users and aliases 2017-09-08 15:06:20 -07:00
Dmytro Makovey
28f490ddee added object deletion to config update 2017-09-08 15:06:18 -07:00
Dmytro Makovey
59bc07cde5 add config sync for bulk operations on users and aliases driven by config management systems etc. 2017-09-08 15:06:16 -07:00
Dmytro Makovey
4dc2f896a2 rename user_raw to user_import for more clarity. Add proper docstring 2017-09-08 15:06:10 -07:00
Dmytro Makovey
974f95f25e backport new bulk operations 2017-09-08 15:05:02 -07:00
kaiyou
e1533a12e3 Allow one manager to add another to the domain, fixes #203 2017-09-03 18:51:50 +02:00
kaiyou
f823f1e8a5 Add the ability to configure alternative domains 2017-09-03 18:30:00 +02:00
kaiyou
07c789fc8b Add a button to keep forwarded messages 2017-09-03 18:23:07 +02:00
kaiyou
bffc51401d Add a recipient delimiter for extended addresses 2017-09-03 16:18:08 +02:00
kaiyou
1fa01745a3 Add the ability to customize the Postfix master configuration 2017-09-03 16:08:43 +02:00
kaiyou
c834d34bae Implement keeping or dropping forwarded messages in postfix 2017-09-03 15:46:39 +02:00
kaiyou
2b3b1aeb19 Add a button to keep forwarded messages 2017-09-03 15:43:30 +02:00
kaiyou
213ee1d8b6 Merge pull request #246 from trnila/configurable-crypt-scheme
Configurable default password scheme used for passwords
2017-09-03 14:33:03 +02:00
kaiyou
cd8a29ee1a Fix a regression introduced in 3e85bb2d73, bypassing sender restrictions on port 25 2017-09-02 20:01:17 +02:00
Daniel Trnka
da7c39263c Configurable default password scheme used for passwords 2017-09-02 17:53:21 +02:00
Jaume Martin
5b6cba3b9e Update details.html 2017-08-27 20:29:04 +02:00
Jaume Martin
4834438042 Update .env.dist 2017-08-27 20:24:15 +02:00
kaiyou
1c0717e3db Merge pull request #238 from nalt/master
Admin: Switch to alpine for smaller image size
2017-08-27 13:59:31 +02:00
kaiyou
388d77dec7 Merge pull request #235 from droopy4096/user_raw
User import routine (and selector for ecryption hashing algorithm)
2017-08-27 13:58:40 +02:00
kaiyou
128dee0872 Merge pull request #234 from n0izn0iz/patch-1
Print stderr when certbot fails
2017-08-27 13:55:29 +02:00
kaiyou
5fbaa3d390 Merge pull request #226 from jdrowell/acme_uses_http
The ACME spec says that http validation should be done via http, not …
2017-08-27 13:54:55 +02:00
nalt
29cc77383b Admin: Switch to alpine for smaller image size 2017-08-26 20:02:18 +02:00
Dmytro Makovey
e8b62484a9 ignore vscode artefacts 2017-08-25 14:49:27 -07:00
Dmytro Makovey
8565939904 ignoring virtualenv artefacts etc. 2017-08-25 14:48:36 -07:00
Dmytro Makovey
433da57015 add more CLI operations: deletions of users and aliases 2017-08-25 14:38:16 -07:00
Dmytro Makovey
d099e24f18 added object deletion to config update 2017-08-25 13:07:07 -07:00
Dmytro Makovey
e4b338c9a4 add config sync for bulk operations on users and aliases driven by config management systems etc. 2017-08-25 12:44:05 -07:00
Dmytro Makovey
aef8975332 rename user_raw to user_import for more clarity. Add proper docstring 2017-08-24 09:07:28 -07:00
Dmytro Makovey
db9ac1f68e add encryption scheme manipulation 2017-08-24 07:23:54 -07:00
n0izn0iz
434a3c017b Print stderr when certbot fails 2017-08-24 14:06:31 +02:00
kaiyou
8d0d8c3910 Merge pull request #222 from swoopla/master
Use exec to start rsyslogd
2017-07-31 21:00:42 +02:00
kaiyou
dc86a3feec Try to renew the certificate less often, related to #223 2017-07-31 20:47:03 +02:00
John D. Rowell
85b96a33aa The ACME spec says that http validation should be done via http, not https. 2017-07-29 14:27:51 -03:00
P. Vibet
7ac47d55e9 Use exec to start rsyslogd 2017-07-19 07:21:14 +02:00
kaiyou
2bfe11c1a4 Merge pull request #194 from interlegis/1.4-managercommands
Add setlimits and setmanager commands to manage.py
2017-07-02 19:26:56 +02:00
kaiyou
5a2eddbce1 Set the maximum upload size for rainloop 2017-07-02 17:23:23 +02:00
kaiyou
caf0ba4747 Merge pull request #210 from Logan2211/rmilter-overrides
Re-enable rmilter overrides
2017-07-02 16:56:31 +02:00
kaiyou
a1795d18fd Mount the postfix queue as a volume, fixes #211 2017-07-02 16:39:00 +02:00
kaiyou
4053273fe6 Use relaynets in rmilter whitelist, fixes #140 2017-07-02 16:26:31 +02:00
Fabian Letzkus
117e858df3 Added parameter checking in rmilter image, added parameter in docker-compose, added parameter in .env 2017-06-25 16:15:47 +00:00
Fabian Letzkus
0954fd50fb Added configuration paramter to replace clamav with none 2017-06-25 16:12:44 +00:00
Logan V
3a03d08d22 Re-enable rmilter overrides
rmilter overrides were disabled without explanation in
2a3f62fc65. This will re-enable the
ability to override rmilter's configuration, which is necessary in
most environments where significant mail volumes occur on a single
inbox, since the default milter configuration only allows 20
mails/second per recipient.
2017-06-21 10:00:52 -05:00
kaiyou
633d93aa8c Have rspamd listen on ipv6 as well 2017-06-15 20:43:29 +02:00
kaiyou
4bdd8c1df5 Properly load the nginx lua module 2017-06-05 13:13:06 +02:00
kaiyou
4e212e3d60 Fix the nginx container build (package name changed for nginx-lua) 2017-06-05 12:40:41 +02:00
kaiyou
b011a44814 Have nginx listen on ipv6 addresses as well 2017-06-05 12:17:06 +02:00
kaiyou
ffac116e1f Merge branch 'stable' 2017-06-04 09:43:03 +02:00
kaiyou
31012abf1f Merge pull request #205 from curry684/patch-1
Split tags correctly too
2017-06-04 09:32:27 +02:00
Niels Keurentjes
8c8e5f8a1f Split tags correctly too
As made possible by https://github.com/jderusse/docker-gitsplit/pull/7
2017-05-29 13:51:43 +02:00
kaiyou
7350e205ab Merge pull request #198 from OlegDz/master
add clamav-libunrar
2017-05-04 18:32:15 +02:00
OlegDz
fea32af6e9 add clamav-libunrar 2017-04-21 14:54:53 +03:00
Fabio Rauber
4d0b9f9299 Add setlimits and setmanager commands to manage.py 2017-04-17 12:09:48 -03:00
Pierre Jaury
9bac79692d Make rspamd listen on 0.0.0.0, fix #179 2017-04-09 17:01:53 +02:00
kaiyou
6684dfd8a0 Merge pull request #190 from curry684/master
Perform read-only splits for the containers
2017-04-09 16:58:10 +02:00
Niels Keurentjes
010e5ca2a6 Perform read-only splits for the containers
The .gitsplit.yml file contains the configuration to be used by Jérémy
Derussé's docker-gitsplit container.

For usage instructions see https://github.com/jderusse/docker-gitsplit
2017-04-05 23:55:54 +02:00
Pierre Jaury
14f30b300f Merge branch 'master' of github.com:Mailu/Mailu 2017-03-22 19:27:37 +01:00
Pierre Jaury
e26c6f7a6e Fix the nginx startup script 2017-03-22 19:26:38 +01:00
kaiyou
dab8b03a8d Merge pull request #176 from izissise/master
Add execute permission on start.sh for nginx-no-https
2017-03-19 15:57:16 +01:00
kaiyou
ed01de181f Merge pull request #174 from binor/patch-1
Add dulwich for git support
2017-03-19 15:56:58 +01:00
Hugues Morisset
a6e1da5a43 Add execute permission on start.sh for nginx-no-https 2017-03-08 17:29:25 +01:00
kaiyou
2b2dd0b46b Merge pull request #173 from tiangolo/nginx-no-https
Add alternative frontend nginx-no-https
2017-03-08 08:00:24 +01:00
binor
79a1c6a166 Add dulwich for git support
Radicale supports automatic versioning of calendar event changes if a git repository was initialized in the data directory. For this to work, Radicale needs dulwich as an interface to the git repository.

http://radicale.org/user_documentation/#idgit-support
2017-03-02 09:06:31 +01:00
Sebastián Ramírez
8543d513a9 Add alternative frontend nginx-no-https 2017-03-01 22:02:11 -05:00
kaiyou
f421bee148 Merge pull request #170 from andreasfaerber/master
Create and use SSL dhparam file if not mounted, NGINX_SSL_DHPARAM_BITS variable in .env.dist file
2017-02-25 14:08:17 +01:00
kaiyou
cd3bd8a0cb Merge pull request #169 from jkarlosb/patch-1
Updated AUTHORS.md
2017-02-25 14:06:36 +01:00
kaiyou
c72b4d92ab Merge pull request #168 from tiangolo/fix-nginx-certbot
Fix Nginx entrypoint
2017-02-25 14:06:18 +01:00
Andreas Faerber
49904c0945 Create and use ssl dhparam file if not existing (mounted), NGINX_SSL_DHPARAM_BITS variable in .env.dist file 2017-02-25 09:55:00 +01:00
Andreas Faerber
7e469459c7 Create and use ssl dhparam file if not mounted, NGINX_SSL_DHPARAM_BITS variable in .env.dist file 2017-02-25 09:53:53 +01:00
Carlos Bernárdez
5626ff93f7 Updated AUTHORS.md 2017-02-24 00:28:25 +01:00
Sebastián Ramírez
dac97c72ce Fix nginx entrypoint 2017-02-23 16:43:08 -05:00
Pierre Jaury
fe0b292d45 Handle infinite quotas when adding validators, fixes #162 2017-02-14 21:37:51 +01:00
Pierre Jaury
67647df83a Publish version 1.4.0 2017-02-12 19:56:01 +01:00
Pierre Jaury
e6c18e6ac3 Use relative path for certificates, fixes #35 2017-02-12 16:58:58 +01:00
305 changed files with 11099 additions and 4096 deletions

View File

@@ -1,77 +0,0 @@
# Mailu main configuration file
#
# Most configuration variables can be modified through the Web interface,
# these few settings must however be configured before starting the mail
# server and require a restart upon change.
###################################
# Common configuration variables
###################################
# Set this to the path where Mailu data and configuration is stored
ROOT=/mailu
# Mailu version to run (stable, 1.0, 1.1, etc. or latest)
VERSION=stable
# Set to a randomly generated 16 bytes string
SECRET_KEY=ChangeMeChangeMe
# Address where listening ports should bind
BIND_ADDRESS=127.0.0.1
# Main mail domain
DOMAIN=mailu.io
# Exposed mail-server hostname
HOSTNAME=mail.mailu.io
# Postmaster local part (will append the main mail domain)
POSTMASTER=admin
# Docker-compose project name, this will prepended to containers names.
COMPOSE_PROJECT_NAME=mailu
###################################
# Optional features
###################################
# Choose which frontend Web server to run if any (value: nginx, none)
FRONTEND=none
# Choose which webmail to run if any (values: roundcube, rainloop, none)
WEBMAIL=none
# Expose the admin interface in publicly (values: yes, no)
EXPOSE_ADMIN=no
# Use Letsencrypt to generate a TLS certificate (uncomment to enable)
# ENABLE_CERTBOT=True
# Dav server implementation (value: radicale, none)
WEBDAV=none
###################################
# Mail settings
###################################
# Message size limit in bytes
# Default: accept messages up to 50MB
MESSAGE_SIZE_LIMIT=50000000
# Networks granted relay permissions, make sure that you include your Docker
# internal network (default to 172.17.0.0/16)
RELAYNETS=172.16.0.0/12
# Will relay all outgoing mails if configured
RELAYHOST=
# Fetchmail delay
FETCHMAIL_DELAY=600
###################################
# Developers
###################################
# Uncomment this to enable debugging globally
# DEBUG=True

13
.gitignore vendored
View File

@@ -1,12 +1,15 @@
*.pyc *.pyc
*.mo *.mo
__pycache__ __pycache__
/admin/lib
/admin/bin
/admin/include
pip-selfcheck.json pip-selfcheck.json
/core/admin/lib*
/core/admin/bin
/core/admin/include
/docs/lib*
/docs/bin
/docs/include
/docs/_build
/.env /.env
/data
/docker-compose.mac.yml
/docker-compose.yml /docker-compose.yml
/.idea /.idea
/.vscode

30
.gitsplit.yml Normal file
View File

@@ -0,0 +1,30 @@
splits:
- prefix: "admin"
target: "https://${GH_TOKEN}@github.com/Mailu/Admin.git"
- prefix: "clamav"
target: "https://${GH_TOKEN}@github.com/Mailu/ClamAV.git"
- prefix: "dovecot"
target: "https://${GH_TOKEN}@github.com/Mailu/Dovecot.git"
- prefix: "fetchmail"
target: "https://${GH_TOKEN}@github.com/Mailu/Fetchmail.git"
- prefix: "nginx-no-https"
target: "https://${GH_TOKEN}@github.com/Mailu/NGINX-no-HTTPS.git"
- prefix: "nginx"
target: "https://${GH_TOKEN}@github.com/Mailu/NGINX.git"
- prefix: "postfix"
target: "https://${GH_TOKEN}@github.com/Mailu/Postfix.git"
- prefix: "radicale"
target: "https://${GH_TOKEN}@github.com/Mailu/Radicale.git"
- prefix: "rainloop"
target: "https://${GH_TOKEN}@github.com/Mailu/RainLoop.git"
- prefix: "rmilter"
target: "https://${GH_TOKEN}@github.com/Mailu/Rmilter.git"
- prefix: "roundcube"
target: "https://${GH_TOKEN}@github.com/Mailu/Roundcube.git"
- prefix: "rspamd"
target: "https://${GH_TOKEN}@github.com/Mailu/Rspamd.git"
origins:
- ^master$
- ^stable$
- ^v\d+\.\d+\.\d+$

29
.travis.yml Normal file
View File

@@ -0,0 +1,29 @@
sudo: required
services: docker
addons:
apt:
packages:
- docker-ce
env:
- MAILU_VERSION=$TRAVIS_BRANCH
language: python
python:
- "3.6"
install:
- sudo curl -L https://github.com/docker/compose/releases/download/1.23.0-rc3/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
- sudo chmod +x /usr/local/bin/docker-compose
before_script:
- docker-compose -v
- docker-compose -f tests/build.yml build
script:
- /bin/true
deploy:
provider: script
script: bash tests/deploy.sh
on:
all_branches: true
condition: -n $DOCKER_UN

View File

@@ -6,7 +6,19 @@ If you contribute time, code or resources to the project, feel free to add
your name, pseudonym, and any contact information you feel is relevant to your name, pseudonym, and any contact information you feel is relevant to
this file. this file.
As it is almost impossible to distinguish code contributions from various
authors, all are considered equal contributors and all must agree with
any change in the software license.
Other contributors: Other contributors:
- Angedestenebres - Tests on development version & Current version - "Angedestenebres" - Tests on development version & Current version
- Stefan Auditor - German translation on POEditor.com - Stefan Auditor - German translation on POEditor.com
- [Carlos Bernárdez](https://github.com/jkarlosb) - [[Contributions in Mailu]](https://github.com/Mailu/Mailu/commits?author=jkarlosb)
- Felipe Lubra - Portugese translation
- Mélanie Henry - German translation
- Maxime Saddok - French translation
- "ofthesun9" - French translation
- "SunMar" - Dutch translation
- "Marty Hou" - Chinese Simple translation
- [Thomas Sänger](https://github.com/HorayNarea) - German translation

View File

@@ -5,6 +5,65 @@ Notable changes to this project are documented in the current file. For more
details about individual changes, see the Git log. You should read this before details about individual changes, see the Git log. You should read this before
upgrading Freposte.io as some changes will include useful notes. upgrading Freposte.io as some changes will include useful notes.
v1.5.1 - 2017-11-21
-------------------
- Global: add a DNS-based instance count tracker, use the ``DISABLE_STATISTICS``
setting to disable it.
- Global: specify container dependencies in the Compose configuration, update
your ``docker-compose.yml``.
- Feature: add a *mail* TLS flavor that only enforces TLS for email connections.
- Feature: welcome emails, see the configuration for details
- Feature: end date for vacations, see the automatic reply page
- L10N: dutch loca is now available
- L10N: swedish loca is now available
- L10N: italian loca is now partially available
- L10N: chinese loca is now available
- Upstream: upgrade to Roundcube 1.3.3
- Enhancement: use the alpine image for redis
- Enhancement: use a dynamic worker count for Nginx
- Bug: fix the pop3 proxy
- Bug: fix DNS resolution bugs in the frontend
- Bug: fix Webdav authentication
- Bug: properly honor enabled features (imap and pop3) per user
v1.5.0 - 2017-11-05
-------------------
- Global: clean the ``.env`` file and change many options, *make sure
that you download the latest ``.env`` and apply your settings when migrating.*
- Global: clean the Compose configuration, *make sure that you download the
latest ``docker-compose.yml`` when migrating.*
- Global: nginx is now a reverse proxy for HTTP, SMTP, IMAP and POP.
- Global: the new Rainloop webmail is available.
- Global: the mail stack now supports IPv6.
- Global: most images moved to Alpine.
- Global: the documentation moved to a Sphinx directory.
- Global: deprecate rmilter and use rspamd proxy instead.
- Feature: multiple TLS flavors are available, see the ``TLS_FLAVOR`` setting.
- Feature: alternative domains now act as a copy of a given domain.
- Feature: relay domains now act as a mail relay (e.g. for backup servers).
- Feature: the server now supports multiple public names, with letsencrypt.
- Feature: authentication tokens can be generated per client.
- Feature: the manage.py CLI has many options to import and manage a setup.
- Feature: add overrides for the Postfix configuration.
- Feature: allow to keep or discard forwarded messages.
- Feature: make password encryption scheme configurable.
- Feature: make DMARC rua configurable.
- Feature: Clamav may now be disabled completely.
- Feature: support a configurable recipient delimiter for address extension.
- Feature: the admin interface points to the webmail and a configurable site.
- L10N: portugese loca is now available
- Upstream: upgrade to Roundcube 1.3.2
- Upstream: upgrade to Rainloop 1.11.3
- Upstream: upgrade to Dovecot 2.2.33
- Upstream: upgrade to Postfix 3.2.4
- Bug: the Postfix queue is now persisted.
- Bug: certbot now handle renewal properly.
- Bug: fix sender and recipient restrictions for antispam features.
- Bug: webmails now handle large attachments.
- Bug: dhparam are now generated properly on the frontend.
v1.4.0 - 2017-02-12 v1.4.0 - 2017-02-12
------------------- -------------------

46
CODE_OF_CONDUCT.md Normal file
View File

@@ -0,0 +1,46 @@
# Contributor Covenant Code of Conduct
## Our Pledge
In the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to making participation in our project and our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, gender identity and expression, level of experience, nationality, personal appearance, race, religion, or sexual identity and orientation.
## Our Standards
Examples of behavior that contributes to creating a positive environment include:
* Using welcoming and inclusive language
* Being respectful of differing viewpoints and experiences
* Gracefully accepting constructive criticism
* Focusing on what is best for the community
* Showing empathy towards other community members
* Accepting that not all community members share our view of the project
Examples of unacceptable behavior by participants include:
* The use of sexualized language or imagery and unwelcome sexual attention or advances
* Trolling, insulting/derogatory comments, and personal or political attacks
* Public or private harassment
* Publishing others' private information, such as a physical or electronic address, without explicit permission
## Our Responsibilities
Project maintainers are responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective action in response to any instances of unacceptable behavior.
Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, issues, and other contributions that are not aligned to this Code of Conduct, or to ban temporarily or permanently any contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful.
## Scope
This Code of Conduct applies both within project spaces and in public spaces when an individual is representing the project or its community. Examples of representing a project or community include using an official project e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event. Representation of a project may be further defined and clarified by project maintainers.
## Enforcement
Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project team at team@mailu.io. The project team will review and investigate all complaints, and will respond in a way that it deems appropriate to the circumstances. The project team is obligated to maintain confidentiality with regard to the reporter of an incident. Further details of specific enforcement policies may be posted separately.
Project maintainers who do not follow or enforce the Code of Conduct in good faith may face temporary or permanent repercussions as determined by other members of the project's leadership.
## Attribution
This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, available at [http://contributor-covenant.org/version/1/4][version]
[homepage]: http://contributor-covenant.org
[version]: http://contributor-covenant.org/version/1/4/

7
CONTRIBUTING.md Normal file
View File

@@ -0,0 +1,7 @@
This project is open source, and your contributions are all welcome. There are mostly three different ways one can contribute to the project:
1. use Mailu, either on test or on production instances, and report meaningful bugs when you find some;
2. contribute code and/or configuration to the repository (see [the development guidelines](https://mailu.io/contributors/guide.html) for details);
3. contribute localization to your native language (see [the localization docs](https://mailu.io/contributors/localization.html) for details);
Either way, keep in mind that the code you write or the translation you produce muts be licensed under the same conditions as the project itself. Additionally, all contributors are considered equal co-authors of the project.

View File

@@ -1,28 +1,15 @@
![Logo](logo.png) ![Logo](docs/assets/logo.png)
[Join us and chat about the project.](https://riot.im/app/#/room/#mailu:tedomum.net) Mailu is a simple yet full-featured mail server as a set of Docker images.
It is free software (both as in free beer and as in free speech), open to
suggestions and external contributions. The project aims at providing people
with an easily setup, easily maintained and full-featured mail server while
not shipping proprietary software nor unrelated features often found in
popular groupware.
Mailu Most of the documentation is available on our [Website](https://mailu.io),
===== you can also [try our demo server](https://mailu.io/master/demo.html)
before setting up your own, and come [talk to us on Matrix](https://matrix.to/#/#mailu:tedomum.net).
*This project used to be named Freeposte.io, the name was changed back in
October 2016.*
Simple yet full-featured mail server as a set of Docker images.
The idea behing Mailu is identical to motivations that led to poste.io:
providing a simple and maintainable mail server that is painless to manage and
does not require more resources than necessary.
People from poste.io did an amazing job at accomplishing this ; any company
looking for a serious yet simple mail server with professional support should
turn to them.
This project is meant for free software supporters and hackers to reach the
same level of functionality and still be able to host a complete mail server
at little cost while running only FOSS, applying the KISS principle and being
able to fine-tune some details if needed.
[Try it out on our demo server](https://github.com/mail-u/mailu/wiki/Demo-server).
Features Features
======== ========
@@ -30,28 +17,15 @@ Features
Main features include: Main features include:
- **Standard email server**, IMAP and IMAP+, SMTP and Submission - **Standard email server**, IMAP and IMAP+, SMTP and Submission
- **Advanced email features**, aliases, domain aliases, custom routing
- **Web access**, multiple Webmails and adminitration interface - **Web access**, multiple Webmails and adminitration interface
- **User features**, aliases, auto-reply, auto-forward, fetched accounts - **User features**, aliases, auto-reply, auto-forward, fetched accounts
- **Admin features**, global admins, per-domain delegation, quotas - **Admin features**, global admins, announcements, per-domain delegation, quotas
- **Security**, enforced TLS, outgoing DKIM, anti-virus scanner - **Security**, enforced TLS, Letsencrypt!, outgoing DKIM, anti-virus scanner
- **Antispam**, auto-learn, greylisting, DMARC and SPF - **Antispam**, auto-learn, greylisting, DMARC and SPF
- **Freedom**, all FOSS components, no tracker included - **Freedom**, all FOSS components, no tracker included
![Creating a new user](https://mailu.io/screenshots/create.png) ![Domains](docs/assets/screenshots/domains.png)
Running a mail server
=====================
Mailu runs on top of Docker for easy packaging and upgrades. All you need
is a proper system with Docker and Compose installed, then simply download
the ``docker-compose.yml`` and sample ``.env``, tune them to your needs and
fire up the mail server:
```
docker-compose up -d
```
For a detailed walktrough, see the [Setup Guide](https://github.com/mail-u/mailu/wiki/Setup-Guide).
Contributing Contributing
============ ============
@@ -60,5 +34,3 @@ Mailu is free software, open to suggestions and contributions. All
components are free software and compatible with the MIT license. All components are free software and compatible with the MIT license. All
specific configuration files, Dockerfiles and code are placed under the specific configuration files, Dockerfiles and code are placed under the
MIT license. MIT license.
For details, see the [Contributor Guide](https://github.com/mail-u/mailu/wiki/Contributors-Guide).

View File

@@ -1,16 +0,0 @@
FROM python:3
RUN mkdir -p /app
WORKDIR /app
COPY requirements.txt .
RUN pip install -r requirements.txt
COPY mailu ./mailu
COPY migrations ./migrations
COPY manage.py .
COPY start.sh /start.sh
RUN pybabel compile -d mailu/translations
CMD ["/start.sh"]

View File

@@ -1,73 +0,0 @@
import flask
import flask_sqlalchemy
import flask_bootstrap
import flask_login
import flask_script
import flask_migrate
import flask_babel
import os
import docker
from apscheduler.schedulers import background
# Create application
app = flask.Flask(__name__, static_url_path='/admin/app_static')
default_config = {
'SQLALCHEMY_DATABASE_URI': 'sqlite:////data/main.db',
'SQLALCHEMY_TRACK_MODIFICATIONS': False,
'SECRET_KEY': 'changeMe',
'DOCKER_SOCKET': 'unix:///var/run/docker.sock',
'HOSTNAME': 'mail.mailu.io',
'DOMAIN': 'mailu.io',
'POSTMASTER': 'postmaster',
'DEBUG': False,
'BOOTSTRAP_SERVE_LOCAL': True,
'DKIM_PATH': '/dkim/{domain}.{selector}.key',
'DKIM_SELECTOR': 'dkim',
'BABEL_DEFAULT_LOCALE': 'en',
'BABEL_DEFAULT_TIMEZONE': 'UTC',
'ENABLE_CERTBOT': False,
'CERTS_PATH': '/certs'
}
# Load configuration from the environment if available
for key, value in default_config.items():
app.config[key] = os.environ.get(key, value)
# Setup components
flask_bootstrap.Bootstrap(app)
db = flask_sqlalchemy.SQLAlchemy(app)
migrate = flask_migrate.Migrate(app, db)
login_manager = flask_login.LoginManager()
login_manager.init_app(app)
babel = flask_babel.Babel(app)
translations = list(map(str, babel.list_translations()))
scheduler = background.BackgroundScheduler()
# Manager commnad
manager = flask_script.Manager(app)
manager.add_command('db', flask_migrate.MigrateCommand)
# Task scheduling
if not app.debug or os.environ.get('WERKZEUG_RUN_MAIN') == 'true':
scheduler.start()
# Babel configuration
@babel.localeselector
def get_locale():
return flask.request.accept_languages.best_match(translations)
# Certbot configuration
if app.config['ENABLE_CERTBOT']:
from mailu import certbot
# Finally setup the blueprint and redirect /
from mailu import admin
app.register_blueprint(admin.app, url_prefix='/admin')
@app.route("/")
def index():
return flask.redirect(flask.url_for("admin.index"))

View File

@@ -1,31 +0,0 @@
from flask import Blueprint
from mailu import login_manager, db
import flask_login
app = Blueprint(
'admin', __name__,
template_folder='templates',
static_folder='static')
# Import models
from mailu.admin import models
# Register the login components
login_manager.login_view = "admin.login"
login_manager.user_loader(models.User.query.get)
@app.context_processor
def inject_user():
return dict(current_user=flask_login.current_user)
# Import views
from mailu.admin.views import \
admins, \
managers, \
base, \
aliases, \
users, \
domains, \
fetches

View File

@@ -1,30 +0,0 @@
{% extends "base.html" %}
{% block title %}
{% trans %}Global administrators{% endtrans %}
{% endblock %}
{% block main_action %}
<a class="btn btn-primary" href="{{ url_for('.admin_create') }}">
{% trans %}Add administrator{% endtrans %}
</a>
{% endblock %}
{% block box %}
<table class="table table-bordered">
<tbody>
<tr>
<th>{% trans %}Actions{% endtrans %}</th>
<th>{% trans %}Email{% endtrans %}</th>
</tr>
{% for admin in admins %}
<tr>
<td>
<a href="{{ url_for('.admin_delete', admin=admin.email) }}" title="{% trans %}Delete{% endtrans %}"><i class="fa fa-trash"></i></a>
</td>
<td>{{ admin }}</td>
</tr>
{% endfor %}
</tbody>
</table>
{% endblock %}

View File

@@ -1,41 +0,0 @@
{% extends "base.html" %}
{% block title %}
{% trans %}Alias list{% endtrans %}
{% endblock %}
{% block subtitle %}
{{ domain.name }}
{% endblock %}
{% block main_action %}
<a class="btn btn-primary" href="{{ url_for('.alias_create', domain_name=domain.name) }}">{% trans %}Add alias{% endtrans %}</a>
{% endblock %}
{% block box %}
<table class="table table-bordered">
<tbody>
<tr>
<th>{% trans %}Actions{% endtrans %}</th>
<th>{% trans %}Email{% endtrans %}</th>
<th>{% trans %}Destination{% endtrans %}</th>
<th>{% trans %}Comment{% endtrans %}</th>
<th>{% trans %}Created{% endtrans %}</th>
<th>{% trans %}Last edit{% endtrans %}</th>
</tr>
{% for alias in domain.aliases %}
<tr>
<td>
<a href="{{ url_for('.alias_edit', alias=alias.email) }}" title="{% trans %}Edit{% endtrans %}"><i class="fa fa-pencil"></i></a>&nbsp;
<a href="{{ url_for('.alias_delete', alias=alias.email) }}" title="{% trans %}Delete{% endtrans %}"><i class="fa fa-trash"></i></a>
</td>
<td>{{ alias }}</td>
<td>{{ alias.destination|join(', ') or '-' }}</td>
<td>{{ alias.comment or '' }}</td>
<td>{{ alias.created_at }}</td>
<td>{{ alias.updated_at or '' }}</td>
</tr>
{% endfor %}
</tbody>
</table>
{% endblock %}

View File

@@ -1,50 +0,0 @@
{% extends "base.html" %}
{% block title %}
{% trans %}Domain details{% endtrans %}
{% endblock %}
{% block subtitle %}
{{ domain.name }}
{% endblock %}
{% block main_action %}
{% if current_user.global_admin %}
<a class="btn btn-primary" href="{{ url_for(".domain_genkeys", domain_name=domain.name) }}">{% trans %}Regenerate keys{% endtrans %}</a>
{% endif %}
{% endblock %}
{% block box %}
<table class="table table-bordered">
<tbody>
<tr>
<th>{% trans %}Domain name{% endtrans %}</th>
<td>{{ domain.name }}</td>
</tr>
<tr>
<th>{% trans %}DNS MX entry{% endtrans %}</th>
<td><pre>{{ domain.name }}. 600 IN MX 10 {{ config["HOSTNAME"] }}.</pre></td>
</tr>
<tr>
<th>{% trans %}DNS SPF entries{% endtrans %}</th>
<td><pre>
{{ domain.name }}. 600 IN TXT "v=spf1 mx a:{{ config["HOSTNAME"] }} -all"
{{ domain.name }}. 600 IN SPF "v=spf1 mx a:{{ config["HOSTNAME"] }} -all"</pre></td>
</tr>
{% if domain.dkim_publickey %}
<tr>
<th>{% trans %}DKIM public key{% endtrans %}</th>
<td><pre style="white-space: pre-wrap; word-wrap: break-word;">{{ domain.dkim_publickey }}</pre></td>
</tr>
<tr>
<th>{% trans %}DNS DKIM entry{% endtrans %}</th>
<td><pre style="white-space: pre-wrap; word-wrap: break-word;">{{ config["DKIM_SELECTOR"] }}._domainkey.{{ domain.name }}. IN 600 TXT "v=DKIM1; k=rsa; p={{ domain.dkim_publickey }}"</pre></td>
</tr>
<tr>
<th>{% trans %}DNS DMARC entry{% endtrans %}</th>
<td><pre>_dmarc.{{ domain.name }}. 600 IN TXT "v=DMARC1; p=reject; rua=mailto:{{ config["POSTMASTER"] }}@{{ config["DOMAIN"] }}; adkim=s; aspf=s"</pre></td>
</tr>
{% endif %}
</tbody>
</table>
{% endblock %}

View File

@@ -1,50 +0,0 @@
{% extends "base.html" %}
{% block title %}
{% trans %}Domain list{% endtrans %}
{% endblock %}
{% block main_action %}
{% if current_user.global_admin %}
<a class="btn btn-primary" href="{{ url_for('.domain_create') }}">{% trans %}New domain{% endtrans %}</a>
{% endif %}
{% endblock %}
{% block box %}
<table class="table table-bordered">
<tbody>
<tr>
<th>{% trans %}Actions{% endtrans %}</th>
<th>{% trans %}Manage{% endtrans %}</th>
<th>{% trans %}Domain name{% endtrans %}</th>
<th>{% trans %}Mailbox count{% endtrans %}</th>
<th>{% trans %}Alias count{% endtrans %}</th>
<th>{% trans %}Comment{% endtrans %}</th>
<th>{% trans %}Created{% endtrans %}</th>
<th>{% trans %}Last edit{% endtrans %}</th>
</tr>
{% for domain in current_user.get_managed_domains() %}
<tr>
<td>
<a href="{{ url_for('.domain_details', domain_name=domain.name) }}" title="{% trans %}Details{% endtrans %}"><i class="fa fa-list"></i></a>&nbsp;
{% if current_user.global_admin %}
<a href="{{ url_for('.domain_edit', domain_name=domain.name) }}" title="{% trans %}Edit{% endtrans %}"><i class="fa fa-pencil"></i></a>&nbsp;
<a href="{{ url_for('.domain_delete', domain_name=domain.name) }}" title="{% trans %}Delete{% endtrans %}"><i class="fa fa-trash"></i></a>&nbsp;
{% endif %}
</td>
<td>
<a href="{{ url_for('.user_list', domain_name=domain.name) }}" title="{% trans %}Users{% endtrans %}"><i class="fa fa-envelope-o"></i></a>&nbsp;
<a href="{{ url_for('.alias_list', domain_name=domain.name) }}" title="{% trans %}Aliases{% endtrans %}"><i class="fa fa-at"></i></a>&nbsp;
<a href="{{ url_for('.manager_list', domain_name=domain.name) }}" title="{% trans %}Managers{% endtrans %}"><i class="fa fa-user"></i></a>&nbsp;
</td>
<td>{{ domain.name }}</td>
<td>{{ domain.users | count }} / {{ domain.max_users or '∞' }}</td>
<td>{{ domain.aliases | count }} / {{ domain.max_aliases or '∞' }}</td>
<td>{{ domain.comment or '' }}</td>
<td>{{ domain.created_at }}</td>
<td>{{ domain.updated_at or '' }}</td>
</tr>
{% endfor %}
</tbody>
</table>
{% endblock %}

View File

@@ -1,45 +0,0 @@
{% extends "base.html" %}
{% block title %}
{% trans %}Fetched accounts{% endtrans %}
{% endblock %}
{% block subtitle %}
{{ user }}
{% endblock %}
{% block main_action %}
<a class="btn btn-primary" href="{{ url_for('.fetch_create', user_email=user.email) }}">{% trans %}Add an account{% endtrans %}</a>
{% endblock %}
{% block box %}
<table class="table table-bordered">
<tbody>
<tr>
<th>{% trans %}Actions{% endtrans %}</th>
<th>{% trans %}Endpoint{% endtrans %}</th>
<th>{% trans %}Username{% endtrans %}</th>
<th>{% trans %}Keep emails{% endtrans %}</th>
<th>{% trans %}Last check{% endtrans %}</th>
<th>{% trans %}Status{% endtrans %}</th>
<th>{% trans %}Created{% endtrans %}</th>
<th>{% trans %}Last edit{% endtrans %}</th>
</tr>
{% for fetch in user.fetches %}
<tr>
<td>
<a href="{{ url_for('.fetch_edit', fetch_id=fetch.id) }}" title="{% trans %}Edit{% endtrans %}"><i class="fa fa-pencil"></i></a>&nbsp;
<a href="{{ url_for('.fetch_delete', fetch_id=fetch.id) }}" title="{% trans %}Delete{% endtrans %}"><i class="fa fa-trash"></i></a>
</td>
<td>{{ fetch.protocol }}{{ 's' if fetch.tls else '' }}://{{ fetch.host }}:{{ fetch.port }}</td>
<td>{{ fetch.username }}</td>
<td>{% if fetch.keep %}{% trans %}yes{% endtrans %}{% else %}{% trans %}no{% endtrans %}{% endif %}</td>
<td>{{ fetch.last_check or '-' }}</td>
<td>{{ fetch.error or '-' }}</td>
<td>{{ fetch.created_at }}</td>
<td>{{ fetch.updated_at or '' }}</td>
</tr>
{% endfor %}
</tbody>
</table>
{% endblock %}

View File

@@ -1,13 +0,0 @@
{% macro render_field(field, label_visible=true) -%}
<div class="form-group {% if field.errors %}has-error{% endif %} {{ kwargs.pop('class_', '') }}">
{% if field.type != 'HiddenField' and label_visible %}
<label for="{{ field.id }}" class="control-label">{{ field.label }}</label>
{% endif %}
{{ field(class_='form-control', **kwargs) }}
{% if field.errors %}
{% for e in field.errors %}
<p class="help-block">{{ e }}</p>
{% endfor %}
{% endif %}
</div>
{%- endmacro %}

View File

@@ -1,5 +0,0 @@
{% extends "general.html" %}
{% block content %}
Test
{% endblock %}

View File

@@ -1,26 +0,0 @@
{% extends "base.html" %}
{% block sidebar %}
<section class="sidebar">
<ul class="sidebar-menu">
<li class="header">{% trans %}Your account{% endtrans %}</li>
<li>
<a href="#">
<i class="fa fa-sign-in"></i> <span>{% trans %}Sign in{% endtrans %}</span>
</a>
</li>
</ul>
</section>
{% endblock %}
{% block title %}
{% trans %}Sign in{% endtrans %}
{% endblock %}
{% block subtitle %}
{% trans %}to access the administration tools{% endtrans %}
{% endblock %}
{% block box_content %}
{{ macros.form(form) }}
{% endblock %}

View File

@@ -1,32 +0,0 @@
{% extends "base.html" %}
{% block title %}
{% trans %}Manager list{% endtrans %}
{% endblock %}
{% block subtitle %}
{{ domain.name }}
{% endblock %}
{% block main_action %}
<a class="btn btn-primary" href="{{ url_for('.manager_create', domain_name=domain.name) }}">{% trans %}Add manager{% endtrans %}</a>
{% endblock %}
{% block box %}
<table class="table table-bordered">
<tbody>
<tr>
<th>{% trans %}Actions{% endtrans %}</th>
<th>{% trans %}Email{% endtrans %}</th>
</tr>
{% for manager in domain.managers %}
<tr>
<td>
<a href="{{ url_for('.manager_delete', domain_name=domain.name, user_email=manager.email) }}" title="{% trans %}Delete{% endtrans %}"><i class="fa fa-trash"></i></a>
</td>
<td>{{ manager }}</td>
</tr>
{% endfor %}
</tbody>
</table>
{% endblock %}

View File

@@ -1,30 +0,0 @@
{% extends "base.html" %}
{% block title %}
{% trans %}Services status{% endtrans %}
{% endblock %}
{% block box %}
<table class="table table-bordered">
<tbody>
<tr>
<th>{% trans %}Service{% endtrans %}</th>
<th>{% trans %}Status{% endtrans %}</th>
<th>{% trans %}PID{% endtrans %}</th>
<th>{% trans %}Image{% endtrans %}</th>
<th>{% trans %}Started{% endtrans %}</th>
<th>{% trans %}Last update{% endtrans %}</th>
</tr>
{% for name, container in containers.items() %}
<tr>
<td>{{ name }}</td>
<td><span class="label label-{{ "success" if container['State']['Running'] else "danger" }}">{{ container['State']['Status'] }}</span></td>
<td>{{ container['State']['Pid'] }}</td>
<td>{{ container['Config']['Image'] }}</td>
<td>{{ container['State']['StartedAt'] }}</td>
<td>{{ container['Image']['Created'] }}
</tr>
{% endfor %}
</tbody>
</table>
{% endblock %}

View File

@@ -1,53 +0,0 @@
{% extends "base.html" %}
{% block title %}
{% trans %}User list{% endtrans %}
{% endblock %}
{% block subtitle %}
{{ domain.name }}
{% endblock %}
{% block main_action %}
<a class="btn btn-primary" href="{{ url_for('.user_create', domain_name=domain.name) }}">{% trans %}Add user{% endtrans %}</a>
{% endblock %}
{% block box %}
<table class="table table-bordered">
<tbody>
<tr>
<th>{% trans %}Actions{% endtrans %}</th>
<th>{% trans %}User settings{% endtrans %}</th>
<th>{% trans %}Email{% endtrans %}</th>
<th>{% trans %}Features{% endtrans %}</th>
<th>{% trans %}Quota{% endtrans %}</th>
<th>{% trans %}Comment{% endtrans %}</th>
<th>{% trans %}Created{% endtrans %}</th>
<th>{% trans %}Last edit{% endtrans %}</th>
</tr>
{% for user in domain.users %}
<tr>
<td>
<a href="{{ url_for('.user_edit', user_email=user.email) }}" title="{% trans %}Edit{% endtrans %}"><i class="fa fa-pencil"></i></a>&nbsp;
<a href="{{ url_for('.user_delete', user_email=user.email) }}" title="{% trans %}Delete{% endtrans %}"><i class="fa fa-trash"></i></a>
</td>
<td>
<a href="{{ url_for('.user_settings', user_email=user.email) }}" title="{% trans %}Settings{% endtrans %}"><i class="fa fa-wrench"></i></a>&nbsp;
<a href="{{ url_for('.user_forward', user_email=user.email) }}" title="{% trans %}Auto-forward{% endtrans %}"><i class="fa fa-share"></i></a>&nbsp;
<a href="{{ url_for('.user_reply', user_email=user.email) }}" title="{% trans %}Auto-reply{% endtrans %}"><i class="fa fa-plane"></i></a>&nbsp;
<a href="{{ url_for('.fetch_list', user_email=user.email) }}" title="{% trans %}Fetched accounts{% endtrans %}"><i class="fa fa-download"></i></a>&nbsp;
</td>
<td>{{ user }}</td>
<td>
{% if user.enable_imap %}<span class="label label-info">imap</span>{% endif %}
{% if user.enable_pop %}<span class="label label-info">pop3</span>{% endif %}
</td>
<td>{{ user.quota_bytes | filesizeformat }}</td>
<td>{{ user.comment or '-' }}</td>
<td>{{ user.created_at }}</td>
<td>{{ user.updated_at or '' }}</td>
</tr>
{% endfor %}
</tbody>
</table>
{% endblock %}

View File

@@ -1,71 +0,0 @@
from mailu import app, scheduler, dockercli
import subprocess
import os
def certbot_command(subcommand, *args):
""" Run a certbot command while specifying the standard parameters.
"""
command = [
"certbot", subcommand,
"-n",
"--work-dir", "/tmp",
"--logs-dir", "/tmp",
"--config-dir", app.config["CERTS_PATH"],
*args
]
result = subprocess.run(command, stdout=subprocess.PIPE,
stderr=subprocess.PIPE)
return result
def certbot_install(domain):
""" Install certificates for the given domain. Return True if a reload
is required.
"""
must_reload = False
path = app.config["CERTS_PATH"]
cert = os.path.join(path, "cert.pem")
key = os.path.join(path, "key.pem")
live_cert = os.path.join("live", domain, "fullchain.pem")
live_key = os.path.join("live", domain, "privkey.pem")
if not os.path.islink(cert) or os.readlink(cert) != live_cert:
must_reload = True
if os.path.exists(cert):
os.unlink(cert)
os.symlink(live_cert, cert)
if not os.path.islink(key) or os.readlink(key) != live_key:
must_reload = True
if os.path.exists(key):
os.unlink(key)
os.symlink(live_key, key)
return must_reload
@scheduler.scheduled_job('date')
@scheduler.scheduled_job('cron', hour=2, minute=0)
def generate_cert():
print("Generating TLS certificates using Certbot")
hostname = app.config["HOSTNAME"]
email = "{}@{}".format(app.config["POSTMASTER"], app.config["DOMAIN"])
result = certbot_command(
"certonly",
"--standalone",
"--agree-tos",
"--preferred-challenges", "http",
"--email", email,
"-d", hostname,
# The port is hardcoded in the nginx image as well, we should find
# a more suitable way to go but this will do until we have a proper
# daemon handling certbot stuff
"--http-01-port", "8081"
)
if result.returncode:
print("Error while generating certificates:\n{}".format(
result.stdout.decode("utf8") + result.stdout.decode("utf8")))
else:
print("Successfully generated or renewed TLS certificates")
if certbot_install(hostname):
print("Reloading TLS-dependant services")
dockercli.reload("http", "smtp", "imap")

View File

@@ -1,512 +0,0 @@
# German translations for Mailu.
# Copyright (C) 2016 Mailu
# This file is distributed under the same license as the PROJECT project.
# Stefan Auditor <stefan.auditor@erdfisch.de>, 2016.
#
msgid ""
msgstr ""
"Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: stefan.auditor@erdfisch.de\n"
"POT-Creation-Date: 2016-11-10 10:52+0100\n"
"PO-Revision-Date: 2016-11-09 21:43+0100\n"
"Last-Translator: Stefan Auditor <stefan.auditor@erdfisch.de>\n"
"Language: de\n"
"Language-Team: Mailu German Team <stefan.auditor@erdfisch.de>\n"
"Plural-Forms: nplurals=2; plural=(n != 1)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.3.4\n"
#: mailu/admin/forms.py:32
msgid "Invalid email address."
msgstr "Ungültige E-Mail-Adresse."
#: mailu/admin/forms.py:36
msgid "Confirm"
msgstr "Bestätigen"
#: mailu/admin/forms.py:40 mailu/admin/forms.py:54
msgid "E-mail"
msgstr "E-Mail"
#: mailu/admin/forms.py:41 mailu/admin/forms.py:55 mailu/admin/forms.py:72
#: mailu/admin/forms.py:120
msgid "Password"
msgstr "Passwort"
#: mailu/admin/forms.py:42 mailu/admin/templates/login.html:9
#: mailu/admin/templates/login.html:17
msgid "Sign in"
msgstr "Anmelden"
#: mailu/admin/forms.py:46 mailu/admin/templates/domain/details.html:21
#: mailu/admin/templates/domain/list.html:19
msgid "Domain name"
msgstr "Domain-Name"
#: mailu/admin/forms.py:47
msgid "Maximum user count"
msgstr "Maximale Anzahl Benutzer"
#: mailu/admin/forms.py:48
msgid "Maximum alias count"
msgstr "Maximale Anzahl Aliase"
#: mailu/admin/forms.py:49 mailu/admin/forms.py:60 mailu/admin/forms.py:98
#: mailu/admin/templates/alias/list.html:22
#: mailu/admin/templates/domain/list.html:22
#: mailu/admin/templates/user/list.html:24
msgid "Comment"
msgstr "Kommentar"
#: mailu/admin/forms.py:50 mailu/admin/forms.py:99
msgid "Create"
msgstr "Erstellen"
#: mailu/admin/forms.py:56
msgid "Confirm password"
msgstr "Passwort bestätigen"
#: mailu/admin/forms.py:57 mailu/admin/templates/user/list.html:23
msgid "Quota"
msgstr "Quota"
#: mailu/admin/forms.py:58
msgid "Allow IMAP access"
msgstr "Zugriff via IMAP erlauben"
#: mailu/admin/forms.py:59
msgid "Allow POP3 access"
msgstr "Zugriff via POP3 erlauben"
#: mailu/admin/forms.py:61
msgid "Save"
msgstr "Speichern"
#: mailu/admin/forms.py:65
msgid "Displayed name"
msgstr "Angezeigter Name"
#: mailu/admin/forms.py:66
msgid "Enable spam filter"
msgstr "Spam-Filter aktivieren"
#: mailu/admin/forms.py:67
msgid "Spam filter threshold"
msgstr "Spam-Filter Schwellenwert"
#: mailu/admin/forms.py:68
msgid "Save settings"
msgstr "Einstellungen speichern"
#: mailu/admin/forms.py:73
msgid "Password check"
msgstr "Passwort prüfen"
#: mailu/admin/forms.py:74 mailu/admin/templates/sidebar.html:13
msgid "Update password"
msgstr "Passwort aktualisieren"
#: mailu/admin/forms.py:78
msgid "Enable forwarding"
msgstr "Weiterleitung aktivieren"
#: mailu/admin/forms.py:80 mailu/admin/forms.py:97
#: mailu/admin/templates/alias/list.html:21
msgid "Destination"
msgstr "Ziel"
#: mailu/admin/forms.py:82 mailu/admin/forms.py:90
msgid "Update"
msgstr "Aktualisieren"
#: mailu/admin/forms.py:86
msgid "Enable automatic reply"
msgstr "Automatische Antwort aktivieren"
#: mailu/admin/forms.py:87
msgid "Reply subject"
msgstr "Antwort Betreff"
#: mailu/admin/forms.py:88
msgid "Reply body"
msgstr "Antwort Text"
#: mailu/admin/forms.py:94
msgid "Alias"
msgstr "Alias"
#: mailu/admin/forms.py:96
msgid "Use SQL LIKE Syntax (e.g. for catch-all aliases)"
msgstr "SQL LIKE Syntax nutzen (z.B. für Catch-All Aliase)"
#: mailu/admin/forms.py:103
msgid "Admin email"
msgstr "Administrator E-Mail"
#: mailu/admin/forms.py:104 mailu/admin/forms.py:109 mailu/admin/forms.py:121
msgid "Submit"
msgstr "Absenden"
#: mailu/admin/forms.py:108
msgid "Manager email"
msgstr "Manager E-Mail"
#: mailu/admin/forms.py:113
msgid "Protocol"
msgstr "Protokoll"
#: mailu/admin/forms.py:116
msgid "Hostname or IP"
msgstr "Hostname oder IP"
#: mailu/admin/forms.py:117
msgid "TCP port"
msgstr "Port"
#: mailu/admin/forms.py:118
msgid "Enable TLS"
msgstr "Verschlüsselung aktivieren"
#: mailu/admin/forms.py:119 mailu/admin/templates/fetch/list.html:21
msgid "Username"
msgstr "Benutzername"
#: mailu/admin/templates/confirm.html:4
msgid "Confirm action"
msgstr "Aktion bestätigen"
#: mailu/admin/templates/confirm.html:12
msgid "You are about to %(action)s. Please confirm your action."
msgstr "Bitte bestätigen: %(action)s."
#: mailu/admin/templates/docker-error.html:4
msgid "Docker error"
msgstr "Docker Fehler"
#: mailu/admin/templates/docker-error.html:12
msgid "An error occurred while talking to the Docker server."
msgstr "Während der Kommunikation mit dem Docker Server ist ein Fehler aufgetreten."
#: mailu/admin/templates/login.html:6
msgid "Your account"
msgstr "Konto"
#: mailu/admin/templates/login.html:21
msgid "to access the administration tools"
msgstr "für administrativen Zugriff"
#: mailu/admin/templates/services.html:4 mailu/admin/templates/sidebar.html:40
msgid "Services status"
msgstr "Dienst-Status"
#: mailu/admin/templates/services.html:11
msgid "Service"
msgstr "Dienst"
#: mailu/admin/templates/fetch/list.html:23
#: mailu/admin/templates/services.html:12
msgid "Status"
msgstr "Status"
#: mailu/admin/templates/services.html:13
msgid "PID"
msgstr "PID"
#: mailu/admin/templates/services.html:14
msgid "Image"
msgstr "Image"
#: mailu/admin/templates/services.html:15
msgid "Started"
msgstr "Gestartet"
#: mailu/admin/templates/services.html:16
msgid "Last update"
msgstr "Letztes Update"
#: mailu/admin/templates/sidebar.html:5
msgid "My account"
msgstr "Mein Konto"
#: mailu/admin/templates/sidebar.html:8 mailu/admin/templates/user/list.html:35
msgid "Settings"
msgstr "Einstellungen"
#: mailu/admin/templates/sidebar.html:18
#: mailu/admin/templates/user/list.html:36
msgid "Auto-forward"
msgstr "Auto-Weiterleitung"
#: mailu/admin/templates/sidebar.html:23
#: mailu/admin/templates/user/list.html:37
msgid "Auto-reply"
msgstr "Auto-Antwort"
#: mailu/admin/templates/fetch/list.html:4
#: mailu/admin/templates/sidebar.html:28
#: mailu/admin/templates/user/list.html:38
msgid "Fetched accounts"
msgstr "Abgerufene Konten"
#: mailu/admin/templates/sidebar.html:33
msgid "Sign out"
msgstr "Abmelden"
#: mailu/admin/templates/sidebar.html:36
msgid "Administration"
msgstr "Administration"
#: mailu/admin/templates/sidebar.html:50
msgid "Administrators"
msgstr "Administratoren"
#: mailu/admin/templates/sidebar.html:57
msgid "Mail domains"
msgstr "E-Mail-Domains"
#: mailu/admin/templates/sidebar.html:64
msgid "Help"
msgstr "Hilfe"
#: mailu/admin/templates/working.html:4
msgid "We are still working on this feature!"
msgstr "Dieses Feature ist noch in Arbeit!"
#: mailu/admin/templates/admin/create.html:4
msgid "Add a global administrator"
msgstr "Globalen Administrator hinzufügen"
#: mailu/admin/templates/admin/list.html:4
msgid "Global administrators"
msgstr "Globale Administratoren"
#: mailu/admin/templates/admin/list.html:9
msgid "Add administrator"
msgstr "Administrator hinzufügen"
#: mailu/admin/templates/admin/list.html:17
#: mailu/admin/templates/alias/list.html:19
#: mailu/admin/templates/domain/list.html:17
#: mailu/admin/templates/fetch/list.html:19
#: mailu/admin/templates/manager/list.html:19
#: mailu/admin/templates/user/list.html:19
msgid "Actions"
msgstr "Aktionen"
#: mailu/admin/templates/admin/list.html:18
#: mailu/admin/templates/alias/list.html:20
#: mailu/admin/templates/manager/list.html:20
#: mailu/admin/templates/user/list.html:21
msgid "Email"
msgstr "E-Mail"
#: mailu/admin/templates/admin/list.html:23
#: mailu/admin/templates/alias/list.html:30
#: mailu/admin/templates/domain/list.html:32
#: mailu/admin/templates/fetch/list.html:31
#: mailu/admin/templates/manager/list.html:25
#: mailu/admin/templates/user/list.html:32
msgid "Delete"
msgstr "Löschen"
#: mailu/admin/templates/alias/create.html:4
msgid "Create alias"
msgstr "Alias erstellen"
#: mailu/admin/templates/alias/edit.html:4
msgid "Edit alias"
msgstr "Alias bearbeiten"
#: mailu/admin/templates/alias/list.html:4
msgid "Alias list"
msgstr "Alias Liste"
#: mailu/admin/templates/alias/list.html:12
msgid "Add alias"
msgstr "Alias hinzufügen"
#: mailu/admin/templates/alias/list.html:23
#: mailu/admin/templates/domain/list.html:23
#: mailu/admin/templates/fetch/list.html:24
#: mailu/admin/templates/user/list.html:25
msgid "Created"
msgstr "Erstellt"
#: mailu/admin/templates/alias/list.html:24
#: mailu/admin/templates/domain/list.html:24
#: mailu/admin/templates/fetch/list.html:25
#: mailu/admin/templates/user/list.html:26
msgid "Last edit"
msgstr "Zuletzt bearbeitet"
#: mailu/admin/templates/alias/list.html:29
#: mailu/admin/templates/domain/list.html:31
#: mailu/admin/templates/fetch/list.html:30
#: mailu/admin/templates/user/list.html:31
msgid "Edit"
msgstr "Bearbeiten"
#: mailu/admin/templates/domain/create.html:4
#: mailu/admin/templates/domain/list.html:9
msgid "New domain"
msgstr "Neue Domain"
#: mailu/admin/templates/domain/details.html:4
msgid "Domain details"
msgstr "Domain Details"
#: mailu/admin/templates/domain/details.html:13
msgid "Regenerate keys"
msgstr "Schlüssel neu erzeugen"
#: mailu/admin/templates/domain/details.html:25
msgid "DNS MX entry"
msgstr "DNS MX Eintrag"
#: mailu/admin/templates/domain/details.html:29
msgid "DNS SPF entries"
msgstr "DNS SPF Einträge"
#: mailu/admin/templates/domain/details.html:36
msgid "DKIM public key"
msgstr "DKIM öffentlicher Schlüssel"
#: mailu/admin/templates/domain/details.html:40
msgid "DNS DKIM entry"
msgstr "DNS DKIM Eintrag"
#: mailu/admin/templates/domain/details.html:44
msgid "DNS DMARC entry"
msgstr "DNS DMARC Eintrag"
#: mailu/admin/templates/domain/edit.html:4
msgid "Edit domain"
msgstr "Domain bearbeiten"
#: mailu/admin/templates/domain/list.html:4
msgid "Domain list"
msgstr "Domain Liste"
#: mailu/admin/templates/domain/list.html:18
msgid "Manage"
msgstr "Verwalten"
#: mailu/admin/templates/domain/list.html:20
msgid "Mailbox count"
msgstr "Mailboxen"
#: mailu/admin/templates/domain/list.html:21
msgid "Alias count"
msgstr "Aliase"
#: mailu/admin/templates/domain/list.html:29
msgid "Details"
msgstr "Details"
#: mailu/admin/templates/domain/list.html:36
msgid "Users"
msgstr "Benutzer"
#: mailu/admin/templates/domain/list.html:37
msgid "Aliases"
msgstr "Aliase"
#: mailu/admin/templates/domain/list.html:38
msgid "Managers"
msgstr "Manager"
#: mailu/admin/templates/fetch/create.html:4
msgid "Add a fetched account"
msgstr "Externes Konto hinzufügen"
#: mailu/admin/templates/fetch/edit.html:4
msgid "Update a fetched account"
msgstr "Externes Konto aktualisieren"
#: mailu/admin/templates/fetch/list.html:12
msgid "Add an account"
msgstr "Konto hinzufügen"
#: mailu/admin/templates/fetch/list.html:20
msgid "Endpoint"
msgstr "Endpunkt"
#: mailu/admin/templates/fetch/list.html:22
msgid "Last check"
msgstr "Letzte Prüfung"
#: mailu/admin/templates/manager/create.html:4
msgid "Add a manager"
msgstr "Einen Manager hinzufügen"
#: mailu/admin/templates/manager/list.html:4
msgid "Manager list"
msgstr "Manager Liste"
#: mailu/admin/templates/manager/list.html:12
msgid "Add manager"
msgstr "Manager hinzufügen"
#: mailu/admin/forms.py:125
msgid "Announcement subject"
msgstr "Bekanntmachung Betreff"
#: mailu/admin/forms.py:127
msgid "Announcement body"
msgstr "Bekanntmachung Text"
#: mailu/admin/forms.py:129
msgid "Send"
msgstr "Absenden"
#: mailu/admin/templates/announcement.html:4
msgid "Public announcement"
msgstr "Öffentliche Bekanntmachung"
#: mailu/admin/templates/announcement.html:8
msgid "from"
msgstr "von"
#: mailu/admin/templates/sidebar.html:45
msgid "Announcement"
msgstr "Bekanntmachung"
#: mailu/admin/templates/user/create.html:4
msgid "New user"
msgstr "Neuer Benutzer"
#: mailu/admin/templates/user/edit.html:4
msgid "Edit user"
msgstr "Benutzer bearbeiten"
#: mailu/admin/templates/user/forward.html:4
msgid "Forward emails"
msgstr "E-Mails weiterleiten"
#: mailu/admin/templates/user/list.html:4
msgid "User list"
msgstr "Benutzerliste"
#: mailu/admin/templates/user/list.html:12
msgid "Add user"
msgstr "Benutzer hinzufügen"
#: mailu/admin/templates/user/list.html:20
#: mailu/admin/templates/user/settings.html:4
msgid "User settings"
msgstr "Benutzer Einstellungen"
#: mailu/admin/templates/user/list.html:22
msgid "Features"
msgstr "Funktionen"
#: mailu/admin/templates/user/password.html:4
msgid "Password update"
msgstr "Passwort aktualisieren"
#: mailu/admin/templates/user/reply.html:4
msgid "Automatic reply"
msgstr "Automatische Antwort"

View File

@@ -1,513 +0,0 @@
# English translations for PROJECT.
# Copyright (C) 2016 ORGANIZATION
# This file is distributed under the same license as the PROJECT project.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2016.
#
msgid ""
msgstr ""
"Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2016-11-10 10:52+0100\n"
"PO-Revision-Date: 2016-10-02 15:02+0200\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language: en\n"
"Language-Team: en <LL@li.org>\n"
"Plural-Forms: nplurals=2; plural=(n != 1)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.3.4\n"
#: mailu/admin/forms.py:32
msgid "Invalid email address."
msgstr ""
#: mailu/admin/forms.py:36
msgid "Confirm"
msgstr ""
#: mailu/admin/forms.py:40 mailu/admin/forms.py:54
msgid "E-mail"
msgstr ""
#: mailu/admin/forms.py:41 mailu/admin/forms.py:55 mailu/admin/forms.py:72
#: mailu/admin/forms.py:120
msgid "Password"
msgstr ""
#: mailu/admin/forms.py:42 mailu/admin/templates/login.html:9
#: mailu/admin/templates/login.html:17
msgid "Sign in"
msgstr ""
#: mailu/admin/forms.py:46 mailu/admin/templates/domain/details.html:21
#: mailu/admin/templates/domain/list.html:19
msgid "Domain name"
msgstr ""
#: mailu/admin/forms.py:47
msgid "Maximum user count"
msgstr ""
#: mailu/admin/forms.py:48
msgid "Maximum alias count"
msgstr ""
#: mailu/admin/forms.py:49 mailu/admin/forms.py:60 mailu/admin/forms.py:98
#: mailu/admin/templates/alias/list.html:22
#: mailu/admin/templates/domain/list.html:22
#: mailu/admin/templates/user/list.html:24
msgid "Comment"
msgstr ""
#: mailu/admin/forms.py:50 mailu/admin/forms.py:99
msgid "Create"
msgstr ""
#: mailu/admin/forms.py:56
msgid "Confirm password"
msgstr ""
#: mailu/admin/forms.py:57 mailu/admin/templates/user/list.html:23
msgid "Quota"
msgstr ""
#: mailu/admin/forms.py:58
msgid "Allow IMAP access"
msgstr ""
#: mailu/admin/forms.py:59
msgid "Allow POP3 access"
msgstr ""
#: mailu/admin/forms.py:61
msgid "Save"
msgstr ""
#: mailu/admin/forms.py:65
msgid "Displayed name"
msgstr ""
#: mailu/admin/forms.py:66
msgid "Enable spam filter"
msgstr ""
#: mailu/admin/forms.py:67
msgid "Spam filter threshold"
msgstr ""
#: mailu/admin/forms.py:68
msgid "Save settings"
msgstr ""
#: mailu/admin/forms.py:73
msgid "Password check"
msgstr ""
#: mailu/admin/forms.py:74 mailu/admin/templates/sidebar.html:13
msgid "Update password"
msgstr ""
#: mailu/admin/forms.py:78
msgid "Enable forwarding"
msgstr ""
#: mailu/admin/forms.py:80 mailu/admin/forms.py:97
#: mailu/admin/templates/alias/list.html:21
msgid "Destination"
msgstr ""
#: mailu/admin/forms.py:82 mailu/admin/forms.py:90
msgid "Update"
msgstr ""
#: mailu/admin/forms.py:86
msgid "Enable automatic reply"
msgstr ""
#: mailu/admin/forms.py:87
msgid "Reply subject"
msgstr ""
#: mailu/admin/forms.py:88
msgid "Reply body"
msgstr ""
#: mailu/admin/forms.py:94
msgid "Alias"
msgstr ""
#: mailu/admin/forms.py:96
msgid "Use SQL LIKE Syntax (e.g. for catch-all aliases)"
msgstr ""
#: mailu/admin/forms.py:103
msgid "Admin email"
msgstr ""
#: mailu/admin/forms.py:104 mailu/admin/forms.py:109 mailu/admin/forms.py:121
msgid "Submit"
msgstr ""
#: mailu/admin/forms.py:108
msgid "Manager email"
msgstr ""
#: mailu/admin/forms.py:113
msgid "Protocol"
msgstr ""
#: mailu/admin/forms.py:116
msgid "Hostname or IP"
msgstr ""
#: mailu/admin/forms.py:117
msgid "TCP port"
msgstr ""
#: mailu/admin/forms.py:118
msgid "Enable TLS"
msgstr ""
#: mailu/admin/forms.py:119 mailu/admin/templates/fetch/list.html:21
msgid "Username"
msgstr ""
#: mailu/admin/forms.py:125
msgid "Announcement subject"
msgstr ""
#: mailu/admin/forms.py:127
msgid "Announcement body"
msgstr ""
#: mailu/admin/forms.py:129
msgid "Send"
msgstr ""
#: mailu/admin/templates/announcement.html:4
msgid "Public announcement"
msgstr ""
#: mailu/admin/templates/announcement.html:8
msgid "from"
msgstr ""
#: mailu/admin/templates/confirm.html:4
msgid "Confirm action"
msgstr ""
#: mailu/admin/templates/confirm.html:12
#, python-format
msgid "You are about to %(action)s. Please confirm your action."
msgstr ""
#: mailu/admin/templates/docker-error.html:4
msgid "Docker error"
msgstr ""
#: mailu/admin/templates/docker-error.html:12
msgid "An error occurred while talking to the Docker server."
msgstr ""
#: mailu/admin/templates/login.html:6
msgid "Your account"
msgstr ""
#: mailu/admin/templates/login.html:21
msgid "to access the administration tools"
msgstr ""
#: mailu/admin/templates/services.html:4 mailu/admin/templates/sidebar.html:40
msgid "Services status"
msgstr ""
#: mailu/admin/templates/services.html:11
msgid "Service"
msgstr ""
#: mailu/admin/templates/fetch/list.html:23
#: mailu/admin/templates/services.html:12
msgid "Status"
msgstr ""
#: mailu/admin/templates/services.html:13
msgid "PID"
msgstr ""
#: mailu/admin/templates/services.html:14
msgid "Image"
msgstr ""
#: mailu/admin/templates/services.html:15
msgid "Started"
msgstr ""
#: mailu/admin/templates/services.html:16
msgid "Last update"
msgstr ""
#: mailu/admin/templates/sidebar.html:5
msgid "My account"
msgstr ""
#: mailu/admin/templates/sidebar.html:8 mailu/admin/templates/user/list.html:35
msgid "Settings"
msgstr ""
#: mailu/admin/templates/sidebar.html:18
#: mailu/admin/templates/user/list.html:36
msgid "Auto-forward"
msgstr ""
#: mailu/admin/templates/sidebar.html:23
#: mailu/admin/templates/user/list.html:37
msgid "Auto-reply"
msgstr ""
#: mailu/admin/templates/fetch/list.html:4
#: mailu/admin/templates/sidebar.html:28
#: mailu/admin/templates/user/list.html:38
msgid "Fetched accounts"
msgstr ""
#: mailu/admin/templates/sidebar.html:33
msgid "Sign out"
msgstr ""
#: mailu/admin/templates/sidebar.html:36
msgid "Administration"
msgstr ""
#: mailu/admin/templates/sidebar.html:45
msgid "Announcement"
msgstr ""
#: mailu/admin/templates/sidebar.html:50
msgid "Administrators"
msgstr ""
#: mailu/admin/templates/sidebar.html:57
msgid "Mail domains"
msgstr ""
#: mailu/admin/templates/sidebar.html:64
msgid "Help"
msgstr ""
#: mailu/admin/templates/working.html:4
msgid "We are still working on this feature!"
msgstr ""
#: mailu/admin/templates/admin/create.html:4
msgid "Add a global administrator"
msgstr ""
#: mailu/admin/templates/admin/list.html:4
msgid "Global administrators"
msgstr ""
#: mailu/admin/templates/admin/list.html:9
msgid "Add administrator"
msgstr ""
#: mailu/admin/templates/admin/list.html:17
#: mailu/admin/templates/alias/list.html:19
#: mailu/admin/templates/domain/list.html:17
#: mailu/admin/templates/fetch/list.html:19
#: mailu/admin/templates/manager/list.html:19
#: mailu/admin/templates/user/list.html:19
msgid "Actions"
msgstr ""
#: mailu/admin/templates/admin/list.html:18
#: mailu/admin/templates/alias/list.html:20
#: mailu/admin/templates/manager/list.html:20
#: mailu/admin/templates/user/list.html:21
msgid "Email"
msgstr ""
#: mailu/admin/templates/admin/list.html:23
#: mailu/admin/templates/alias/list.html:30
#: mailu/admin/templates/domain/list.html:32
#: mailu/admin/templates/fetch/list.html:31
#: mailu/admin/templates/manager/list.html:25
#: mailu/admin/templates/user/list.html:32
msgid "Delete"
msgstr ""
#: mailu/admin/templates/alias/create.html:4
msgid "Create alias"
msgstr ""
#: mailu/admin/templates/alias/edit.html:4
msgid "Edit alias"
msgstr ""
#: mailu/admin/templates/alias/list.html:4
msgid "Alias list"
msgstr ""
#: mailu/admin/templates/alias/list.html:12
msgid "Add alias"
msgstr ""
#: mailu/admin/templates/alias/list.html:23
#: mailu/admin/templates/domain/list.html:23
#: mailu/admin/templates/fetch/list.html:24
#: mailu/admin/templates/user/list.html:25
msgid "Created"
msgstr ""
#: mailu/admin/templates/alias/list.html:24
#: mailu/admin/templates/domain/list.html:24
#: mailu/admin/templates/fetch/list.html:25
#: mailu/admin/templates/user/list.html:26
msgid "Last edit"
msgstr ""
#: mailu/admin/templates/alias/list.html:29
#: mailu/admin/templates/domain/list.html:31
#: mailu/admin/templates/fetch/list.html:30
#: mailu/admin/templates/user/list.html:31
msgid "Edit"
msgstr ""
#: mailu/admin/templates/domain/create.html:4
#: mailu/admin/templates/domain/list.html:9
msgid "New domain"
msgstr ""
#: mailu/admin/templates/domain/details.html:4
msgid "Domain details"
msgstr ""
#: mailu/admin/templates/domain/details.html:13
msgid "Regenerate keys"
msgstr ""
#: mailu/admin/templates/domain/details.html:25
msgid "DNS MX entry"
msgstr ""
#: mailu/admin/templates/domain/details.html:29
msgid "DNS SPF entries"
msgstr ""
#: mailu/admin/templates/domain/details.html:36
msgid "DKIM public key"
msgstr ""
#: mailu/admin/templates/domain/details.html:40
msgid "DNS DKIM entry"
msgstr ""
#: mailu/admin/templates/domain/details.html:44
msgid "DNS DMARC entry"
msgstr ""
#: mailu/admin/templates/domain/edit.html:4
msgid "Edit domain"
msgstr ""
#: mailu/admin/templates/domain/list.html:4
msgid "Domain list"
msgstr ""
#: mailu/admin/templates/domain/list.html:18
msgid "Manage"
msgstr ""
#: mailu/admin/templates/domain/list.html:20
msgid "Mailbox count"
msgstr ""
#: mailu/admin/templates/domain/list.html:21
msgid "Alias count"
msgstr ""
#: mailu/admin/templates/domain/list.html:29
msgid "Details"
msgstr ""
#: mailu/admin/templates/domain/list.html:36
msgid "Users"
msgstr ""
#: mailu/admin/templates/domain/list.html:37
msgid "Aliases"
msgstr ""
#: mailu/admin/templates/domain/list.html:38
msgid "Managers"
msgstr ""
#: mailu/admin/templates/fetch/create.html:4
msgid "Add a fetched account"
msgstr ""
#: mailu/admin/templates/fetch/edit.html:4
msgid "Update a fetched account"
msgstr ""
#: mailu/admin/templates/fetch/list.html:12
msgid "Add an account"
msgstr ""
#: mailu/admin/templates/fetch/list.html:20
msgid "Endpoint"
msgstr ""
#: mailu/admin/templates/fetch/list.html:22
msgid "Last check"
msgstr ""
#: mailu/admin/templates/manager/create.html:4
msgid "Add a manager"
msgstr ""
#: mailu/admin/templates/manager/list.html:4
msgid "Manager list"
msgstr ""
#: mailu/admin/templates/manager/list.html:12
msgid "Add manager"
msgstr ""
#: mailu/admin/templates/user/create.html:4
msgid "New user"
msgstr ""
#: mailu/admin/templates/user/edit.html:4
msgid "Edit user"
msgstr ""
#: mailu/admin/templates/user/forward.html:4
msgid "Forward emails"
msgstr ""
#: mailu/admin/templates/user/list.html:4
msgid "User list"
msgstr ""
#: mailu/admin/templates/user/list.html:12
msgid "Add user"
msgstr ""
#: mailu/admin/templates/user/list.html:20
#: mailu/admin/templates/user/settings.html:4
msgid "User settings"
msgstr ""
#: mailu/admin/templates/user/list.html:22
msgid "Features"
msgstr ""
#: mailu/admin/templates/user/password.html:4
msgid "Password update"
msgstr ""
#: mailu/admin/templates/user/reply.html:4
msgid "Automatic reply"
msgstr ""

View File

@@ -1,501 +0,0 @@
msgid ""
msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: POEditor.com\n"
"Project-Id-Version: Mailu\n"
"Language: fr\n"
#: mailu/admin/forms.py:32
msgid "Invalid email address."
msgstr "Adresse e-mail invalide"
#: mailu/admin/forms.py:36
msgid "Confirm"
msgstr "Confirmer"
#: mailu/admin/forms.py:40 mailu/admin/forms.py:54
msgid "E-mail"
msgstr "E-mail"
#: mailu/admin/forms.py:41 mailu/admin/forms.py:55 mailu/admin/forms.py:72
#: mailu/admin/forms.py:120
msgid "Password"
msgstr "Mot de passe"
#: mailu/admin/forms.py:42 mailu/admin/templates/login.html:9
#: mailu/admin/templates/login.html:17
msgid "Sign in"
msgstr "Se connecter"
#: mailu/admin/forms.py:46 mailu/admin/templates/domain/details.html:21
#: mailu/admin/templates/domain/list.html:19
msgid "Domain name"
msgstr "Nom de domaine"
#: mailu/admin/forms.py:47
msgid "Maximum user count"
msgstr "Nombre maximum d'utilisateurs"
#: mailu/admin/forms.py:48
msgid "Maximum alias count"
msgstr "Nombre maximum d'alias"
#: mailu/admin/forms.py:49 mailu/admin/forms.py:60 mailu/admin/forms.py:98
#: mailu/admin/templates/alias/list.html:22
#: mailu/admin/templates/domain/list.html:22
#: mailu/admin/templates/user/list.html:24
msgid "Comment"
msgstr "Commentaire"
#: mailu/admin/forms.py:50 mailu/admin/forms.py:99
msgid "Create"
msgstr "Créer"
#: mailu/admin/forms.py:56
msgid "Confirm password"
msgstr "Confirmer le mot de passe"
#: mailu/admin/forms.py:57 mailu/admin/templates/user/list.html:23
msgid "Quota"
msgstr "Quota"
#: mailu/admin/forms.py:58
msgid "Allow IMAP access"
msgstr "Autoriser l'accès IMAP"
#: mailu/admin/forms.py:59
msgid "Allow POP3 access"
msgstr "Autoriser l'accès POP3"
#: mailu/admin/forms.py:61
msgid "Save"
msgstr "Enregistrer"
#: mailu/admin/forms.py:65
msgid "Displayed name"
msgstr "Nom affiché"
#: mailu/admin/forms.py:66
msgid "Enable spam filter"
msgstr "Activer le filtre anti-spam"
#: mailu/admin/forms.py:67
msgid "Spam filter threshold"
msgstr "Seuil du filtre anti-spam"
#: mailu/admin/forms.py:68
msgid "Save settings"
msgstr "Enregistrer les préférences"
#: mailu/admin/forms.py:73
msgid "Password check"
msgstr "Vérifier le mot de passe"
#: mailu/admin/forms.py:74 mailu/admin/templates/sidebar.html:13
msgid "Update password"
msgstr "Changer de mot de passe"
#: mailu/admin/forms.py:78
msgid "Enable forwarding"
msgstr "Activer la redirection"
#: mailu/admin/forms.py:80 mailu/admin/forms.py:97
#: mailu/admin/templates/alias/list.html:21
msgid "Destination"
msgstr "Destination"
#: mailu/admin/forms.py:82 mailu/admin/forms.py:90
msgid "Update"
msgstr "Mettre à jour"
#: mailu/admin/forms.py:86
msgid "Enable automatic reply"
msgstr "Activer les réponses automatique"
#: mailu/admin/forms.py:87
msgid "Reply subject"
msgstr "Sujet du message"
#: mailu/admin/forms.py:88
msgid "Reply body"
msgstr "Corps de la réponse"
#: mailu/admin/forms.py:94
msgid "Alias"
msgstr "Alias"
#: mailu/admin/forms.py:96
msgid "Use SQL LIKE Syntax (e.g. for catch-all aliases)"
msgstr "Utiliser la syntaxe SQL LIKE (par exemple pour les alias catch-all)"
#: mailu/admin/forms.py:103
msgid "Admin email"
msgstr "Email de l'administrateur"
#: mailu/admin/forms.py:104 mailu/admin/forms.py:109 mailu/admin/forms.py:121
msgid "Submit"
msgstr "Valider"
#: mailu/admin/forms.py:108
msgid "Manager email"
msgstr "E-mail du gérant"
#: mailu/admin/forms.py:113
msgid "Protocol"
msgstr "Protocole"
#: mailu/admin/forms.py:116
msgid "Hostname or IP"
msgstr "Nom d'hôte ou adresse IP"
#: mailu/admin/forms.py:117
msgid "TCP port"
msgstr "Port TCP"
#: mailu/admin/forms.py:118
msgid "Enable TLS"
msgstr "Activer TLS"
#: mailu/admin/forms.py:119 mailu/admin/templates/fetch/list.html:21
msgid "Username"
msgstr "Nom d'utilisateur"
#: mailu/admin/templates/confirm.html:4
msgid "Confirm action"
msgstr "Confirmer"
#: mailu/admin/templates/confirm.html:12
msgid "You are about to %(action)s. Please confirm your action."
msgstr "Vous allez %(action)s. Merci de confirmer votre action."
#: mailu/admin/templates/docker-error.html:4
msgid "Docker error"
msgstr "Erreur Docker"
#: mailu/admin/templates/docker-error.html:12
msgid "An error occurred while talking to the Docker server."
msgstr "Une erreur s'est produite en communiquant avec le serveur Docker."
#: mailu/admin/templates/login.html:6
msgid "Your account"
msgstr "Votre compte"
#: mailu/admin/templates/login.html:21
msgid "to access the administration tools"
msgstr "pour accéder aux outils d'administration"
#: mailu/admin/templates/services.html:4 mailu/admin/templates/sidebar.html:40
msgid "Services status"
msgstr "Etat des services"
#: mailu/admin/templates/services.html:11
msgid "Service"
msgstr "Service"
#: mailu/admin/templates/fetch/list.html:23
#: mailu/admin/templates/services.html:12
msgid "Status"
msgstr "Etat"
#: mailu/admin/templates/services.html:13
msgid "PID"
msgstr "PID"
#: mailu/admin/templates/services.html:14
msgid "Image"
msgstr "Image"
#: mailu/admin/templates/services.html:15
msgid "Started"
msgstr "Démarré depuis"
#: mailu/admin/templates/services.html:16
msgid "Last update"
msgstr "Dernière mise à jour"
#: mailu/admin/templates/sidebar.html:5
msgid "My account"
msgstr "Mon compte"
#: mailu/admin/templates/sidebar.html:8 mailu/admin/templates/user/list.html:35
msgid "Settings"
msgstr "Préférences"
#: mailu/admin/templates/sidebar.html:18
#: mailu/admin/templates/user/list.html:36
msgid "Auto-forward"
msgstr "Redirection"
#: mailu/admin/templates/sidebar.html:23
#: mailu/admin/templates/user/list.html:37
msgid "Auto-reply"
msgstr "Réponse automatique"
#: mailu/admin/templates/fetch/list.html:4
#: mailu/admin/templates/sidebar.html:28
#: mailu/admin/templates/user/list.html:38
msgid "Fetched accounts"
msgstr "Comptes externes"
#: mailu/admin/templates/sidebar.html:33
msgid "Sign out"
msgstr "Déconnexion"
#: mailu/admin/templates/sidebar.html:36
msgid "Administration"
msgstr "Administration"
#: mailu/admin/templates/sidebar.html:50
msgid "Administrators"
msgstr "Administrateurs"
#: mailu/admin/templates/sidebar.html:57
msgid "Mail domains"
msgstr "Domaines"
#: mailu/admin/templates/sidebar.html:64
msgid "Help"
msgstr "Aide"
#: mailu/admin/templates/working.html:4
msgid "We are still working on this feature!"
msgstr "Cette fonctionnalité est en cours de développement !"
#: mailu/admin/templates/admin/create.html:4
msgid "Add a global administrator"
msgstr "Ajouter un administrateur global"
#: mailu/admin/templates/admin/list.html:4
msgid "Global administrators"
msgstr "Administrateurs globaux"
#: mailu/admin/templates/admin/list.html:9
msgid "Add administrator"
msgstr "Ajouter un administrateur"
#: mailu/admin/templates/admin/list.html:17
#: mailu/admin/templates/alias/list.html:19
#: mailu/admin/templates/domain/list.html:17
#: mailu/admin/templates/fetch/list.html:19
#: mailu/admin/templates/manager/list.html:19
#: mailu/admin/templates/user/list.html:19
msgid "Actions"
msgstr "Actions"
#: mailu/admin/templates/admin/list.html:18
#: mailu/admin/templates/alias/list.html:20
#: mailu/admin/templates/manager/list.html:20
#: mailu/admin/templates/user/list.html:21
msgid "Email"
msgstr "E-mail"
#: mailu/admin/templates/admin/list.html:23
#: mailu/admin/templates/alias/list.html:30
#: mailu/admin/templates/domain/list.html:32
#: mailu/admin/templates/fetch/list.html:31
#: mailu/admin/templates/manager/list.html:25
#: mailu/admin/templates/user/list.html:32
msgid "Delete"
msgstr "Supprimer"
#: mailu/admin/templates/alias/create.html:4
msgid "Create alias"
msgstr "Créer un alias"
#: mailu/admin/templates/alias/edit.html:4
msgid "Edit alias"
msgstr "Modifier un alias"
#: mailu/admin/templates/alias/list.html:4
msgid "Alias list"
msgstr "Liste des alias"
#: mailu/admin/templates/alias/list.html:12
msgid "Add alias"
msgstr "Ajouter un alias"
#: mailu/admin/templates/alias/list.html:23
#: mailu/admin/templates/domain/list.html:23
#: mailu/admin/templates/fetch/list.html:24
#: mailu/admin/templates/user/list.html:25
msgid "Created"
msgstr "Création"
#: mailu/admin/templates/alias/list.html:24
#: mailu/admin/templates/domain/list.html:24
#: mailu/admin/templates/fetch/list.html:25
#: mailu/admin/templates/user/list.html:26
msgid "Last edit"
msgstr "Dernière modification"
#: mailu/admin/templates/alias/list.html:29
#: mailu/admin/templates/domain/list.html:31
#: mailu/admin/templates/fetch/list.html:30
#: mailu/admin/templates/user/list.html:31
msgid "Edit"
msgstr "Modifier"
#: mailu/admin/templates/domain/create.html:4
#: mailu/admin/templates/domain/list.html:9
msgid "New domain"
msgstr "Nouveau domaine"
#: mailu/admin/templates/domain/details.html:4
msgid "Domain details"
msgstr "Détails du domaine"
#: mailu/admin/templates/domain/details.html:13
msgid "Regenerate keys"
msgstr "Regénérer les clés"
#: mailu/admin/templates/domain/details.html:25
msgid "DNS MX entry"
msgstr "Entrée DNS MX"
#: mailu/admin/templates/domain/details.html:29
msgid "DNS SPF entries"
msgstr "Entrées DNS SPF"
#: mailu/admin/templates/domain/details.html:36
msgid "DKIM public key"
msgstr "Clé publique DKIM"
#: mailu/admin/templates/domain/details.html:40
msgid "DNS DKIM entry"
msgstr "Entrée DNS DKIM"
#: mailu/admin/templates/domain/details.html:44
msgid "DNS DMARC entry"
msgstr "Entrée DNS DMARC"
#: mailu/admin/templates/domain/edit.html:4
msgid "Edit domain"
msgstr "Modifier le domaine"
#: mailu/admin/templates/domain/list.html:4
msgid "Domain list"
msgstr "Liste des domaines"
#: mailu/admin/templates/domain/list.html:18
msgid "Manage"
msgstr "Gérer"
#: mailu/admin/templates/domain/list.html:20
msgid "Mailbox count"
msgstr "Nombre de boîtes mail"
#: mailu/admin/templates/domain/list.html:21
msgid "Alias count"
msgstr "Nombre d'alias"
#: mailu/admin/templates/domain/list.html:29
msgid "Details"
msgstr "Détails"
#: mailu/admin/templates/domain/list.html:36
msgid "Users"
msgstr "Utilisateurs"
#: mailu/admin/templates/domain/list.html:37
msgid "Aliases"
msgstr "Alias"
#: mailu/admin/templates/domain/list.html:38
msgid "Managers"
msgstr "Gérants"
#: mailu/admin/templates/fetch/create.html:4
msgid "Add a fetched account"
msgstr "Ajouter un compte externe"
#: mailu/admin/templates/fetch/edit.html:4
msgid "Update a fetched account"
msgstr "Modifier un compte externe"
#: mailu/admin/templates/fetch/list.html:12
msgid "Add an account"
msgstr "Ajouter un compte"
#: mailu/admin/templates/fetch/list.html:20
msgid "Endpoint"
msgstr "Source"
#: mailu/admin/templates/fetch/list.html:22
msgid "Last check"
msgstr "Dernier relevé"
#: mailu/admin/templates/manager/create.html:4
msgid "Add a manager"
msgstr "Ajouter un gérant"
#: mailu/admin/templates/manager/list.html:4
msgid "Manager list"
msgstr "Liste des gérants"
#: mailu/admin/templates/manager/list.html:12
msgid "Add manager"
msgstr "Ajouter le gérant"
#: mailu/admin/forms.py:125
msgid "Announcement subject"
msgstr "Sujet de l'annonce"
#: mailu/admin/forms.py:127
msgid "Announcement body"
msgstr "Corps de l'annonce"
#: mailu/admin/forms.py:129
msgid "Send"
msgstr "Envoyer"
#: mailu/admin/templates/announcement.html:4
msgid "Public announcement"
msgstr "Annonce globale"
#: mailu/admin/templates/announcement.html:8
msgid "from"
msgstr "de"
#: mailu/admin/templates/sidebar.html:45
msgid "Announcement"
msgstr "Annonce"
#: mailu/admin/templates/user/create.html:4
msgid "New user"
msgstr "Nouvel utilisateur"
#: mailu/admin/templates/user/edit.html:4
msgid "Edit user"
msgstr "Modifier l'utilisateur"
#: mailu/admin/templates/user/forward.html:4
msgid "Forward emails"
msgstr "Faire suivre les emails"
#: mailu/admin/templates/user/list.html:4
msgid "User list"
msgstr "Utilisateurs"
#: mailu/admin/templates/user/list.html:12
msgid "Add user"
msgstr "Ajouter un utilisateur"
#: mailu/admin/templates/user/list.html:20
#: mailu/admin/templates/user/settings.html:4
msgid "User settings"
msgstr "Options de l'utilisateur"
#: mailu/admin/templates/user/list.html:22
msgid "Features"
msgstr "Fonctionnalités"
#: mailu/admin/templates/user/password.html:4
msgid "Password update"
msgstr "Modifier le mot de passe"
#: mailu/admin/templates/user/reply.html:4
msgid "Automatic reply"
msgstr "Réponse automatique"

View File

@@ -1,518 +0,0 @@
# Translations template for PROJECT.
# Copyright (C) 2016 ORGANIZATION
# This file is distributed under the same license as the PROJECT project.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2016.
#
msgid ""
msgstr ""
"Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2017-03-27 11:37-0300\n"
"PO-Revision-Date: 2017-03-27 11:43-0300\n"
"Last-Translator: \n"
"Language-Team: \n"
"Language: pt_BR\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.3.4\n"
"X-Generator: Poedit 1.8.9\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
"X-Poedit-Basepath: .\n"
#: mailu/admin/forms.py:32
msgid "Invalid email address."
msgstr "Endereço de e-mail inválido"
#: mailu/admin/forms.py:36
msgid "Confirm"
msgstr "Confirmar"
#: mailu/admin/forms.py:40 mailu/admin/forms.py:54
msgid "E-mail"
msgstr "E-mail"
#: mailu/admin/forms.py:41 mailu/admin/forms.py:55 mailu/admin/forms.py:72
#: mailu/admin/forms.py:120
msgid "Password"
msgstr "Senha"
#: mailu/admin/forms.py:42 mailu/admin/templates/login.html:9
#: mailu/admin/templates/login.html:17
msgid "Sign in"
msgstr "Entrar"
#: mailu/admin/forms.py:46 mailu/admin/templates/domain/details.html:21
#: mailu/admin/templates/domain/list.html:19
msgid "Domain name"
msgstr "Domínio"
#: mailu/admin/forms.py:47
msgid "Maximum user count"
msgstr "Quantidade máxima de usuários"
#: mailu/admin/forms.py:48
msgid "Maximum alias count"
msgstr "Quantidade máxima de alias"
#: mailu/admin/forms.py:49 mailu/admin/forms.py:60 mailu/admin/forms.py:98
#: mailu/admin/templates/alias/list.html:22
#: mailu/admin/templates/domain/list.html:22
#: mailu/admin/templates/user/list.html:24
msgid "Comment"
msgstr "Comentário"
#: mailu/admin/forms.py:50 mailu/admin/forms.py:99
msgid "Create"
msgstr "Criar"
#: mailu/admin/forms.py:56
msgid "Confirm password"
msgstr "Confirmar senha"
#: mailu/admin/forms.py:57 mailu/admin/templates/user/list.html:23
msgid "Quota"
msgstr "Quota"
#: mailu/admin/forms.py:58
msgid "Allow IMAP access"
msgstr "Permitir acesso IMAP"
#: mailu/admin/forms.py:59
msgid "Allow POP3 access"
msgstr "Permitir acesso POP3"
#: mailu/admin/forms.py:61
msgid "Save"
msgstr "Salvar"
#: mailu/admin/forms.py:65
msgid "Displayed name"
msgstr "Nome de exibição"
#: mailu/admin/forms.py:66
msgid "Enable spam filter"
msgstr "Habilitar filtro de spam"
#: mailu/admin/forms.py:67
msgid "Spam filter threshold"
msgstr "Limite de filtro de spam"
#: mailu/admin/forms.py:68
msgid "Save settings"
msgstr "Salvar configurações"
#: mailu/admin/forms.py:73
msgid "Password check"
msgstr "Confirmação de senha"
#: mailu/admin/forms.py:74 mailu/admin/templates/sidebar.html:13
msgid "Update password"
msgstr "Alterar senha"
#: mailu/admin/forms.py:78
msgid "Enable forwarding"
msgstr "Habilitar encaminhamento"
#: mailu/admin/forms.py:80 mailu/admin/forms.py:97
#: mailu/admin/templates/alias/list.html:21
msgid "Destination"
msgstr "Destinatário"
#: mailu/admin/forms.py:82 mailu/admin/forms.py:90
msgid "Update"
msgstr "Atualizar"
#: mailu/admin/forms.py:86
msgid "Enable automatic reply"
msgstr "Habilitar resposta automática"
#: mailu/admin/forms.py:87
msgid "Reply subject"
msgstr "Assunto da resposta"
#: mailu/admin/forms.py:88
msgid "Reply body"
msgstr "Corpo da resposta"
#: mailu/admin/forms.py:94
msgid "Alias"
msgstr "Alias"
#: mailu/admin/forms.py:96
msgid "Use SQL LIKE Syntax (e.g. for catch-all aliases)"
msgstr "Usar sintaxe estilo SQL(ex: for catch-all aliases)"
#: mailu/admin/forms.py:103
msgid "Admin email"
msgstr "E-mail do administrador"
#: mailu/admin/forms.py:104 mailu/admin/forms.py:109 mailu/admin/forms.py:121
msgid "Submit"
msgstr "Enviar"
#: mailu/admin/forms.py:108
msgid "Manager email"
msgstr "E-mail do gerente"
#: mailu/admin/forms.py:113
msgid "Protocol"
msgstr "Protocolo"
#: mailu/admin/forms.py:116
msgid "Hostname or IP"
msgstr "Hostname ou IP"
#: mailu/admin/forms.py:117
msgid "TCP port"
msgstr "Porta TCP"
#: mailu/admin/forms.py:118
msgid "Enable TLS"
msgstr "Habilitar TLS"
#: mailu/admin/forms.py:119 mailu/admin/templates/fetch/list.html:21
msgid "Username"
msgstr "Usuário"
#: mailu/admin/forms.py:121
msgid "Keep emails on the server"
msgstr "Manter os e-mails no servidor"
#: mailu/admin/forms.py:125
msgid "Announcement subject"
msgstr "Título do comunicado"
#: mailu/admin/forms.py:127
msgid "Announcement body"
msgstr "Corpo do comunicado"
#: mailu/admin/forms.py:129
msgid "Send"
msgstr "Enviar"
#: mailu/admin/templates/announcement.html:4
msgid "Public announcement"
msgstr "Comunicado geral"
#: mailu/admin/templates/announcement.html:8
msgid "from"
msgstr "de"
#: mailu/admin/templates/confirm.html:4
msgid "Confirm action"
msgstr "Confirmar ação"
#: mailu/admin/templates/confirm.html:12
#, python-format
msgid "You are about to %(action)s. Please confirm your action."
msgstr "Por favor, confirme a(s) %(action)s"
#: mailu/admin/templates/docker-error.html:4
msgid "Docker error"
msgstr "Erro no docker"
#: mailu/admin/templates/docker-error.html:12
msgid "An error occurred while talking to the Docker server."
msgstr "Um erro foi encontrado na conexão com o servidor Docker"
#: mailu/admin/templates/login.html:6
msgid "Your account"
msgstr "Sua conta"
#: mailu/admin/templates/login.html:21
msgid "to access the administration tools"
msgstr "para acessar as ferramentas administrativas"
#: mailu/admin/templates/services.html:4 mailu/admin/templates/sidebar.html:40
msgid "Services status"
msgstr "Status do serviço"
#: mailu/admin/templates/services.html:11
msgid "Service"
msgstr "Serviço"
#: mailu/admin/templates/fetch/list.html:23
#: mailu/admin/templates/services.html:12
msgid "Status"
msgstr "Status"
#: mailu/admin/templates/services.html:13
msgid "PID"
msgstr "PID"
#: mailu/admin/templates/services.html:14
msgid "Image"
msgstr "Imagem"
#: mailu/admin/templates/services.html:15
msgid "Started"
msgstr "Iniciado"
#: mailu/admin/templates/services.html:16
msgid "Last update"
msgstr "Última atualização"
#: mailu/admin/templates/sidebar.html:5
msgid "My account"
msgstr "Minha conta"
#: mailu/admin/templates/sidebar.html:8 mailu/admin/templates/user/list.html:35
msgid "Settings"
msgstr "Configurações"
#: mailu/admin/templates/sidebar.html:18
#: mailu/admin/templates/user/list.html:36
msgid "Auto-forward"
msgstr "Encaminhamento automático"
#: mailu/admin/templates/sidebar.html:23
#: mailu/admin/templates/user/list.html:37
msgid "Auto-reply"
msgstr "Resposta automática"
#: mailu/admin/templates/fetch/list.html:4
#: mailu/admin/templates/sidebar.html:28
#: mailu/admin/templates/user/list.html:38
msgid "Fetched accounts"
msgstr "Contas importadas"
#: mailu/admin/templates/sidebar.html:33
msgid "Sign out"
msgstr "Sair"
#: mailu/admin/templates/sidebar.html:36
msgid "Administration"
msgstr "Administração"
#: mailu/admin/templates/sidebar.html:45
msgid "Announcement"
msgstr "Comunicado"
#: mailu/admin/templates/sidebar.html:50
msgid "Administrators"
msgstr "Administradores"
#: mailu/admin/templates/sidebar.html:57
msgid "Mail domains"
msgstr "Domínios de e-mail"
#: mailu/admin/templates/sidebar.html:64
msgid "Help"
msgstr "Ajuda"
#: mailu/admin/templates/working.html:4
msgid "We are still working on this feature!"
msgstr "Nós ainda estamos trabalhando nesta função!"
#: mailu/admin/templates/admin/create.html:4
msgid "Add a global administrator"
msgstr "Adicionar administrador global"
#: mailu/admin/templates/admin/list.html:4
msgid "Global administrators"
msgstr "Administradores globais"
#: mailu/admin/templates/admin/list.html:9
msgid "Add administrator"
msgstr "Adicionar administrador"
#: mailu/admin/templates/admin/list.html:17
#: mailu/admin/templates/alias/list.html:19
#: mailu/admin/templates/domain/list.html:17
#: mailu/admin/templates/fetch/list.html:19
#: mailu/admin/templates/manager/list.html:19
#: mailu/admin/templates/user/list.html:19
msgid "Actions"
msgstr "Ações"
#: mailu/admin/templates/admin/list.html:18
#: mailu/admin/templates/alias/list.html:20
#: mailu/admin/templates/manager/list.html:20
#: mailu/admin/templates/user/list.html:21
msgid "Email"
msgstr "Email"
#: mailu/admin/templates/admin/list.html:23
#: mailu/admin/templates/alias/list.html:30
#: mailu/admin/templates/domain/list.html:32
#: mailu/admin/templates/fetch/list.html:31
#: mailu/admin/templates/manager/list.html:25
#: mailu/admin/templates/user/list.html:32
msgid "Delete"
msgstr "Deletar"
#: mailu/admin/templates/alias/create.html:4
msgid "Create alias"
msgstr "Criar alias"
#: mailu/admin/templates/alias/edit.html:4
msgid "Edit alias"
msgstr "Editar alias"
#: mailu/admin/templates/alias/list.html:4
msgid "Alias list"
msgstr "Lista de alias"
#: mailu/admin/templates/alias/list.html:12
msgid "Add alias"
msgstr "Adicionar alias"
#: mailu/admin/templates/alias/list.html:23
#: mailu/admin/templates/domain/list.html:23
#: mailu/admin/templates/fetch/list.html:24
#: mailu/admin/templates/user/list.html:25
msgid "Created"
msgstr "Criado"
#: mailu/admin/templates/alias/list.html:24
#: mailu/admin/templates/domain/list.html:24
#: mailu/admin/templates/fetch/list.html:25
#: mailu/admin/templates/user/list.html:26
msgid "Last edit"
msgstr "Última edição"
#: mailu/admin/templates/alias/list.html:29
#: mailu/admin/templates/domain/list.html:31
#: mailu/admin/templates/fetch/list.html:30
#: mailu/admin/templates/user/list.html:31
msgid "Edit"
msgstr "Editar"
#: mailu/admin/templates/domain/create.html:4
#: mailu/admin/templates/domain/list.html:9
msgid "New domain"
msgstr "Novo domínio"
#: mailu/admin/templates/domain/details.html:4
msgid "Domain details"
msgstr "Detalhes do domínio"
#: mailu/admin/templates/domain/details.html:13
msgid "Regenerate keys"
msgstr "Gerar novas chaves"
#: mailu/admin/templates/domain/details.html:25
msgid "DNS MX entry"
msgstr "Entrada DNS MX"
#: mailu/admin/templates/domain/details.html:29
msgid "DNS SPF entries"
msgstr "Entrada DNS SPF"
#: mailu/admin/templates/domain/details.html:36
msgid "DKIM public key"
msgstr "Chave pública do DKIM"
#: mailu/admin/templates/domain/details.html:40
msgid "DNS DKIM entry"
msgstr "Entrada DNS DKIM"
#: mailu/admin/templates/domain/details.html:44
msgid "DNS DMARC entry"
msgstr "Entrada DNS DMARC"
#: mailu/admin/templates/domain/edit.html:4
msgid "Edit domain"
msgstr "Editar domínio"
#: mailu/admin/templates/domain/list.html:4
msgid "Domain list"
msgstr "Lista de domínios"
#: mailu/admin/templates/domain/list.html:18
msgid "Manage"
msgstr "Gerenciar"
#: mailu/admin/templates/domain/list.html:20
msgid "Mailbox count"
msgstr "Quantidade de caixas de e-mail"
#: mailu/admin/templates/domain/list.html:21
msgid "Alias count"
msgstr "Quantidade de aliases"
#: mailu/admin/templates/domain/list.html:29
msgid "Details"
msgstr "Detalhes"
#: mailu/admin/templates/domain/list.html:36
msgid "Users"
msgstr "Usuários"
#: mailu/admin/templates/domain/list.html:37
msgid "Aliases"
msgstr "Aliases"
#: mailu/admin/templates/domain/list.html:38
msgid "Managers"
msgstr "Gerentes"
#: mailu/admin/templates/fetch/create.html:4
msgid "Add a fetched account"
msgstr "Adicionar conta a importar"
#: mailu/admin/templates/fetch/edit.html:4
msgid "Update a fetched account"
msgstr "Atualizar conta importada"
#: mailu/admin/templates/fetch/list.html:12
msgid "Add an account"
msgstr "Adicionar uma conta"
#: mailu/admin/templates/fetch/list.html:20
msgid "Endpoint"
msgstr "Endpoint"
#: mailu/admin/templates/fetch/list.html:22
msgid "Last check"
msgstr "Última verificação"
#: mailu/admin/templates/manager/create.html:4
msgid "Add a manager"
msgstr "Adicionar gerente"
#: mailu/admin/templates/manager/list.html:4
msgid "Manager list"
msgstr "Lista de gerentes"
#: mailu/admin/templates/manager/list.html:12
msgid "Add manager"
msgstr "Adicionar gerente"
#: mailu/admin/templates/user/create.html:4
msgid "New user"
msgstr "Novo usuário"
#: mailu/admin/templates/user/edit.html:4
msgid "Edit user"
msgstr "Editar usuário"
#: mailu/admin/templates/user/forward.html:4
msgid "Forward emails"
msgstr "Encaminhar e-mails"
#: mailu/admin/templates/user/list.html:4
msgid "User list"
msgstr "Lista de usuários"
#: mailu/admin/templates/user/list.html:12
msgid "Add user"
msgstr "Adicionar usuário"
#: mailu/admin/templates/user/list.html:20
#: mailu/admin/templates/user/settings.html:4
msgid "User settings"
msgstr "Configurações de usuário"
#: mailu/admin/templates/user/list.html:22
msgid "Features"
msgstr "Funcionalidades"
#: mailu/admin/templates/user/password.html:4
msgid "Password update"
msgstr "Atualizar senha"
#: mailu/admin/templates/user/reply.html:4
msgid "Automatic reply"
msgstr "Resposta automática"

View File

@@ -1,74 +0,0 @@
from mailu import manager, db
from mailu.admin import models
@manager.command
def flushdb():
""" Flush the database
"""
db.drop_all()
@manager.command
def initdb():
""" Initialize the database
"""
db.create_all()
@manager.command
def admin(localpart, domain_name, password):
""" Create an admin user
"""
domain = models.Domain.query.get(domain_name)
if not domain:
domain = models.Domain(name=domain_name)
db.session.add(domain)
user = models.User(
localpart=localpart,
domain=domain,
global_admin=True
)
user.set_password(password)
db.session.add(user)
db.session.commit()
@manager.command
def user(localpart, domain_name, password):
""" Create an user
"""
domain = models.Domain.query.get(domain_name)
if not domain:
domain = models.Domain(name=domain_name)
db.session.add(domain)
user = models.User(
localpart=localpart,
domain=domain,
global_admin=False
)
user.set_password(password)
db.session.add(user)
db.session.commit()
@manager.command
def alias(localpart, domain_name, destination):
""" Create an alias
"""
domain = models.Domain.query.get(domain_name)
if not domain:
domain = models.Domain(name=domain_name)
db.session.add(domain)
alias = models.Alias(
localpart=localpart,
domain=domain,
destination=destination.split(','),
email="%s@%s" % (localpart, domain_name)
)
db.session.add(alias)
db.session.commit()
if __name__ == "__main__":
manager.run()

View File

@@ -1,512 +0,0 @@
# Translations template for PROJECT.
# Copyright (C) 2016 ORGANIZATION
# This file is distributed under the same license as the PROJECT project.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2016.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2016-11-10 10:52+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.3.4\n"
#: mailu/admin/forms.py:32
msgid "Invalid email address."
msgstr ""
#: mailu/admin/forms.py:36
msgid "Confirm"
msgstr ""
#: mailu/admin/forms.py:40 mailu/admin/forms.py:54
msgid "E-mail"
msgstr ""
#: mailu/admin/forms.py:41 mailu/admin/forms.py:55 mailu/admin/forms.py:72
#: mailu/admin/forms.py:120
msgid "Password"
msgstr ""
#: mailu/admin/forms.py:42 mailu/admin/templates/login.html:9
#: mailu/admin/templates/login.html:17
msgid "Sign in"
msgstr ""
#: mailu/admin/forms.py:46 mailu/admin/templates/domain/details.html:21
#: mailu/admin/templates/domain/list.html:19
msgid "Domain name"
msgstr ""
#: mailu/admin/forms.py:47
msgid "Maximum user count"
msgstr ""
#: mailu/admin/forms.py:48
msgid "Maximum alias count"
msgstr ""
#: mailu/admin/forms.py:49 mailu/admin/forms.py:60 mailu/admin/forms.py:98
#: mailu/admin/templates/alias/list.html:22
#: mailu/admin/templates/domain/list.html:22
#: mailu/admin/templates/user/list.html:24
msgid "Comment"
msgstr ""
#: mailu/admin/forms.py:50 mailu/admin/forms.py:99
msgid "Create"
msgstr ""
#: mailu/admin/forms.py:56
msgid "Confirm password"
msgstr ""
#: mailu/admin/forms.py:57 mailu/admin/templates/user/list.html:23
msgid "Quota"
msgstr ""
#: mailu/admin/forms.py:58
msgid "Allow IMAP access"
msgstr ""
#: mailu/admin/forms.py:59
msgid "Allow POP3 access"
msgstr ""
#: mailu/admin/forms.py:61
msgid "Save"
msgstr ""
#: mailu/admin/forms.py:65
msgid "Displayed name"
msgstr ""
#: mailu/admin/forms.py:66
msgid "Enable spam filter"
msgstr ""
#: mailu/admin/forms.py:67
msgid "Spam filter threshold"
msgstr ""
#: mailu/admin/forms.py:68
msgid "Save settings"
msgstr ""
#: mailu/admin/forms.py:73
msgid "Password check"
msgstr ""
#: mailu/admin/forms.py:74 mailu/admin/templates/sidebar.html:13
msgid "Update password"
msgstr ""
#: mailu/admin/forms.py:78
msgid "Enable forwarding"
msgstr ""
#: mailu/admin/forms.py:80 mailu/admin/forms.py:97
#: mailu/admin/templates/alias/list.html:21
msgid "Destination"
msgstr ""
#: mailu/admin/forms.py:82 mailu/admin/forms.py:90
msgid "Update"
msgstr ""
#: mailu/admin/forms.py:86
msgid "Enable automatic reply"
msgstr ""
#: mailu/admin/forms.py:87
msgid "Reply subject"
msgstr ""
#: mailu/admin/forms.py:88
msgid "Reply body"
msgstr ""
#: mailu/admin/forms.py:94
msgid "Alias"
msgstr ""
#: mailu/admin/forms.py:96
msgid "Use SQL LIKE Syntax (e.g. for catch-all aliases)"
msgstr ""
#: mailu/admin/forms.py:103
msgid "Admin email"
msgstr ""
#: mailu/admin/forms.py:104 mailu/admin/forms.py:109 mailu/admin/forms.py:121
msgid "Submit"
msgstr ""
#: mailu/admin/forms.py:108
msgid "Manager email"
msgstr ""
#: mailu/admin/forms.py:113
msgid "Protocol"
msgstr ""
#: mailu/admin/forms.py:116
msgid "Hostname or IP"
msgstr ""
#: mailu/admin/forms.py:117
msgid "TCP port"
msgstr ""
#: mailu/admin/forms.py:118
msgid "Enable TLS"
msgstr ""
#: mailu/admin/forms.py:119 mailu/admin/templates/fetch/list.html:21
msgid "Username"
msgstr ""
#: mailu/admin/forms.py:125
msgid "Announcement subject"
msgstr ""
#: mailu/admin/forms.py:127
msgid "Announcement body"
msgstr ""
#: mailu/admin/forms.py:129
msgid "Send"
msgstr ""
#: mailu/admin/templates/announcement.html:4
msgid "Public announcement"
msgstr ""
#: mailu/admin/templates/announcement.html:8
msgid "from"
msgstr ""
#: mailu/admin/templates/confirm.html:4
msgid "Confirm action"
msgstr ""
#: mailu/admin/templates/confirm.html:12
#, python-format
msgid "You are about to %(action)s. Please confirm your action."
msgstr ""
#: mailu/admin/templates/docker-error.html:4
msgid "Docker error"
msgstr ""
#: mailu/admin/templates/docker-error.html:12
msgid "An error occurred while talking to the Docker server."
msgstr ""
#: mailu/admin/templates/login.html:6
msgid "Your account"
msgstr ""
#: mailu/admin/templates/login.html:21
msgid "to access the administration tools"
msgstr ""
#: mailu/admin/templates/services.html:4 mailu/admin/templates/sidebar.html:40
msgid "Services status"
msgstr ""
#: mailu/admin/templates/services.html:11
msgid "Service"
msgstr ""
#: mailu/admin/templates/fetch/list.html:23
#: mailu/admin/templates/services.html:12
msgid "Status"
msgstr ""
#: mailu/admin/templates/services.html:13
msgid "PID"
msgstr ""
#: mailu/admin/templates/services.html:14
msgid "Image"
msgstr ""
#: mailu/admin/templates/services.html:15
msgid "Started"
msgstr ""
#: mailu/admin/templates/services.html:16
msgid "Last update"
msgstr ""
#: mailu/admin/templates/sidebar.html:5
msgid "My account"
msgstr ""
#: mailu/admin/templates/sidebar.html:8 mailu/admin/templates/user/list.html:35
msgid "Settings"
msgstr ""
#: mailu/admin/templates/sidebar.html:18
#: mailu/admin/templates/user/list.html:36
msgid "Auto-forward"
msgstr ""
#: mailu/admin/templates/sidebar.html:23
#: mailu/admin/templates/user/list.html:37
msgid "Auto-reply"
msgstr ""
#: mailu/admin/templates/fetch/list.html:4
#: mailu/admin/templates/sidebar.html:28
#: mailu/admin/templates/user/list.html:38
msgid "Fetched accounts"
msgstr ""
#: mailu/admin/templates/sidebar.html:33
msgid "Sign out"
msgstr ""
#: mailu/admin/templates/sidebar.html:36
msgid "Administration"
msgstr ""
#: mailu/admin/templates/sidebar.html:45
msgid "Announcement"
msgstr ""
#: mailu/admin/templates/sidebar.html:50
msgid "Administrators"
msgstr ""
#: mailu/admin/templates/sidebar.html:57
msgid "Mail domains"
msgstr ""
#: mailu/admin/templates/sidebar.html:64
msgid "Help"
msgstr ""
#: mailu/admin/templates/working.html:4
msgid "We are still working on this feature!"
msgstr ""
#: mailu/admin/templates/admin/create.html:4
msgid "Add a global administrator"
msgstr ""
#: mailu/admin/templates/admin/list.html:4
msgid "Global administrators"
msgstr ""
#: mailu/admin/templates/admin/list.html:9
msgid "Add administrator"
msgstr ""
#: mailu/admin/templates/admin/list.html:17
#: mailu/admin/templates/alias/list.html:19
#: mailu/admin/templates/domain/list.html:17
#: mailu/admin/templates/fetch/list.html:19
#: mailu/admin/templates/manager/list.html:19
#: mailu/admin/templates/user/list.html:19
msgid "Actions"
msgstr ""
#: mailu/admin/templates/admin/list.html:18
#: mailu/admin/templates/alias/list.html:20
#: mailu/admin/templates/manager/list.html:20
#: mailu/admin/templates/user/list.html:21
msgid "Email"
msgstr ""
#: mailu/admin/templates/admin/list.html:23
#: mailu/admin/templates/alias/list.html:30
#: mailu/admin/templates/domain/list.html:32
#: mailu/admin/templates/fetch/list.html:31
#: mailu/admin/templates/manager/list.html:25
#: mailu/admin/templates/user/list.html:32
msgid "Delete"
msgstr ""
#: mailu/admin/templates/alias/create.html:4
msgid "Create alias"
msgstr ""
#: mailu/admin/templates/alias/edit.html:4
msgid "Edit alias"
msgstr ""
#: mailu/admin/templates/alias/list.html:4
msgid "Alias list"
msgstr ""
#: mailu/admin/templates/alias/list.html:12
msgid "Add alias"
msgstr ""
#: mailu/admin/templates/alias/list.html:23
#: mailu/admin/templates/domain/list.html:23
#: mailu/admin/templates/fetch/list.html:24
#: mailu/admin/templates/user/list.html:25
msgid "Created"
msgstr ""
#: mailu/admin/templates/alias/list.html:24
#: mailu/admin/templates/domain/list.html:24
#: mailu/admin/templates/fetch/list.html:25
#: mailu/admin/templates/user/list.html:26
msgid "Last edit"
msgstr ""
#: mailu/admin/templates/alias/list.html:29
#: mailu/admin/templates/domain/list.html:31
#: mailu/admin/templates/fetch/list.html:30
#: mailu/admin/templates/user/list.html:31
msgid "Edit"
msgstr ""
#: mailu/admin/templates/domain/create.html:4
#: mailu/admin/templates/domain/list.html:9
msgid "New domain"
msgstr ""
#: mailu/admin/templates/domain/details.html:4
msgid "Domain details"
msgstr ""
#: mailu/admin/templates/domain/details.html:13
msgid "Regenerate keys"
msgstr ""
#: mailu/admin/templates/domain/details.html:25
msgid "DNS MX entry"
msgstr ""
#: mailu/admin/templates/domain/details.html:29
msgid "DNS SPF entries"
msgstr ""
#: mailu/admin/templates/domain/details.html:36
msgid "DKIM public key"
msgstr ""
#: mailu/admin/templates/domain/details.html:40
msgid "DNS DKIM entry"
msgstr ""
#: mailu/admin/templates/domain/details.html:44
msgid "DNS DMARC entry"
msgstr ""
#: mailu/admin/templates/domain/edit.html:4
msgid "Edit domain"
msgstr ""
#: mailu/admin/templates/domain/list.html:4
msgid "Domain list"
msgstr ""
#: mailu/admin/templates/domain/list.html:18
msgid "Manage"
msgstr ""
#: mailu/admin/templates/domain/list.html:20
msgid "Mailbox count"
msgstr ""
#: mailu/admin/templates/domain/list.html:21
msgid "Alias count"
msgstr ""
#: mailu/admin/templates/domain/list.html:29
msgid "Details"
msgstr ""
#: mailu/admin/templates/domain/list.html:36
msgid "Users"
msgstr ""
#: mailu/admin/templates/domain/list.html:37
msgid "Aliases"
msgstr ""
#: mailu/admin/templates/domain/list.html:38
msgid "Managers"
msgstr ""
#: mailu/admin/templates/fetch/create.html:4
msgid "Add a fetched account"
msgstr ""
#: mailu/admin/templates/fetch/edit.html:4
msgid "Update a fetched account"
msgstr ""
#: mailu/admin/templates/fetch/list.html:12
msgid "Add an account"
msgstr ""
#: mailu/admin/templates/fetch/list.html:20
msgid "Endpoint"
msgstr ""
#: mailu/admin/templates/fetch/list.html:22
msgid "Last check"
msgstr ""
#: mailu/admin/templates/manager/create.html:4
msgid "Add a manager"
msgstr ""
#: mailu/admin/templates/manager/list.html:4
msgid "Manager list"
msgstr ""
#: mailu/admin/templates/manager/list.html:12
msgid "Add manager"
msgstr ""
#: mailu/admin/templates/user/create.html:4
msgid "New user"
msgstr ""
#: mailu/admin/templates/user/edit.html:4
msgid "Edit user"
msgstr ""
#: mailu/admin/templates/user/forward.html:4
msgid "Forward emails"
msgstr ""
#: mailu/admin/templates/user/list.html:4
msgid "User list"
msgstr ""
#: mailu/admin/templates/user/list.html:12
msgid "Add user"
msgstr ""
#: mailu/admin/templates/user/list.html:20
#: mailu/admin/templates/user/settings.html:4
msgid "User settings"
msgstr ""
#: mailu/admin/templates/user/list.html:22
msgid "Features"
msgstr ""
#: mailu/admin/templates/user/password.html:4
msgid "Password update"
msgstr ""
#: mailu/admin/templates/user/reply.html:4
msgid "Automatic reply"
msgstr ""

View File

@@ -1,35 +0,0 @@
"""Set the spam threshold as an integer
Revision ID: 12e9a4f6ed73
Revises: 27ae2f102682
Create Date: 2016-11-08 20:22:54.169833
"""
# revision identifiers, used by Alembic.
revision = '12e9a4f6ed73'
down_revision = '27ae2f102682'
from alembic import op
import sqlalchemy as sa
from mailu.admin import models
from mailu import db
def upgrade():
# Make sure that every value is already an Integer
for user in models.User.query.all():
user.spam_threshold = int(user.spam_threshold)
db.session.commit()
# Migrate the table
with op.batch_alter_table('user') as batch:
batch.alter_column(
'spam_threshold', existing_type=db.Numeric(), type_=db.Integer())
def downgrade():
# Migrate the table
with op.batch_alter_table('user') as batch:
batch.alter_column(
'spam_threshold', existing_type=db.Integer(), type_=db.Numeric())

View File

@@ -1,37 +0,0 @@
"""spam_threshold in percent
Revision ID: 27ae2f102682
Revises: dc8c25cf5b98
Create Date: 2016-09-30 08:06:15.025190
"""
# revision identifiers, used by Alembic.
revision = '27ae2f102682'
down_revision = 'dc8c25cf5b98'
from alembic import op
import sqlalchemy as sa
from mailu.admin.models import User
from mailu import db
def upgrade():
# spam_threshold is a X/15 based value, we're converting it to percent.
for user in User.query.all():
user.spam_threshold = int(100. * float(user.spam_threshold or 0.) / 15.)
db.session.commit()
# set default to 80%
with op.batch_alter_table('user') as batch:
batch.alter_column('spam_threshold', default=80.)
def downgrade():
# spam_threshold is a X/15 based value, we're converting it from percent.
for user in User.query.all():
user.spam_threshold = int(15. * float(user.spam_threshold or 0.) / 100.)
db.session.commit()
# set default to 10/15
with op.batch_alter_table('user') as batch:
batch.alter_column('spam_threshold', default=10.)

26
build.sh Executable file
View File

@@ -0,0 +1,26 @@
#!/bin/bash -e
TAG="1.5-$(date +%Y%m%d)"
build() {
image=$1
echo "[INFO] Building ${image}"
docker build -t ${image} .
docker push ${image}
}
if [ -z "$1" ]; then
find . -name Dockerfile | while read i; do
dir=$(dirname $i)
pushd ${dir} >/dev/null
image="genunix/mailu-$(basename $dir):${TAG}"
build ${image}
popd >/dev/null
done
else
dir=$(basename $1)
image="genunix/mailu-$(basename $dir):${TAG}"
pushd "$1" >/dev/null
build "$image"
popd >/dev/null
fi

View File

@@ -1,8 +0,0 @@
FROM alpine
RUN apk add --no-cache clamav rsyslog wget
COPY conf /etc/clamav
COPY start.sh /start.sh
CMD ["/start.sh"]

4
core/admin/.gitignore vendored Normal file
View File

@@ -0,0 +1,4 @@
.fg/
lib64
.vscode
tags

19
core/admin/Dockerfile Normal file
View File

@@ -0,0 +1,19 @@
FROM python:3-alpine3.13
RUN mkdir -p /app
WORKDIR /app
COPY requirements-prod.txt requirements.txt
RUN apk add --no-cache openssl \
&& apk add --no-cache --virtual build-dep openssl-dev libffi-dev python3-dev build-base \
&& pip install -r requirements.txt \
&& apk del build-dep
COPY mailu ./mailu
COPY migrations ./migrations
COPY manage.py .
COPY start.sh /start.sh
RUN pybabel compile -d mailu/translations
CMD ["/start.sh"]

12
core/admin/README.md Normal file
View File

@@ -0,0 +1,12 @@
Mailu Admin container
=====================
This is the web-based administrative interface for the Mailu containerized
mail server.
Resources
---------
* [Report issues](https://github.com/Mailu/Mailu/issues) and
[send Pull Requests](https://github.com/Mailu/Mailu/pulls)
in the [main Mailu repository](https://github.com/Mailu/Mailu)

View File

@@ -0,0 +1,120 @@
import flask
import flask_sqlalchemy
import flask_bootstrap
import flask_login
import flask_script
import flask_migrate
import flask_babel
import flask_limiter
import os
import docker
import socket
import uuid
from werkzeug.contrib import fixers
# Create application
app = flask.Flask(__name__)
default_config = {
# Specific to the admin UI
'SQLALCHEMY_DATABASE_URI': 'sqlite:////data/main.db',
'SQLALCHEMY_TRACK_MODIFICATIONS': False,
'DOCKER_SOCKET': 'unix:///var/run/docker.sock',
'BABEL_DEFAULT_LOCALE': 'en',
'BABEL_DEFAULT_TIMEZONE': 'UTC',
'BOOTSTRAP_SERVE_LOCAL': True,
'RATELIMIT_STORAGE_URL': 'redis://redis',
'DEBUG': False,
# Statistics management
'INSTANCE_ID_PATH': '/data/instance',
'STATS_ENDPOINT': '0.{}.stats.mailu.io',
# Common configuration variables
'SECRET_KEY': 'changeMe',
'DOMAIN': 'mailu.io',
'HOSTNAMES': 'mail.mailu.io,alternative.mailu.io,yetanother.mailu.io',
'POSTMASTER': 'postmaster',
'TLS_FLAVOR': 'cert',
'AUTH_RATELIMIT': '10/minute;1000/hour',
'DISABLE_STATISTICS': 'False',
# Mail settings
'DMARC_RUA': None,
'DMARC_RUF': None,
'WELCOME': 'False',
'WELCOME_SUBJECT': 'Dummy welcome topic',
'WELCOME_BODY': 'Dummy welcome body',
'DKIM_SELECTOR': 'dkim',
'DKIM_PATH': '/dkim/{domain}.{selector}.key',
# Web settings
'SITENAME': 'Mailu',
'WEBSITE': 'https://mailu.io',
'WEB_ADMIN': '/admin',
'WEB_WEBMAIL': '/webmail',
# Advanced settings
'PASSWORD_SCHEME': 'SHA512-CRYPT',
}
# Load configuration from the environment if available
for key, value in default_config.items():
app.config[key] = os.environ.get(key, value)
# Base application
flask_bootstrap.Bootstrap(app)
db = flask_sqlalchemy.SQLAlchemy(app)
migrate = flask_migrate.Migrate(app, db)
limiter = flask_limiter.Limiter(app, key_func=lambda: current_user.username)
# Debugging toolbar
if app.config.get("DEBUG"):
import flask_debugtoolbar
toolbar = flask_debugtoolbar.DebugToolbarExtension(app)
# Manager commnad
manager = flask_script.Manager(app)
manager.add_command('db', flask_migrate.MigrateCommand)
# Babel configuration
babel = flask_babel.Babel(app)
translations = list(map(str, babel.list_translations()))
@babel.localeselector
def get_locale():
return flask.request.accept_languages.best_match(translations)
# Login configuration
login_manager = flask_login.LoginManager()
login_manager.init_app(app)
login_manager.login_view = "ui.login"
@login_manager.unauthorized_handler
def handle_needs_login():
return flask.redirect(
flask.url_for('ui.login', next=flask.request.endpoint)
)
@app.context_processor
def inject_defaults():
return dict(
current_user=flask_login.current_user,
config=app.config
)
# Import views
from mailu import ui, internal
app.register_blueprint(ui.ui, url_prefix='/ui')
app.register_blueprint(internal.internal, url_prefix='/internal')
# Create the prefix middleware
class PrefixMiddleware(object):
def __init__(self, app):
self.app = app
def __call__(self, environ, start_response):
prefix = environ.get('HTTP_X_FORWARDED_PREFIX', '')
if prefix:
environ['SCRIPT_NAME'] = prefix
return self.app(environ, start_response)
app.wsgi_app = PrefixMiddleware(fixers.ProxyFix(app.wsgi_app))

View File

@@ -0,0 +1,19 @@
from mailu import limiter
import socket
import flask
internal = flask.Blueprint('internal', __name__)
@limiter.request_filter
def whitelist_webmail():
try:
return flask.request.headers["Client-Ip"] ==\
socket.gethostbyname("webmail")
except:
return False
from mailu.internal import views

View File

@@ -0,0 +1,86 @@
from mailu import db, models
import socket
import urllib
SUPPORTED_AUTH_METHODS = ["none", "plain"]
STATUSES = {
"authentication": ("Authentication credentials invalid", {
"imap": "AUTHENTICATIONFAILED",
"smtp": "535 5.7.8",
"pop3": "-ERR Authentication failed"
}),
}
def handle_authentication(headers):
""" Handle an HTTP nginx authentication request
See: http://nginx.org/en/docs/mail/ngx_mail_auth_http_module.html#protocol
"""
method = headers["Auth-Method"]
protocol = headers["Auth-Protocol"]
# Incoming mail, no authentication
if method == "none" and protocol == "smtp":
server, port = get_server(headers["Auth-Protocol"], False)
return {
"Auth-Status": "OK",
"Auth-Server": server,
"Auth-Port": port
}
# Authenticated user
elif method == "plain":
server, port = get_server(headers["Auth-Protocol"], True)
user_email = urllib.parse.unquote(headers["Auth-User"])
password = urllib.parse.unquote(headers["Auth-Pass"])
ip = urllib.parse.unquote(headers["Client-Ip"])
user = models.User.query.get(user_email)
status = False
if user:
for token in user.tokens:
if (token.check_password(password) and
(not token.ip or token.ip == ip)):
status = True
if user.check_password(password):
status = True
if status:
if protocol == "imap" and not user.enable_imap:
status = False
elif protocol == "pop3" and not user.enable_pop:
status = False
if status:
return {
"Auth-Status": "OK",
"Auth-Server": server,
"Auth-Port": port
}
else:
status, code = get_status(protocol, "authentication")
return {
"Auth-Status": status,
"Auth-Error-Code": code,
"Auth-Wait": 0
}
# Unexpected
return {}
def get_status(protocol, status):
""" Return the proper error code depending on the protocol
"""
status, codes = STATUSES[status]
return status, codes[protocol]
def get_server(protocol, authenticated=False):
if protocol == "imap":
hostname, port = "imap", 143
elif protocol == "pop3":
hostname, port = "imap", 110
elif protocol == "smtp":
hostname = "smtp"
port = 10025 if authenticated else 25
address = socket.gethostbyname(hostname)
return address, port

View File

@@ -0,0 +1,50 @@
from mailu import db, models, app, limiter
from mailu.internal import internal, nginx
import flask
import flask_login
import base64
import urllib
@internal.route("/auth/email")
@limiter.limit(
app.config["AUTH_RATELIMIT"],
lambda: flask.request.headers["Client-Ip"]
)
def nginx_authentication():
""" Main authentication endpoint for Nginx email server
"""
headers = nginx.handle_authentication(flask.request.headers)
response = flask.Response()
for key, value in headers.items():
response.headers[key] = str(value)
return response
@internal.route("/auth/admin")
def admin_authentication():
""" Fails if the user is not an authenticated admin.
"""
if (not flask_login.current_user.is_anonymous
and flask_login.current_user.global_admin):
return ""
return flask.abort(403)
@internal.route("/auth/basic")
def basic_authentication():
""" Tries to authenticate using the Authorization header.
"""
authorization = flask.request.headers.get("Authorization")
if authorization and authorization.startswith("Basic "):
encoded = authorization.replace("Basic ", "")
user_email, password = base64.b64decode(encoded).split(b":")
user = models.User.query.get(user_email.decode("utf8"))
if user and user.check_password(password.decode("utf8")):
response = flask.Response()
response.headers["X-User"] = user.email
return response
response = flask.Response(status=401)
response.headers["WWW-Authenticate"] = 'Basic realm="Login Required"'
return response

View File

@@ -1,14 +1,16 @@
from mailu.admin import db, dkim from mailu import app, db, dkim, login_manager
from mailu import app
from sqlalchemy.ext import declarative from sqlalchemy.ext import declarative
from passlib import context from passlib import context, hash
from datetime import datetime from datetime import datetime, date
from email.mime import text
import re import re
import time import time
import os import os
import glob import glob
import smtplib
# Many-to-many association table for domain managers # Many-to-many association table for domain managers
@@ -100,6 +102,36 @@ class Domain(Base):
return False return False
class Alternative(Base):
""" Alternative name for a served domain.
The name "domain alias" was avoided to prevent some confusion.
"""
__tablename__ = "alternative"
name = db.Column(db.String(80), primary_key=True, nullable=False)
domain_name = db.Column(db.String(80), db.ForeignKey(Domain.name))
domain = db.relationship(Domain,
backref=db.backref('alternatives', cascade='all, delete-orphan'))
def __str__(self):
return self.name
class Relay(Base):
""" Relayed mail domain.
The domain is either relayed publicly or through a specified SMTP host.
"""
__tablename__ = "relay"
name = db.Column(db.String(80), primary_key=True, nullable=False)
smtp = db.Column(db.String(80), nullable=True)
def __str__(self):
return self.name
class Email(object): class Email(object):
""" Abstraction for an email address (localpart and domain). """ Abstraction for an email address (localpart and domain).
""" """
@@ -120,10 +152,22 @@ class Email(object):
context.current_parameters["localpart"], context.current_parameters["localpart"],
context.current_parameters["domain_name"], context.current_parameters["domain_name"],
) )
return db.Column(db.String(255), return db.Column(db.String(255, collation="NOCASE"),
primary_key=True, nullable=False, primary_key=True, nullable=False,
default=updater) default=updater)
def sendmail(self, subject, body):
""" Send an email to the address.
"""
from_address = '{}@{}'.format(
app.config['POSTMASTER'], app.config['DOMAIN'])
with smtplib.SMTP('smtp', port=10025) as smtp:
msg = text.MIMEText(body)
msg['Subject'] = subject
msg['From'] = from_address
msg['To'] = self.email
smtp.sendmail(from_address, [self.email], msg.as_string())
def __str__(self): def __str__(self):
return self.email return self.email
@@ -146,9 +190,12 @@ class User(Base, Email):
# Filters # Filters
forward_enabled = db.Column(db.Boolean(), nullable=False, default=False) forward_enabled = db.Column(db.Boolean(), nullable=False, default=False)
forward_destination = db.Column(db.String(255), nullable=True, default=None) forward_destination = db.Column(db.String(255), nullable=True, default=None)
forward_keep = db.Column(db.Boolean(), nullable=False, default=True)
reply_enabled = db.Column(db.Boolean(), nullable=False, default=False) reply_enabled = db.Column(db.Boolean(), nullable=False, default=False)
reply_subject = db.Column(db.String(255), nullable=True, default=None) reply_subject = db.Column(db.String(255), nullable=True, default=None)
reply_body = db.Column(db.Text(), nullable=True, default=None) reply_body = db.Column(db.Text(), nullable=True, default=None)
reply_enddate = db.Column(db.Date, nullable=False,
default=date(2999, 12, 31))
# Settings # Settings
displayed_name = db.Column(db.String(160), nullable=False, default="") displayed_name = db.Column(db.String(160), nullable=False, default="")
@@ -163,16 +210,28 @@ class User(Base, Email):
def get_id(self): def get_id(self):
return self.email return self.email
scheme_dict = {'SHA512-CRYPT': "sha512_crypt",
'SHA256-CRYPT': "sha256_crypt",
'MD5-CRYPT': "md5_crypt",
'CRYPT': "des_crypt"}
pw_context = context.CryptContext( pw_context = context.CryptContext(
["sha512_crypt", "sha256_crypt", "md5_crypt"] schemes = scheme_dict.values(),
default=scheme_dict[app.config['PASSWORD_SCHEME']],
) )
def check_password(self, password): def check_password(self, password):
reference = re.match('({[^}]+})?(.*)', self.password).group(2) reference = re.match('({[^}]+})?(.*)', self.password).group(2)
return User.pw_context.verify(password, reference) return User.pw_context.verify(password, reference)
def set_password(self, password): def set_password(self, password, hash_scheme=app.config['PASSWORD_SCHEME'], raw=False):
self.password = '{SHA512-CRYPT}' + User.pw_context.encrypt(password) """Set password for user with specified encryption scheme
@password: plain text password to encrypt (if raw == True the hash itself)
"""
# for the list of hash schemes see https://wiki2.dovecot.org/Authentication/PasswordSchemes
if raw:
self.password = '{'+hash_scheme+'}' + password
else:
self.password = '{'+hash_scheme+'}' + User.pw_context.encrypt(password, self.scheme_dict[hash_scheme])
def get_managed_domains(self): def get_managed_domains(self):
if self.global_admin: if self.global_admin:
@@ -188,11 +247,18 @@ class User(Base, Email):
emails.extend(domain.aliases) emails.extend(domain.aliases)
return emails return emails
def send_welcome(self):
if app.config["WELCOME"].lower() == "true":
self.sendmail(app.config["WELCOME_SUBJECT"],
app.config["WELCOME_BODY"])
@classmethod @classmethod
def login(cls, email, password): def login(cls, email, password):
user = cls.query.get(email) user = cls.query.get(email)
return user if (user and user.check_password(password)) else None return user if (user and user.check_password(password)) else None
login_manager.user_loader(User.query.get)
class Alias(Base, Email): class Alias(Base, Email):
""" An alias is an email address that redirects to some destination. """ An alias is an email address that redirects to some destination.
@@ -205,6 +271,29 @@ class Alias(Base, Email):
destination = db.Column(CommaSeparatedList, nullable=False, default=[]) destination = db.Column(CommaSeparatedList, nullable=False, default=[])
class Token(Base):
""" A token is an application password for a given user.
"""
__tablename__ = "token"
id = db.Column(db.Integer(), primary_key=True)
user_email = db.Column(db.String(255), db.ForeignKey(User.email),
nullable=False)
user = db.relationship(User,
backref=db.backref('tokens', cascade='all, delete-orphan'))
password = db.Column(db.String(255), nullable=False)
ip = db.Column(db.String(255))
def check_password(self, password):
return hash.sha256_crypt.verify(password, self.password)
def set_password(self, password):
self.password = hash.sha256_crypt.using(rounds=1000).hash(password)
def __str__(self):
return self.comment
class Fetch(Base): class Fetch(Base):
""" A fetched account is a repote POP/IMAP account fetched into a local """ A fetched account is a repote POP/IMAP account fetched into a local
account. account.

View File

@@ -0,0 +1,623 @@
msgid ""
msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: POEditor.com\n"
"Project-Id-Version: Mailu\n"
"Language: de\n"
#: mailu/ui/forms.py:32
msgid "Invalid email address."
msgstr "Ungültige E-Mail-Adresse."
#: mailu/ui/forms.py:36
msgid "Confirm"
msgstr "Bestätigen"
#: mailu/ui/forms.py:40 mailu/ui/forms.py:67
msgid "E-mail"
msgstr "E-Mail"
#: mailu/ui/forms.py:41 mailu/ui/forms.py:68 mailu/ui/forms.py:85
#: mailu/ui/forms.py:146
msgid "Password"
msgstr "Passwort"
#: mailu/ui/forms.py:42 mailu/ui/templates/login.html:4
#: mailu/ui/templates/sidebar.html:99
msgid "Sign in"
msgstr "Anmelden"
#: mailu/ui/forms.py:46 mailu/ui/templates/domain/details.html:21
#: mailu/ui/templates/domain/list.html:18 mailu/ui/templates/relay/list.html:17
msgid "Domain name"
msgstr "Domain-Name"
#: mailu/ui/forms.py:47
msgid "Maximum user count"
msgstr "Maximale Anzahl Benutzer"
#: mailu/ui/forms.py:48
msgid "Maximum alias count"
msgstr "Maximale Anzahl Aliase"
#: mailu/ui/forms.py:50 mailu/ui/forms.py:62 mailu/ui/forms.py:73
#: mailu/ui/forms.py:112 mailu/ui/forms.py:124
#: mailu/ui/templates/alias/list.html:21 mailu/ui/templates/domain/list.html:21
#: mailu/ui/templates/relay/list.html:19 mailu/ui/templates/token/list.html:19
#: mailu/ui/templates/user/list.html:23
msgid "Comment"
msgstr "Kommentar"
#: mailu/ui/forms.py:51 mailu/ui/forms.py:56 mailu/ui/forms.py:63
#: mailu/ui/forms.py:116 mailu/ui/forms.py:125
msgid "Create"
msgstr "Erstellen"
#: mailu/ui/forms.py:69
msgid "Confirm password"
msgstr "Passwort bestätigen"
#: mailu/ui/forms.py:70 mailu/ui/templates/user/list.html:22
msgid "Quota"
msgstr "Quota"
#: mailu/ui/forms.py:71
msgid "Allow IMAP access"
msgstr "Zugriff via IMAP erlauben"
#: mailu/ui/forms.py:72
msgid "Allow POP3 access"
msgstr "Zugriff via POP3 erlauben"
#: mailu/ui/forms.py:74
msgid "Save"
msgstr "Speichern"
#: mailu/ui/forms.py:78
msgid "Displayed name"
msgstr "Angezeigter Name"
#: mailu/ui/forms.py:79
msgid "Enable spam filter"
msgstr "Spamfilter aktivieren"
#: mailu/ui/forms.py:80
msgid "Spam filter threshold"
msgstr "Schwellenwert für Spamfilter"
#: mailu/ui/forms.py:81
msgid "Save settings"
msgstr "Einstellungen speichern"
#: mailu/ui/forms.py:86
msgid "Password check"
msgstr "Passwort wiederholen"
#: mailu/ui/forms.py:87 mailu/ui/templates/sidebar.html:16
msgid "Update password"
msgstr "Passwort aktualisieren"
#: mailu/ui/forms.py:91
msgid "Enable forwarding"
msgstr "Weiterleitung aktivieren"
#: mailu/ui/forms.py:94 mailu/ui/forms.py:123
#: mailu/ui/templates/alias/list.html:20
msgid "Destination"
msgstr "Ziel"
#: mailu/ui/forms.py:96 mailu/ui/forms.py:104
msgid "Update"
msgstr "Aktualisieren"
#: mailu/ui/forms.py:100
msgid "Enable automatic reply"
msgstr "Automatische Antwort aktivieren"
#: mailu/ui/forms.py:101
msgid "Reply subject"
msgstr "Betreff"
#: mailu/ui/forms.py:102
msgid "Reply body"
msgstr "Text"
#: mailu/ui/forms.py:120
msgid "Alias"
msgstr "Alias"
#: mailu/ui/forms.py:122
msgid "Use SQL LIKE Syntax (e.g. for catch-all aliases)"
msgstr "SQL LIKE Syntax nutzen (z.B. für Catch-All-Aliase)"
#: mailu/ui/forms.py:129
msgid "Admin email"
msgstr "Administrator E-Mail"
#: mailu/ui/forms.py:130 mailu/ui/forms.py:135 mailu/ui/forms.py:148
msgid "Submit"
msgstr "Absenden"
#: mailu/ui/forms.py:134
msgid "Manager email"
msgstr "Manager E-Mail"
#: mailu/ui/forms.py:139
msgid "Protocol"
msgstr "Protokoll"
#: mailu/ui/forms.py:142
msgid "Hostname or IP"
msgstr "Hostname oder IP"
#: mailu/ui/forms.py:143
msgid "TCP port"
msgstr "Port"
#: mailu/ui/forms.py:144
msgid "Enable TLS"
msgstr "Verschlüsselung aktivieren"
#: mailu/ui/forms.py:145 mailu/ui/templates/fetch/list.html:20
msgid "Username"
msgstr "Benutzername"
#: mailu/ui/templates/confirm.html:4
msgid "Confirm action"
msgstr "Aktion bestätigen"
#: mailu/ui/templates/confirm.html:13
msgid "You are about to %(action)s. Please confirm your action."
msgstr "Bitte bestätigen: %(action)s."
#: mailu/ui/templates/docker-error.html:4
msgid "Docker error"
msgstr "Docker Fehler"
#: mailu/ui/templates/docker-error.html:12
msgid "An error occurred while talking to the Docker server."
msgstr "Während der Kommunikation mit dem Docker Server ist ein Fehler aufgetreten."
#: mailu/admin/templates/login.html:6
msgid "Your account"
msgstr "Konto"
#: mailu/ui/templates/login.html:8
msgid "to access the administration tools"
msgstr "für administrativen Zugriff"
#: mailu/ui/templates/services.html:4 mailu/ui/templates/sidebar.html:44
msgid "Services status"
msgstr "Dienst-Status"
#: mailu/ui/templates/services.html:10
msgid "Service"
msgstr "Dienst"
#: mailu/ui/templates/fetch/list.html:23 mailu/ui/templates/services.html:11
msgid "Status"
msgstr "Status"
#: mailu/ui/templates/services.html:12
msgid "PID"
msgstr "PID"
#: mailu/ui/templates/services.html:13
msgid "Image"
msgstr "Image"
#: mailu/ui/templates/services.html:14
msgid "Started"
msgstr "Gestartet"
#: mailu/ui/templates/services.html:15
msgid "Last update"
msgstr "Letztes Update"
#: mailu/ui/templates/sidebar.html:8
msgid "My account"
msgstr "Mein Konto"
#: mailu/ui/templates/sidebar.html:11 mailu/ui/templates/user/list.html:34
msgid "Settings"
msgstr "Einstellungen"
#: mailu/ui/templates/sidebar.html:21 mailu/ui/templates/user/list.html:35
msgid "Auto-forward"
msgstr "Auto-Weiterleitung"
#: mailu/ui/templates/sidebar.html:26 mailu/ui/templates/user/list.html:36
msgid "Auto-reply"
msgstr "Auto-Antwort"
#: mailu/ui/templates/fetch/list.html:4 mailu/ui/templates/sidebar.html:31
#: mailu/ui/templates/user/list.html:37
msgid "Fetched accounts"
msgstr "Abgerufene Konten"
#: mailu/ui/templates/sidebar.html:93
msgid "Sign out"
msgstr "Abmelden"
#: mailu/ui/templates/sidebar.html:40
msgid "Administration"
msgstr "Administration"
#: mailu/ui/templates/sidebar.html:54
msgid "Administrators"
msgstr "Administratoren"
#: mailu/ui/templates/sidebar.html:66
msgid "Mail domains"
msgstr "E-Mail-Domains"
#: mailu/ui/templates/sidebar.html:87
msgid "Help"
msgstr "Hilfe"
#: mailu/ui/templates/working.html:4
msgid "We are still working on this feature!"
msgstr "Dieses Feature ist noch in Arbeit!"
#: mailu/ui/templates/admin/create.html:4
msgid "Add a global administrator"
msgstr "Globalen Administrator hinzufügen"
#: mailu/ui/templates/admin/list.html:4
msgid "Global administrators"
msgstr "Globale Administratoren"
#: mailu/ui/templates/admin/list.html:9
msgid "Add administrator"
msgstr "Administrator hinzufügen"
#: mailu/ui/templates/admin/list.html:16 mailu/ui/templates/alias/list.html:18
#: mailu/ui/templates/alternative/list.html:18
#: mailu/ui/templates/domain/list.html:16 mailu/ui/templates/fetch/list.html:18
#: mailu/ui/templates/manager/list.html:18
#: mailu/ui/templates/relay/list.html:16 mailu/ui/templates/token/list.html:18
#: mailu/ui/templates/user/list.html:18
msgid "Actions"
msgstr "Aktionen"
#: mailu/ui/templates/admin/list.html:17 mailu/ui/templates/alias/list.html:19
#: mailu/ui/templates/manager/list.html:19 mailu/ui/templates/user/list.html:20
msgid "Email"
msgstr "E-Mail"
#: mailu/ui/templates/admin/list.html:22 mailu/ui/templates/alias/list.html:29
#: mailu/ui/templates/alternative/list.html:25
#: mailu/ui/templates/domain/list.html:31 mailu/ui/templates/fetch/list.html:31
#: mailu/ui/templates/manager/list.html:24
#: mailu/ui/templates/relay/list.html:27 mailu/ui/templates/token/list.html:26
#: mailu/ui/templates/user/list.html:31
msgid "Delete"
msgstr "Löschen"
#: mailu/ui/templates/alias/create.html:4
msgid "Create alias"
msgstr "Alias erstellen"
#: mailu/ui/templates/alias/edit.html:4
msgid "Edit alias"
msgstr "Alias bearbeiten"
#: mailu/ui/templates/alias/list.html:4
msgid "Alias list"
msgstr "Aliase"
#: mailu/ui/templates/alias/list.html:12
msgid "Add alias"
msgstr "Alias hinzufügen"
#: mailu/ui/templates/alias/list.html:22
#: mailu/ui/templates/alternative/list.html:20
#: mailu/ui/templates/domain/list.html:22 mailu/ui/templates/fetch/list.html:24
#: mailu/ui/templates/relay/list.html:20 mailu/ui/templates/token/list.html:21
#: mailu/ui/templates/user/list.html:24
msgid "Created"
msgstr "Erstellt"
#: mailu/ui/templates/alias/list.html:23 mailu/ui/templates/domain/list.html:23
#: mailu/ui/templates/fetch/list.html:25 mailu/ui/templates/relay/list.html:21
#: mailu/ui/templates/user/list.html:25
msgid "Last edit"
msgstr "Zuletzt bearbeitet"
#: mailu/ui/templates/alias/list.html:28 mailu/ui/templates/domain/list.html:30
#: mailu/ui/templates/fetch/list.html:30 mailu/ui/templates/relay/list.html:26
#: mailu/ui/templates/user/list.html:30
msgid "Edit"
msgstr "Bearbeiten"
#: mailu/ui/templates/domain/create.html:4
#: mailu/ui/templates/domain/list.html:9
msgid "New domain"
msgstr "Neue Domain"
#: mailu/ui/templates/domain/details.html:4
msgid "Domain details"
msgstr "Domain-Details"
#: mailu/ui/templates/domain/details.html:13
msgid "Regenerate keys"
msgstr "Schlüssel neu erzeugen"
#: mailu/ui/templates/domain/details.html:25
msgid "DNS MX entry"
msgstr "DNS MX Eintrag"
#: mailu/ui/templates/domain/details.html:29
msgid "DNS SPF entries"
msgstr "DNS SPF Einträge"
#: mailu/ui/templates/domain/details.html:36
msgid "DKIM public key"
msgstr "DKIM öffentlicher Schlüssel"
#: mailu/ui/templates/domain/details.html:40
msgid "DNS DKIM entry"
msgstr "DNS DKIM Eintrag"
#: mailu/ui/templates/domain/details.html:44
msgid "DNS DMARC entry"
msgstr "DNS DMARC Eintrag"
#: mailu/ui/templates/domain/edit.html:4
msgid "Edit domain"
msgstr "Domain bearbeiten"
#: mailu/ui/templates/domain/list.html:4
msgid "Domain list"
msgstr "Domains"
#: mailu/ui/templates/domain/list.html:17
msgid "Manage"
msgstr "Verwalten"
#: mailu/ui/templates/domain/list.html:19
msgid "Mailbox count"
msgstr "Anzahl Mailboxen"
#: mailu/ui/templates/domain/list.html:20
msgid "Alias count"
msgstr "Anzahl Aliase"
#: mailu/ui/templates/domain/list.html:28
msgid "Details"
msgstr "Details"
#: mailu/ui/templates/domain/list.html:35
msgid "Users"
msgstr "Benutzer"
#: mailu/ui/templates/domain/list.html:36
msgid "Aliases"
msgstr "Aliase"
#: mailu/ui/templates/domain/list.html:37
msgid "Managers"
msgstr "Manager"
#: mailu/ui/templates/fetch/create.html:4
msgid "Add a fetched account"
msgstr "Externes Konto hinzufügen"
#: mailu/ui/templates/fetch/edit.html:4
msgid "Update a fetched account"
msgstr "Externes Konto aktualisieren"
#: mailu/ui/templates/fetch/list.html:12
msgid "Add an account"
msgstr "Konto hinzufügen"
#: mailu/ui/templates/fetch/list.html:19
msgid "Endpoint"
msgstr "Endpunkt"
#: mailu/ui/templates/fetch/list.html:22
msgid "Last check"
msgstr "Letzte Prüfung"
#: mailu/ui/templates/manager/create.html:4
msgid "Add a manager"
msgstr "Einen Manager hinzufügen"
#: mailu/ui/templates/manager/list.html:4
msgid "Manager list"
msgstr "Manager"
#: mailu/ui/templates/manager/list.html:12
msgid "Add manager"
msgstr "Manager hinzufügen"
#: mailu/ui/forms.py:152
msgid "Announcement subject"
msgstr "Betreff"
#: mailu/ui/forms.py:154
msgid "Announcement body"
msgstr "Text"
#: mailu/ui/forms.py:156
msgid "Send"
msgstr "Absenden"
#: mailu/ui/templates/announcement.html:4
msgid "Public announcement"
msgstr "Öffentliche Bekanntmachung"
#: mailu/ui/templates/announcement.html:8
msgid "from"
msgstr "von"
#: mailu/ui/templates/sidebar.html:49
msgid "Announcement"
msgstr "Bekanntmachung"
#: mailu/ui/templates/user/create.html:4
msgid "New user"
msgstr "Neuer Benutzer"
#: mailu/ui/templates/user/edit.html:4
msgid "Edit user"
msgstr "Benutzer bearbeiten"
#: mailu/ui/templates/user/forward.html:4
msgid "Forward emails"
msgstr "E-Mails weiterleiten"
#: mailu/ui/templates/user/list.html:4
msgid "User list"
msgstr "Benutzer"
#: mailu/ui/templates/user/list.html:12
msgid "Add user"
msgstr "Benutzer hinzufügen"
#: mailu/ui/templates/user/list.html:19 mailu/ui/templates/user/settings.html:4
msgid "User settings"
msgstr "Einstellungen"
#: mailu/ui/templates/user/list.html:21
msgid "Features"
msgstr "Funktionen"
#: mailu/ui/templates/user/password.html:4
msgid "Password update"
msgstr "Passwort aktualisieren"
#: mailu/ui/templates/user/reply.html:4
msgid "Automatic reply"
msgstr "Automatische Antwort"
#: mailu/ui/forms.py:49
msgid "Maximum user quota"
msgstr "Maximale Quota pro Benutzer"
#: mailu/ui/forms.py:92
msgid "Keep a copy of the emails"
msgstr "Kopie der E-Mails behalten"
#: mailu/ui/forms.py:147
msgid "Keep emails on the server"
msgstr "E-Mails auf dem Server belassen"
#: mailu/ui/templates/fetch/list.html:21
msgid "Keep emails"
msgstr "E-Mails behalten"
#: mailu/ui/templates/fetch/list.html:35
msgid "yes"
msgstr "ja"
#: mailu/ui/templates/fetch/list.html:35
msgid "no"
msgstr "nein"
#: mailu/ui/forms.py:55
msgid "Alternative name"
msgstr "Alternativer Name"
#: mailu/ui/forms.py:60
msgid "Relayed domain name"
msgstr "Relay-Domain-Name"
#: mailu/ui/forms.py:61 mailu/ui/templates/relay/list.html:18
msgid "Remote host"
msgstr "Entfernter Host"
#: mailu/ui/templates/sidebar.html:59
msgid "Relayed domains"
msgstr "Relay-Domains"
#: mailu/ui/templates/alternative/create.html:4
msgid "Create alternative domain"
msgstr "Alternative Domain erstellen"
#: mailu/ui/templates/alternative/list.html:4
msgid "Alternative domain list"
msgstr "Alternative Domains"
#: mailu/ui/templates/alternative/list.html:12
msgid "Add alternative"
msgstr "Alternative hinzufügen"
#: mailu/ui/templates/alternative/list.html:19
msgid "Name"
msgstr "Name"
#: mailu/ui/templates/domain/list.html:39
msgid "Alternatives"
msgstr "Alternativen"
#: mailu/ui/templates/relay/create.html:4
msgid "New relay domain"
msgstr "Neue Relay-Domain"
#: mailu/ui/templates/relay/edit.html:4
msgid "Edit relayd domain"
msgstr "Relay-Domain bearbeiten"
#: mailu/ui/templates/relay/list.html:4
msgid "Relayed domain list"
msgstr "Relay-Domains"
#: mailu/ui/templates/relay/list.html:9
msgid "New relayed domain"
msgstr "Neue Relay-Domain"
#: mailu/ui/forms.py:109
msgid "Your token (write it down, as it will never be displayed again)"
msgstr "Token (bitte speichern, da er hier nach nicht mehr angezeigt wird)"
#: mailu/ui/forms.py:114 mailu/ui/templates/token/list.html:20
msgid "Authorized IP"
msgstr "Authorisierte IP-Adresse"
#: mailu/ui/templates/sidebar.html:36 mailu/ui/templates/token/list.html:4
msgid "Authentication tokens"
msgstr "Authentifizierungs-Tokens"
#: mailu/ui/templates/sidebar.html:72
msgid "Go to"
msgstr "Wechseln zu"
#: mailu/ui/templates/sidebar.html:76
msgid "Webmail"
msgstr "Webmail"
#: mailu/ui/templates/sidebar.html:82
msgid "Website"
msgstr "Website"
#: mailu/ui/templates/token/create.html:4
msgid "Create an authentication token"
msgstr "Authentifizierungs-Token erstellen"
#: mailu/ui/templates/token/list.html:12
msgid "New token"
msgstr "Neuer Token"
#: mailu/ui/templates/user/create.html:15
msgid "General"
msgstr "Allgemein"
#: mailu/ui/templates/user/create.html:21
msgid "Features and quotas"
msgstr "Funktionen und Quotas"
#: mailu/ui/templates/user/settings.html:14
msgid "General settings"
msgstr "Allgemeine Einstellungen"
#: mailu/ui/templates/user/settings.html:18
msgid "Antispam"
msgstr "Antispam"
#: mailu/ui/forms.py:80
msgid "Spam filter tolerance"
msgstr "Spamfilter-Grenzwert"

View File

@@ -0,0 +1,633 @@
# English translations for PROJECT.
# Copyright (C) 2016 ORGANIZATION
# This file is distributed under the same license as the PROJECT project.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2016.
#
msgid ""
msgstr ""
"Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2017-11-05 17:17+0100\n"
"PO-Revision-Date: 2016-10-02 15:02+0200\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language: en\n"
"Language-Team: en <LL@li.org>\n"
"Plural-Forms: nplurals=2; plural=(n != 1)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.5.1\n"
#: mailu/ui/forms.py:32
msgid "Invalid email address."
msgstr ""
#: mailu/ui/forms.py:36
msgid "Confirm"
msgstr ""
#: mailu/ui/forms.py:40 mailu/ui/forms.py:67
msgid "E-mail"
msgstr ""
#: mailu/ui/forms.py:41 mailu/ui/forms.py:68 mailu/ui/forms.py:85
#: mailu/ui/forms.py:146
msgid "Password"
msgstr ""
#: mailu/ui/forms.py:42 mailu/ui/templates/login.html:4
#: mailu/ui/templates/sidebar.html:99
msgid "Sign in"
msgstr ""
#: mailu/ui/forms.py:46 mailu/ui/templates/domain/details.html:21
#: mailu/ui/templates/domain/list.html:18 mailu/ui/templates/relay/list.html:17
msgid "Domain name"
msgstr ""
#: mailu/ui/forms.py:47
msgid "Maximum user count"
msgstr ""
#: mailu/ui/forms.py:48
msgid "Maximum alias count"
msgstr ""
#: mailu/ui/forms.py:49
msgid "Maximum user quota"
msgstr ""
#: mailu/ui/forms.py:50 mailu/ui/forms.py:62 mailu/ui/forms.py:73
#: mailu/ui/forms.py:112 mailu/ui/forms.py:124
#: mailu/ui/templates/alias/list.html:21 mailu/ui/templates/domain/list.html:21
#: mailu/ui/templates/relay/list.html:19 mailu/ui/templates/token/list.html:19
#: mailu/ui/templates/user/list.html:23
msgid "Comment"
msgstr ""
#: mailu/ui/forms.py:51 mailu/ui/forms.py:56 mailu/ui/forms.py:63
#: mailu/ui/forms.py:116 mailu/ui/forms.py:125
msgid "Create"
msgstr ""
#: mailu/ui/forms.py:55
msgid "Alternative name"
msgstr ""
#: mailu/ui/forms.py:60
msgid "Relayed domain name"
msgstr ""
#: mailu/ui/forms.py:61 mailu/ui/templates/relay/list.html:18
msgid "Remote host"
msgstr ""
#: mailu/ui/forms.py:69
msgid "Confirm password"
msgstr ""
#: mailu/ui/forms.py:70 mailu/ui/templates/user/list.html:22
msgid "Quota"
msgstr ""
#: mailu/ui/forms.py:71
msgid "Allow IMAP access"
msgstr ""
#: mailu/ui/forms.py:72
msgid "Allow POP3 access"
msgstr ""
#: mailu/ui/forms.py:74
msgid "Save"
msgstr ""
#: mailu/ui/forms.py:78
msgid "Displayed name"
msgstr ""
#: mailu/ui/forms.py:79
msgid "Enable spam filter"
msgstr ""
#: mailu/ui/forms.py:80
msgid "Spam filter tolerance"
msgstr ""
#: mailu/ui/forms.py:81
msgid "Save settings"
msgstr ""
#: mailu/ui/forms.py:86
msgid "Password check"
msgstr ""
#: mailu/ui/forms.py:87 mailu/ui/templates/sidebar.html:16
msgid "Update password"
msgstr ""
#: mailu/ui/forms.py:91
msgid "Enable forwarding"
msgstr ""
#: mailu/ui/forms.py:92
msgid "Keep a copy of the emails"
msgstr ""
#: mailu/ui/forms.py:94 mailu/ui/forms.py:123
#: mailu/ui/templates/alias/list.html:20
msgid "Destination"
msgstr ""
#: mailu/ui/forms.py:96 mailu/ui/forms.py:104
msgid "Update"
msgstr ""
#: mailu/ui/forms.py:100
msgid "Enable automatic reply"
msgstr ""
#: mailu/ui/forms.py:101
msgid "Reply subject"
msgstr ""
#: mailu/ui/forms.py:102
msgid "Reply body"
msgstr ""
#: mailu/ui/forms.py:109
msgid "Your token (write it down, as it will never be displayed again)"
msgstr ""
#: mailu/ui/forms.py:114 mailu/ui/templates/token/list.html:20
msgid "Authorized IP"
msgstr ""
#: mailu/ui/forms.py:120
msgid "Alias"
msgstr ""
#: mailu/ui/forms.py:122
msgid "Use SQL LIKE Syntax (e.g. for catch-all aliases)"
msgstr ""
#: mailu/ui/forms.py:129
msgid "Admin email"
msgstr ""
#: mailu/ui/forms.py:130 mailu/ui/forms.py:135 mailu/ui/forms.py:148
msgid "Submit"
msgstr ""
#: mailu/ui/forms.py:134
msgid "Manager email"
msgstr ""
#: mailu/ui/forms.py:139
msgid "Protocol"
msgstr ""
#: mailu/ui/forms.py:142
msgid "Hostname or IP"
msgstr ""
#: mailu/ui/forms.py:143
msgid "TCP port"
msgstr ""
#: mailu/ui/forms.py:144
msgid "Enable TLS"
msgstr ""
#: mailu/ui/forms.py:145 mailu/ui/templates/fetch/list.html:20
msgid "Username"
msgstr ""
#: mailu/ui/forms.py:147
msgid "Keep emails on the server"
msgstr ""
#: mailu/ui/forms.py:152
msgid "Announcement subject"
msgstr ""
#: mailu/ui/forms.py:154
msgid "Announcement body"
msgstr ""
#: mailu/ui/forms.py:156
msgid "Send"
msgstr ""
#: mailu/ui/templates/announcement.html:4
msgid "Public announcement"
msgstr ""
#: mailu/ui/templates/announcement.html:8
msgid "from"
msgstr ""
#: mailu/ui/templates/confirm.html:4
msgid "Confirm action"
msgstr ""
#: mailu/ui/templates/confirm.html:13
#, python-format
msgid "You are about to %(action)s. Please confirm your action."
msgstr ""
#: mailu/ui/templates/docker-error.html:4
msgid "Docker error"
msgstr ""
#: mailu/ui/templates/docker-error.html:12
msgid "An error occurred while talking to the Docker server."
msgstr ""
#: mailu/ui/templates/login.html:8
msgid "to access the administration tools"
msgstr ""
#: mailu/ui/templates/services.html:4 mailu/ui/templates/sidebar.html:44
msgid "Services status"
msgstr ""
#: mailu/ui/templates/services.html:10
msgid "Service"
msgstr ""
#: mailu/ui/templates/fetch/list.html:23 mailu/ui/templates/services.html:11
msgid "Status"
msgstr ""
#: mailu/ui/templates/services.html:12
msgid "PID"
msgstr ""
#: mailu/ui/templates/services.html:13
msgid "Image"
msgstr ""
#: mailu/ui/templates/services.html:14
msgid "Started"
msgstr ""
#: mailu/ui/templates/services.html:15
msgid "Last update"
msgstr ""
#: mailu/ui/templates/sidebar.html:8
msgid "My account"
msgstr ""
#: mailu/ui/templates/sidebar.html:11 mailu/ui/templates/user/list.html:34
msgid "Settings"
msgstr ""
#: mailu/ui/templates/sidebar.html:21 mailu/ui/templates/user/list.html:35
msgid "Auto-forward"
msgstr ""
#: mailu/ui/templates/sidebar.html:26 mailu/ui/templates/user/list.html:36
msgid "Auto-reply"
msgstr ""
#: mailu/ui/templates/fetch/list.html:4 mailu/ui/templates/sidebar.html:31
#: mailu/ui/templates/user/list.html:37
msgid "Fetched accounts"
msgstr ""
#: mailu/ui/templates/sidebar.html:36 mailu/ui/templates/token/list.html:4
msgid "Authentication tokens"
msgstr ""
#: mailu/ui/templates/sidebar.html:40
msgid "Administration"
msgstr ""
#: mailu/ui/templates/sidebar.html:49
msgid "Announcement"
msgstr ""
#: mailu/ui/templates/sidebar.html:54
msgid "Administrators"
msgstr ""
#: mailu/ui/templates/sidebar.html:59
msgid "Relayed domains"
msgstr ""
#: mailu/ui/templates/sidebar.html:66
msgid "Mail domains"
msgstr ""
#: mailu/ui/templates/sidebar.html:72
msgid "Go to"
msgstr ""
#: mailu/ui/templates/sidebar.html:76
msgid "Webmail"
msgstr ""
#: mailu/ui/templates/sidebar.html:82
msgid "Website"
msgstr ""
#: mailu/ui/templates/sidebar.html:87
msgid "Help"
msgstr ""
#: mailu/ui/templates/sidebar.html:93
msgid "Sign out"
msgstr ""
#: mailu/ui/templates/working.html:4
msgid "We are still working on this feature!"
msgstr ""
#: mailu/ui/templates/admin/create.html:4
msgid "Add a global administrator"
msgstr ""
#: mailu/ui/templates/admin/list.html:4
msgid "Global administrators"
msgstr ""
#: mailu/ui/templates/admin/list.html:9
msgid "Add administrator"
msgstr ""
#: mailu/ui/templates/admin/list.html:16 mailu/ui/templates/alias/list.html:18
#: mailu/ui/templates/alternative/list.html:18
#: mailu/ui/templates/domain/list.html:16 mailu/ui/templates/fetch/list.html:18
#: mailu/ui/templates/manager/list.html:18
#: mailu/ui/templates/relay/list.html:16 mailu/ui/templates/token/list.html:18
#: mailu/ui/templates/user/list.html:18
msgid "Actions"
msgstr ""
#: mailu/ui/templates/admin/list.html:17 mailu/ui/templates/alias/list.html:19
#: mailu/ui/templates/manager/list.html:19 mailu/ui/templates/user/list.html:20
msgid "Email"
msgstr ""
#: mailu/ui/templates/admin/list.html:22 mailu/ui/templates/alias/list.html:29
#: mailu/ui/templates/alternative/list.html:25
#: mailu/ui/templates/domain/list.html:31 mailu/ui/templates/fetch/list.html:31
#: mailu/ui/templates/manager/list.html:24
#: mailu/ui/templates/relay/list.html:27 mailu/ui/templates/token/list.html:26
#: mailu/ui/templates/user/list.html:31
msgid "Delete"
msgstr ""
#: mailu/ui/templates/alias/create.html:4
msgid "Create alias"
msgstr ""
#: mailu/ui/templates/alias/edit.html:4
msgid "Edit alias"
msgstr ""
#: mailu/ui/templates/alias/list.html:4
msgid "Alias list"
msgstr ""
#: mailu/ui/templates/alias/list.html:12
msgid "Add alias"
msgstr ""
#: mailu/ui/templates/alias/list.html:22
#: mailu/ui/templates/alternative/list.html:20
#: mailu/ui/templates/domain/list.html:22 mailu/ui/templates/fetch/list.html:24
#: mailu/ui/templates/relay/list.html:20 mailu/ui/templates/token/list.html:21
#: mailu/ui/templates/user/list.html:24
msgid "Created"
msgstr ""
#: mailu/ui/templates/alias/list.html:23 mailu/ui/templates/domain/list.html:23
#: mailu/ui/templates/fetch/list.html:25 mailu/ui/templates/relay/list.html:21
#: mailu/ui/templates/user/list.html:25
msgid "Last edit"
msgstr ""
#: mailu/ui/templates/alias/list.html:28 mailu/ui/templates/domain/list.html:30
#: mailu/ui/templates/fetch/list.html:30 mailu/ui/templates/relay/list.html:26
#: mailu/ui/templates/user/list.html:30
msgid "Edit"
msgstr ""
#: mailu/ui/templates/alternative/create.html:4
msgid "Create alternative domain"
msgstr ""
#: mailu/ui/templates/alternative/list.html:4
msgid "Alternative domain list"
msgstr ""
#: mailu/ui/templates/alternative/list.html:12
msgid "Add alternative"
msgstr ""
#: mailu/ui/templates/alternative/list.html:19
msgid "Name"
msgstr ""
#: mailu/ui/templates/domain/create.html:4
#: mailu/ui/templates/domain/list.html:9
msgid "New domain"
msgstr ""
#: mailu/ui/templates/domain/details.html:4
msgid "Domain details"
msgstr ""
#: mailu/ui/templates/domain/details.html:13
msgid "Regenerate keys"
msgstr ""
#: mailu/ui/templates/domain/details.html:25
msgid "DNS MX entry"
msgstr ""
#: mailu/ui/templates/domain/details.html:29
msgid "DNS SPF entries"
msgstr ""
#: mailu/ui/templates/domain/details.html:36
msgid "DKIM public key"
msgstr ""
#: mailu/ui/templates/domain/details.html:40
msgid "DNS DKIM entry"
msgstr ""
#: mailu/ui/templates/domain/details.html:44
msgid "DNS DMARC entry"
msgstr ""
#: mailu/ui/templates/domain/edit.html:4
msgid "Edit domain"
msgstr ""
#: mailu/ui/templates/domain/list.html:4
msgid "Domain list"
msgstr ""
#: mailu/ui/templates/domain/list.html:17
msgid "Manage"
msgstr ""
#: mailu/ui/templates/domain/list.html:19
msgid "Mailbox count"
msgstr ""
#: mailu/ui/templates/domain/list.html:20
msgid "Alias count"
msgstr ""
#: mailu/ui/templates/domain/list.html:28
msgid "Details"
msgstr ""
#: mailu/ui/templates/domain/list.html:35
msgid "Users"
msgstr ""
#: mailu/ui/templates/domain/list.html:36
msgid "Aliases"
msgstr ""
#: mailu/ui/templates/domain/list.html:37
msgid "Managers"
msgstr ""
#: mailu/ui/templates/domain/list.html:39
msgid "Alternatives"
msgstr ""
#: mailu/ui/templates/fetch/create.html:4
msgid "Add a fetched account"
msgstr ""
#: mailu/ui/templates/fetch/edit.html:4
msgid "Update a fetched account"
msgstr ""
#: mailu/ui/templates/fetch/list.html:12
msgid "Add an account"
msgstr ""
#: mailu/ui/templates/fetch/list.html:19
msgid "Endpoint"
msgstr ""
#: mailu/ui/templates/fetch/list.html:21
msgid "Keep emails"
msgstr ""
#: mailu/ui/templates/fetch/list.html:22
msgid "Last check"
msgstr ""
#: mailu/ui/templates/fetch/list.html:35
msgid "yes"
msgstr ""
#: mailu/ui/templates/fetch/list.html:35
msgid "no"
msgstr ""
#: mailu/ui/templates/manager/create.html:4
msgid "Add a manager"
msgstr ""
#: mailu/ui/templates/manager/list.html:4
msgid "Manager list"
msgstr ""
#: mailu/ui/templates/manager/list.html:12
msgid "Add manager"
msgstr ""
#: mailu/ui/templates/relay/create.html:4
msgid "New relay domain"
msgstr ""
#: mailu/ui/templates/relay/edit.html:4
msgid "Edit relayd domain"
msgstr ""
#: mailu/ui/templates/relay/list.html:4
msgid "Relayed domain list"
msgstr ""
#: mailu/ui/templates/relay/list.html:9
msgid "New relayed domain"
msgstr ""
#: mailu/ui/templates/token/create.html:4
msgid "Create an authentication token"
msgstr ""
#: mailu/ui/templates/token/list.html:12
msgid "New token"
msgstr ""
#: mailu/ui/templates/user/create.html:4
msgid "New user"
msgstr ""
#: mailu/ui/templates/user/create.html:15
msgid "General"
msgstr ""
#: mailu/ui/templates/user/create.html:21
msgid "Features and quotas"
msgstr ""
#: mailu/ui/templates/user/edit.html:4
msgid "Edit user"
msgstr ""
#: mailu/ui/templates/user/forward.html:4
msgid "Forward emails"
msgstr ""
#: mailu/ui/templates/user/list.html:4
msgid "User list"
msgstr ""
#: mailu/ui/templates/user/list.html:12
msgid "Add user"
msgstr ""
#: mailu/ui/templates/user/list.html:19 mailu/ui/templates/user/settings.html:4
msgid "User settings"
msgstr ""
#: mailu/ui/templates/user/list.html:21
msgid "Features"
msgstr ""
#: mailu/ui/templates/user/password.html:4
msgid "Password update"
msgstr ""
#: mailu/ui/templates/user/reply.html:4
msgid "Automatic reply"
msgstr ""
#: mailu/ui/templates/user/settings.html:14
msgid "General settings"
msgstr ""
#: mailu/ui/templates/user/settings.html:18
msgid "Antispam"
msgstr ""
#~ msgid "Your account"
#~ msgstr ""
#~ msgid "Spam filter threshold"
#~ msgstr ""

View File

@@ -0,0 +1,623 @@
msgid ""
msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: POEditor.com\n"
"Project-Id-Version: Mailu\n"
"Language: fr\n"
#: mailu/ui/forms.py:32
msgid "Invalid email address."
msgstr "Adresse e-mail invalide"
#: mailu/ui/forms.py:36
msgid "Confirm"
msgstr "Confirmer"
#: mailu/ui/forms.py:40 mailu/ui/forms.py:67
msgid "E-mail"
msgstr "E-mail"
#: mailu/ui/forms.py:41 mailu/ui/forms.py:68 mailu/ui/forms.py:85
#: mailu/ui/forms.py:146
msgid "Password"
msgstr "Mot de passe"
#: mailu/ui/forms.py:42 mailu/ui/templates/login.html:4
#: mailu/ui/templates/sidebar.html:99
msgid "Sign in"
msgstr "Se connecter"
#: mailu/ui/forms.py:46 mailu/ui/templates/domain/details.html:21
#: mailu/ui/templates/domain/list.html:18 mailu/ui/templates/relay/list.html:17
msgid "Domain name"
msgstr "Nom de domaine"
#: mailu/ui/forms.py:47
msgid "Maximum user count"
msgstr "Nombre maximum d'utilisateurs"
#: mailu/ui/forms.py:48
msgid "Maximum alias count"
msgstr "Nombre maximum d'alias"
#: mailu/ui/forms.py:50 mailu/ui/forms.py:62 mailu/ui/forms.py:73
#: mailu/ui/forms.py:112 mailu/ui/forms.py:124
#: mailu/ui/templates/alias/list.html:21 mailu/ui/templates/domain/list.html:21
#: mailu/ui/templates/relay/list.html:19 mailu/ui/templates/token/list.html:19
#: mailu/ui/templates/user/list.html:23
msgid "Comment"
msgstr "Commentaire"
#: mailu/ui/forms.py:51 mailu/ui/forms.py:56 mailu/ui/forms.py:63
#: mailu/ui/forms.py:116 mailu/ui/forms.py:125
msgid "Create"
msgstr "Créer"
#: mailu/ui/forms.py:69
msgid "Confirm password"
msgstr "Confirmer le mot de passe"
#: mailu/ui/forms.py:70 mailu/ui/templates/user/list.html:22
msgid "Quota"
msgstr "Quota"
#: mailu/ui/forms.py:71
msgid "Allow IMAP access"
msgstr "Autoriser l'accès IMAP"
#: mailu/ui/forms.py:72
msgid "Allow POP3 access"
msgstr "Autoriser l'accès POP3"
#: mailu/ui/forms.py:74
msgid "Save"
msgstr "Enregistrer"
#: mailu/ui/forms.py:78
msgid "Displayed name"
msgstr "Nom affiché"
#: mailu/ui/forms.py:79
msgid "Enable spam filter"
msgstr "Activer le filtre anti-spam"
#: mailu/ui/forms.py:80
msgid "Spam filter threshold"
msgstr "Seuil du filtre anti-spam"
#: mailu/ui/forms.py:81
msgid "Save settings"
msgstr "Enregistrer les préférences"
#: mailu/ui/forms.py:86
msgid "Password check"
msgstr "Vérifier le mot de passe"
#: mailu/ui/forms.py:87 mailu/ui/templates/sidebar.html:16
msgid "Update password"
msgstr "Changer de mot de passe"
#: mailu/ui/forms.py:91
msgid "Enable forwarding"
msgstr "Activer la redirection"
#: mailu/ui/forms.py:94 mailu/ui/forms.py:123
#: mailu/ui/templates/alias/list.html:20
msgid "Destination"
msgstr "Destination"
#: mailu/ui/forms.py:96 mailu/ui/forms.py:104
msgid "Update"
msgstr "Mettre à jour"
#: mailu/ui/forms.py:100
msgid "Enable automatic reply"
msgstr "Activer les réponses automatique"
#: mailu/ui/forms.py:101
msgid "Reply subject"
msgstr "Sujet du message"
#: mailu/ui/forms.py:102
msgid "Reply body"
msgstr "Corps de la réponse"
#: mailu/ui/forms.py:120
msgid "Alias"
msgstr "Alias"
#: mailu/ui/forms.py:122
msgid "Use SQL LIKE Syntax (e.g. for catch-all aliases)"
msgstr "Utiliser la syntaxe SQL LIKE (par exemple pour les alias catch-all)"
#: mailu/ui/forms.py:129
msgid "Admin email"
msgstr "Email de l'administrateur"
#: mailu/ui/forms.py:130 mailu/ui/forms.py:135 mailu/ui/forms.py:148
msgid "Submit"
msgstr "Valider"
#: mailu/ui/forms.py:134
msgid "Manager email"
msgstr "E-mail du gérant"
#: mailu/ui/forms.py:139
msgid "Protocol"
msgstr "Protocole"
#: mailu/ui/forms.py:142
msgid "Hostname or IP"
msgstr "Nom d'hôte ou adresse IP"
#: mailu/ui/forms.py:143
msgid "TCP port"
msgstr "Port TCP"
#: mailu/ui/forms.py:144
msgid "Enable TLS"
msgstr "Activer TLS"
#: mailu/ui/forms.py:145 mailu/ui/templates/fetch/list.html:20
msgid "Username"
msgstr "Nom d'utilisateur"
#: mailu/ui/templates/confirm.html:4
msgid "Confirm action"
msgstr "Confirmer"
#: mailu/ui/templates/confirm.html:13
msgid "You are about to %(action)s. Please confirm your action."
msgstr "Vous allez %(action)s. Merci de confirmer votre action."
#: mailu/ui/templates/docker-error.html:4
msgid "Docker error"
msgstr "Erreur Docker"
#: mailu/ui/templates/docker-error.html:12
msgid "An error occurred while talking to the Docker server."
msgstr "Une erreur s'est produite en communiquant avec le serveur Docker."
#: mailu/admin/templates/login.html:6
msgid "Your account"
msgstr "Votre compte"
#: mailu/ui/templates/login.html:8
msgid "to access the administration tools"
msgstr "pour accéder aux outils d'administration"
#: mailu/ui/templates/services.html:4 mailu/ui/templates/sidebar.html:44
msgid "Services status"
msgstr "Etat des services"
#: mailu/ui/templates/services.html:10
msgid "Service"
msgstr "Service"
#: mailu/ui/templates/fetch/list.html:23 mailu/ui/templates/services.html:11
msgid "Status"
msgstr "Etat"
#: mailu/ui/templates/services.html:12
msgid "PID"
msgstr "PID"
#: mailu/ui/templates/services.html:13
msgid "Image"
msgstr "Image"
#: mailu/ui/templates/services.html:14
msgid "Started"
msgstr "Démarré depuis"
#: mailu/ui/templates/services.html:15
msgid "Last update"
msgstr "Dernière mise à jour"
#: mailu/ui/templates/sidebar.html:8
msgid "My account"
msgstr "Mon compte"
#: mailu/ui/templates/sidebar.html:11 mailu/ui/templates/user/list.html:34
msgid "Settings"
msgstr "Préférences"
#: mailu/ui/templates/sidebar.html:21 mailu/ui/templates/user/list.html:35
msgid "Auto-forward"
msgstr "Redirection"
#: mailu/ui/templates/sidebar.html:26 mailu/ui/templates/user/list.html:36
msgid "Auto-reply"
msgstr "Réponse automatique"
#: mailu/ui/templates/fetch/list.html:4 mailu/ui/templates/sidebar.html:31
#: mailu/ui/templates/user/list.html:37
msgid "Fetched accounts"
msgstr "Comptes externes"
#: mailu/ui/templates/sidebar.html:93
msgid "Sign out"
msgstr "Déconnexion"
#: mailu/ui/templates/sidebar.html:40
msgid "Administration"
msgstr "Administration"
#: mailu/ui/templates/sidebar.html:54
msgid "Administrators"
msgstr "Administrateurs"
#: mailu/ui/templates/sidebar.html:66
msgid "Mail domains"
msgstr "Domaines"
#: mailu/ui/templates/sidebar.html:87
msgid "Help"
msgstr "Aide"
#: mailu/ui/templates/working.html:4
msgid "We are still working on this feature!"
msgstr "Cette fonctionnalité est en cours de développement !"
#: mailu/ui/templates/admin/create.html:4
msgid "Add a global administrator"
msgstr "Ajouter un administrateur global"
#: mailu/ui/templates/admin/list.html:4
msgid "Global administrators"
msgstr "Administrateurs globaux"
#: mailu/ui/templates/admin/list.html:9
msgid "Add administrator"
msgstr "Ajouter un administrateur"
#: mailu/ui/templates/admin/list.html:16 mailu/ui/templates/alias/list.html:18
#: mailu/ui/templates/alternative/list.html:18
#: mailu/ui/templates/domain/list.html:16 mailu/ui/templates/fetch/list.html:18
#: mailu/ui/templates/manager/list.html:18
#: mailu/ui/templates/relay/list.html:16 mailu/ui/templates/token/list.html:18
#: mailu/ui/templates/user/list.html:18
msgid "Actions"
msgstr "Actions"
#: mailu/ui/templates/admin/list.html:17 mailu/ui/templates/alias/list.html:19
#: mailu/ui/templates/manager/list.html:19 mailu/ui/templates/user/list.html:20
msgid "Email"
msgstr "E-mail"
#: mailu/ui/templates/admin/list.html:22 mailu/ui/templates/alias/list.html:29
#: mailu/ui/templates/alternative/list.html:25
#: mailu/ui/templates/domain/list.html:31 mailu/ui/templates/fetch/list.html:31
#: mailu/ui/templates/manager/list.html:24
#: mailu/ui/templates/relay/list.html:27 mailu/ui/templates/token/list.html:26
#: mailu/ui/templates/user/list.html:31
msgid "Delete"
msgstr "Supprimer"
#: mailu/ui/templates/alias/create.html:4
msgid "Create alias"
msgstr "Créer un alias"
#: mailu/ui/templates/alias/edit.html:4
msgid "Edit alias"
msgstr "Modifier un alias"
#: mailu/ui/templates/alias/list.html:4
msgid "Alias list"
msgstr "Liste des alias"
#: mailu/ui/templates/alias/list.html:12
msgid "Add alias"
msgstr "Ajouter un alias"
#: mailu/ui/templates/alias/list.html:22
#: mailu/ui/templates/alternative/list.html:20
#: mailu/ui/templates/domain/list.html:22 mailu/ui/templates/fetch/list.html:24
#: mailu/ui/templates/relay/list.html:20 mailu/ui/templates/token/list.html:21
#: mailu/ui/templates/user/list.html:24
msgid "Created"
msgstr "Création"
#: mailu/ui/templates/alias/list.html:23 mailu/ui/templates/domain/list.html:23
#: mailu/ui/templates/fetch/list.html:25 mailu/ui/templates/relay/list.html:21
#: mailu/ui/templates/user/list.html:25
msgid "Last edit"
msgstr "Dernière modification"
#: mailu/ui/templates/alias/list.html:28 mailu/ui/templates/domain/list.html:30
#: mailu/ui/templates/fetch/list.html:30 mailu/ui/templates/relay/list.html:26
#: mailu/ui/templates/user/list.html:30
msgid "Edit"
msgstr "Modifier"
#: mailu/ui/templates/domain/create.html:4
#: mailu/ui/templates/domain/list.html:9
msgid "New domain"
msgstr "Nouveau domaine"
#: mailu/ui/templates/domain/details.html:4
msgid "Domain details"
msgstr "Détails du domaine"
#: mailu/ui/templates/domain/details.html:13
msgid "Regenerate keys"
msgstr "Regénérer les clés"
#: mailu/ui/templates/domain/details.html:25
msgid "DNS MX entry"
msgstr "Entrée DNS MX"
#: mailu/ui/templates/domain/details.html:29
msgid "DNS SPF entries"
msgstr "Entrées DNS SPF"
#: mailu/ui/templates/domain/details.html:36
msgid "DKIM public key"
msgstr "Clé publique DKIM"
#: mailu/ui/templates/domain/details.html:40
msgid "DNS DKIM entry"
msgstr "Entrée DNS DKIM"
#: mailu/ui/templates/domain/details.html:44
msgid "DNS DMARC entry"
msgstr "Entrée DNS DMARC"
#: mailu/ui/templates/domain/edit.html:4
msgid "Edit domain"
msgstr "Modifier le domaine"
#: mailu/ui/templates/domain/list.html:4
msgid "Domain list"
msgstr "Liste des domaines"
#: mailu/ui/templates/domain/list.html:17
msgid "Manage"
msgstr "Gérer"
#: mailu/ui/templates/domain/list.html:19
msgid "Mailbox count"
msgstr "Nombre de boîtes mail"
#: mailu/ui/templates/domain/list.html:20
msgid "Alias count"
msgstr "Nombre d'alias"
#: mailu/ui/templates/domain/list.html:28
msgid "Details"
msgstr "Détails"
#: mailu/ui/templates/domain/list.html:35
msgid "Users"
msgstr "Utilisateurs"
#: mailu/ui/templates/domain/list.html:36
msgid "Aliases"
msgstr "Alias"
#: mailu/ui/templates/domain/list.html:37
msgid "Managers"
msgstr "Gérants"
#: mailu/ui/templates/fetch/create.html:4
msgid "Add a fetched account"
msgstr "Ajouter un compte externe"
#: mailu/ui/templates/fetch/edit.html:4
msgid "Update a fetched account"
msgstr "Modifier un compte externe"
#: mailu/ui/templates/fetch/list.html:12
msgid "Add an account"
msgstr "Ajouter un compte"
#: mailu/ui/templates/fetch/list.html:19
msgid "Endpoint"
msgstr "Source"
#: mailu/ui/templates/fetch/list.html:22
msgid "Last check"
msgstr "Dernier relevé"
#: mailu/ui/templates/manager/create.html:4
msgid "Add a manager"
msgstr "Ajouter un gérant"
#: mailu/ui/templates/manager/list.html:4
msgid "Manager list"
msgstr "Liste des gérants"
#: mailu/ui/templates/manager/list.html:12
msgid "Add manager"
msgstr "Ajouter le gérant"
#: mailu/ui/forms.py:152
msgid "Announcement subject"
msgstr "Sujet de l'annonce"
#: mailu/ui/forms.py:154
msgid "Announcement body"
msgstr "Corps de l'annonce"
#: mailu/ui/forms.py:156
msgid "Send"
msgstr "Envoyer"
#: mailu/ui/templates/announcement.html:4
msgid "Public announcement"
msgstr "Annonce globale"
#: mailu/ui/templates/announcement.html:8
msgid "from"
msgstr "de"
#: mailu/ui/templates/sidebar.html:49
msgid "Announcement"
msgstr "Annonce"
#: mailu/ui/templates/user/create.html:4
msgid "New user"
msgstr "Nouvel utilisateur"
#: mailu/ui/templates/user/edit.html:4
msgid "Edit user"
msgstr "Modifier l'utilisateur"
#: mailu/ui/templates/user/forward.html:4
msgid "Forward emails"
msgstr "Faire suivre les emails"
#: mailu/ui/templates/user/list.html:4
msgid "User list"
msgstr "Utilisateurs"
#: mailu/ui/templates/user/list.html:12
msgid "Add user"
msgstr "Ajouter un utilisateur"
#: mailu/ui/templates/user/list.html:19 mailu/ui/templates/user/settings.html:4
msgid "User settings"
msgstr "Options de l'utilisateur"
#: mailu/ui/templates/user/list.html:21
msgid "Features"
msgstr "Fonctionnalités"
#: mailu/ui/templates/user/password.html:4
msgid "Password update"
msgstr "Modifier le mot de passe"
#: mailu/ui/templates/user/reply.html:4
msgid "Automatic reply"
msgstr "Réponse automatique"
#: mailu/ui/forms.py:49
msgid "Maximum user quota"
msgstr "Quota maximum par utilisateur"
#: mailu/ui/forms.py:92
msgid "Keep a copy of the emails"
msgstr "Conserver une copie des messages"
#: mailu/ui/forms.py:147
msgid "Keep emails on the server"
msgstr "Conserver les messages sur le serveur"
#: mailu/ui/templates/fetch/list.html:21
msgid "Keep emails"
msgstr "Conserver les messages"
#: mailu/ui/templates/fetch/list.html:35
msgid "yes"
msgstr "oui"
#: mailu/ui/templates/fetch/list.html:35
msgid "no"
msgstr "non"
#: mailu/ui/forms.py:55
msgid "Alternative name"
msgstr "Nom alternatif"
#: mailu/ui/forms.py:60
msgid "Relayed domain name"
msgstr "Nom du domaine relayé"
#: mailu/ui/forms.py:61 mailu/ui/templates/relay/list.html:18
msgid "Remote host"
msgstr "Hôte distant"
#: mailu/ui/templates/sidebar.html:59
msgid "Relayed domains"
msgstr "Domaines relayé"
#: mailu/ui/templates/alternative/create.html:4
msgid "Create alternative domain"
msgstr "Nouveau domaine alternatif"
#: mailu/ui/templates/alternative/list.html:4
msgid "Alternative domain list"
msgstr "Liste des domaines alternatifs"
#: mailu/ui/templates/alternative/list.html:12
msgid "Add alternative"
msgstr "Ajouter une alternative"
#: mailu/ui/templates/alternative/list.html:19
msgid "Name"
msgstr "Nom"
#: mailu/ui/templates/domain/list.html:39
msgid "Alternatives"
msgstr "Alternatives"
#: mailu/ui/templates/relay/create.html:4
msgid "New relay domain"
msgstr "Nouveau domaine relayé"
#: mailu/ui/templates/relay/edit.html:4
msgid "Edit relayd domain"
msgstr "Modifier le domaine relayé"
#: mailu/ui/templates/relay/list.html:4
msgid "Relayed domain list"
msgstr "Liste des domaines relayés"
#: mailu/ui/templates/relay/list.html:9
msgid "New relayed domain"
msgstr "Nouveau domaine relayé"
#: mailu/ui/forms.py:109
msgid "Your token (write it down, as it will never be displayed again)"
msgstr "Votre jeton (à conserver, il ne sera plus affiché par la suite)"
#: mailu/ui/forms.py:114 mailu/ui/templates/token/list.html:20
msgid "Authorized IP"
msgstr "Adresse IP autorisée"
#: mailu/ui/templates/sidebar.html:36 mailu/ui/templates/token/list.html:4
msgid "Authentication tokens"
msgstr "Jetons d'authentification"
#: mailu/ui/templates/sidebar.html:72
msgid "Go to"
msgstr "Navigation"
#: mailu/ui/templates/sidebar.html:76
msgid "Webmail"
msgstr "Webmail"
#: mailu/ui/templates/sidebar.html:82
msgid "Website"
msgstr "Site web"
#: mailu/ui/templates/token/create.html:4
msgid "Create an authentication token"
msgstr "Créer un jeton d'authentification"
#: mailu/ui/templates/token/list.html:12
msgid "New token"
msgstr "Nouveau jeton"
#: mailu/ui/templates/user/create.html:15
msgid "General"
msgstr "Général"
#: mailu/ui/templates/user/create.html:21
msgid "Features and quotas"
msgstr "Fonctionnalités et quotas"
#: mailu/ui/templates/user/settings.html:14
msgid "General settings"
msgstr "Général"
#: mailu/ui/templates/user/settings.html:18
msgid "Antispam"
msgstr "Antispam"
#: mailu/ui/forms.py:80
msgid "Spam filter tolerance"
msgstr "Tolérance du filtre antispam"

View File

@@ -0,0 +1,624 @@
msgid ""
msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: POEditor.com\n"
"Project-Id-Version: Mailu\n"
"Language: it\n"
#: mailu/ui/forms.py:32
msgid "Invalid email address."
msgstr "Indirizzo email non valido."
#: mailu/ui/forms.py:36
msgid "Confirm"
msgstr "Conferma"
#: mailu/ui/forms.py:40 mailu/ui/forms.py:67
msgid "E-mail"
msgstr "E-mail"
#: mailu/ui/forms.py:41 mailu/ui/forms.py:68 mailu/ui/forms.py:85
#: mailu/ui/forms.py:146
msgid "Password"
msgstr "Password"
#: mailu/ui/forms.py:42 mailu/ui/templates/login.html:4
#: mailu/ui/templates/sidebar.html:99
msgid "Sign in"
msgstr "Entra"
#: mailu/ui/forms.py:46 mailu/ui/templates/domain/details.html:21
#: mailu/ui/templates/domain/list.html:18 mailu/ui/templates/relay/list.html:17
msgid "Domain name"
msgstr "Nome dominio"
#: mailu/ui/forms.py:47
msgid "Maximum user count"
msgstr ""
#: mailu/ui/forms.py:48
msgid "Maximum alias count"
msgstr ""
#: mailu/ui/forms.py:50 mailu/ui/forms.py:62 mailu/ui/forms.py:73
#: mailu/ui/forms.py:112 mailu/ui/forms.py:124
#: mailu/ui/templates/alias/list.html:21 mailu/ui/templates/domain/list.html:21
#: mailu/ui/templates/relay/list.html:19 mailu/ui/templates/token/list.html:19
#: mailu/ui/templates/user/list.html:23
msgid "Comment"
msgstr ""
#: mailu/ui/forms.py:51 mailu/ui/forms.py:56 mailu/ui/forms.py:63
#: mailu/ui/forms.py:116 mailu/ui/forms.py:125
msgid "Create"
msgstr "Crea"
#: mailu/ui/forms.py:69
msgid "Confirm password"
msgstr "Conferma pasword"
#: mailu/ui/forms.py:70 mailu/ui/templates/user/list.html:22
msgid "Quota"
msgstr "Quota"
#: mailu/ui/forms.py:71
msgid "Allow IMAP access"
msgstr "Consenti accesso IMAP"
#: mailu/ui/forms.py:72
msgid "Allow POP3 access"
msgstr "Consenti accesso POP3"
#: mailu/ui/forms.py:74
msgid "Save"
msgstr "Salva"
#: mailu/ui/forms.py:78
msgid "Displayed name"
msgstr "Nome visualizzato"
#: mailu/ui/forms.py:79
msgid "Enable spam filter"
msgstr "Abilita filtro antispam"
#: mailu/ui/forms.py:80
msgid "Spam filter threshold"
msgstr "Soglia del filtro antispam"
#: mailu/ui/forms.py:81
msgid "Save settings"
msgstr "Salva impostazioni"
#: mailu/ui/forms.py:86
msgid "Password check"
msgstr ""
#: mailu/ui/forms.py:87 mailu/ui/templates/sidebar.html:16
msgid "Update password"
msgstr "Aggiorna password"
#: mailu/ui/forms.py:91
msgid "Enable forwarding"
msgstr "Abilita inoltro"
#: mailu/ui/forms.py:94 mailu/ui/forms.py:123
#: mailu/ui/templates/alias/list.html:20
msgid "Destination"
msgstr "Destinazione"
#: mailu/ui/forms.py:96 mailu/ui/forms.py:104
msgid "Update"
msgstr "Aggiorna"
#: mailu/ui/forms.py:100
msgid "Enable automatic reply"
msgstr "Abilita risposta automatica"
#: mailu/ui/forms.py:101
msgid "Reply subject"
msgstr "Soggetto risposta"
#: mailu/ui/forms.py:102
msgid "Reply body"
msgstr "Corpo risposta"
#: mailu/ui/forms.py:120
msgid "Alias"
msgstr "Alias"
#: mailu/ui/forms.py:122
msgid "Use SQL LIKE Syntax (e.g. for catch-all aliases)"
msgstr "Usa sintassi SQL LIKE (es. per alias catch-all)"
#: mailu/ui/forms.py:129
msgid "Admin email"
msgstr "Email amministratore"
#: mailu/ui/forms.py:130 mailu/ui/forms.py:135 mailu/ui/forms.py:148
msgid "Submit"
msgstr "Invia"
#: mailu/ui/forms.py:134
msgid "Manager email"
msgstr "Email manager"
#: mailu/ui/forms.py:139
msgid "Protocol"
msgstr "Protocollo"
#: mailu/ui/forms.py:142
msgid "Hostname or IP"
msgstr "Hostname o IP"
#: mailu/ui/forms.py:143
msgid "TCP port"
msgstr "Porta TCP"
#: mailu/ui/forms.py:144
msgid "Enable TLS"
msgstr "Abilita TLS"
#: mailu/ui/forms.py:145 mailu/ui/templates/fetch/list.html:20
msgid "Username"
msgstr "Username"
#: mailu/ui/templates/confirm.html:4
msgid "Confirm action"
msgstr "Conferma azione"
#: mailu/ui/templates/confirm.html:13
#, fuzzy
msgid "You are about to %(action)s. Please confirm your action."
msgstr "Stai per %(action). Conferma la tua azione."
#: mailu/ui/templates/docker-error.html:4
msgid "Docker error"
msgstr "Errore Docker"
#: mailu/ui/templates/docker-error.html:12
msgid "An error occurred while talking to the Docker server."
msgstr ""
#: mailu/admin/templates/login.html:6
msgid "Your account"
msgstr "Il tuo account"
#: mailu/ui/templates/login.html:8
msgid "to access the administration tools"
msgstr ""
#: mailu/ui/templates/services.html:4 mailu/ui/templates/sidebar.html:44
msgid "Services status"
msgstr ""
#: mailu/ui/templates/services.html:10
msgid "Service"
msgstr ""
#: mailu/ui/templates/fetch/list.html:23 mailu/ui/templates/services.html:11
msgid "Status"
msgstr "Stato"
#: mailu/ui/templates/services.html:12
msgid "PID"
msgstr "PID"
#: mailu/ui/templates/services.html:13
msgid "Image"
msgstr "Immagine"
#: mailu/ui/templates/services.html:14
msgid "Started"
msgstr "Avviato"
#: mailu/ui/templates/services.html:15
msgid "Last update"
msgstr "Ultimo aggiornamento"
#: mailu/ui/templates/sidebar.html:8
msgid "My account"
msgstr "Il mio account"
#: mailu/ui/templates/sidebar.html:11 mailu/ui/templates/user/list.html:34
msgid "Settings"
msgstr "Impostazioni"
#: mailu/ui/templates/sidebar.html:21 mailu/ui/templates/user/list.html:35
msgid "Auto-forward"
msgstr "Auto-inoltro"
#: mailu/ui/templates/sidebar.html:26 mailu/ui/templates/user/list.html:36
msgid "Auto-reply"
msgstr "Auto-risponditore"
#: mailu/ui/templates/fetch/list.html:4 mailu/ui/templates/sidebar.html:31
#: mailu/ui/templates/user/list.html:37
msgid "Fetched accounts"
msgstr ""
#: mailu/ui/templates/sidebar.html:93
msgid "Sign out"
msgstr "Esci"
#: mailu/ui/templates/sidebar.html:40
msgid "Administration"
msgstr "Amministrazione"
#: mailu/ui/templates/sidebar.html:54
msgid "Administrators"
msgstr "Amministratori"
#: mailu/ui/templates/sidebar.html:66
msgid "Mail domains"
msgstr "Domini mail"
#: mailu/ui/templates/sidebar.html:87
msgid "Help"
msgstr "Aiuto"
#: mailu/ui/templates/working.html:4
msgid "We are still working on this feature!"
msgstr "Stiamo ancora lavorando a questa funzionalità!"
#: mailu/ui/templates/admin/create.html:4
msgid "Add a global administrator"
msgstr "Aggiungi un amministratore globale"
#: mailu/ui/templates/admin/list.html:4
msgid "Global administrators"
msgstr "Amministratori globali"
#: mailu/ui/templates/admin/list.html:9
msgid "Add administrator"
msgstr "Aggiungi amministratore"
#: mailu/ui/templates/admin/list.html:16 mailu/ui/templates/alias/list.html:18
#: mailu/ui/templates/alternative/list.html:18
#: mailu/ui/templates/domain/list.html:16 mailu/ui/templates/fetch/list.html:18
#: mailu/ui/templates/manager/list.html:18
#: mailu/ui/templates/relay/list.html:16 mailu/ui/templates/token/list.html:18
#: mailu/ui/templates/user/list.html:18
msgid "Actions"
msgstr "Azioni"
#: mailu/ui/templates/admin/list.html:17 mailu/ui/templates/alias/list.html:19
#: mailu/ui/templates/manager/list.html:19 mailu/ui/templates/user/list.html:20
msgid "Email"
msgstr "Email"
#: mailu/ui/templates/admin/list.html:22 mailu/ui/templates/alias/list.html:29
#: mailu/ui/templates/alternative/list.html:25
#: mailu/ui/templates/domain/list.html:31 mailu/ui/templates/fetch/list.html:31
#: mailu/ui/templates/manager/list.html:24
#: mailu/ui/templates/relay/list.html:27 mailu/ui/templates/token/list.html:26
#: mailu/ui/templates/user/list.html:31
msgid "Delete"
msgstr "Elimina"
#: mailu/ui/templates/alias/create.html:4
msgid "Create alias"
msgstr "Crea alias"
#: mailu/ui/templates/alias/edit.html:4
msgid "Edit alias"
msgstr "Modifica alias"
#: mailu/ui/templates/alias/list.html:4
msgid "Alias list"
msgstr "Lista alias"
#: mailu/ui/templates/alias/list.html:12
msgid "Add alias"
msgstr "Aggiungi alias"
#: mailu/ui/templates/alias/list.html:22
#: mailu/ui/templates/alternative/list.html:20
#: mailu/ui/templates/domain/list.html:22 mailu/ui/templates/fetch/list.html:24
#: mailu/ui/templates/relay/list.html:20 mailu/ui/templates/token/list.html:21
#: mailu/ui/templates/user/list.html:24
msgid "Created"
msgstr "Creato"
#: mailu/ui/templates/alias/list.html:23 mailu/ui/templates/domain/list.html:23
#: mailu/ui/templates/fetch/list.html:25 mailu/ui/templates/relay/list.html:21
#: mailu/ui/templates/user/list.html:25
msgid "Last edit"
msgstr "Ultima modifica"
#: mailu/ui/templates/alias/list.html:28 mailu/ui/templates/domain/list.html:30
#: mailu/ui/templates/fetch/list.html:30 mailu/ui/templates/relay/list.html:26
#: mailu/ui/templates/user/list.html:30
msgid "Edit"
msgstr "Modifica"
#: mailu/ui/templates/domain/create.html:4
#: mailu/ui/templates/domain/list.html:9
msgid "New domain"
msgstr "Nuovo dominio"
#: mailu/ui/templates/domain/details.html:4
msgid "Domain details"
msgstr "Dettagli dominio"
#: mailu/ui/templates/domain/details.html:13
msgid "Regenerate keys"
msgstr "Rigenera chiavi"
#: mailu/ui/templates/domain/details.html:25
msgid "DNS MX entry"
msgstr ""
#: mailu/ui/templates/domain/details.html:29
msgid "DNS SPF entries"
msgstr ""
#: mailu/ui/templates/domain/details.html:36
msgid "DKIM public key"
msgstr ""
#: mailu/ui/templates/domain/details.html:40
msgid "DNS DKIM entry"
msgstr ""
#: mailu/ui/templates/domain/details.html:44
msgid "DNS DMARC entry"
msgstr ""
#: mailu/ui/templates/domain/edit.html:4
msgid "Edit domain"
msgstr "Modifica dominio"
#: mailu/ui/templates/domain/list.html:4
msgid "Domain list"
msgstr "Lista domini"
#: mailu/ui/templates/domain/list.html:17
msgid "Manage"
msgstr "Gestisci"
#: mailu/ui/templates/domain/list.html:19
msgid "Mailbox count"
msgstr "Conteggio mailbox"
#: mailu/ui/templates/domain/list.html:20
msgid "Alias count"
msgstr "Conteggio alias"
#: mailu/ui/templates/domain/list.html:28
msgid "Details"
msgstr "Dettagli"
#: mailu/ui/templates/domain/list.html:35
msgid "Users"
msgstr "Utenti"
#: mailu/ui/templates/domain/list.html:36
msgid "Aliases"
msgstr "Alias"
#: mailu/ui/templates/domain/list.html:37
msgid "Managers"
msgstr "Manager"
#: mailu/ui/templates/fetch/create.html:4
msgid "Add a fetched account"
msgstr ""
#: mailu/ui/templates/fetch/edit.html:4
msgid "Update a fetched account"
msgstr ""
#: mailu/ui/templates/fetch/list.html:12
msgid "Add an account"
msgstr "Aggiungi un account"
#: mailu/ui/templates/fetch/list.html:19
msgid "Endpoint"
msgstr ""
#: mailu/ui/templates/fetch/list.html:22
msgid "Last check"
msgstr "Ultimo controllo"
#: mailu/ui/templates/manager/create.html:4
msgid "Add a manager"
msgstr "Aggiungi un manager"
#: mailu/ui/templates/manager/list.html:4
msgid "Manager list"
msgstr ""
#: mailu/ui/templates/manager/list.html:12
msgid "Add manager"
msgstr "Aggiungi manager"
#: mailu/ui/forms.py:152
msgid "Announcement subject"
msgstr ""
#: mailu/ui/forms.py:154
msgid "Announcement body"
msgstr "Corpo dell'annuncio"
#: mailu/ui/forms.py:156
msgid "Send"
msgstr "Invia"
#: mailu/ui/templates/announcement.html:4
msgid "Public announcement"
msgstr "Annuncio pubblico"
#: mailu/ui/templates/announcement.html:8
msgid "from"
msgstr "da"
#: mailu/ui/templates/sidebar.html:49
msgid "Announcement"
msgstr "Annuncio"
#: mailu/ui/templates/user/create.html:4
msgid "New user"
msgstr "Nuovo utente"
#: mailu/ui/templates/user/edit.html:4
msgid "Edit user"
msgstr "Modifica utente"
#: mailu/ui/templates/user/forward.html:4
msgid "Forward emails"
msgstr "Inoltra email"
#: mailu/ui/templates/user/list.html:4
msgid "User list"
msgstr "Lista utenti"
#: mailu/ui/templates/user/list.html:12
msgid "Add user"
msgstr "Aggiungi utente"
#: mailu/ui/templates/user/list.html:19 mailu/ui/templates/user/settings.html:4
msgid "User settings"
msgstr "Impostazioni utente"
#: mailu/ui/templates/user/list.html:21
msgid "Features"
msgstr "Funzionalità"
#: mailu/ui/templates/user/password.html:4
msgid "Password update"
msgstr "Aggiornamento password"
#: mailu/ui/templates/user/reply.html:4
msgid "Automatic reply"
msgstr "Risposta automatica"
#: mailu/ui/forms.py:49
msgid "Maximum user quota"
msgstr ""
#: mailu/ui/forms.py:92
msgid "Keep a copy of the emails"
msgstr "Conserva una copia delle email"
#: mailu/ui/forms.py:147
msgid "Keep emails on the server"
msgstr "Conserva email sul server"
#: mailu/ui/templates/fetch/list.html:21
msgid "Keep emails"
msgstr "Conserva email"
#: mailu/ui/templates/fetch/list.html:35
msgid "yes"
msgstr "si"
#: mailu/ui/templates/fetch/list.html:35
msgid "no"
msgstr "no"
#: mailu/ui/forms.py:55
msgid "Alternative name"
msgstr "Nome alternativo"
#: mailu/ui/forms.py:60
msgid "Relayed domain name"
msgstr ""
#: mailu/ui/forms.py:61 mailu/ui/templates/relay/list.html:18
msgid "Remote host"
msgstr "Host remoto"
#: mailu/ui/templates/sidebar.html:59
msgid "Relayed domains"
msgstr ""
#: mailu/ui/templates/alternative/create.html:4
msgid "Create alternative domain"
msgstr ""
#: mailu/ui/templates/alternative/list.html:4
msgid "Alternative domain list"
msgstr ""
#: mailu/ui/templates/alternative/list.html:12
msgid "Add alternative"
msgstr "Aggiungi alternativa"
#: mailu/ui/templates/alternative/list.html:19
msgid "Name"
msgstr "Nome"
#: mailu/ui/templates/domain/list.html:39
msgid "Alternatives"
msgstr "Alternative"
#: mailu/ui/templates/relay/create.html:4
msgid "New relay domain"
msgstr ""
#: mailu/ui/templates/relay/edit.html:4
msgid "Edit relayd domain"
msgstr ""
#: mailu/ui/templates/relay/list.html:4
msgid "Relayed domain list"
msgstr ""
#: mailu/ui/templates/relay/list.html:9
msgid "New relayed domain"
msgstr ""
#: mailu/ui/forms.py:109
msgid "Your token (write it down, as it will never be displayed again)"
msgstr ""
#: mailu/ui/forms.py:114 mailu/ui/templates/token/list.html:20
msgid "Authorized IP"
msgstr "IP Autorizzato"
#: mailu/ui/templates/sidebar.html:36 mailu/ui/templates/token/list.html:4
msgid "Authentication tokens"
msgstr "Token di autenticazione"
#: mailu/ui/templates/sidebar.html:72
msgid "Go to"
msgstr "Vai a"
#: mailu/ui/templates/sidebar.html:76
msgid "Webmail"
msgstr "Webmail"
#: mailu/ui/templates/sidebar.html:82
msgid "Website"
msgstr "Sito web"
#: mailu/ui/templates/token/create.html:4
msgid "Create an authentication token"
msgstr "Crea un token di autenticazione"
#: mailu/ui/templates/token/list.html:12
msgid "New token"
msgstr "Nuovo token"
#: mailu/ui/templates/user/create.html:15
msgid "General"
msgstr "Generale"
#: mailu/ui/templates/user/create.html:21
msgid "Features and quotas"
msgstr "Funzionalità e quota"
#: mailu/ui/templates/user/settings.html:14
msgid "General settings"
msgstr "Impostazioni generali"
#: mailu/ui/templates/user/settings.html:18
msgid "Antispam"
msgstr "Antispam"
#: mailu/ui/forms.py:80
msgid "Spam filter tolerance"
msgstr "Tolleranza filtro spam"

View File

@@ -0,0 +1,623 @@
msgid ""
msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: POEditor.com\n"
"Project-Id-Version: Mailu\n"
"Language: nl\n"
#: mailu/ui/forms.py:32
msgid "Invalid email address."
msgstr "Ongeldig e-mailadres."
#: mailu/ui/forms.py:36
msgid "Confirm"
msgstr "Bevestigen"
#: mailu/ui/forms.py:40 mailu/ui/forms.py:67
msgid "E-mail"
msgstr "E-mail"
#: mailu/ui/forms.py:41 mailu/ui/forms.py:68 mailu/ui/forms.py:85
#: mailu/ui/forms.py:146
msgid "Password"
msgstr "Wachtwoord"
#: mailu/ui/forms.py:42 mailu/ui/templates/login.html:4
#: mailu/ui/templates/sidebar.html:99
msgid "Sign in"
msgstr "Aanmelden"
#: mailu/ui/forms.py:46 mailu/ui/templates/domain/details.html:21
#: mailu/ui/templates/domain/list.html:18 mailu/ui/templates/relay/list.html:17
msgid "Domain name"
msgstr "Domeinnaam"
#: mailu/ui/forms.py:47
msgid "Maximum user count"
msgstr "Maximaal aantal gebruikers"
#: mailu/ui/forms.py:48
msgid "Maximum alias count"
msgstr "Maximaal aantal aliasen"
#: mailu/ui/forms.py:50 mailu/ui/forms.py:62 mailu/ui/forms.py:73
#: mailu/ui/forms.py:112 mailu/ui/forms.py:124
#: mailu/ui/templates/alias/list.html:21 mailu/ui/templates/domain/list.html:21
#: mailu/ui/templates/relay/list.html:19 mailu/ui/templates/token/list.html:19
#: mailu/ui/templates/user/list.html:23
msgid "Comment"
msgstr "Opmerking"
#: mailu/ui/forms.py:51 mailu/ui/forms.py:56 mailu/ui/forms.py:63
#: mailu/ui/forms.py:116 mailu/ui/forms.py:125
msgid "Create"
msgstr "Aanmaken"
#: mailu/ui/forms.py:69
msgid "Confirm password"
msgstr "Bevestig wachtwoord"
#: mailu/ui/forms.py:70 mailu/ui/templates/user/list.html:22
msgid "Quota"
msgstr "Quotum"
#: mailu/ui/forms.py:71
msgid "Allow IMAP access"
msgstr "IMAP toestaan"
#: mailu/ui/forms.py:72
msgid "Allow POP3 access"
msgstr "POP3 toestaan"
#: mailu/ui/forms.py:74
msgid "Save"
msgstr "Opslaan"
#: mailu/ui/forms.py:78
msgid "Displayed name"
msgstr "Getoonde naam"
#: mailu/ui/forms.py:79
msgid "Enable spam filter"
msgstr "Spamfilter inschakelen"
#: mailu/ui/forms.py:80
msgid "Spam filter threshold"
msgstr "Spamfilter drempel"
#: mailu/ui/forms.py:81
msgid "Save settings"
msgstr "Instellingen opslaan"
#: mailu/ui/forms.py:86
msgid "Password check"
msgstr "Wachtwoord controle"
#: mailu/ui/forms.py:87 mailu/ui/templates/sidebar.html:16
msgid "Update password"
msgstr "Wachtwoord veranderen"
#: mailu/ui/forms.py:91
msgid "Enable forwarding"
msgstr "Doorsturen inschakelen"
#: mailu/ui/forms.py:94 mailu/ui/forms.py:123
#: mailu/ui/templates/alias/list.html:20
msgid "Destination"
msgstr "Bestemming"
#: mailu/ui/forms.py:96 mailu/ui/forms.py:104
msgid "Update"
msgstr "Bijwerken"
#: mailu/ui/forms.py:100
msgid "Enable automatic reply"
msgstr "Automatisch antwoord inschakelen"
#: mailu/ui/forms.py:101
msgid "Reply subject"
msgstr "Antwoord onderwerp"
#: mailu/ui/forms.py:102
msgid "Reply body"
msgstr "Antwoord bericht"
#: mailu/ui/forms.py:120
msgid "Alias"
msgstr "Alias"
#: mailu/ui/forms.py:122
msgid "Use SQL LIKE Syntax (e.g. for catch-all aliases)"
msgstr "Gebruik SQL LIKE syntax (bijv. voor alles-afvangen aliasen)"
#: mailu/ui/forms.py:129
msgid "Admin email"
msgstr "Beheerder e-mail"
#: mailu/ui/forms.py:130 mailu/ui/forms.py:135 mailu/ui/forms.py:148
msgid "Submit"
msgstr "Verzenden"
#: mailu/ui/forms.py:134
msgid "Manager email"
msgstr "Manager e-mail"
#: mailu/ui/forms.py:139
msgid "Protocol"
msgstr "Protocol"
#: mailu/ui/forms.py:142
msgid "Hostname or IP"
msgstr "Hostnaam of IP"
#: mailu/ui/forms.py:143
msgid "TCP port"
msgstr "TCP poort"
#: mailu/ui/forms.py:144
msgid "Enable TLS"
msgstr "TLS inschakelen"
#: mailu/ui/forms.py:145 mailu/ui/templates/fetch/list.html:20
msgid "Username"
msgstr "Gebruikersnaam"
#: mailu/ui/templates/confirm.html:4
msgid "Confirm action"
msgstr "Actie bevestigen"
#: mailu/ui/templates/confirm.html:13
msgid "You are about to %(action)s. Please confirm your action."
msgstr "U gaat %(action)s uitvoeren. Bevestig uw actie."
#: mailu/ui/templates/docker-error.html:4
msgid "Docker error"
msgstr "Docker foutmelding"
#: mailu/ui/templates/docker-error.html:12
msgid "An error occurred while talking to the Docker server."
msgstr "Er is een fout opgetreden tijdens het praten met de Docker server."
#: mailu/admin/templates/login.html:6
msgid "Your account"
msgstr "Uw account"
#: mailu/ui/templates/login.html:8
msgid "to access the administration tools"
msgstr ""
#: mailu/ui/templates/services.html:4 mailu/ui/templates/sidebar.html:44
msgid "Services status"
msgstr "Status diensten"
#: mailu/ui/templates/services.html:10
msgid "Service"
msgstr "Dienst"
#: mailu/ui/templates/fetch/list.html:23 mailu/ui/templates/services.html:11
msgid "Status"
msgstr "Status"
#: mailu/ui/templates/services.html:12
msgid "PID"
msgstr "PID"
#: mailu/ui/templates/services.html:13
msgid "Image"
msgstr "Image"
#: mailu/ui/templates/services.html:14
msgid "Started"
msgstr "Gestart"
#: mailu/ui/templates/services.html:15
msgid "Last update"
msgstr "Laatste aanpassing"
#: mailu/ui/templates/sidebar.html:8
msgid "My account"
msgstr "Mijn account"
#: mailu/ui/templates/sidebar.html:11 mailu/ui/templates/user/list.html:34
msgid "Settings"
msgstr "Instellingen"
#: mailu/ui/templates/sidebar.html:21 mailu/ui/templates/user/list.html:35
msgid "Auto-forward"
msgstr "Automatisch doorsturen"
#: mailu/ui/templates/sidebar.html:26 mailu/ui/templates/user/list.html:36
msgid "Auto-reply"
msgstr "Automatisch antwoorden"
#: mailu/ui/templates/fetch/list.html:4 mailu/ui/templates/sidebar.html:31
#: mailu/ui/templates/user/list.html:37
msgid "Fetched accounts"
msgstr "Opgehaalde accounts"
#: mailu/ui/templates/sidebar.html:93
msgid "Sign out"
msgstr "Afmelden"
#: mailu/ui/templates/sidebar.html:40
msgid "Administration"
msgstr "Beheer"
#: mailu/ui/templates/sidebar.html:54
msgid "Administrators"
msgstr "Beheerders"
#: mailu/ui/templates/sidebar.html:66
msgid "Mail domains"
msgstr "E-mail domeinen"
#: mailu/ui/templates/sidebar.html:87
msgid "Help"
msgstr "Help"
#: mailu/ui/templates/working.html:4
msgid "We are still working on this feature!"
msgstr "We zijn nog aan deze functionaliteit aan het werken."
#: mailu/ui/templates/admin/create.html:4
msgid "Add a global administrator"
msgstr "Globale beheerder toevoegen"
#: mailu/ui/templates/admin/list.html:4
msgid "Global administrators"
msgstr "Globale beheerders"
#: mailu/ui/templates/admin/list.html:9
msgid "Add administrator"
msgstr "Beheerder toevoegen"
#: mailu/ui/templates/admin/list.html:16 mailu/ui/templates/alias/list.html:18
#: mailu/ui/templates/alternative/list.html:18
#: mailu/ui/templates/domain/list.html:16 mailu/ui/templates/fetch/list.html:18
#: mailu/ui/templates/manager/list.html:18
#: mailu/ui/templates/relay/list.html:16 mailu/ui/templates/token/list.html:18
#: mailu/ui/templates/user/list.html:18
msgid "Actions"
msgstr "Acties"
#: mailu/ui/templates/admin/list.html:17 mailu/ui/templates/alias/list.html:19
#: mailu/ui/templates/manager/list.html:19 mailu/ui/templates/user/list.html:20
msgid "Email"
msgstr "E-mail"
#: mailu/ui/templates/admin/list.html:22 mailu/ui/templates/alias/list.html:29
#: mailu/ui/templates/alternative/list.html:25
#: mailu/ui/templates/domain/list.html:31 mailu/ui/templates/fetch/list.html:31
#: mailu/ui/templates/manager/list.html:24
#: mailu/ui/templates/relay/list.html:27 mailu/ui/templates/token/list.html:26
#: mailu/ui/templates/user/list.html:31
msgid "Delete"
msgstr "Verwijderen"
#: mailu/ui/templates/alias/create.html:4
msgid "Create alias"
msgstr "Alias aanmaken"
#: mailu/ui/templates/alias/edit.html:4
msgid "Edit alias"
msgstr "Alias bewerken"
#: mailu/ui/templates/alias/list.html:4
msgid "Alias list"
msgstr "Aliasen overzicht"
#: mailu/ui/templates/alias/list.html:12
msgid "Add alias"
msgstr "Alias toevoegen"
#: mailu/ui/templates/alias/list.html:22
#: mailu/ui/templates/alternative/list.html:20
#: mailu/ui/templates/domain/list.html:22 mailu/ui/templates/fetch/list.html:24
#: mailu/ui/templates/relay/list.html:20 mailu/ui/templates/token/list.html:21
#: mailu/ui/templates/user/list.html:24
msgid "Created"
msgstr "Aangemaakt"
#: mailu/ui/templates/alias/list.html:23 mailu/ui/templates/domain/list.html:23
#: mailu/ui/templates/fetch/list.html:25 mailu/ui/templates/relay/list.html:21
#: mailu/ui/templates/user/list.html:25
msgid "Last edit"
msgstr "Laatste aanpassing"
#: mailu/ui/templates/alias/list.html:28 mailu/ui/templates/domain/list.html:30
#: mailu/ui/templates/fetch/list.html:30 mailu/ui/templates/relay/list.html:26
#: mailu/ui/templates/user/list.html:30
msgid "Edit"
msgstr "Aanpassen"
#: mailu/ui/templates/domain/create.html:4
#: mailu/ui/templates/domain/list.html:9
msgid "New domain"
msgstr "Nieuw domein"
#: mailu/ui/templates/domain/details.html:4
msgid "Domain details"
msgstr "Domein details"
#: mailu/ui/templates/domain/details.html:13
msgid "Regenerate keys"
msgstr "Hergenereer sleutels"
#: mailu/ui/templates/domain/details.html:25
msgid "DNS MX entry"
msgstr ""
#: mailu/ui/templates/domain/details.html:29
msgid "DNS SPF entries"
msgstr ""
#: mailu/ui/templates/domain/details.html:36
msgid "DKIM public key"
msgstr "DKIM publieke sleutel"
#: mailu/ui/templates/domain/details.html:40
msgid "DNS DKIM entry"
msgstr ""
#: mailu/ui/templates/domain/details.html:44
msgid "DNS DMARC entry"
msgstr ""
#: mailu/ui/templates/domain/edit.html:4
msgid "Edit domain"
msgstr "Domein bewerken"
#: mailu/ui/templates/domain/list.html:4
msgid "Domain list"
msgstr "Domeinen overzicht"
#: mailu/ui/templates/domain/list.html:17
msgid "Manage"
msgstr "Beheer"
#: mailu/ui/templates/domain/list.html:19
msgid "Mailbox count"
msgstr "Aantal mailboxen"
#: mailu/ui/templates/domain/list.html:20
msgid "Alias count"
msgstr "Aantal aliasen"
#: mailu/ui/templates/domain/list.html:28
msgid "Details"
msgstr "Details"
#: mailu/ui/templates/domain/list.html:35
msgid "Users"
msgstr "Gebruikers"
#: mailu/ui/templates/domain/list.html:36
msgid "Aliases"
msgstr "Aliasen"
#: mailu/ui/templates/domain/list.html:37
msgid "Managers"
msgstr "Managers"
#: mailu/ui/templates/fetch/create.html:4
msgid "Add a fetched account"
msgstr "Opgehaald account toevoegen"
#: mailu/ui/templates/fetch/edit.html:4
msgid "Update a fetched account"
msgstr "Opgehaald account aanpassen"
#: mailu/ui/templates/fetch/list.html:12
msgid "Add an account"
msgstr "Account toevoegen"
#: mailu/ui/templates/fetch/list.html:19
msgid "Endpoint"
msgstr ""
#: mailu/ui/templates/fetch/list.html:22
msgid "Last check"
msgstr "Laatste controle"
#: mailu/ui/templates/manager/create.html:4
msgid "Add a manager"
msgstr "Manager toevoegen"
#: mailu/ui/templates/manager/list.html:4
msgid "Manager list"
msgstr "Manager overzicht"
#: mailu/ui/templates/manager/list.html:12
msgid "Add manager"
msgstr "Manager toevoegen"
#: mailu/ui/forms.py:152
msgid "Announcement subject"
msgstr "Mededeling onderwerp"
#: mailu/ui/forms.py:154
msgid "Announcement body"
msgstr "Mededeling bericht"
#: mailu/ui/forms.py:156
msgid "Send"
msgstr "Versturen"
#: mailu/ui/templates/announcement.html:4
msgid "Public announcement"
msgstr "Publieke mededeling"
#: mailu/ui/templates/announcement.html:8
msgid "from"
msgstr "van"
#: mailu/ui/templates/sidebar.html:49
msgid "Announcement"
msgstr "Mededeling"
#: mailu/ui/templates/user/create.html:4
msgid "New user"
msgstr "Nieuwe gebruiker"
#: mailu/ui/templates/user/edit.html:4
msgid "Edit user"
msgstr "Gebruiker aanpassen"
#: mailu/ui/templates/user/forward.html:4
msgid "Forward emails"
msgstr ""
#: mailu/ui/templates/user/list.html:4
msgid "User list"
msgstr "Gebruikers overzicht"
#: mailu/ui/templates/user/list.html:12
msgid "Add user"
msgstr "Gebruiker toevoegen"
#: mailu/ui/templates/user/list.html:19 mailu/ui/templates/user/settings.html:4
msgid "User settings"
msgstr "Gebruiker instellingen"
#: mailu/ui/templates/user/list.html:21
msgid "Features"
msgstr "Functionaliteiten"
#: mailu/ui/templates/user/password.html:4
msgid "Password update"
msgstr "Wachtwoord aanpassen"
#: mailu/ui/templates/user/reply.html:4
msgid "Automatic reply"
msgstr "Automatisch antwoord"
#: mailu/ui/forms.py:49
msgid "Maximum user quota"
msgstr "Maximum quotum gebruikers"
#: mailu/ui/forms.py:92
msgid "Keep a copy of the emails"
msgstr "Behoud een kopie van de e-mails"
#: mailu/ui/forms.py:147
msgid "Keep emails on the server"
msgstr "Behoud de e-mails op de server"
#: mailu/ui/templates/fetch/list.html:21
msgid "Keep emails"
msgstr "Behoud e-mails"
#: mailu/ui/templates/fetch/list.html:35
msgid "yes"
msgstr "ja"
#: mailu/ui/templates/fetch/list.html:35
msgid "no"
msgstr "nee"
#: mailu/ui/forms.py:55
msgid "Alternative name"
msgstr "Alternatieve naam"
#: mailu/ui/forms.py:60
msgid "Relayed domain name"
msgstr ""
#: mailu/ui/forms.py:61 mailu/ui/templates/relay/list.html:18
msgid "Remote host"
msgstr ""
#: mailu/ui/templates/sidebar.html:59
msgid "Relayed domains"
msgstr ""
#: mailu/ui/templates/alternative/create.html:4
msgid "Create alternative domain"
msgstr "Alternatief domein aanmaken"
#: mailu/ui/templates/alternative/list.html:4
msgid "Alternative domain list"
msgstr "Alternatieve domeinen overzicht"
#: mailu/ui/templates/alternative/list.html:12
msgid "Add alternative"
msgstr "Alternatief toevoegen"
#: mailu/ui/templates/alternative/list.html:19
msgid "Name"
msgstr "Naam"
#: mailu/ui/templates/domain/list.html:39
msgid "Alternatives"
msgstr "Alternatieven"
#: mailu/ui/templates/relay/create.html:4
msgid "New relay domain"
msgstr ""
#: mailu/ui/templates/relay/edit.html:4
msgid "Edit relayd domain"
msgstr ""
#: mailu/ui/templates/relay/list.html:4
msgid "Relayed domain list"
msgstr ""
#: mailu/ui/templates/relay/list.html:9
msgid "New relayed domain"
msgstr ""
#: mailu/ui/forms.py:109
msgid "Your token (write it down, as it will never be displayed again)"
msgstr ""
#: mailu/ui/forms.py:114 mailu/ui/templates/token/list.html:20
msgid "Authorized IP"
msgstr ""
#: mailu/ui/templates/sidebar.html:36 mailu/ui/templates/token/list.html:4
msgid "Authentication tokens"
msgstr ""
#: mailu/ui/templates/sidebar.html:72
msgid "Go to"
msgstr ""
#: mailu/ui/templates/sidebar.html:76
msgid "Webmail"
msgstr ""
#: mailu/ui/templates/sidebar.html:82
msgid "Website"
msgstr ""
#: mailu/ui/templates/token/create.html:4
msgid "Create an authentication token"
msgstr ""
#: mailu/ui/templates/token/list.html:12
msgid "New token"
msgstr ""
#: mailu/ui/templates/user/create.html:15
msgid "General"
msgstr ""
#: mailu/ui/templates/user/create.html:21
msgid "Features and quotas"
msgstr ""
#: mailu/ui/templates/user/settings.html:14
msgid "General settings"
msgstr ""
#: mailu/ui/templates/user/settings.html:18
msgid "Antispam"
msgstr ""
#: mailu/ui/forms.py:80
msgid "Spam filter tolerance"
msgstr ""

View File

@@ -0,0 +1,624 @@
msgid ""
msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: POEditor.com\n"
"Project-Id-Version: Mailu\n"
"Language: pl\n"
#: mailu/ui/forms.py:32
msgid "Invalid email address."
msgstr "Nieprawidłowy adres e-mail."
#: mailu/ui/forms.py:36
msgid "Confirm"
msgstr "Zatwierdź"
#: mailu/ui/forms.py:40 mailu/ui/forms.py:67
msgid "E-mail"
msgstr "E-mail"
#: mailu/ui/forms.py:41 mailu/ui/forms.py:68 mailu/ui/forms.py:85
#: mailu/ui/forms.py:146
msgid "Password"
msgstr "Hasło"
#: mailu/ui/forms.py:42 mailu/ui/templates/login.html:4
#: mailu/ui/templates/sidebar.html:99
msgid "Sign in"
msgstr "Zaloguj"
#: mailu/ui/forms.py:46 mailu/ui/templates/domain/details.html:21
#: mailu/ui/templates/domain/list.html:18 mailu/ui/templates/relay/list.html:17
msgid "Domain name"
msgstr "Nazwa domeny"
#: mailu/ui/forms.py:47
msgid "Maximum user count"
msgstr "Maksymalna liczba użytkowników"
#: mailu/ui/forms.py:48
msgid "Maximum alias count"
msgstr "Maksymalna liczba aliasów"
#. Needs more context - is that a verb or a noun?
#: mailu/ui/forms.py:50 mailu/ui/forms.py:62 mailu/ui/forms.py:73
#: mailu/ui/forms.py:112 mailu/ui/forms.py:124
#: mailu/ui/templates/alias/list.html:21 mailu/ui/templates/domain/list.html:21
#: mailu/ui/templates/relay/list.html:19 mailu/ui/templates/token/list.html:19
#: mailu/ui/templates/user/list.html:23
msgid "Comment"
msgstr "Komentarz"
#: mailu/ui/forms.py:51 mailu/ui/forms.py:56 mailu/ui/forms.py:63
#: mailu/ui/forms.py:116 mailu/ui/forms.py:125
msgid "Create"
msgstr "Utwórz"
#: mailu/ui/forms.py:69
msgid "Confirm password"
msgstr "Potwierdź hasło"
#: mailu/ui/forms.py:70 mailu/ui/templates/user/list.html:22
msgid "Quota"
msgstr ""
#: mailu/ui/forms.py:71
msgid "Allow IMAP access"
msgstr "Zezwalaj na dostęp przez protokół IMAP"
#: mailu/ui/forms.py:72
msgid "Allow POP3 access"
msgstr "Zezwalaj na dostęp przez protokół POP3"
#: mailu/ui/forms.py:74
msgid "Save"
msgstr "Zapisz"
#: mailu/ui/forms.py:78
msgid "Displayed name"
msgstr "Nazwa wyświetlana"
#: mailu/ui/forms.py:79
msgid "Enable spam filter"
msgstr "Włącz filtr antyspamowy"
#: mailu/ui/forms.py:80
msgid "Spam filter threshold"
msgstr "Próg filtra antyspamowego"
#: mailu/ui/forms.py:81
msgid "Save settings"
msgstr "Zapisz ustawienia"
#: mailu/ui/forms.py:86
msgid "Password check"
msgstr ""
#: mailu/ui/forms.py:87 mailu/ui/templates/sidebar.html:16
msgid "Update password"
msgstr "Zmień hasło"
#: mailu/ui/forms.py:91
msgid "Enable forwarding"
msgstr "Włącz przekierowanie poczty"
#: mailu/ui/forms.py:94 mailu/ui/forms.py:123
#: mailu/ui/templates/alias/list.html:20
msgid "Destination"
msgstr "Adres docelowy"
#: mailu/ui/forms.py:96 mailu/ui/forms.py:104
msgid "Update"
msgstr "Aktualizuj"
#: mailu/ui/forms.py:100
msgid "Enable automatic reply"
msgstr "Włącz automatyczną odpowiedź"
#: mailu/ui/forms.py:101
msgid "Reply subject"
msgstr "Temat odpowiedzi"
#: mailu/ui/forms.py:102
msgid "Reply body"
msgstr "Treść odpowiedzi"
#: mailu/ui/forms.py:120
msgid "Alias"
msgstr "Alias"
#: mailu/ui/forms.py:122
msgid "Use SQL LIKE Syntax (e.g. for catch-all aliases)"
msgstr "Używaj składni SQL LIKE (np. do adresów catch-all)"
#: mailu/ui/forms.py:129
msgid "Admin email"
msgstr "E-mail administratora"
#: mailu/ui/forms.py:130 mailu/ui/forms.py:135 mailu/ui/forms.py:148
msgid "Submit"
msgstr "Prześlij"
#: mailu/ui/forms.py:134
msgid "Manager email"
msgstr ""
#: mailu/ui/forms.py:139
msgid "Protocol"
msgstr "Protokół"
#: mailu/ui/forms.py:142
msgid "Hostname or IP"
msgstr "Nazwa hosta lub adres IP"
#: mailu/ui/forms.py:143
msgid "TCP port"
msgstr "Port TCP"
#: mailu/ui/forms.py:144
msgid "Enable TLS"
msgstr "Włącz TLS"
#: mailu/ui/forms.py:145 mailu/ui/templates/fetch/list.html:20
msgid "Username"
msgstr "Nazwa użytkownika"
#: mailu/ui/templates/confirm.html:4
msgid "Confirm action"
msgstr "Potwierdź wykonanie czynności"
#: mailu/ui/templates/confirm.html:13
msgid "You are about to %(action)s. Please confirm your action."
msgstr "Zamierzasz wykonać następujące czynności: %(action)s. Potwierdź wykonanie czynności."
#: mailu/ui/templates/docker-error.html:4
msgid "Docker error"
msgstr "Błąd Dockera"
#: mailu/ui/templates/docker-error.html:12
msgid "An error occurred while talking to the Docker server."
msgstr "Wystąpił błąd komunikacji z serwerem Dockera."
#: mailu/admin/templates/login.html:6
msgid "Your account"
msgstr "Twoje konto"
#: mailu/ui/templates/login.html:8
msgid "to access the administration tools"
msgstr ""
#: mailu/ui/templates/services.html:4 mailu/ui/templates/sidebar.html:44
msgid "Services status"
msgstr "Status usług"
#: mailu/ui/templates/services.html:10
msgid "Service"
msgstr "Usługa"
#: mailu/ui/templates/fetch/list.html:23 mailu/ui/templates/services.html:11
msgid "Status"
msgstr "Status"
#: mailu/ui/templates/services.html:12
msgid "PID"
msgstr ""
#: mailu/ui/templates/services.html:13
msgid "Image"
msgstr ""
#: mailu/ui/templates/services.html:14
msgid "Started"
msgstr ""
#: mailu/ui/templates/services.html:15
msgid "Last update"
msgstr "Ostatnia aktualizacja"
#: mailu/ui/templates/sidebar.html:8
msgid "My account"
msgstr "Moje konto"
#: mailu/ui/templates/sidebar.html:11 mailu/ui/templates/user/list.html:34
msgid "Settings"
msgstr "Ustawienia"
#: mailu/ui/templates/sidebar.html:21 mailu/ui/templates/user/list.html:35
msgid "Auto-forward"
msgstr "Automatyczne przekierowanie"
#: mailu/ui/templates/sidebar.html:26 mailu/ui/templates/user/list.html:36
msgid "Auto-reply"
msgstr "Automatyczna odpowiedź"
#: mailu/ui/templates/fetch/list.html:4 mailu/ui/templates/sidebar.html:31
#: mailu/ui/templates/user/list.html:37
msgid "Fetched accounts"
msgstr ""
#: mailu/ui/templates/sidebar.html:93
msgid "Sign out"
msgstr "Wyloguj"
#: mailu/ui/templates/sidebar.html:40
msgid "Administration"
msgstr "Administracja"
#: mailu/ui/templates/sidebar.html:54
msgid "Administrators"
msgstr "Administratorzy"
#: mailu/ui/templates/sidebar.html:66
msgid "Mail domains"
msgstr "Domeny pocztowe"
#: mailu/ui/templates/sidebar.html:87
msgid "Help"
msgstr "Pomoc"
#: mailu/ui/templates/working.html:4
msgid "We are still working on this feature!"
msgstr ""
#: mailu/ui/templates/admin/create.html:4
msgid "Add a global administrator"
msgstr "Dodaj administratora globalnego"
#: mailu/ui/templates/admin/list.html:4
msgid "Global administrators"
msgstr "Administratorzy globalni"
#: mailu/ui/templates/admin/list.html:9
msgid "Add administrator"
msgstr "Dodaj administratora"
#: mailu/ui/templates/admin/list.html:16 mailu/ui/templates/alias/list.html:18
#: mailu/ui/templates/alternative/list.html:18
#: mailu/ui/templates/domain/list.html:16 mailu/ui/templates/fetch/list.html:18
#: mailu/ui/templates/manager/list.html:18
#: mailu/ui/templates/relay/list.html:16 mailu/ui/templates/token/list.html:18
#: mailu/ui/templates/user/list.html:18
msgid "Actions"
msgstr "Czynności"
#: mailu/ui/templates/admin/list.html:17 mailu/ui/templates/alias/list.html:19
#: mailu/ui/templates/manager/list.html:19 mailu/ui/templates/user/list.html:20
msgid "Email"
msgstr "E-mail"
#: mailu/ui/templates/admin/list.html:22 mailu/ui/templates/alias/list.html:29
#: mailu/ui/templates/alternative/list.html:25
#: mailu/ui/templates/domain/list.html:31 mailu/ui/templates/fetch/list.html:31
#: mailu/ui/templates/manager/list.html:24
#: mailu/ui/templates/relay/list.html:27 mailu/ui/templates/token/list.html:26
#: mailu/ui/templates/user/list.html:31
msgid "Delete"
msgstr "Usuń"
#: mailu/ui/templates/alias/create.html:4
msgid "Create alias"
msgstr "Utwórz alias"
#: mailu/ui/templates/alias/edit.html:4
msgid "Edit alias"
msgstr "Edytuj alias"
#: mailu/ui/templates/alias/list.html:4
msgid "Alias list"
msgstr "Lista aliasów"
#: mailu/ui/templates/alias/list.html:12
msgid "Add alias"
msgstr "Dodaj alias"
#: mailu/ui/templates/alias/list.html:22
#: mailu/ui/templates/alternative/list.html:20
#: mailu/ui/templates/domain/list.html:22 mailu/ui/templates/fetch/list.html:24
#: mailu/ui/templates/relay/list.html:20 mailu/ui/templates/token/list.html:21
#: mailu/ui/templates/user/list.html:24
msgid "Created"
msgstr ""
#: mailu/ui/templates/alias/list.html:23 mailu/ui/templates/domain/list.html:23
#: mailu/ui/templates/fetch/list.html:25 mailu/ui/templates/relay/list.html:21
#: mailu/ui/templates/user/list.html:25
msgid "Last edit"
msgstr "Ostatnia edycja"
#: mailu/ui/templates/alias/list.html:28 mailu/ui/templates/domain/list.html:30
#: mailu/ui/templates/fetch/list.html:30 mailu/ui/templates/relay/list.html:26
#: mailu/ui/templates/user/list.html:30
msgid "Edit"
msgstr "Edytuj"
#: mailu/ui/templates/domain/create.html:4
#: mailu/ui/templates/domain/list.html:9
msgid "New domain"
msgstr "Nowa domena"
#: mailu/ui/templates/domain/details.html:4
msgid "Domain details"
msgstr "Szczegóły domeny"
#: mailu/ui/templates/domain/details.html:13
msgid "Regenerate keys"
msgstr "Wygeneruj ponownie klucze"
#: mailu/ui/templates/domain/details.html:25
msgid "DNS MX entry"
msgstr "Wpis MX DNS"
#: mailu/ui/templates/domain/details.html:29
msgid "DNS SPF entries"
msgstr "Wpisy SPF DNS"
#: mailu/ui/templates/domain/details.html:36
msgid "DKIM public key"
msgstr "Publiczny klucz DKIM"
#: mailu/ui/templates/domain/details.html:40
msgid "DNS DKIM entry"
msgstr "Wpis DKIM DNS"
#: mailu/ui/templates/domain/details.html:44
msgid "DNS DMARC entry"
msgstr "Wpis DMARC DNS"
#: mailu/ui/templates/domain/edit.html:4
msgid "Edit domain"
msgstr "Edytuj domenę"
#: mailu/ui/templates/domain/list.html:4
msgid "Domain list"
msgstr "Lista domen"
#: mailu/ui/templates/domain/list.html:17
msgid "Manage"
msgstr "Zarządzaj"
#: mailu/ui/templates/domain/list.html:19
msgid "Mailbox count"
msgstr "Liczba skrzynek pocztowych"
#: mailu/ui/templates/domain/list.html:20
msgid "Alias count"
msgstr "Liczba aliasów"
#: mailu/ui/templates/domain/list.html:28
msgid "Details"
msgstr "Szczegóły"
#: mailu/ui/templates/domain/list.html:35
msgid "Users"
msgstr "Użytkownicy"
#: mailu/ui/templates/domain/list.html:36
msgid "Aliases"
msgstr "Aliasy"
#: mailu/ui/templates/domain/list.html:37
msgid "Managers"
msgstr ""
#: mailu/ui/templates/fetch/create.html:4
msgid "Add a fetched account"
msgstr ""
#: mailu/ui/templates/fetch/edit.html:4
msgid "Update a fetched account"
msgstr ""
#: mailu/ui/templates/fetch/list.html:12
msgid "Add an account"
msgstr "Dodaj konto"
#: mailu/ui/templates/fetch/list.html:19
msgid "Endpoint"
msgstr ""
#: mailu/ui/templates/fetch/list.html:22
msgid "Last check"
msgstr ""
#: mailu/ui/templates/manager/create.html:4
msgid "Add a manager"
msgstr ""
#: mailu/ui/templates/manager/list.html:4
msgid "Manager list"
msgstr ""
#: mailu/ui/templates/manager/list.html:12
msgid "Add manager"
msgstr ""
#: mailu/ui/forms.py:152
msgid "Announcement subject"
msgstr "Temat ogłoszenia"
#: mailu/ui/forms.py:154
msgid "Announcement body"
msgstr "Treść ogłoszenia"
#: mailu/ui/forms.py:156
msgid "Send"
msgstr "Wyślij"
#: mailu/ui/templates/announcement.html:4
msgid "Public announcement"
msgstr "Publiczne ogłoszenie"
#: mailu/ui/templates/announcement.html:8
msgid "from"
msgstr "od"
#: mailu/ui/templates/sidebar.html:49
msgid "Announcement"
msgstr "Ogłoszenie"
#: mailu/ui/templates/user/create.html:4
msgid "New user"
msgstr "Nowy użytkownik"
#: mailu/ui/templates/user/edit.html:4
msgid "Edit user"
msgstr "Edytuj użytkownika"
#: mailu/ui/templates/user/forward.html:4
msgid "Forward emails"
msgstr "Przekieruj wiadomości e-mail"
#: mailu/ui/templates/user/list.html:4
msgid "User list"
msgstr "Lista użytkowników"
#: mailu/ui/templates/user/list.html:12
msgid "Add user"
msgstr "Dodaj użytkownika"
#: mailu/ui/templates/user/list.html:19 mailu/ui/templates/user/settings.html:4
msgid "User settings"
msgstr "Ustawienia użytkownika"
#: mailu/ui/templates/user/list.html:21
msgid "Features"
msgstr ""
#: mailu/ui/templates/user/password.html:4
msgid "Password update"
msgstr "Zmiana hasła"
#: mailu/ui/templates/user/reply.html:4
msgid "Automatic reply"
msgstr "Automatyczna odpowiedź"
#: mailu/ui/forms.py:49
msgid "Maximum user quota"
msgstr ""
#: mailu/ui/forms.py:92
msgid "Keep a copy of the emails"
msgstr "Przechowuj kopię wiadomości"
#: mailu/ui/forms.py:147
msgid "Keep emails on the server"
msgstr "Przechowuj wiadomości na serwerze"
#: mailu/ui/templates/fetch/list.html:21
msgid "Keep emails"
msgstr "Przechowuj wiadomości"
#: mailu/ui/templates/fetch/list.html:35
msgid "yes"
msgstr "Tak"
#: mailu/ui/templates/fetch/list.html:35
msgid "no"
msgstr "Nie"
#: mailu/ui/forms.py:55
msgid "Alternative name"
msgstr ""
#: mailu/ui/forms.py:60
msgid "Relayed domain name"
msgstr ""
#: mailu/ui/forms.py:61 mailu/ui/templates/relay/list.html:18
msgid "Remote host"
msgstr ""
#: mailu/ui/templates/sidebar.html:59
msgid "Relayed domains"
msgstr ""
#: mailu/ui/templates/alternative/create.html:4
msgid "Create alternative domain"
msgstr ""
#: mailu/ui/templates/alternative/list.html:4
msgid "Alternative domain list"
msgstr ""
#: mailu/ui/templates/alternative/list.html:12
msgid "Add alternative"
msgstr ""
#: mailu/ui/templates/alternative/list.html:19
msgid "Name"
msgstr ""
#: mailu/ui/templates/domain/list.html:39
msgid "Alternatives"
msgstr ""
#: mailu/ui/templates/relay/create.html:4
msgid "New relay domain"
msgstr ""
#: mailu/ui/templates/relay/edit.html:4
msgid "Edit relayd domain"
msgstr ""
#: mailu/ui/templates/relay/list.html:4
msgid "Relayed domain list"
msgstr ""
#: mailu/ui/templates/relay/list.html:9
msgid "New relayed domain"
msgstr ""
#: mailu/ui/forms.py:109
msgid "Your token (write it down, as it will never be displayed again)"
msgstr ""
#: mailu/ui/forms.py:114 mailu/ui/templates/token/list.html:20
msgid "Authorized IP"
msgstr ""
#: mailu/ui/templates/sidebar.html:36 mailu/ui/templates/token/list.html:4
msgid "Authentication tokens"
msgstr ""
#: mailu/ui/templates/sidebar.html:72
msgid "Go to"
msgstr ""
#: mailu/ui/templates/sidebar.html:76
msgid "Webmail"
msgstr ""
#: mailu/ui/templates/sidebar.html:82
msgid "Website"
msgstr "Strona internetowa"
#: mailu/ui/templates/token/create.html:4
msgid "Create an authentication token"
msgstr ""
#: mailu/ui/templates/token/list.html:12
msgid "New token"
msgstr ""
#: mailu/ui/templates/user/create.html:15
msgid "General"
msgstr ""
#: mailu/ui/templates/user/create.html:21
msgid "Features and quotas"
msgstr ""
#: mailu/ui/templates/user/settings.html:14
msgid "General settings"
msgstr "Ustawienia ogólne"
#: mailu/ui/templates/user/settings.html:18
msgid "Antispam"
msgstr "Filtr antyspamowy"
#: mailu/ui/forms.py:80
msgid "Spam filter tolerance"
msgstr ""

View File

@@ -0,0 +1,623 @@
msgid ""
msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: POEditor.com\n"
"Project-Id-Version: Mailu\n"
"Language: pt\n"
#: mailu/ui/forms.py:32
msgid "Invalid email address."
msgstr "Endereço de e-mail inválido"
#: mailu/ui/forms.py:36
msgid "Confirm"
msgstr "Confirmar"
#: mailu/ui/forms.py:40 mailu/ui/forms.py:67
msgid "E-mail"
msgstr "E-mail"
#: mailu/ui/forms.py:41 mailu/ui/forms.py:68 mailu/ui/forms.py:85
#: mailu/ui/forms.py:146
msgid "Password"
msgstr "Senha"
#: mailu/ui/forms.py:42 mailu/ui/templates/login.html:4
#: mailu/ui/templates/sidebar.html:99
msgid "Sign in"
msgstr "Entrar"
#: mailu/ui/forms.py:46 mailu/ui/templates/domain/details.html:21
#: mailu/ui/templates/domain/list.html:18 mailu/ui/templates/relay/list.html:17
msgid "Domain name"
msgstr "Domínio"
#: mailu/ui/forms.py:47
msgid "Maximum user count"
msgstr "Quantidade máxima de usuários"
#: mailu/ui/forms.py:48
msgid "Maximum alias count"
msgstr "Quantidade máxima de alias"
#: mailu/ui/forms.py:50 mailu/ui/forms.py:62 mailu/ui/forms.py:73
#: mailu/ui/forms.py:112 mailu/ui/forms.py:124
#: mailu/ui/templates/alias/list.html:21 mailu/ui/templates/domain/list.html:21
#: mailu/ui/templates/relay/list.html:19 mailu/ui/templates/token/list.html:19
#: mailu/ui/templates/user/list.html:23
msgid "Comment"
msgstr "Comentário"
#: mailu/ui/forms.py:51 mailu/ui/forms.py:56 mailu/ui/forms.py:63
#: mailu/ui/forms.py:116 mailu/ui/forms.py:125
msgid "Create"
msgstr "Criar"
#: mailu/ui/forms.py:69
msgid "Confirm password"
msgstr "Confirmar senha"
#: mailu/ui/forms.py:70 mailu/ui/templates/user/list.html:22
msgid "Quota"
msgstr "Quota"
#: mailu/ui/forms.py:71
msgid "Allow IMAP access"
msgstr "Permitir acesso IMAP"
#: mailu/ui/forms.py:72
msgid "Allow POP3 access"
msgstr "Permitir acesso POP3"
#: mailu/ui/forms.py:74
msgid "Save"
msgstr "Salvar"
#: mailu/ui/forms.py:78
msgid "Displayed name"
msgstr "Nome de exibição"
#: mailu/ui/forms.py:79
msgid "Enable spam filter"
msgstr "Habilitar filtro de spam"
#: mailu/ui/forms.py:80
msgid "Spam filter threshold"
msgstr "Limite de filtro de spam"
#: mailu/ui/forms.py:81
msgid "Save settings"
msgstr "Salvar configurações"
#: mailu/ui/forms.py:86
msgid "Password check"
msgstr "Confirmação de senha"
#: mailu/ui/forms.py:87 mailu/ui/templates/sidebar.html:16
msgid "Update password"
msgstr "Alterar senha"
#: mailu/ui/forms.py:91
msgid "Enable forwarding"
msgstr "Habilitar encaminhamento"
#: mailu/ui/forms.py:94 mailu/ui/forms.py:123
#: mailu/ui/templates/alias/list.html:20
msgid "Destination"
msgstr "Destinatário"
#: mailu/ui/forms.py:96 mailu/ui/forms.py:104
msgid "Update"
msgstr "Atualizar"
#: mailu/ui/forms.py:100
msgid "Enable automatic reply"
msgstr "Habilitar resposta automática"
#: mailu/ui/forms.py:101
msgid "Reply subject"
msgstr "Assunto da resposta"
#: mailu/ui/forms.py:102
msgid "Reply body"
msgstr "Corpo da resposta"
#: mailu/ui/forms.py:120
msgid "Alias"
msgstr "Alias"
#: mailu/ui/forms.py:122
msgid "Use SQL LIKE Syntax (e.g. for catch-all aliases)"
msgstr "Usar sintaxe estilo SQL(ex: for catch-all aliases)"
#: mailu/ui/forms.py:129
msgid "Admin email"
msgstr "E-mail do administrador"
#: mailu/ui/forms.py:130 mailu/ui/forms.py:135 mailu/ui/forms.py:148
msgid "Submit"
msgstr "Enviar"
#: mailu/ui/forms.py:134
msgid "Manager email"
msgstr "E-mail do gerente"
#: mailu/ui/forms.py:139
msgid "Protocol"
msgstr "Protocolo"
#: mailu/ui/forms.py:142
msgid "Hostname or IP"
msgstr "Hostname ou IP"
#: mailu/ui/forms.py:143
msgid "TCP port"
msgstr "Porta TCP"
#: mailu/ui/forms.py:144
msgid "Enable TLS"
msgstr "Habilitar TLS"
#: mailu/ui/forms.py:145 mailu/ui/templates/fetch/list.html:20
msgid "Username"
msgstr "Usuário"
#: mailu/ui/templates/confirm.html:4
msgid "Confirm action"
msgstr "Confirmar ação"
#: mailu/ui/templates/confirm.html:13
msgid "You are about to %(action)s. Please confirm your action."
msgstr "Por favor, confirme a(s) %(action)s"
#: mailu/ui/templates/docker-error.html:4
msgid "Docker error"
msgstr "Erro no docker"
#: mailu/ui/templates/docker-error.html:12
msgid "An error occurred while talking to the Docker server."
msgstr "Um erro foi encontrado na conexão com o servidor Docker"
#: mailu/admin/templates/login.html:6
msgid "Your account"
msgstr "Sua conta"
#: mailu/ui/templates/login.html:8
msgid "to access the administration tools"
msgstr "para acessar as ferramentas administrativas"
#: mailu/ui/templates/services.html:4 mailu/ui/templates/sidebar.html:44
msgid "Services status"
msgstr "Status do serviço"
#: mailu/ui/templates/services.html:10
msgid "Service"
msgstr "Serviço"
#: mailu/ui/templates/fetch/list.html:23 mailu/ui/templates/services.html:11
msgid "Status"
msgstr "Status"
#: mailu/ui/templates/services.html:12
msgid "PID"
msgstr "PID"
#: mailu/ui/templates/services.html:13
msgid "Image"
msgstr "Imagem"
#: mailu/ui/templates/services.html:14
msgid "Started"
msgstr "Iniciado"
#: mailu/ui/templates/services.html:15
msgid "Last update"
msgstr "Última atualização"
#: mailu/ui/templates/sidebar.html:8
msgid "My account"
msgstr "Minha conta"
#: mailu/ui/templates/sidebar.html:11 mailu/ui/templates/user/list.html:34
msgid "Settings"
msgstr "Configurações"
#: mailu/ui/templates/sidebar.html:21 mailu/ui/templates/user/list.html:35
msgid "Auto-forward"
msgstr "Encaminhamento automático"
#: mailu/ui/templates/sidebar.html:26 mailu/ui/templates/user/list.html:36
msgid "Auto-reply"
msgstr "Resposta automática"
#: mailu/ui/templates/fetch/list.html:4 mailu/ui/templates/sidebar.html:31
#: mailu/ui/templates/user/list.html:37
msgid "Fetched accounts"
msgstr "Contas importadas"
#: mailu/ui/templates/sidebar.html:93
msgid "Sign out"
msgstr "Sair"
#: mailu/ui/templates/sidebar.html:40
msgid "Administration"
msgstr "Administração"
#: mailu/ui/templates/sidebar.html:54
msgid "Administrators"
msgstr "Administradores"
#: mailu/ui/templates/sidebar.html:66
msgid "Mail domains"
msgstr "Domínios de e-mail"
#: mailu/ui/templates/sidebar.html:87
msgid "Help"
msgstr "Ajuda"
#: mailu/ui/templates/working.html:4
msgid "We are still working on this feature!"
msgstr "Nós ainda estamos trabalhando nesta função!"
#: mailu/ui/templates/admin/create.html:4
msgid "Add a global administrator"
msgstr "Adicionar administrador global"
#: mailu/ui/templates/admin/list.html:4
msgid "Global administrators"
msgstr "Administradores globais"
#: mailu/ui/templates/admin/list.html:9
msgid "Add administrator"
msgstr "Adicionar administrador"
#: mailu/ui/templates/admin/list.html:16 mailu/ui/templates/alias/list.html:18
#: mailu/ui/templates/alternative/list.html:18
#: mailu/ui/templates/domain/list.html:16 mailu/ui/templates/fetch/list.html:18
#: mailu/ui/templates/manager/list.html:18
#: mailu/ui/templates/relay/list.html:16 mailu/ui/templates/token/list.html:18
#: mailu/ui/templates/user/list.html:18
msgid "Actions"
msgstr "Ações"
#: mailu/ui/templates/admin/list.html:17 mailu/ui/templates/alias/list.html:19
#: mailu/ui/templates/manager/list.html:19 mailu/ui/templates/user/list.html:20
msgid "Email"
msgstr "Email"
#: mailu/ui/templates/admin/list.html:22 mailu/ui/templates/alias/list.html:29
#: mailu/ui/templates/alternative/list.html:25
#: mailu/ui/templates/domain/list.html:31 mailu/ui/templates/fetch/list.html:31
#: mailu/ui/templates/manager/list.html:24
#: mailu/ui/templates/relay/list.html:27 mailu/ui/templates/token/list.html:26
#: mailu/ui/templates/user/list.html:31
msgid "Delete"
msgstr "Deletar"
#: mailu/ui/templates/alias/create.html:4
msgid "Create alias"
msgstr "Criar alias"
#: mailu/ui/templates/alias/edit.html:4
msgid "Edit alias"
msgstr "Editar alias"
#: mailu/ui/templates/alias/list.html:4
msgid "Alias list"
msgstr "Lista de alias"
#: mailu/ui/templates/alias/list.html:12
msgid "Add alias"
msgstr "Adicionar alias"
#: mailu/ui/templates/alias/list.html:22
#: mailu/ui/templates/alternative/list.html:20
#: mailu/ui/templates/domain/list.html:22 mailu/ui/templates/fetch/list.html:24
#: mailu/ui/templates/relay/list.html:20 mailu/ui/templates/token/list.html:21
#: mailu/ui/templates/user/list.html:24
msgid "Created"
msgstr "Criado"
#: mailu/ui/templates/alias/list.html:23 mailu/ui/templates/domain/list.html:23
#: mailu/ui/templates/fetch/list.html:25 mailu/ui/templates/relay/list.html:21
#: mailu/ui/templates/user/list.html:25
msgid "Last edit"
msgstr "Última edição"
#: mailu/ui/templates/alias/list.html:28 mailu/ui/templates/domain/list.html:30
#: mailu/ui/templates/fetch/list.html:30 mailu/ui/templates/relay/list.html:26
#: mailu/ui/templates/user/list.html:30
msgid "Edit"
msgstr "Editar"
#: mailu/ui/templates/domain/create.html:4
#: mailu/ui/templates/domain/list.html:9
msgid "New domain"
msgstr "Novo domínio"
#: mailu/ui/templates/domain/details.html:4
msgid "Domain details"
msgstr "Detalhes do domínio"
#: mailu/ui/templates/domain/details.html:13
msgid "Regenerate keys"
msgstr "Gerar novas chaves"
#: mailu/ui/templates/domain/details.html:25
msgid "DNS MX entry"
msgstr "Entrada DNS MX"
#: mailu/ui/templates/domain/details.html:29
msgid "DNS SPF entries"
msgstr "Entrada DNS SPF"
#: mailu/ui/templates/domain/details.html:36
msgid "DKIM public key"
msgstr "Chave pública do DKIM"
#: mailu/ui/templates/domain/details.html:40
msgid "DNS DKIM entry"
msgstr "Entrada DNS DKIM"
#: mailu/ui/templates/domain/details.html:44
msgid "DNS DMARC entry"
msgstr "Entrada DNS DMARC"
#: mailu/ui/templates/domain/edit.html:4
msgid "Edit domain"
msgstr "Editar domínio"
#: mailu/ui/templates/domain/list.html:4
msgid "Domain list"
msgstr "Lista de domínios"
#: mailu/ui/templates/domain/list.html:17
msgid "Manage"
msgstr "Gerenciar"
#: mailu/ui/templates/domain/list.html:19
msgid "Mailbox count"
msgstr "Quantidade de caixas de e-mail"
#: mailu/ui/templates/domain/list.html:20
msgid "Alias count"
msgstr "Quantidade de aliases"
#: mailu/ui/templates/domain/list.html:28
msgid "Details"
msgstr "Detalhes"
#: mailu/ui/templates/domain/list.html:35
msgid "Users"
msgstr "Usuários"
#: mailu/ui/templates/domain/list.html:36
msgid "Aliases"
msgstr "Aliases"
#: mailu/ui/templates/domain/list.html:37
msgid "Managers"
msgstr "Gerentes"
#: mailu/ui/templates/fetch/create.html:4
msgid "Add a fetched account"
msgstr "Adicionar conta a importar"
#: mailu/ui/templates/fetch/edit.html:4
msgid "Update a fetched account"
msgstr "Atualizar conta importada"
#: mailu/ui/templates/fetch/list.html:12
msgid "Add an account"
msgstr "Adicionar uma conta"
#: mailu/ui/templates/fetch/list.html:19
msgid "Endpoint"
msgstr "Endpoint"
#: mailu/ui/templates/fetch/list.html:22
msgid "Last check"
msgstr "Última verificação"
#: mailu/ui/templates/manager/create.html:4
msgid "Add a manager"
msgstr "Adicionar gerente"
#: mailu/ui/templates/manager/list.html:4
msgid "Manager list"
msgstr "Lista de gerentes"
#: mailu/ui/templates/manager/list.html:12
msgid "Add manager"
msgstr "Adicionar gerente"
#: mailu/ui/forms.py:152
msgid "Announcement subject"
msgstr "Título do comunicado"
#: mailu/ui/forms.py:154
msgid "Announcement body"
msgstr "Corpo do comunicado"
#: mailu/ui/forms.py:156
msgid "Send"
msgstr "Enviar"
#: mailu/ui/templates/announcement.html:4
msgid "Public announcement"
msgstr "Comunicado geral"
#: mailu/ui/templates/announcement.html:8
msgid "from"
msgstr "de"
#: mailu/ui/templates/sidebar.html:49
msgid "Announcement"
msgstr "Comunicado"
#: mailu/ui/templates/user/create.html:4
msgid "New user"
msgstr "Novo usuário"
#: mailu/ui/templates/user/edit.html:4
msgid "Edit user"
msgstr "Editar usuário"
#: mailu/ui/templates/user/forward.html:4
msgid "Forward emails"
msgstr "Encaminhar e-mails"
#: mailu/ui/templates/user/list.html:4
msgid "User list"
msgstr "Lista de usuários"
#: mailu/ui/templates/user/list.html:12
msgid "Add user"
msgstr "Adicionar usuário"
#: mailu/ui/templates/user/list.html:19 mailu/ui/templates/user/settings.html:4
msgid "User settings"
msgstr "Configurações de usuário"
#: mailu/ui/templates/user/list.html:21
msgid "Features"
msgstr "Funcionalidades"
#: mailu/ui/templates/user/password.html:4
msgid "Password update"
msgstr "Atualizar senha"
#: mailu/ui/templates/user/reply.html:4
msgid "Automatic reply"
msgstr "Resposta automática"
#: mailu/ui/forms.py:49
msgid "Maximum user quota"
msgstr "Cota máxima por usuário"
#: mailu/ui/forms.py:92
msgid "Keep a copy of the emails"
msgstr "Manter uma cópia dos emails"
#: mailu/ui/forms.py:147
msgid "Keep emails on the server"
msgstr "Manter os e-mails no servidor"
#: mailu/ui/templates/fetch/list.html:21
msgid "Keep emails"
msgstr "Manter emails"
#: mailu/ui/templates/fetch/list.html:35
msgid "yes"
msgstr "sim"
#: mailu/ui/templates/fetch/list.html:35
msgid "no"
msgstr "não"
#: mailu/ui/forms.py:55
msgid "Alternative name"
msgstr "Nome alternativo"
#: mailu/ui/forms.py:60
msgid "Relayed domain name"
msgstr "Nome de domínio para encaminhar"
#: mailu/ui/forms.py:61 mailu/ui/templates/relay/list.html:18
msgid "Remote host"
msgstr "Host remoto"
#: mailu/ui/templates/sidebar.html:59
msgid "Relayed domains"
msgstr "Domínios para encaminhamento"
#: mailu/ui/templates/alternative/create.html:4
msgid "Create alternative domain"
msgstr "Criar domínio alternativo"
#: mailu/ui/templates/alternative/list.html:4
msgid "Alternative domain list"
msgstr "Lista de domínios alternativos"
#: mailu/ui/templates/alternative/list.html:12
msgid "Add alternative"
msgstr "Adicionar alternativo"
#: mailu/ui/templates/alternative/list.html:19
msgid "Name"
msgstr "Nome"
#: mailu/ui/templates/domain/list.html:39
msgid "Alternatives"
msgstr "Alternativos"
#: mailu/ui/templates/relay/create.html:4
msgid "New relay domain"
msgstr "Novo domínio para encaminhamento"
#: mailu/ui/templates/relay/edit.html:4
msgid "Edit relayd domain"
msgstr "Editar domínio de encaminhamento"
#: mailu/ui/templates/relay/list.html:4
msgid "Relayed domain list"
msgstr "Lista de domínios para encaminhamento"
#: mailu/ui/templates/relay/list.html:9
msgid "New relayed domain"
msgstr "Novo domínio de encaminhamento"
#: mailu/ui/forms.py:109
msgid "Your token (write it down, as it will never be displayed again)"
msgstr ""
#: mailu/ui/forms.py:114 mailu/ui/templates/token/list.html:20
msgid "Authorized IP"
msgstr ""
#: mailu/ui/templates/sidebar.html:36 mailu/ui/templates/token/list.html:4
msgid "Authentication tokens"
msgstr ""
#: mailu/ui/templates/sidebar.html:72
msgid "Go to"
msgstr ""
#: mailu/ui/templates/sidebar.html:76
msgid "Webmail"
msgstr ""
#: mailu/ui/templates/sidebar.html:82
msgid "Website"
msgstr ""
#: mailu/ui/templates/token/create.html:4
msgid "Create an authentication token"
msgstr ""
#: mailu/ui/templates/token/list.html:12
msgid "New token"
msgstr ""
#: mailu/ui/templates/user/create.html:15
msgid "General"
msgstr ""
#: mailu/ui/templates/user/create.html:21
msgid "Features and quotas"
msgstr ""
#: mailu/ui/templates/user/settings.html:14
msgid "General settings"
msgstr ""
#: mailu/ui/templates/user/settings.html:18
msgid "Antispam"
msgstr ""
#: mailu/ui/forms.py:80
msgid "Spam filter tolerance"
msgstr ""

View File

@@ -0,0 +1,623 @@
msgid ""
msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: POEditor.com\n"
"Project-Id-Version: Mailu\n"
"Language: sv\n"
#: mailu/ui/forms.py:32
msgid "Invalid email address."
msgstr "Ogiltig adress"
#: mailu/ui/forms.py:36
msgid "Confirm"
msgstr "Bekräfta"
#: mailu/ui/forms.py:40 mailu/ui/forms.py:67
msgid "E-mail"
msgstr "E-post"
#: mailu/ui/forms.py:41 mailu/ui/forms.py:68 mailu/ui/forms.py:85
#: mailu/ui/forms.py:146
msgid "Password"
msgstr "Lösenord"
#: mailu/ui/forms.py:42 mailu/ui/templates/login.html:4
#: mailu/ui/templates/sidebar.html:99
msgid "Sign in"
msgstr "Logga in"
#: mailu/ui/forms.py:46 mailu/ui/templates/domain/details.html:21
#: mailu/ui/templates/domain/list.html:18 mailu/ui/templates/relay/list.html:17
msgid "Domain name"
msgstr "Domännamn"
#: mailu/ui/forms.py:47
msgid "Maximum user count"
msgstr "Max antal användare"
#: mailu/ui/forms.py:48
msgid "Maximum alias count"
msgstr "Max antal alias"
#: mailu/ui/forms.py:50 mailu/ui/forms.py:62 mailu/ui/forms.py:73
#: mailu/ui/forms.py:112 mailu/ui/forms.py:124
#: mailu/ui/templates/alias/list.html:21 mailu/ui/templates/domain/list.html:21
#: mailu/ui/templates/relay/list.html:19 mailu/ui/templates/token/list.html:19
#: mailu/ui/templates/user/list.html:23
msgid "Comment"
msgstr "Kommentar"
#: mailu/ui/forms.py:51 mailu/ui/forms.py:56 mailu/ui/forms.py:63
#: mailu/ui/forms.py:116 mailu/ui/forms.py:125
msgid "Create"
msgstr "Skapa"
#: mailu/ui/forms.py:69
msgid "Confirm password"
msgstr "Bekräfta lösenord"
#: mailu/ui/forms.py:70 mailu/ui/templates/user/list.html:22
msgid "Quota"
msgstr "Quota"
#: mailu/ui/forms.py:71
msgid "Allow IMAP access"
msgstr "Tillåt IMAP"
#: mailu/ui/forms.py:72
msgid "Allow POP3 access"
msgstr "Tillåt POP3"
#: mailu/ui/forms.py:74
msgid "Save"
msgstr "Spara"
#: mailu/ui/forms.py:78
msgid "Displayed name"
msgstr "Visat namn"
#: mailu/ui/forms.py:79
msgid "Enable spam filter"
msgstr "Aktivera spamfilter"
#: mailu/ui/forms.py:80
msgid "Spam filter threshold"
msgstr "Spamfilter gräns"
#: mailu/ui/forms.py:81
msgid "Save settings"
msgstr "Spara inställningar"
#: mailu/ui/forms.py:86
msgid "Password check"
msgstr "Lösenordskoll"
#: mailu/ui/forms.py:87 mailu/ui/templates/sidebar.html:16
msgid "Update password"
msgstr "Uppdatera lösenord"
#: mailu/ui/forms.py:91
msgid "Enable forwarding"
msgstr "Aktivera vidarebefordring"
#: mailu/ui/forms.py:94 mailu/ui/forms.py:123
#: mailu/ui/templates/alias/list.html:20
msgid "Destination"
msgstr "Destination"
#: mailu/ui/forms.py:96 mailu/ui/forms.py:104
msgid "Update"
msgstr "Uppdatera"
#: mailu/ui/forms.py:100
msgid "Enable automatic reply"
msgstr "Aktivera autosvar"
#: mailu/ui/forms.py:101
msgid "Reply subject"
msgstr "Svar ämne"
#: mailu/ui/forms.py:102
msgid "Reply body"
msgstr "Svar meddelande"
#: mailu/ui/forms.py:120
msgid "Alias"
msgstr "Alias"
#: mailu/ui/forms.py:122
msgid "Use SQL LIKE Syntax (e.g. for catch-all aliases)"
msgstr "Använd SQL-liknande syntax (t.ex. för catch-all alias)"
#: mailu/ui/forms.py:129
msgid "Admin email"
msgstr "Admin e-post"
#: mailu/ui/forms.py:130 mailu/ui/forms.py:135 mailu/ui/forms.py:148
msgid "Submit"
msgstr "Skicka in"
#: mailu/ui/forms.py:134
msgid "Manager email"
msgstr "Manager e-post"
#: mailu/ui/forms.py:139
msgid "Protocol"
msgstr "Protokoll"
#: mailu/ui/forms.py:142
msgid "Hostname or IP"
msgstr "Hostnamn eller IP"
#: mailu/ui/forms.py:143
msgid "TCP port"
msgstr "TCP port"
#: mailu/ui/forms.py:144
msgid "Enable TLS"
msgstr "Aktivera TLS"
#: mailu/ui/forms.py:145 mailu/ui/templates/fetch/list.html:20
msgid "Username"
msgstr "Användarnamn"
#: mailu/ui/templates/confirm.html:4
msgid "Confirm action"
msgstr "Bekräfta"
#: mailu/ui/templates/confirm.html:13
msgid "You are about to %(action)s. Please confirm your action."
msgstr "Du håller på att %(action)s. Vänligen bekräfta."
#: mailu/ui/templates/docker-error.html:4
msgid "Docker error"
msgstr "Docker fel"
#: mailu/ui/templates/docker-error.html:12
msgid "An error occurred while talking to the Docker server."
msgstr "Ett fel inträffade vid kommunikation med Docker"
#: mailu/admin/templates/login.html:6
msgid "Your account"
msgstr "Ditt konto"
#: mailu/ui/templates/login.html:8
msgid "to access the administration tools"
msgstr "att komma åt administrationsverktygen"
#: mailu/ui/templates/services.html:4 mailu/ui/templates/sidebar.html:44
msgid "Services status"
msgstr "Tjänster status"
#: mailu/ui/templates/services.html:10
msgid "Service"
msgstr "Tjänst"
#: mailu/ui/templates/fetch/list.html:23 mailu/ui/templates/services.html:11
msgid "Status"
msgstr "Status"
#: mailu/ui/templates/services.html:12
msgid "PID"
msgstr "PID"
#: mailu/ui/templates/services.html:13
msgid "Image"
msgstr "Bild"
#: mailu/ui/templates/services.html:14
msgid "Started"
msgstr "Startad"
#: mailu/ui/templates/services.html:15
msgid "Last update"
msgstr "Senast uppdaterad"
#: mailu/ui/templates/sidebar.html:8
msgid "My account"
msgstr "Mitt konto"
#: mailu/ui/templates/sidebar.html:11 mailu/ui/templates/user/list.html:34
msgid "Settings"
msgstr "Inställningar"
#: mailu/ui/templates/sidebar.html:21 mailu/ui/templates/user/list.html:35
msgid "Auto-forward"
msgstr "Auto-forward"
#: mailu/ui/templates/sidebar.html:26 mailu/ui/templates/user/list.html:36
msgid "Auto-reply"
msgstr "Autosvar"
#: mailu/ui/templates/fetch/list.html:4 mailu/ui/templates/sidebar.html:31
#: mailu/ui/templates/user/list.html:37
msgid "Fetched accounts"
msgstr "Hämtade konton"
#: mailu/ui/templates/sidebar.html:93
msgid "Sign out"
msgstr "Logga ut"
#: mailu/ui/templates/sidebar.html:40
msgid "Administration"
msgstr "Administration"
#: mailu/ui/templates/sidebar.html:54
msgid "Administrators"
msgstr "Administratörer"
#: mailu/ui/templates/sidebar.html:66
msgid "Mail domains"
msgstr "Domäner"
#: mailu/ui/templates/sidebar.html:87
msgid "Help"
msgstr "Hjälp"
#: mailu/ui/templates/working.html:4
msgid "We are still working on this feature!"
msgstr "Vi arbetar fortfarande på den här funktionen!"
#: mailu/ui/templates/admin/create.html:4
msgid "Add a global administrator"
msgstr "Lägg till en global administratör"
#: mailu/ui/templates/admin/list.html:4
msgid "Global administrators"
msgstr "Globala administratörer"
#: mailu/ui/templates/admin/list.html:9
msgid "Add administrator"
msgstr "Lägg till administratör"
#: mailu/ui/templates/admin/list.html:16 mailu/ui/templates/alias/list.html:18
#: mailu/ui/templates/alternative/list.html:18
#: mailu/ui/templates/domain/list.html:16 mailu/ui/templates/fetch/list.html:18
#: mailu/ui/templates/manager/list.html:18
#: mailu/ui/templates/relay/list.html:16 mailu/ui/templates/token/list.html:18
#: mailu/ui/templates/user/list.html:18
msgid "Actions"
msgstr "Handling"
#: mailu/ui/templates/admin/list.html:17 mailu/ui/templates/alias/list.html:19
#: mailu/ui/templates/manager/list.html:19 mailu/ui/templates/user/list.html:20
msgid "Email"
msgstr "E-post"
#: mailu/ui/templates/admin/list.html:22 mailu/ui/templates/alias/list.html:29
#: mailu/ui/templates/alternative/list.html:25
#: mailu/ui/templates/domain/list.html:31 mailu/ui/templates/fetch/list.html:31
#: mailu/ui/templates/manager/list.html:24
#: mailu/ui/templates/relay/list.html:27 mailu/ui/templates/token/list.html:26
#: mailu/ui/templates/user/list.html:31
msgid "Delete"
msgstr "Radera"
#: mailu/ui/templates/alias/create.html:4
msgid "Create alias"
msgstr "Skapa alias"
#: mailu/ui/templates/alias/edit.html:4
msgid "Edit alias"
msgstr "Redigera alias"
#: mailu/ui/templates/alias/list.html:4
msgid "Alias list"
msgstr "Alias-lista"
#: mailu/ui/templates/alias/list.html:12
msgid "Add alias"
msgstr "Skapa alias"
#: mailu/ui/templates/alias/list.html:22
#: mailu/ui/templates/alternative/list.html:20
#: mailu/ui/templates/domain/list.html:22 mailu/ui/templates/fetch/list.html:24
#: mailu/ui/templates/relay/list.html:20 mailu/ui/templates/token/list.html:21
#: mailu/ui/templates/user/list.html:24
msgid "Created"
msgstr "Skapad"
#: mailu/ui/templates/alias/list.html:23 mailu/ui/templates/domain/list.html:23
#: mailu/ui/templates/fetch/list.html:25 mailu/ui/templates/relay/list.html:21
#: mailu/ui/templates/user/list.html:25
msgid "Last edit"
msgstr "Senast redigerad"
#: mailu/ui/templates/alias/list.html:28 mailu/ui/templates/domain/list.html:30
#: mailu/ui/templates/fetch/list.html:30 mailu/ui/templates/relay/list.html:26
#: mailu/ui/templates/user/list.html:30
msgid "Edit"
msgstr "Redigera"
#: mailu/ui/templates/domain/create.html:4
#: mailu/ui/templates/domain/list.html:9
msgid "New domain"
msgstr "Ny domän"
#: mailu/ui/templates/domain/details.html:4
msgid "Domain details"
msgstr "Domändetaljer"
#: mailu/ui/templates/domain/details.html:13
msgid "Regenerate keys"
msgstr "Generera nycklar"
#: mailu/ui/templates/domain/details.html:25
msgid "DNS MX entry"
msgstr "DNS MX post"
#: mailu/ui/templates/domain/details.html:29
msgid "DNS SPF entries"
msgstr "DNS SPF post"
#: mailu/ui/templates/domain/details.html:36
msgid "DKIM public key"
msgstr "Publik DKIM-nyckel"
#: mailu/ui/templates/domain/details.html:40
msgid "DNS DKIM entry"
msgstr "DNS DKIM post"
#: mailu/ui/templates/domain/details.html:44
msgid "DNS DMARC entry"
msgstr "DNS DMARC post"
#: mailu/ui/templates/domain/edit.html:4
msgid "Edit domain"
msgstr "Redigera domän"
#: mailu/ui/templates/domain/list.html:4
msgid "Domain list"
msgstr "Domänlista"
#: mailu/ui/templates/domain/list.html:17
msgid "Manage"
msgstr "Managera"
#: mailu/ui/templates/domain/list.html:19
msgid "Mailbox count"
msgstr "Antal mailboxar"
#: mailu/ui/templates/domain/list.html:20
msgid "Alias count"
msgstr "Antal alias"
#: mailu/ui/templates/domain/list.html:28
msgid "Details"
msgstr "Detaljer"
#: mailu/ui/templates/domain/list.html:35
msgid "Users"
msgstr "Användare"
#: mailu/ui/templates/domain/list.html:36
msgid "Aliases"
msgstr "Alias"
#: mailu/ui/templates/domain/list.html:37
msgid "Managers"
msgstr "Managers"
#: mailu/ui/templates/fetch/create.html:4
msgid "Add a fetched account"
msgstr "Lägg till hämtat konto"
#: mailu/ui/templates/fetch/edit.html:4
msgid "Update a fetched account"
msgstr "Uppdatera ett hämtat konto"
#: mailu/ui/templates/fetch/list.html:12
msgid "Add an account"
msgstr "Lägg till ett konto"
#: mailu/ui/templates/fetch/list.html:19
msgid "Endpoint"
msgstr "Slutpunkt"
#: mailu/ui/templates/fetch/list.html:22
msgid "Last check"
msgstr "Senaste koll"
#: mailu/ui/templates/manager/create.html:4
msgid "Add a manager"
msgstr "Lägg till en manager"
#: mailu/ui/templates/manager/list.html:4
msgid "Manager list"
msgstr "Managerlista"
#: mailu/ui/templates/manager/list.html:12
msgid "Add manager"
msgstr "Skapa manager"
#: mailu/ui/forms.py:152
msgid "Announcement subject"
msgstr "Publikt meddelande ämne"
#: mailu/ui/forms.py:154
msgid "Announcement body"
msgstr "Publikt meddelande"
#: mailu/ui/forms.py:156
msgid "Send"
msgstr "Skicka"
#: mailu/ui/templates/announcement.html:4
msgid "Public announcement"
msgstr "Publikt meddelande"
#: mailu/ui/templates/announcement.html:8
msgid "from"
msgstr "från"
#: mailu/ui/templates/sidebar.html:49
msgid "Announcement"
msgstr "Meddelande"
#: mailu/ui/templates/user/create.html:4
msgid "New user"
msgstr "Ny användare"
#: mailu/ui/templates/user/edit.html:4
msgid "Edit user"
msgstr "Redigera användare"
#: mailu/ui/templates/user/forward.html:4
msgid "Forward emails"
msgstr "Vidarebefordra e-post"
#: mailu/ui/templates/user/list.html:4
msgid "User list"
msgstr "Användarlista"
#: mailu/ui/templates/user/list.html:12
msgid "Add user"
msgstr "Lägg till användare"
#: mailu/ui/templates/user/list.html:19 mailu/ui/templates/user/settings.html:4
msgid "User settings"
msgstr "Användarinställningar"
#: mailu/ui/templates/user/list.html:21
msgid "Features"
msgstr "Funktioner"
#: mailu/ui/templates/user/password.html:4
msgid "Password update"
msgstr "Uppdatera lösenord"
#: mailu/ui/templates/user/reply.html:4
msgid "Automatic reply"
msgstr "Automatiskt svar"
#: mailu/ui/forms.py:49
msgid "Maximum user quota"
msgstr "Max användar-quota"
#: mailu/ui/forms.py:92
msgid "Keep a copy of the emails"
msgstr "Behåll en kopia av e-posten"
#: mailu/ui/forms.py:147
msgid "Keep emails on the server"
msgstr "Behåll e-post på servern"
#: mailu/ui/templates/fetch/list.html:21
msgid "Keep emails"
msgstr "Behåll e-posten"
#: mailu/ui/templates/fetch/list.html:35
msgid "yes"
msgstr "ja"
#: mailu/ui/templates/fetch/list.html:35
msgid "no"
msgstr "nej"
#: mailu/ui/forms.py:55
msgid "Alternative name"
msgstr "Aleternativt namn"
#: mailu/ui/forms.py:60
msgid "Relayed domain name"
msgstr "Reläade domännamn"
#: mailu/ui/forms.py:61 mailu/ui/templates/relay/list.html:18
msgid "Remote host"
msgstr "Server"
#: mailu/ui/templates/sidebar.html:59
msgid "Relayed domains"
msgstr "Reläade domäner"
#: mailu/ui/templates/alternative/create.html:4
msgid "Create alternative domain"
msgstr "Skapa alternativ domän"
#: mailu/ui/templates/alternative/list.html:4
msgid "Alternative domain list"
msgstr "Alternativa domäner"
#: mailu/ui/templates/alternative/list.html:12
msgid "Add alternative"
msgstr "Lägg till alternativ"
#: mailu/ui/templates/alternative/list.html:19
msgid "Name"
msgstr "Namn"
#: mailu/ui/templates/domain/list.html:39
msgid "Alternatives"
msgstr "Alternativ"
#: mailu/ui/templates/relay/create.html:4
msgid "New relay domain"
msgstr "Ny relä-domän"
#: mailu/ui/templates/relay/edit.html:4
msgid "Edit relayd domain"
msgstr "Redigera reläade domäner"
#: mailu/ui/templates/relay/list.html:4
msgid "Relayed domain list"
msgstr "Reläade domäner"
#: mailu/ui/templates/relay/list.html:9
msgid "New relayed domain"
msgstr "Ny reläad domän"
#: mailu/ui/forms.py:109
msgid "Your token (write it down, as it will never be displayed again)"
msgstr "Din token (notera, eftersom den inte kommer att visas igen)"
#: mailu/ui/forms.py:114 mailu/ui/templates/token/list.html:20
msgid "Authorized IP"
msgstr "Autentiserat IP"
#: mailu/ui/templates/sidebar.html:36 mailu/ui/templates/token/list.html:4
msgid "Authentication tokens"
msgstr "Autentiserade tokens"
#: mailu/ui/templates/sidebar.html:72
msgid "Go to"
msgstr "Gå till"
#: mailu/ui/templates/sidebar.html:76
msgid "Webmail"
msgstr "Webmail"
#: mailu/ui/templates/sidebar.html:82
msgid "Website"
msgstr "Websida"
#: mailu/ui/templates/token/create.html:4
msgid "Create an authentication token"
msgstr "Skapa en autentiseringstoken"
#: mailu/ui/templates/token/list.html:12
msgid "New token"
msgstr "Ny token"
#: mailu/ui/templates/user/create.html:15
msgid "General"
msgstr "Allmänt"
#: mailu/ui/templates/user/create.html:21
msgid "Features and quotas"
msgstr "Funktioner och quota"
#: mailu/ui/templates/user/settings.html:14
msgid "General settings"
msgstr "Allmäna inställningar"
#: mailu/ui/templates/user/settings.html:18
msgid "Antispam"
msgstr "Antispam"
#: mailu/ui/forms.py:80
msgid "Spam filter tolerance"
msgstr ""

View File

@@ -0,0 +1,623 @@
msgid ""
msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: POEditor.com\n"
"Project-Id-Version: Mailu\n"
"Language: zh-CN\n"
#: mailu/ui/forms.py:32
msgid "Invalid email address."
msgstr "无效的邮件地址"
#: mailu/ui/forms.py:36
msgid "Confirm"
msgstr "确认"
#: mailu/ui/forms.py:40 mailu/ui/forms.py:67
msgid "E-mail"
msgstr "电子邮件"
#: mailu/ui/forms.py:41 mailu/ui/forms.py:68 mailu/ui/forms.py:85
#: mailu/ui/forms.py:146
msgid "Password"
msgstr "密码"
#: mailu/ui/forms.py:42 mailu/ui/templates/login.html:4
#: mailu/ui/templates/sidebar.html:99
msgid "Sign in"
msgstr "注册"
#: mailu/ui/forms.py:46 mailu/ui/templates/domain/details.html:21
#: mailu/ui/templates/domain/list.html:18 mailu/ui/templates/relay/list.html:17
msgid "Domain name"
msgstr "域名"
#: mailu/ui/forms.py:47
msgid "Maximum user count"
msgstr "最大用户数"
#: mailu/ui/forms.py:48
msgid "Maximum alias count"
msgstr "最大别名数"
#: mailu/ui/forms.py:50 mailu/ui/forms.py:62 mailu/ui/forms.py:73
#: mailu/ui/forms.py:112 mailu/ui/forms.py:124
#: mailu/ui/templates/alias/list.html:21 mailu/ui/templates/domain/list.html:21
#: mailu/ui/templates/relay/list.html:19 mailu/ui/templates/token/list.html:19
#: mailu/ui/templates/user/list.html:23
msgid "Comment"
msgstr "说明"
#: mailu/ui/forms.py:51 mailu/ui/forms.py:56 mailu/ui/forms.py:63
#: mailu/ui/forms.py:116 mailu/ui/forms.py:125
msgid "Create"
msgstr "创建"
#: mailu/ui/forms.py:69
msgid "Confirm password"
msgstr "确认密码"
#: mailu/ui/forms.py:70 mailu/ui/templates/user/list.html:22
msgid "Quota"
msgstr "配额"
#: mailu/ui/forms.py:71
msgid "Allow IMAP access"
msgstr "允许IMAP访问"
#: mailu/ui/forms.py:72
msgid "Allow POP3 access"
msgstr "允许POP3访问"
#: mailu/ui/forms.py:74
msgid "Save"
msgstr "保存"
#: mailu/ui/forms.py:78
msgid "Displayed name"
msgstr "显示名称"
#: mailu/ui/forms.py:79
msgid "Enable spam filter"
msgstr "启用垃圾邮件过滤"
#: mailu/ui/forms.py:80
msgid "Spam filter threshold"
msgstr "垃圾邮件过滤器阈值"
#: mailu/ui/forms.py:81
msgid "Save settings"
msgstr "保存设置"
#: mailu/ui/forms.py:86
msgid "Password check"
msgstr "检查密码"
#: mailu/ui/forms.py:87 mailu/ui/templates/sidebar.html:16
msgid "Update password"
msgstr "更新密码"
#: mailu/ui/forms.py:91
msgid "Enable forwarding"
msgstr "启用转发"
#: mailu/ui/forms.py:94 mailu/ui/forms.py:123
#: mailu/ui/templates/alias/list.html:20
msgid "Destination"
msgstr "目的地址"
#: mailu/ui/forms.py:96 mailu/ui/forms.py:104
msgid "Update"
msgstr "更新"
#: mailu/ui/forms.py:100
msgid "Enable automatic reply"
msgstr "启用自动回复"
#: mailu/ui/forms.py:101
msgid "Reply subject"
msgstr "回复主题"
#: mailu/ui/forms.py:102
msgid "Reply body"
msgstr "回复正文"
#: mailu/ui/forms.py:120
msgid "Alias"
msgstr "别名"
#: mailu/ui/forms.py:122
msgid "Use SQL LIKE Syntax (e.g. for catch-all aliases)"
msgstr "使用SQL LIKE语法例如用于全部别名"
#: mailu/ui/forms.py:129
msgid "Admin email"
msgstr "管理员邮箱"
#: mailu/ui/forms.py:130 mailu/ui/forms.py:135 mailu/ui/forms.py:148
msgid "Submit"
msgstr "提交"
#: mailu/ui/forms.py:134
msgid "Manager email"
msgstr "管理员邮箱"
#: mailu/ui/forms.py:139
msgid "Protocol"
msgstr "协议"
#: mailu/ui/forms.py:142
msgid "Hostname or IP"
msgstr "主机名或IP"
#: mailu/ui/forms.py:143
msgid "TCP port"
msgstr "TCP端口"
#: mailu/ui/forms.py:144
msgid "Enable TLS"
msgstr "启用TLS"
#: mailu/ui/forms.py:145 mailu/ui/templates/fetch/list.html:20
msgid "Username"
msgstr "用户名"
#: mailu/ui/templates/confirm.html:4
msgid "Confirm action"
msgstr "确认操作"
#: mailu/ui/templates/confirm.html:13
msgid "You are about to %(action)s. Please confirm your action."
msgstr "你即将%(action)s。请确认您的操作。"
#: mailu/ui/templates/docker-error.html:4
msgid "Docker error"
msgstr "Docker错误"
#: mailu/ui/templates/docker-error.html:12
msgid "An error occurred while talking to the Docker server."
msgstr "Docker服务器通信出错"
#: mailu/admin/templates/login.html:6
msgid "Your account"
msgstr "你的帐户"
#: mailu/ui/templates/login.html:8
msgid "to access the administration tools"
msgstr "访问管理员工具"
#: mailu/ui/templates/services.html:4 mailu/ui/templates/sidebar.html:44
msgid "Services status"
msgstr "服务状态"
#: mailu/ui/templates/services.html:10
msgid "Service"
msgstr "服务"
#: mailu/ui/templates/fetch/list.html:23 mailu/ui/templates/services.html:11
msgid "Status"
msgstr "状态"
#: mailu/ui/templates/services.html:12
msgid "PID"
msgstr "进程ID"
#: mailu/ui/templates/services.html:13
msgid "Image"
msgstr "镜像"
#: mailu/ui/templates/services.html:14
msgid "Started"
msgstr "已开始"
#: mailu/ui/templates/services.html:15
msgid "Last update"
msgstr "最后更新"
#: mailu/ui/templates/sidebar.html:8
msgid "My account"
msgstr "我的帐户"
#: mailu/ui/templates/sidebar.html:11 mailu/ui/templates/user/list.html:34
msgid "Settings"
msgstr "设置"
#: mailu/ui/templates/sidebar.html:21 mailu/ui/templates/user/list.html:35
msgid "Auto-forward"
msgstr "自动转发"
#: mailu/ui/templates/sidebar.html:26 mailu/ui/templates/user/list.html:36
msgid "Auto-reply"
msgstr "自动回复"
#: mailu/ui/templates/fetch/list.html:4 mailu/ui/templates/sidebar.html:31
#: mailu/ui/templates/user/list.html:37
msgid "Fetched accounts"
msgstr "代收帐户"
#: mailu/ui/templates/sidebar.html:93
msgid "Sign out"
msgstr "登出"
#: mailu/ui/templates/sidebar.html:40
msgid "Administration"
msgstr "管理"
#: mailu/ui/templates/sidebar.html:54
msgid "Administrators"
msgstr "管理员"
#: mailu/ui/templates/sidebar.html:66
msgid "Mail domains"
msgstr "邮件域"
#: mailu/ui/templates/sidebar.html:87
msgid "Help"
msgstr "帮帮我"
#: mailu/ui/templates/working.html:4
msgid "We are still working on this feature!"
msgstr "开发中……"
#: mailu/ui/templates/admin/create.html:4
msgid "Add a global administrator"
msgstr "添加超级管理员"
#: mailu/ui/templates/admin/list.html:4
msgid "Global administrators"
msgstr "超级管理员"
#: mailu/ui/templates/admin/list.html:9
msgid "Add administrator"
msgstr "添加管理员"
#: mailu/ui/templates/admin/list.html:16 mailu/ui/templates/alias/list.html:18
#: mailu/ui/templates/alternative/list.html:18
#: mailu/ui/templates/domain/list.html:16 mailu/ui/templates/fetch/list.html:18
#: mailu/ui/templates/manager/list.html:18
#: mailu/ui/templates/relay/list.html:16 mailu/ui/templates/token/list.html:18
#: mailu/ui/templates/user/list.html:18
msgid "Actions"
msgstr "操作"
#: mailu/ui/templates/admin/list.html:17 mailu/ui/templates/alias/list.html:19
#: mailu/ui/templates/manager/list.html:19 mailu/ui/templates/user/list.html:20
msgid "Email"
msgstr "电子邮件"
#: mailu/ui/templates/admin/list.html:22 mailu/ui/templates/alias/list.html:29
#: mailu/ui/templates/alternative/list.html:25
#: mailu/ui/templates/domain/list.html:31 mailu/ui/templates/fetch/list.html:31
#: mailu/ui/templates/manager/list.html:24
#: mailu/ui/templates/relay/list.html:27 mailu/ui/templates/token/list.html:26
#: mailu/ui/templates/user/list.html:31
msgid "Delete"
msgstr "删除"
#: mailu/ui/templates/alias/create.html:4
msgid "Create alias"
msgstr "创建别名"
#: mailu/ui/templates/alias/edit.html:4
msgid "Edit alias"
msgstr "编辑别名"
#: mailu/ui/templates/alias/list.html:4
msgid "Alias list"
msgstr "别名列表"
#: mailu/ui/templates/alias/list.html:12
msgid "Add alias"
msgstr "添加别名"
#: mailu/ui/templates/alias/list.html:22
#: mailu/ui/templates/alternative/list.html:20
#: mailu/ui/templates/domain/list.html:22 mailu/ui/templates/fetch/list.html:24
#: mailu/ui/templates/relay/list.html:20 mailu/ui/templates/token/list.html:21
#: mailu/ui/templates/user/list.html:24
msgid "Created"
msgstr "创建"
#: mailu/ui/templates/alias/list.html:23 mailu/ui/templates/domain/list.html:23
#: mailu/ui/templates/fetch/list.html:25 mailu/ui/templates/relay/list.html:21
#: mailu/ui/templates/user/list.html:25
msgid "Last edit"
msgstr "上次编辑"
#: mailu/ui/templates/alias/list.html:28 mailu/ui/templates/domain/list.html:30
#: mailu/ui/templates/fetch/list.html:30 mailu/ui/templates/relay/list.html:26
#: mailu/ui/templates/user/list.html:30
msgid "Edit"
msgstr "编辑"
#: mailu/ui/templates/domain/create.html:4
#: mailu/ui/templates/domain/list.html:9
msgid "New domain"
msgstr "新域"
#: mailu/ui/templates/domain/details.html:4
msgid "Domain details"
msgstr "域详情"
#: mailu/ui/templates/domain/details.html:13
msgid "Regenerate keys"
msgstr "重新生成密钥"
#: mailu/ui/templates/domain/details.html:25
msgid "DNS MX entry"
msgstr "DNS MX条目"
#: mailu/ui/templates/domain/details.html:29
msgid "DNS SPF entries"
msgstr "DNS SPF条目"
#: mailu/ui/templates/domain/details.html:36
msgid "DKIM public key"
msgstr "DKIM公钥"
#: mailu/ui/templates/domain/details.html:40
msgid "DNS DKIM entry"
msgstr "DNS DKIM条目"
#: mailu/ui/templates/domain/details.html:44
msgid "DNS DMARC entry"
msgstr "DNS DMARC条目"
#: mailu/ui/templates/domain/edit.html:4
msgid "Edit domain"
msgstr "编辑域"
#: mailu/ui/templates/domain/list.html:4
msgid "Domain list"
msgstr "域列表"
#: mailu/ui/templates/domain/list.html:17
msgid "Manage"
msgstr "管理"
#: mailu/ui/templates/domain/list.html:19
msgid "Mailbox count"
msgstr "邮箱数量"
#: mailu/ui/templates/domain/list.html:20
msgid "Alias count"
msgstr "别名数量"
#: mailu/ui/templates/domain/list.html:28
msgid "Details"
msgstr "详情"
#: mailu/ui/templates/domain/list.html:35
msgid "Users"
msgstr "用户"
#: mailu/ui/templates/domain/list.html:36
msgid "Aliases"
msgstr "别名"
#: mailu/ui/templates/domain/list.html:37
msgid "Managers"
msgstr "管理员"
#: mailu/ui/templates/fetch/create.html:4
msgid "Add a fetched account"
msgstr "添加一个代收帐户"
#: mailu/ui/templates/fetch/edit.html:4
msgid "Update a fetched account"
msgstr "更新代收帐户"
#: mailu/ui/templates/fetch/list.html:12
msgid "Add an account"
msgstr "添加一个帐户"
#: mailu/ui/templates/fetch/list.html:19
msgid "Endpoint"
msgstr "端点"
#: mailu/ui/templates/fetch/list.html:22
msgid "Last check"
msgstr "上次检查"
#: mailu/ui/templates/manager/create.html:4
msgid "Add a manager"
msgstr "添加一个管理员"
#: mailu/ui/templates/manager/list.html:4
msgid "Manager list"
msgstr "管理员列表"
#: mailu/ui/templates/manager/list.html:12
msgid "Add manager"
msgstr "添加管理员"
#: mailu/ui/forms.py:152
msgid "Announcement subject"
msgstr "公告主题"
#: mailu/ui/forms.py:154
msgid "Announcement body"
msgstr "公告正文"
#: mailu/ui/forms.py:156
msgid "Send"
msgstr "发送"
#: mailu/ui/templates/announcement.html:4
msgid "Public announcement"
msgstr "公告"
#: mailu/ui/templates/announcement.html:8
msgid "from"
msgstr "来自"
#: mailu/ui/templates/sidebar.html:49
msgid "Announcement"
msgstr "公告"
#: mailu/ui/templates/user/create.html:4
msgid "New user"
msgstr "新用户"
#: mailu/ui/templates/user/edit.html:4
msgid "Edit user"
msgstr "编辑用户"
#: mailu/ui/templates/user/forward.html:4
msgid "Forward emails"
msgstr "转发电子邮件"
#: mailu/ui/templates/user/list.html:4
msgid "User list"
msgstr "用户列表"
#: mailu/ui/templates/user/list.html:12
msgid "Add user"
msgstr "添加用户"
#: mailu/ui/templates/user/list.html:19 mailu/ui/templates/user/settings.html:4
msgid "User settings"
msgstr "用户设置"
#: mailu/ui/templates/user/list.html:21
msgid "Features"
msgstr "功能"
#: mailu/ui/templates/user/password.html:4
msgid "Password update"
msgstr "密码更新"
#: mailu/ui/templates/user/reply.html:4
msgid "Automatic reply"
msgstr "自动回复"
#: mailu/ui/forms.py:49
msgid "Maximum user quota"
msgstr "最大用户容量"
#: mailu/ui/forms.py:92
msgid "Keep a copy of the emails"
msgstr "保留电子邮件副本"
#: mailu/ui/forms.py:147
msgid "Keep emails on the server"
msgstr "电子邮件保存在服务器上"
#: mailu/ui/templates/fetch/list.html:21
msgid "Keep emails"
msgstr "保存电子邮件"
#: mailu/ui/templates/fetch/list.html:35
msgid "yes"
msgstr "是"
#: mailu/ui/templates/fetch/list.html:35
msgid "no"
msgstr "否"
#: mailu/ui/forms.py:55
msgid "Alternative name"
msgstr "替代名称"
#: mailu/ui/forms.py:60
msgid "Relayed domain name"
msgstr "中继域域名"
#: mailu/ui/forms.py:61 mailu/ui/templates/relay/list.html:18
msgid "Remote host"
msgstr "远程主机"
#: mailu/ui/templates/sidebar.html:59
msgid "Relayed domains"
msgstr "中继域"
#: mailu/ui/templates/alternative/create.html:4
msgid "Create alternative domain"
msgstr "创建替代域"
#: mailu/ui/templates/alternative/list.html:4
msgid "Alternative domain list"
msgstr "替代域名列表"
#: mailu/ui/templates/alternative/list.html:12
msgid "Add alternative"
msgstr "添加替代"
#: mailu/ui/templates/alternative/list.html:19
msgid "Name"
msgstr "名称"
#: mailu/ui/templates/domain/list.html:39
msgid "Alternatives"
msgstr "备择方案"
#: mailu/ui/templates/relay/create.html:4
msgid "New relay domain"
msgstr "新的中继域"
#: mailu/ui/templates/relay/edit.html:4
msgid "Edit relayd domain"
msgstr "编辑中继域"
#: mailu/ui/templates/relay/list.html:4
msgid "Relayed domain list"
msgstr "中继域列表"
#: mailu/ui/templates/relay/list.html:9
msgid "New relayed domain"
msgstr "新的中继域"
#: mailu/ui/forms.py:109
msgid "Your token (write it down, as it will never be displayed again)"
msgstr "您的令牌(请保存下来,它只显示这一次)"
#: mailu/ui/forms.py:114 mailu/ui/templates/token/list.html:20
msgid "Authorized IP"
msgstr "授权IP"
#: mailu/ui/templates/sidebar.html:36 mailu/ui/templates/token/list.html:4
msgid "Authentication tokens"
msgstr "认证令牌"
#: mailu/ui/templates/sidebar.html:72
msgid "Go to"
msgstr "转到"
#: mailu/ui/templates/sidebar.html:76
msgid "Webmail"
msgstr "网页邮箱"
#: mailu/ui/templates/sidebar.html:82
msgid "Website"
msgstr "网站"
#: mailu/ui/templates/token/create.html:4
msgid "Create an authentication token"
msgstr "创建一个认证令牌"
#: mailu/ui/templates/token/list.html:12
msgid "New token"
msgstr "新的令牌"
#: mailu/ui/templates/user/create.html:15
msgid "General"
msgstr "一般"
#: mailu/ui/templates/user/create.html:21
msgid "Features and quotas"
msgstr "功能和配额"
#: mailu/ui/templates/user/settings.html:14
msgid "General settings"
msgstr "常规设置"
#: mailu/ui/templates/user/settings.html:18
msgid "Antispam"
msgstr "反垃圾邮件"
#: mailu/ui/forms.py:80
msgid "Spam filter tolerance"
msgstr ""

View File

@@ -0,0 +1,6 @@
from flask import Blueprint
ui = Blueprint('ui', __name__, static_folder='static', template_folder='templates')
from mailu.ui.views import *

View File

@@ -1,4 +1,5 @@
from mailu.admin import db, models, forms from mailu import db, models
from mailu.ui import forms
import flask import flask
import flask_login import flask_login

View File

@@ -51,6 +51,18 @@ class DomainForm(flask_wtf.FlaskForm):
submit = fields.SubmitField(_('Create')) submit = fields.SubmitField(_('Create'))
class AlternativeForm(flask_wtf.FlaskForm):
name = fields.StringField(_('Alternative name'), [validators.DataRequired()])
submit = fields.SubmitField(_('Create'))
class RelayForm(flask_wtf.FlaskForm):
name = fields.StringField(_('Relayed domain name'), [validators.DataRequired()])
smtp = fields.StringField(_('Remote host'))
comment = fields.StringField(_('Comment'))
submit = fields.SubmitField(_('Create'))
class UserForm(flask_wtf.FlaskForm): class UserForm(flask_wtf.FlaskForm):
localpart = fields.StringField(_('E-mail'), [validators.DataRequired()]) localpart = fields.StringField(_('E-mail'), [validators.DataRequired()])
pw = fields.PasswordField(_('Password'), [validators.DataRequired()]) pw = fields.PasswordField(_('Password'), [validators.DataRequired()])
@@ -65,7 +77,7 @@ class UserForm(flask_wtf.FlaskForm):
class UserSettingsForm(flask_wtf.FlaskForm): class UserSettingsForm(flask_wtf.FlaskForm):
displayed_name = fields.StringField(_('Displayed name')) displayed_name = fields.StringField(_('Displayed name'))
spam_enabled = fields.BooleanField(_('Enable spam filter')) spam_enabled = fields.BooleanField(_('Enable spam filter'))
spam_threshold = fields_.IntegerSliderField(_('Spam filter threshold')) spam_threshold = fields_.IntegerSliderField(_('Spam filter tolerance'))
submit = fields.SubmitField(_('Save settings')) submit = fields.SubmitField(_('Save settings'))
@@ -77,6 +89,7 @@ class UserPasswordForm(flask_wtf.FlaskForm):
class UserForwardForm(flask_wtf.FlaskForm): class UserForwardForm(flask_wtf.FlaskForm):
forward_enabled = fields.BooleanField(_('Enable forwarding')) forward_enabled = fields.BooleanField(_('Enable forwarding'))
forward_keep = fields.BooleanField(_('Keep a copy of the emails'))
forward_destination = fields.StringField( forward_destination = fields.StringField(
_('Destination'), [validators.Optional(), validators.Email()] _('Destination'), [validators.Optional(), validators.Email()]
) )
@@ -88,9 +101,22 @@ class UserReplyForm(flask_wtf.FlaskForm):
reply_subject = fields.StringField(_('Reply subject')) reply_subject = fields.StringField(_('Reply subject'))
reply_body = fields.StringField(_('Reply body'), reply_body = fields.StringField(_('Reply body'),
widget=widgets.TextArea()) widget=widgets.TextArea())
reply_enddate = fields.html5.DateField(_('End of vacation'))
submit = fields.SubmitField(_('Update')) submit = fields.SubmitField(_('Update'))
class TokenForm(flask_wtf.FlaskForm):
displayed_password = fields.StringField(
_('Your token (write it down, as it will never be displayed again)')
)
raw_password = fields.HiddenField([validators.DataRequired()])
comment = fields.StringField(_('Comment'))
ip = fields.StringField(
_('Authorized IP'), [validators.Optional(), validators.IPAddress()]
)
submit = fields.SubmitField(_('Create'))
class AliasForm(flask_wtf.FlaskForm): class AliasForm(flask_wtf.FlaskForm):
localpart = fields.StringField(_('Alias'), [validators.DataRequired()]) localpart = fields.StringField(_('Alias'), [validators.DataRequired()])
wildcard = fields.BooleanField( wildcard = fields.BooleanField(

Some files were not shown because too many files have changed in this diff Show More