mirror of
https://github.com/mailcow/mailcow-dockerized.git
synced 2026-02-20 08:06:24 +00:00
Compare commits
62 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
527f27d249 | ||
|
|
02557b2098 | ||
|
|
4c7a9ed195 | ||
|
|
d5b30a7a08 | ||
|
|
b7acef4d9d | ||
|
|
fc43c26c48 | ||
|
|
b12ce1eacd | ||
|
|
ec6dbb099a | ||
|
|
2fbbbbe9a9 | ||
|
|
1e4f3c55d8 | ||
|
|
a0f5454c2a | ||
|
|
4e7adacda9 | ||
|
|
4c64cf18a6 | ||
|
|
8a89f5c685 | ||
|
|
cc0e4fee9d | ||
|
|
5861c9af29 | ||
|
|
dd475c0ab3 | ||
|
|
407e9d3584 | ||
|
|
d4f899b091 | ||
|
|
372923ae2f | ||
|
|
3bd01190bf | ||
|
|
1994b9895b | ||
|
|
03d979c089 | ||
|
|
798e6a4c00 | ||
|
|
ffa2933873 | ||
|
|
7f47a3f00e | ||
|
|
1bcab9a9a5 | ||
|
|
1b2f424edc | ||
|
|
486b297409 | ||
|
|
75d7f06b25 | ||
|
|
ea0944d743 | ||
|
|
cb6ffe65c8 | ||
|
|
580dabd276 | ||
|
|
846862aa80 | ||
|
|
e7a1f24c78 | ||
|
|
8ff0e029f0 | ||
|
|
0680b21938 | ||
|
|
0c8e7bfeca | ||
|
|
badcd27b93 | ||
|
|
7d3ef3d67f | ||
|
|
5b89e253a6 | ||
|
|
a90f4c2a2e | ||
|
|
db7b917944 | ||
|
|
401b744808 | ||
|
|
0c83255573 | ||
|
|
d55f0fc366 | ||
|
|
06b3ba91a0 | ||
|
|
aa4125fe62 | ||
|
|
d8c6ed9191 | ||
|
|
cb47fa406f | ||
|
|
c4d0f35008 | ||
|
|
0d3e8dd738 | ||
|
|
692355a08a | ||
|
|
a370499aaa | ||
|
|
84f67d6608 | ||
|
|
4ac839cf49 | ||
|
|
b96a5b1efd | ||
|
|
766c5e8580 | ||
|
|
8408b82e9c | ||
|
|
cd3b1ab828 | ||
|
|
ceebc56e62 | ||
|
|
70190e5230 |
@@ -23,6 +23,9 @@ A big thank you to everyone supporting us on GitHub Sponsors—your contribution
|
||||
<a href="https://www.maehdros.com/" target=_blank><img
|
||||
src="https://avatars.githubusercontent.com/u/173894712" height="58"
|
||||
/></a>
|
||||
<a href="https://macarne.com/" target=_blank><img
|
||||
src="https://avatars.githubusercontent.com/u/149550368?s=200&v=4" height="58"
|
||||
/></a>
|
||||
|
||||
### 50$/Month Sponsors
|
||||
<a href="https://github.com/vnukhr" target=_blank><img
|
||||
|
||||
@@ -159,18 +159,6 @@ while true; do
|
||||
fi
|
||||
if [[ ! -f ${ACME_BASE}/acme/account.pem ]]; then
|
||||
log_f "Generating missing Lets Encrypt account key..."
|
||||
if [[ ! -z ${ACME_CONTACT} ]]; then
|
||||
if ! verify_email "${ACME_CONTACT}"; then
|
||||
log_f "Invalid email address, will not start registration!"
|
||||
sleep 365d
|
||||
exec $(readlink -f "$0")
|
||||
else
|
||||
ACME_CONTACT_PARAMETER="--contact mailto:${ACME_CONTACT}"
|
||||
log_f "Valid email address, using ${ACME_CONTACT} for registration"
|
||||
fi
|
||||
else
|
||||
ACME_CONTACT_PARAMETER=""
|
||||
fi
|
||||
openssl genrsa 4096 > ${ACME_BASE}/acme/account.pem
|
||||
else
|
||||
log_f "Using existing Lets Encrypt account key ${ACME_BASE}/acme/account.pem"
|
||||
@@ -299,7 +287,7 @@ while true; do
|
||||
VALIDATED_CERTIFICATES+=("${CERT_NAME}")
|
||||
|
||||
# obtain server certificate if required
|
||||
ACME_CONTACT_PARAMETER=${ACME_CONTACT_PARAMETER} DOMAINS=${SERVER_SAN_VALIDATED[@]} /srv/obtain-certificate.sh rsa
|
||||
DOMAINS=${SERVER_SAN_VALIDATED[@]} /srv/obtain-certificate.sh rsa
|
||||
RETURN="$?"
|
||||
if [[ "$RETURN" == "0" ]]; then # 0 = cert created successfully
|
||||
CERT_AMOUNT_CHANGED=1
|
||||
|
||||
@@ -93,8 +93,8 @@ until dig letsencrypt.org +time=3 +tries=1 @unbound > /dev/null; do
|
||||
sleep 2
|
||||
done
|
||||
log_f "Resolver OK"
|
||||
log_f "Using command acme-tiny ${DIRECTORY_URL} ${ACME_CONTACT_PARAMETER} --account-key ${ACME_BASE}/acme/account.pem --disable-check --csr ${CSR} --acme-dir /var/www/acme/"
|
||||
ACME_RESPONSE=$(acme-tiny ${DIRECTORY_URL} ${ACME_CONTACT_PARAMETER} \
|
||||
log_f "Using command acme-tiny ${DIRECTORY_URL} --account-key ${ACME_BASE}/acme/account.pem --disable-check --csr ${CSR} --acme-dir /var/www/acme/"
|
||||
ACME_RESPONSE=$(acme-tiny ${DIRECTORY_URL} \
|
||||
--account-key ${ACME_BASE}/acme/account.pem \
|
||||
--disable-check \
|
||||
--csr ${CSR} \
|
||||
|
||||
@@ -8,7 +8,8 @@ from email.mime.multipart import MIMEMultipart
|
||||
from email.mime.text import MIMEText
|
||||
from email.utils import COMMASPACE, formatdate
|
||||
import jinja2
|
||||
from jinja2 import Template
|
||||
from jinja2 import TemplateError
|
||||
from jinja2.sandbox import SandboxedEnvironment
|
||||
import json
|
||||
import redis
|
||||
import time
|
||||
@@ -80,17 +81,22 @@ try:
|
||||
if len(meta_query) == 0:
|
||||
return
|
||||
msg_count = len(meta_query)
|
||||
env = SandboxedEnvironment()
|
||||
if r.get('Q_HTML'):
|
||||
try:
|
||||
template = Template(r.get('Q_HTML'))
|
||||
except:
|
||||
print("Error: Cannot parse quarantine template, falling back to default template.")
|
||||
with open('/templates/quarantine.tpl') as file_:
|
||||
template = Template(file_.read())
|
||||
try:
|
||||
template = env.from_string(r.get('Q_HTML'))
|
||||
except Exception:
|
||||
print("Error: Cannot parse quarantine template, falling back to default template.")
|
||||
with open('/templates/quarantine.tpl') as file_:
|
||||
template = env.from_string(file_.read())
|
||||
else:
|
||||
with open('/templates/quarantine.tpl') as file_:
|
||||
template = Template(file_.read())
|
||||
html = template.render(meta=meta_query, username=rcpt, counter=msg_count, hostname=mailcow_hostname, quarantine_acl=quarantine_acl)
|
||||
with open('/templates/quarantine.tpl') as file_:
|
||||
template = env.from_string(file_.read())
|
||||
try:
|
||||
html = template.render(meta=meta_query, username=rcpt, counter=msg_count, hostname=mailcow_hostname, quarantine_acl=quarantine_acl)
|
||||
except (jinja2.exceptions.SecurityError, TemplateError) as ex:
|
||||
print(f"SecurityError or TemplateError in template rendering: {ex}")
|
||||
return
|
||||
text = html2text.html2text(html)
|
||||
count = 0
|
||||
while count < 15:
|
||||
|
||||
@@ -6,7 +6,7 @@ from email.mime.multipart import MIMEMultipart
|
||||
from email.mime.text import MIMEText
|
||||
from email.utils import COMMASPACE, formatdate
|
||||
import jinja2
|
||||
from jinja2 import Template
|
||||
from jinja2.sandbox import SandboxedEnvironment
|
||||
import redis
|
||||
import time
|
||||
import json
|
||||
@@ -33,16 +33,24 @@ while True:
|
||||
|
||||
if r.get('QW_HTML'):
|
||||
try:
|
||||
template = Template(r.get('QW_HTML'))
|
||||
except:
|
||||
print("Error: Cannot parse quarantine template, falling back to default template.")
|
||||
env = SandboxedEnvironment()
|
||||
template = env.from_string(r.get('QW_HTML'))
|
||||
except Exception:
|
||||
print("Error: Cannot parse quota template, falling back to default template.")
|
||||
with open('/templates/quota.tpl') as file_:
|
||||
template = Template(file_.read())
|
||||
env = SandboxedEnvironment()
|
||||
template = env.from_string(file_.read())
|
||||
else:
|
||||
with open('/templates/quota.tpl') as file_:
|
||||
template = Template(file_.read())
|
||||
env = SandboxedEnvironment()
|
||||
template = env.from_string(file_.read())
|
||||
|
||||
try:
|
||||
html = template.render(username=username, percent=percent)
|
||||
except (jinja2.exceptions.SecurityError, jinja2.TemplateError) as ex:
|
||||
print(f"SecurityError or TemplateError in template rendering: {ex}")
|
||||
sys.exit(1)
|
||||
|
||||
html = template.render(username=username, percent=percent)
|
||||
text = html2text.html2text(html)
|
||||
|
||||
try:
|
||||
|
||||
@@ -32,6 +32,13 @@ import time
|
||||
import magic
|
||||
import re
|
||||
|
||||
skip_olefy = os.getenv('SKIP_OLEFY', '')
|
||||
|
||||
if skip_olefy.lower() in ['yes', 'y']:
|
||||
print("SKIP_OLEFY=y, skipping Olefy...")
|
||||
time.sleep(365 * 24 * 60 * 60)
|
||||
sys.exit(0)
|
||||
|
||||
# merge variables from /etc/olefy.conf and the defaults
|
||||
olefy_listen_addr_string = os.getenv('OLEFY_BINDADDRESS', '127.0.0.1,::1')
|
||||
olefy_listen_port = int(os.getenv('OLEFY_BINDPORT', '10050'))
|
||||
@@ -113,7 +120,7 @@ def oletools( stream, tmp_file_name, lid ):
|
||||
out = bytes(out.decode('utf-8', 'ignore').replace(' ', ' ').replace('\t', '').replace('\n', '').replace('XLMMacroDeobfuscator: pywin32 is not installed (only is required if you want to use MS Excel)', ''), encoding="utf-8")
|
||||
failed = False
|
||||
if out.__len__() < 30:
|
||||
logger.error('{} olevba returned <30 chars - rc: {!r}, response: {!r}, error: {!r}'.format(lid,cmd_tmp.returncode,
|
||||
logger.error('{} olevba returned <30 chars - rc: {!r}, response: {!r}, error: {!r}'.format(lid,cmd_tmp.returncode,
|
||||
out.decode('utf-8', 'ignore'), err.decode('utf-8', 'ignore')))
|
||||
out = b'[ { "error": "Unhandled error - too short olevba response" } ]'
|
||||
failed = True
|
||||
|
||||
@@ -5,7 +5,7 @@ LABEL maintainer = "The Infrastructure Company GmbH <info@servercow.de>"
|
||||
# renovate: datasource=github-tags depName=krakjoe/apcu versioning=semver-coerced extractVersion=^v(?<version>.*)$
|
||||
ARG APCU_PECL_VERSION=5.1.24
|
||||
# renovate: datasource=github-tags depName=Imagick/imagick versioning=semver-coerced extractVersion=(?<version>.*)$
|
||||
ARG IMAGICK_PECL_VERSION=3.7.0
|
||||
ARG IMAGICK_PECL_VERSION=3.8.0
|
||||
# renovate: datasource=github-tags depName=php/pecl-mail-mailparse versioning=semver-coerced extractVersion=^v(?<version>.*)$
|
||||
ARG MAILPARSE_PECL_VERSION=3.1.8
|
||||
# renovate: datasource=github-tags depName=php-memcached-dev/php-memcached versioning=semver-coerced extractVersion=^v(?<version>.*)$
|
||||
|
||||
@@ -81,6 +81,27 @@ EOF
|
||||
redis-cli -h redis-mailcow -a ${REDISPASS} --no-auth-warning SLAVEOF NO ONE
|
||||
fi
|
||||
|
||||
if [[ "${SKIP_OLEFY}" =~ ^([yY][eE][sS]|[yY])+$ ]]; then
|
||||
if [[ -f /etc/rspamd/local.d/external_services.conf ]]; then
|
||||
rm /etc/rspamd/local.d/external_services.conf
|
||||
fi
|
||||
else
|
||||
cat <<EOF > /etc/rspamd/local.d/external_services.conf
|
||||
oletools {
|
||||
# default olefy settings
|
||||
servers = "olefy:10055";
|
||||
# needs to be set explicitly for Rspamd < 1.9.5
|
||||
scan_mime_parts = true;
|
||||
# mime-part regex matching in content-type or filename
|
||||
# block all macros
|
||||
extended = true;
|
||||
max_size = 3145728;
|
||||
timeout = 20.0;
|
||||
retransmits = 1;
|
||||
}
|
||||
EOF
|
||||
fi
|
||||
|
||||
# Provide additional lua modules
|
||||
ln -s /usr/lib/$(uname -m)-linux-gnu/liblua5.1-cjson.so.0.0.0 /usr/lib/rspamd/cjson.so
|
||||
|
||||
|
||||
@@ -994,6 +994,7 @@ PID=$!
|
||||
echo "Spawned cert_checks with PID ${PID}"
|
||||
BACKGROUND_TASKS+=(${PID})
|
||||
|
||||
if [[ "${SKIP_OLEFY}" =~ ^([nN][oO]|[nN])+$ ]]; then
|
||||
(
|
||||
while true; do
|
||||
if ! olefy_checks; then
|
||||
@@ -1005,6 +1006,7 @@ done
|
||||
PID=$!
|
||||
echo "Spawned olefy_checks with PID ${PID}"
|
||||
BACKGROUND_TASKS+=(${PID})
|
||||
fi
|
||||
|
||||
(
|
||||
while true; do
|
||||
|
||||
@@ -79,7 +79,9 @@ if ($isSOGoRequest) {
|
||||
}
|
||||
}
|
||||
if ($result === false){
|
||||
$result = apppass_login($post['username'], $post['password'], array($post['service'] => true), array(
|
||||
// If it's a SOGo Request, don't check for protocol access
|
||||
$service = ($isSOGoRequest) ? false : array($post['service'] => true);
|
||||
$result = apppass_login($post['username'], $post['password'], $service, array(
|
||||
'is_internal' => true,
|
||||
'remote_addr' => $post['real_rip']
|
||||
));
|
||||
|
||||
@@ -29,13 +29,23 @@ function auth_password_verify(request, password)
|
||||
insecure = true
|
||||
}
|
||||
|
||||
if c ~= 200 then
|
||||
-- Returning PASSDB_RESULT_PASSWORD_MISMATCH will reset the user's auth cache entry.
|
||||
-- Returning PASSDB_RESULT_INTERNAL_FAILURE keeps the existing cache entry,
|
||||
-- even if the TTL has expired. Useful to avoid cache eviction during backend issues.
|
||||
if c ~= 200 and c ~= 401 then
|
||||
dovecot.i_info("HTTP request failed with " .. c .. " for user " .. request.user)
|
||||
return dovecot.auth.PASSDB_RESULT_INTERNAL_FAILURE, "Upstream error"
|
||||
return dovecot.auth.PASSDB_RESULT_PASSWORD_MISMATCH, "Upstream error"
|
||||
end
|
||||
|
||||
local api_response = json.decode(table.concat(res))
|
||||
if api_response.success == true then
|
||||
local response_str = table.concat(res)
|
||||
local is_response_valid, response_json = pcall(json.decode, response_str)
|
||||
|
||||
if not is_response_valid then
|
||||
dovecot.i_info("Invalid JSON received: " .. response_str)
|
||||
return dovecot.auth.PASSDB_RESULT_PASSWORD_MISMATCH, "Invalid response format"
|
||||
end
|
||||
|
||||
if response_json.success == true then
|
||||
return dovecot.auth.PASSDB_RESULT_OK, ""
|
||||
end
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# Whitelist generated by Postwhite v3.4 on Tue Apr 1 00:20:51 UTC 2025
|
||||
# Whitelist generated by Postwhite v3.4 on Tue Jul 1 00:22:55 UTC 2025
|
||||
# https://github.com/stevejenkins/postwhite/
|
||||
# 2067 total rules
|
||||
# 2105 total rules
|
||||
2a00:1450:4000::/36 permit
|
||||
2a01:111:f400::/48 permit
|
||||
2a01:111:f403:8000::/50 permit
|
||||
@@ -18,26 +18,39 @@
|
||||
2a02:a60:0:5::/64 permit
|
||||
2c0f:fb50:4000::/36 permit
|
||||
2.207.151.53 permit
|
||||
2.207.217.30 permit
|
||||
3.64.237.68 permit
|
||||
3.65.3.180 permit
|
||||
3.70.123.177 permit
|
||||
3.72.182.33 permit
|
||||
3.74.81.189 permit
|
||||
3.75.33.185 permit
|
||||
3.93.157.0/24 permit
|
||||
3.94.40.108 permit
|
||||
3.129.120.190 permit
|
||||
3.210.190.0/24 permit
|
||||
3.211.80.218 permit
|
||||
3.216.221.67 permit
|
||||
3.221.209.22 permit
|
||||
8.20.114.31 permit
|
||||
8.25.194.0/23 permit
|
||||
8.25.196.0/23 permit
|
||||
8.36.116.0/24 permit
|
||||
8.39.54.0/23 permit
|
||||
8.39.54.250/31 permit
|
||||
8.39.144.0/24 permit
|
||||
8.40.222.0/23 permit
|
||||
8.40.222.250/31 permit
|
||||
12.130.86.238 permit
|
||||
13.107.246.59 permit
|
||||
13.107.246.51 permit
|
||||
13.110.208.0/21 permit
|
||||
13.110.209.0/24 permit
|
||||
13.110.216.0/22 permit
|
||||
13.110.224.0/20 permit
|
||||
13.111.0.0/16 permit
|
||||
13.111.191.0/24 permit
|
||||
13.216.7.111 permit
|
||||
13.216.54.180 permit
|
||||
15.200.21.50 permit
|
||||
15.200.44.248 permit
|
||||
15.200.201.185 permit
|
||||
@@ -50,9 +63,14 @@
|
||||
18.97.1.184/29 permit
|
||||
18.97.2.64/26 permit
|
||||
18.156.89.250 permit
|
||||
18.156.205.64 permit
|
||||
18.157.243.190 permit
|
||||
18.158.153.154 permit
|
||||
18.194.95.56 permit
|
||||
18.197.217.180 permit
|
||||
18.198.96.88 permit
|
||||
18.199.210.3 permit
|
||||
18.207.52.234 permit
|
||||
18.208.124.128/25 permit
|
||||
18.216.232.154 permit
|
||||
18.235.27.253 permit
|
||||
@@ -89,6 +107,7 @@
|
||||
23.253.183.147 permit
|
||||
23.253.183.148 permit
|
||||
23.253.183.150 permit
|
||||
24.110.64.0/18 permit
|
||||
27.123.204.128/30 permit
|
||||
27.123.204.132/31 permit
|
||||
27.123.204.148/30 permit
|
||||
@@ -103,6 +122,7 @@
|
||||
27.123.206.80/28 permit
|
||||
31.25.48.222 permit
|
||||
31.47.251.17 permit
|
||||
31.186.239.0/24 permit
|
||||
34.2.64.0/22 permit
|
||||
34.2.68.0/23 permit
|
||||
34.2.70.0/23 permit
|
||||
@@ -121,17 +141,30 @@
|
||||
34.2.90.0/23 permit
|
||||
34.2.92.0/23 permit
|
||||
34.2.94.0/23 permit
|
||||
34.70.158.162 permit
|
||||
34.74.74.140 permit
|
||||
34.83.159.189 permit
|
||||
34.141.160.224 permit
|
||||
34.193.58.168 permit
|
||||
34.195.217.107 permit
|
||||
34.197.10.50 permit
|
||||
34.197.254.9 permit
|
||||
34.198.94.229 permit
|
||||
34.198.218.121 permit
|
||||
34.212.163.75 permit
|
||||
34.215.104.144 permit
|
||||
34.218.115.239 permit
|
||||
34.218.116.3 permit
|
||||
34.225.212.172 permit
|
||||
35.83.148.184 permit
|
||||
35.155.198.111 permit
|
||||
35.158.23.94 permit
|
||||
35.161.32.253 permit
|
||||
35.162.73.231 permit
|
||||
35.167.93.243 permit
|
||||
35.176.132.251 permit
|
||||
35.190.247.0/24 permit
|
||||
35.191.0.0/16 permit
|
||||
35.205.92.9 permit
|
||||
35.228.216.85 permit
|
||||
35.242.169.159 permit
|
||||
37.188.97.188 permit
|
||||
37.218.248.47 permit
|
||||
@@ -146,9 +179,14 @@
|
||||
40.233.83.78 permit
|
||||
40.233.88.28 permit
|
||||
44.206.138.57 permit
|
||||
44.210.169.44 permit
|
||||
44.217.45.156 permit
|
||||
44.236.56.93 permit
|
||||
44.238.220.251 permit
|
||||
44.245.243.92 permit
|
||||
44.246.1.125 permit
|
||||
44.246.68.102 permit
|
||||
44.246.77.92 permit
|
||||
45.14.148.0/22 permit
|
||||
46.19.170.16 permit
|
||||
46.226.48.0/21 permit
|
||||
@@ -201,6 +239,7 @@
|
||||
46.243.88.177 permit
|
||||
46.243.95.179 permit
|
||||
46.243.95.180 permit
|
||||
50.16.246.183 permit
|
||||
50.18.45.249 permit
|
||||
50.18.121.236 permit
|
||||
50.18.121.248 permit
|
||||
@@ -214,14 +253,23 @@
|
||||
50.56.130.220 permit
|
||||
50.56.130.221 permit
|
||||
50.56.130.222 permit
|
||||
50.112.246.219 permit
|
||||
52.1.14.157 permit
|
||||
52.5.230.59 permit
|
||||
52.12.53.23 permit
|
||||
52.13.214.179 permit
|
||||
52.26.1.71 permit
|
||||
52.27.5.72 permit
|
||||
52.27.28.47 permit
|
||||
52.28.63.81 permit
|
||||
52.28.197.132 permit
|
||||
52.34.181.151 permit
|
||||
52.35.192.45 permit
|
||||
52.36.138.31 permit
|
||||
52.37.142.146 permit
|
||||
52.42.203.116 permit
|
||||
52.50.24.208 permit
|
||||
52.57.120.243 permit
|
||||
52.58.216.183 permit
|
||||
52.59.143.3 permit
|
||||
52.60.41.5 permit
|
||||
@@ -233,6 +281,7 @@
|
||||
52.95.49.88/29 permit
|
||||
52.96.91.34 permit
|
||||
52.96.111.82 permit
|
||||
52.96.172.98 permit
|
||||
52.96.214.50 permit
|
||||
52.96.222.194 permit
|
||||
52.96.222.226 permit
|
||||
@@ -263,11 +312,11 @@
|
||||
54.174.63.0/24 permit
|
||||
54.186.193.102 permit
|
||||
54.191.223.56 permit
|
||||
54.211.126.101 permit
|
||||
54.213.20.246 permit
|
||||
54.214.39.184 permit
|
||||
54.240.0.0/18 permit
|
||||
54.240.64.0/19 permit
|
||||
54.240.96.0/19 permit
|
||||
54.240.64.0/18 permit
|
||||
54.241.16.209 permit
|
||||
54.244.54.130 permit
|
||||
54.244.242.0/24 permit
|
||||
@@ -288,6 +337,9 @@
|
||||
63.128.21.0/24 permit
|
||||
63.143.57.128/25 permit
|
||||
63.143.59.128/25 permit
|
||||
63.176.194.123 permit
|
||||
63.178.132.221 permit
|
||||
63.178.143.178 permit
|
||||
64.18.0.0/20 permit
|
||||
64.20.241.45 permit
|
||||
64.69.212.0/24 permit
|
||||
@@ -309,9 +361,6 @@
|
||||
64.207.219.13 permit
|
||||
64.207.219.14 permit
|
||||
64.207.219.15 permit
|
||||
64.207.219.24 permit
|
||||
64.207.219.25 permit
|
||||
64.207.219.26 permit
|
||||
64.207.219.71 permit
|
||||
64.207.219.72 permit
|
||||
64.207.219.73 permit
|
||||
@@ -321,9 +370,6 @@
|
||||
64.207.219.77 permit
|
||||
64.207.219.78 permit
|
||||
64.207.219.79 permit
|
||||
64.207.219.88 permit
|
||||
64.207.219.89 permit
|
||||
64.207.219.90 permit
|
||||
64.207.219.135 permit
|
||||
64.207.219.136 permit
|
||||
64.207.219.137 permit
|
||||
@@ -362,8 +408,8 @@
|
||||
65.154.166.0/24 permit
|
||||
65.212.180.36 permit
|
||||
66.102.0.0/20 permit
|
||||
66.102.0.0/21 permit
|
||||
66.119.150.192/26 permit
|
||||
66.162.193.226/31 permit
|
||||
66.163.184.0/24 permit
|
||||
66.163.185.0/24 permit
|
||||
66.163.186.0/24 permit
|
||||
@@ -569,7 +615,6 @@
|
||||
74.86.241.250/31 permit
|
||||
74.112.67.243 permit
|
||||
74.125.0.0/16 permit
|
||||
74.202.227.40 permit
|
||||
74.208.4.200 permit
|
||||
74.208.4.201 permit
|
||||
74.208.4.220 permit
|
||||
@@ -1155,6 +1200,7 @@
|
||||
99.83.190.102 permit
|
||||
103.9.96.0/22 permit
|
||||
103.28.42.0/24 permit
|
||||
103.122.78.238 permit
|
||||
103.151.192.0/23 permit
|
||||
103.168.172.128/27 permit
|
||||
103.237.104.0/22 permit
|
||||
@@ -1289,6 +1335,7 @@
|
||||
106.50.16.0/28 permit
|
||||
107.20.18.111 permit
|
||||
107.20.210.250 permit
|
||||
107.22.191.150 permit
|
||||
108.174.0.0/24 permit
|
||||
108.174.0.215 permit
|
||||
108.174.3.0/24 permit
|
||||
@@ -1374,7 +1421,6 @@
|
||||
129.213.195.191 permit
|
||||
130.61.9.72 permit
|
||||
130.162.39.83 permit
|
||||
130.211.0.0/22 permit
|
||||
130.248.172.0/24 permit
|
||||
130.248.173.0/24 permit
|
||||
131.253.30.0/24 permit
|
||||
@@ -1452,6 +1498,7 @@
|
||||
146.20.215.0/24 permit
|
||||
146.20.215.182 permit
|
||||
146.88.28.0/24 permit
|
||||
146.148.116.76 permit
|
||||
147.154.32.0/25 permit
|
||||
147.243.1.47 permit
|
||||
147.243.1.48 permit
|
||||
@@ -1533,7 +1580,9 @@
|
||||
163.114.132.120 permit
|
||||
163.114.134.16 permit
|
||||
163.114.135.16 permit
|
||||
163.116.128.0/17 permit
|
||||
164.152.23.32 permit
|
||||
164.152.25.241 permit
|
||||
164.177.132.168/30 permit
|
||||
165.173.128.0/24 permit
|
||||
165.173.180.250/31 permit
|
||||
@@ -1562,6 +1611,7 @@
|
||||
168.138.5.36 permit
|
||||
168.138.73.51 permit
|
||||
168.138.77.31 permit
|
||||
168.138.237.153 permit
|
||||
168.245.0.0/17 permit
|
||||
168.245.12.252 permit
|
||||
168.245.46.9 permit
|
||||
@@ -1572,6 +1622,7 @@
|
||||
169.148.144.0/25 permit
|
||||
169.148.144.10 permit
|
||||
169.148.146.0/23 permit
|
||||
169.148.188.182 permit
|
||||
170.10.128.0/24 permit
|
||||
170.10.129.0/24 permit
|
||||
170.10.132.56/29 permit
|
||||
@@ -1697,6 +1748,21 @@
|
||||
193.123.56.63 permit
|
||||
194.19.134.0/25 permit
|
||||
194.64.234.129 permit
|
||||
194.97.196.0/24 permit
|
||||
194.97.196.3 permit
|
||||
194.97.196.4 permit
|
||||
194.97.196.11 permit
|
||||
194.97.196.12 permit
|
||||
194.97.204.0/24 permit
|
||||
194.97.204.3 permit
|
||||
194.97.204.4 permit
|
||||
194.97.204.11 permit
|
||||
194.97.204.12 permit
|
||||
194.97.212.0/24 permit
|
||||
194.97.212.3 permit
|
||||
194.97.212.4 permit
|
||||
194.97.212.11 permit
|
||||
194.97.212.12 permit
|
||||
194.106.220.0/23 permit
|
||||
194.113.24.0/22 permit
|
||||
194.154.193.192/27 permit
|
||||
@@ -1742,6 +1808,7 @@
|
||||
199.67.84.0/24 permit
|
||||
199.67.86.0/24 permit
|
||||
199.67.88.0/24 permit
|
||||
199.67.90.0/24 permit
|
||||
199.101.161.130 permit
|
||||
199.101.162.0/25 permit
|
||||
199.122.120.0/21 permit
|
||||
@@ -1798,11 +1865,11 @@
|
||||
204.92.114.187 permit
|
||||
204.92.114.203 permit
|
||||
204.92.114.204/31 permit
|
||||
204.141.32.0/23 permit
|
||||
204.141.42.0/23 permit
|
||||
204.216.164.202 permit
|
||||
204.220.160.0/21 permit
|
||||
204.220.168.0/21 permit
|
||||
204.220.176.0/20 permit
|
||||
204.220.181.105 permit
|
||||
204.232.168.0/24 permit
|
||||
205.139.110.0/24 permit
|
||||
205.201.128.0/20 permit
|
||||
@@ -1982,6 +2049,7 @@
|
||||
216.17.150.242 permit
|
||||
216.17.150.251 permit
|
||||
216.24.224.0/20 permit
|
||||
216.27.86.152/31 permit
|
||||
216.39.60.154/31 permit
|
||||
216.39.60.156/30 permit
|
||||
216.39.60.160/30 permit
|
||||
@@ -2019,6 +2087,8 @@
|
||||
216.99.5.68 permit
|
||||
216.109.114.32/27 permit
|
||||
216.109.114.64/29 permit
|
||||
216.113.162.65 permit
|
||||
216.113.163.65 permit
|
||||
216.128.126.97 permit
|
||||
216.136.162.65 permit
|
||||
216.136.162.120/29 permit
|
||||
@@ -2046,6 +2116,21 @@
|
||||
2001:0868:0100:0600::/64 permit
|
||||
2001:4860:4000::/36 permit
|
||||
2001:748:100:40::2:0/112 permit
|
||||
2001:748:400:1300::3 permit
|
||||
2001:748:400:1300::4 permit
|
||||
2001:748:400:1301::0/64 permit
|
||||
2001:748:400:1301::3 permit
|
||||
2001:748:400:1301::4 permit
|
||||
2001:748:400:2300::3 permit
|
||||
2001:748:400:2300::4 permit
|
||||
2001:748:400:2301::0/64 permit
|
||||
2001:748:400:2301::3 permit
|
||||
2001:748:400:2301::4 permit
|
||||
2001:748:400:3300::3 permit
|
||||
2001:748:400:3300::4 permit
|
||||
2001:748:400:3301::0/64 permit
|
||||
2001:748:400:3301::3 permit
|
||||
2001:748:400:3301::4 permit
|
||||
2404:6800:4000::/36 permit
|
||||
2603:1010:3:3::5b permit
|
||||
2603:1020:201:10::10f permit
|
||||
|
||||
@@ -24,7 +24,6 @@
|
||||
/.+\.guru$/i
|
||||
/.+\.icu$/i
|
||||
/.+\.id$/i
|
||||
/.+\.info$/i
|
||||
/.+\.in.net$/i
|
||||
/.+\.ir$/i
|
||||
/.+\.jetzt$/i
|
||||
|
||||
@@ -8,7 +8,7 @@ VIRUS_FOUND {
|
||||
}
|
||||
# Bad policy from free mail providers
|
||||
FREEMAIL_POLICY_FAILURE {
|
||||
expression = "FREEMAIL_FROM & !DMARC_POLICY_ALLOW & !MAILLIST& !WHITELISTED_FWD_HOST & -g+:policies";
|
||||
expression = "FREEMAIL_FROM & !DMARC_POLICY_ALLOW & !MAILLIST & !WHITELISTED_FWD_HOST & -g+:policies";
|
||||
score = 16.0;
|
||||
}
|
||||
# Applies to freemail with undisclosed recipients
|
||||
|
||||
@@ -1,12 +0,0 @@
|
||||
oletools {
|
||||
# default olefy settings
|
||||
servers = "olefy:10055";
|
||||
# needs to be set explicitly for Rspamd < 1.9.5
|
||||
scan_mime_parts = true;
|
||||
# mime-part regex matching in content-type or filename
|
||||
# block all macros
|
||||
extended = true;
|
||||
max_size = 3145728;
|
||||
timeout = 20.0;
|
||||
retransmits = 1;
|
||||
}
|
||||
@@ -16,6 +16,9 @@
|
||||
SOGoFoldersSendEMailNotifications = YES;
|
||||
SOGoForwardEnabled = YES;
|
||||
|
||||
// Added with SOGo 5.12 - Allows users to cleanup there maildirectories by deleting mails oder than X
|
||||
SOGoEnableMailCleaning = YES;
|
||||
|
||||
// Fixes "MODIFICATION_FAILED" error (HTTP 412) in Clients when accepting invitations from external services
|
||||
SOGoDisableOrganizerEventCheck = YES;
|
||||
|
||||
@@ -91,7 +94,7 @@
|
||||
//SoDebugBaseURL = YES;
|
||||
//ImapDebugEnabled = YES;
|
||||
//SOGoEASDebugEnabled = YES;
|
||||
SOGoEASSearchInBody = YES; // Experimental. Enabled since 2023-10
|
||||
SOGoEASSearchInBody = YES;
|
||||
//LDAPDebugEnabled = YES;
|
||||
//PGDebugEnabled = YES;
|
||||
//MySQL4DebugEnabled = YES;
|
||||
|
||||
@@ -18,6 +18,7 @@ elseif (!isset($_SESSION['mailcow_cc_role']) || $_SESSION['mailcow_cc_role'] !=
|
||||
require_once $_SERVER['DOCUMENT_ROOT'] . '/inc/header.inc.php';
|
||||
$_SESSION['return_to'] = $_SERVER['REQUEST_URI'];
|
||||
$clamd_status = (preg_match("/^([yY][eE][sS]|[yY])+$/", $_ENV["SKIP_CLAMD"])) ? false : true;
|
||||
$olefy_status = (preg_match("/^([yY][eE][sS]|[yY])+$/", $_ENV["SKIP_OLEFY"])) ? false : true;
|
||||
|
||||
|
||||
if (!isset($_SESSION['gal']) && $license_cache = $redis->Get('LICENSE_STATUS_CACHE')) {
|
||||
@@ -33,6 +34,7 @@ $vmail_df = explode(',', (string)json_decode(docker('post', 'dovecot-mailcow', '
|
||||
// containers
|
||||
$containers_info = (array) docker('info');
|
||||
if ($clamd_status === false) unset($containers_info['clamd-mailcow']);
|
||||
if ($olefy_status === false) unset($containers_info['olefy-mailcow']);
|
||||
ksort($containers_info);
|
||||
$containers = array();
|
||||
foreach ($containers_info as $container => $container_info) {
|
||||
@@ -77,6 +79,7 @@ $template_data = [
|
||||
'gal' => @$_SESSION['gal'],
|
||||
'license_guid' => license('guid'),
|
||||
'clamd_status' => $clamd_status,
|
||||
'olefy_status' => $olefy_status,
|
||||
'containers' => $containers,
|
||||
'ip_check' => customize('get', 'ip_check'),
|
||||
'lang_admin' => json_encode($lang['admin']),
|
||||
|
||||
@@ -22,7 +22,8 @@ $_SESSION['index_query_string'] = $_SERVER['QUERY_STRING'];
|
||||
|
||||
$template = 'admin_index.twig';
|
||||
$template_data = [
|
||||
'login_delay' => @$_SESSION['ldelay']
|
||||
'login_delay' => @$_SESSION['ldelay'],
|
||||
'custom_login' => customize('get', 'custom_login'),
|
||||
];
|
||||
|
||||
$js_minifier->add('/web/js/site/index.js');
|
||||
|
||||
@@ -125,6 +125,7 @@ $template_data = [
|
||||
'logo_specs' => customize('get', 'main_logo_specs'),
|
||||
'logo_dark_specs' => customize('get', 'main_logo_dark_specs'),
|
||||
'ip_check' => customize('get', 'ip_check'),
|
||||
'custom_login' => customize('get', 'custom_login'),
|
||||
'password_complexity' => password_complexity('get'),
|
||||
'show_rspamd_global_filters' => @$_SESSION['show_rspamd_global_filters'],
|
||||
'cors_settings' => $cors_settings,
|
||||
|
||||
@@ -5847,6 +5847,7 @@ paths:
|
||||
client_id: "mailcow_client"
|
||||
client_secret: "*"
|
||||
redirect_url: "https://mail.mailcow.tld"
|
||||
redirect_url_extra: ["https://extramail.mailcow.tld"]
|
||||
version: "26.1.3"
|
||||
default_template: "Default"
|
||||
mappers:
|
||||
@@ -5900,6 +5901,9 @@ paths:
|
||||
redirect_url:
|
||||
description: The redirect URL that OIDC Provider will use after authentication. Required if `authsource` is keycloak or generic-oidc.
|
||||
type: string
|
||||
redirect_url_extra:
|
||||
description: Additional redirect URLs that OIDC Provider can use after authentication if valid.
|
||||
type: array
|
||||
version:
|
||||
description: Specifies the Keycloak version. Required if `authsource` is keycloak.
|
||||
type: string
|
||||
@@ -5990,6 +5994,7 @@ paths:
|
||||
client_id: "mailcow_client"
|
||||
client_secret: "Xy7GdPqvJ9m3R8sT2LkVZ5W1oNbCaYQf"
|
||||
redirect_url: "https://mail.mailcow.tld"
|
||||
redirect_url_extra: ["https://extramail.mailcow.tld"]
|
||||
version: "26.1.3"
|
||||
default_template: "Default"
|
||||
mappers: ["small_mbox", "medium_mbox"]
|
||||
@@ -6034,6 +6039,7 @@ paths:
|
||||
client_id: "mailcow_client"
|
||||
client_secret: "Xy7GdPqvJ9m3R8sT2LkVZ5W1oNbCaYQf"
|
||||
redirect_url: "https://mail.mailcow.tld"
|
||||
redirect_url_extra: ["https://extramail.mailcow.tld"]
|
||||
client_scopes: "openid profile email mailcow_template"
|
||||
default_template: "Default"
|
||||
mappers: ["small_mbox", "medium_mbox"]
|
||||
|
||||
@@ -85,7 +85,7 @@ if (count($records) == 0 || $records[0]['target'] != '') { ?>
|
||||
<authentication>password-cleartext</authentication>
|
||||
</outgoingServer>
|
||||
|
||||
<enable visiturl="https://<?=$mailcow_hostname; ?><?php if ($port != 443) echo ':'.$port; ?>/admin.php">
|
||||
<enable visiturl="https://<?=$mailcow_hostname; ?><?php if ($port != 443) echo ':'.$port; ?>/admin">
|
||||
<instruction>If you didn't change the password given to you by the administrator or if you didn't change it in a long time, please consider doing that now.</instruction>
|
||||
<instruction lang="de">Sollten Sie das Ihnen durch den Administrator vergebene Passwort noch nicht geändert haben, empfehlen wir dies nun zu tun. Auch ein altes Passwort sollte aus Sicherheitsgründen geändert werden.</instruction>
|
||||
</enable>
|
||||
|
||||
@@ -22,6 +22,7 @@ $_SESSION['index_query_string'] = $_SERVER['QUERY_STRING'];
|
||||
$template = 'domainadmin_index.twig';
|
||||
$template_data = [
|
||||
'login_delay' => @$_SESSION['ldelay'],
|
||||
'custom_login' => customize('get', 'custom_login'),
|
||||
];
|
||||
|
||||
$js_minifier->add('/web/js/site/index.js');
|
||||
|
||||
@@ -242,6 +242,7 @@ function user_login($user, $pass, $extra = null){
|
||||
return false;
|
||||
}
|
||||
|
||||
$row['attributes'] = json_decode($row['attributes'], true);
|
||||
switch ($row['authsource']) {
|
||||
case 'keycloak':
|
||||
// user authsource is keycloak, try using via rest flow
|
||||
@@ -351,6 +352,11 @@ function user_login($user, $pass, $extra = null){
|
||||
}
|
||||
// verify password
|
||||
if (verify_hash($row['password'], $pass) !== false) {
|
||||
|
||||
if (intval($row['attributes']['force_pw_update']) == 1) {
|
||||
$_SESSION['pending_pw_update'] = true;
|
||||
}
|
||||
|
||||
// check for tfa authenticators
|
||||
$authenticators = get_tfa($user);
|
||||
if (isset($authenticators['additional']) && is_array($authenticators['additional']) && count($authenticators['additional']) > 0 && !$is_internal) {
|
||||
@@ -471,6 +477,9 @@ function keycloak_mbox_login_rest($user, $pass, $extra = null){
|
||||
}
|
||||
return false;
|
||||
}
|
||||
if (!$iam_provider) {
|
||||
return false;
|
||||
}
|
||||
|
||||
// get access_token for service account of mailcow client
|
||||
$admin_token = identity_provider("get-keycloak-admin-token");
|
||||
@@ -540,6 +549,17 @@ function keycloak_mbox_login_rest($user, $pass, $extra = null){
|
||||
return 'user';
|
||||
}
|
||||
|
||||
// check if login provisioning is enabled before creating user
|
||||
if (!$iam_settings['login_provisioning']){
|
||||
if (!$is_internal){
|
||||
$_SESSION['return'][] = array(
|
||||
'type' => 'danger',
|
||||
'log' => array(__FUNCTION__, "Auto-create users on login is deactivated"),
|
||||
'msg' => 'login_failed'
|
||||
);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
// check if matching attribute exist
|
||||
if (empty($iam_settings['mappers']) || !$user_template || $mapper_key === false) {
|
||||
if (!empty($iam_settings['default_template'])) {
|
||||
@@ -653,10 +673,21 @@ function ldap_mbox_login($user, $pass, $extra = null){
|
||||
return 'user';
|
||||
}
|
||||
|
||||
// check if login provisioning is enabled before creating user
|
||||
if (!$iam_settings['login_provisioning']){
|
||||
if (!$is_internal){
|
||||
$_SESSION['return'][] = array(
|
||||
'type' => 'danger',
|
||||
'log' => array(__FUNCTION__, "Auto-create users on login is deactivated"),
|
||||
'msg' => 'login_failed'
|
||||
);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
// check if matching attribute exist
|
||||
if (empty($iam_settings['mappers']) || !$user_template || $mapper_key === false) {
|
||||
if (!empty($iam_settings['default_tempalte'])) {
|
||||
$mbox_template = $iam_settings['default_tempalte'];
|
||||
if (!empty($iam_settings['default_template'])) {
|
||||
$mbox_template = $iam_settings['default_template'];
|
||||
} else {
|
||||
$_SESSION['return'][] = array(
|
||||
'type' => 'danger',
|
||||
|
||||
@@ -204,6 +204,35 @@ function customize($_action, $_item, $_data = null) {
|
||||
'msg' => 'ip_check_opt_in_modified'
|
||||
);
|
||||
break;
|
||||
case 'custom_login':
|
||||
$hide_user_quicklink = ($_data['hide_user_quicklink'] == "1") ? 1 : 0;
|
||||
$hide_domainadmin_quicklink = ($_data['hide_domainadmin_quicklink'] == "1") ? 1 : 0;
|
||||
$hide_admin_quicklink = ($_data['hide_admin_quicklink'] == "1") ? 1 : 0;
|
||||
$force_sso = ($_data['force_sso'] == "1") ? 1 : 0;
|
||||
|
||||
$custom_login = array(
|
||||
"hide_user_quicklink" => $hide_user_quicklink,
|
||||
"hide_domainadmin_quicklink" => $hide_domainadmin_quicklink,
|
||||
"hide_admin_quicklink" => $hide_admin_quicklink,
|
||||
"force_sso" => $force_sso,
|
||||
);
|
||||
try {
|
||||
$redis->set('CUSTOM_LOGIN', json_encode($custom_login));
|
||||
}
|
||||
catch (RedisException $e) {
|
||||
$_SESSION['return'][] = array(
|
||||
'type' => 'danger',
|
||||
'log' => array(__FUNCTION__, $_action, $_item, $_data),
|
||||
'msg' => array('redis_error', $e)
|
||||
);
|
||||
return false;
|
||||
}
|
||||
$_SESSION['return'][] = array(
|
||||
'type' => 'success',
|
||||
'log' => array(__FUNCTION__, $_action, $_item, $_data),
|
||||
'msg' => 'custom_login_modified'
|
||||
);
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case 'delete':
|
||||
@@ -357,6 +386,20 @@ function customize($_action, $_item, $_data = null) {
|
||||
return false;
|
||||
}
|
||||
break;
|
||||
case 'custom_login':
|
||||
try {
|
||||
$custom_login = $redis->get('CUSTOM_LOGIN');
|
||||
return $custom_login ? json_decode($custom_login, true) : array();
|
||||
}
|
||||
catch (RedisException $e) {
|
||||
$_SESSION['return'][] = array(
|
||||
'type' => 'danger',
|
||||
'log' => array(__FUNCTION__, $_action, $_item, $_data),
|
||||
'msg' => array('redis_error', $e)
|
||||
);
|
||||
return false;
|
||||
}
|
||||
break;
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -1001,6 +1001,7 @@ function edit_user_account($_data) {
|
||||
':password_hashed' => $password_hashed,
|
||||
':username' => $username
|
||||
));
|
||||
$_SESSION['pending_pw_update'] = false;
|
||||
|
||||
update_sogo_static_view();
|
||||
}
|
||||
@@ -2286,12 +2287,14 @@ function identity_provider($_action = null, $_data = null, $_extra = null) {
|
||||
$rows = $stmt->fetchAll(PDO::FETCH_ASSOC);
|
||||
foreach($rows as $row){
|
||||
switch ($row["key"]) {
|
||||
case "redirect_url_extra":
|
||||
case "mappers":
|
||||
case "templates":
|
||||
$settings[$row["key"]] = json_decode($row["value"]);
|
||||
break;
|
||||
case "use_ssl":
|
||||
case "use_tls":
|
||||
case "login_provisioning":
|
||||
case "ignore_ssl_errors":
|
||||
$settings[$row["key"]] = boolval($row["value"]);
|
||||
break;
|
||||
@@ -2300,6 +2303,10 @@ function identity_provider($_action = null, $_data = null, $_extra = null) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
// set login_provisioning if not exists
|
||||
if (!array_key_exists('login_provisioning', $settings)) {
|
||||
$settings['login_provisioning'] = 1;
|
||||
}
|
||||
// return default client_scopes for generic-oidc if none is set
|
||||
if ($settings["authsource"] == "generic-oidc" && empty($settings["client_scopes"])){
|
||||
$settings["client_scopes"] = "openid profile email mailcow_template";
|
||||
@@ -2364,7 +2371,8 @@ function identity_provider($_action = null, $_data = null, $_extra = null) {
|
||||
return false;
|
||||
}
|
||||
|
||||
$_data['ignore_ssl_error'] = isset($_data['ignore_ssl_error']) ? boolval($_data['ignore_ssl_error']) : false;
|
||||
$_data['ignore_ssl_error'] = isset($_data['ignore_ssl_error']) ? boolval($_data['ignore_ssl_error']) : false;
|
||||
$_data['login_provisioning'] = isset($_data['login_provisioning']) ? boolval($_data['login_provisioning']) : false;
|
||||
switch ($_data['authsource']) {
|
||||
case "keycloak":
|
||||
$_data['server_url'] = (!empty($_data['server_url'])) ? rtrim($_data['server_url'], '/') : null;
|
||||
@@ -2373,14 +2381,14 @@ function identity_provider($_action = null, $_data = null, $_extra = null) {
|
||||
$_data['import_users'] = isset($_data['import_users']) ? intval($_data['import_users']) : 0;
|
||||
$_data['sync_interval'] = (!empty($_data['sync_interval'])) ? intval($_data['sync_interval']) : 15;
|
||||
$_data['sync_interval'] = $_data['sync_interval'] < 1 ? 1 : $_data['sync_interval'];
|
||||
$required_settings = array('authsource', 'server_url', 'realm', 'client_id', 'client_secret', 'redirect_url', 'version', 'mailpassword_flow', 'periodic_sync', 'import_users', 'sync_interval', 'ignore_ssl_error');
|
||||
$required_settings = array('authsource', 'server_url', 'realm', 'client_id', 'client_secret', 'redirect_url', 'version', 'mailpassword_flow', 'periodic_sync', 'import_users', 'sync_interval', 'ignore_ssl_error', 'login_provisioning');
|
||||
break;
|
||||
case "generic-oidc":
|
||||
$_data['authorize_url'] = (!empty($_data['authorize_url'])) ? $_data['authorize_url'] : null;
|
||||
$_data['token_url'] = (!empty($_data['token_url'])) ? $_data['token_url'] : null;
|
||||
$_data['userinfo_url'] = (!empty($_data['userinfo_url'])) ? $_data['userinfo_url'] : null;
|
||||
$_data['client_scopes'] = (!empty($_data['client_scopes'])) ? $_data['client_scopes'] : "openid profile email mailcow_template";
|
||||
$required_settings = array('authsource', 'authorize_url', 'token_url', 'client_id', 'client_secret', 'redirect_url', 'userinfo_url', 'client_scopes', 'ignore_ssl_error');
|
||||
$required_settings = array('authsource', 'authorize_url', 'token_url', 'client_id', 'client_secret', 'redirect_url', 'userinfo_url', 'client_scopes', 'ignore_ssl_error', 'login_provisioning');
|
||||
break;
|
||||
case "ldap":
|
||||
$_data['host'] = (!empty($_data['host'])) ? str_replace(" ", "", $_data['host']) : "";
|
||||
@@ -2394,7 +2402,7 @@ function identity_provider($_action = null, $_data = null, $_extra = null) {
|
||||
$_data['use_tls'] = isset($_data['use_tls']) && !$_data['use_ssl'] ? boolval($_data['use_tls']) : false;
|
||||
$_data['sync_interval'] = (!empty($_data['sync_interval'])) ? intval($_data['sync_interval']) : 15;
|
||||
$_data['sync_interval'] = $_data['sync_interval'] < 1 ? 1 : $_data['sync_interval'];
|
||||
$required_settings = array('authsource', 'host', 'port', 'basedn', 'username_field', 'filter', 'attribute_field', 'binddn', 'bindpass', 'periodic_sync', 'import_users', 'sync_interval', 'use_ssl', 'use_tls', 'ignore_ssl_error');
|
||||
$required_settings = array('authsource', 'host', 'port', 'basedn', 'username_field', 'filter', 'attribute_field', 'binddn', 'bindpass', 'periodic_sync', 'import_users', 'sync_interval', 'use_ssl', 'use_tls', 'ignore_ssl_error', 'login_provisioning');
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -2418,6 +2426,18 @@ function identity_provider($_action = null, $_data = null, $_extra = null) {
|
||||
}
|
||||
$pdo->commit();
|
||||
|
||||
// add redirect_url_extra
|
||||
if (isset($_data['redirect_url_extra'])){
|
||||
$_data['redirect_url_extra'] = (!is_array($_data['redirect_url_extra'])) ? array($_data['redirect_url_extra']) : $_data['redirect_url_extra'];
|
||||
|
||||
$redirect_url_extra = array_filter($_data['redirect_url_extra']);
|
||||
$redirect_url_extra = json_encode($redirect_url_extra);
|
||||
|
||||
$stmt = $pdo->prepare("INSERT INTO identity_provider (`key`, `value`) VALUES ('redirect_url_extra', :value) ON DUPLICATE KEY UPDATE `value` = VALUES(`value`);");
|
||||
$stmt->bindParam(':value', $redirect_url_extra);
|
||||
$stmt->execute();
|
||||
}
|
||||
|
||||
// add default template
|
||||
if (isset($_data['default_template'])) {
|
||||
$_data['default_template'] = (empty($_data['default_template'])) ? "" : $_data['default_template'];
|
||||
@@ -2752,6 +2772,16 @@ function identity_provider($_action = null, $_data = null, $_extra = null) {
|
||||
return true;
|
||||
}
|
||||
|
||||
// user doesn't exist, check if login provisioning is enabled
|
||||
if (!$iam_settings['login_provisioning']){
|
||||
$_SESSION['return'][] = array(
|
||||
'type' => 'danger',
|
||||
'log' => array(__FUNCTION__, "Auto-create users on login is deactivated"),
|
||||
'msg' => 'login_failed'
|
||||
);
|
||||
return false;
|
||||
}
|
||||
|
||||
if (empty($iam_settings['mappers']) || empty($user_template) || $mapper_key === false){
|
||||
if (!empty($iam_settings['default_template'])) {
|
||||
$mbox_template = $iam_settings['default_template'];
|
||||
@@ -2851,7 +2881,19 @@ function identity_provider($_action = null, $_data = null, $_extra = null) {
|
||||
case "get-redirect":
|
||||
if ($iam_settings['authsource'] != 'keycloak' && $iam_settings['authsource'] != 'generic-oidc')
|
||||
return false;
|
||||
$authUrl = $iam_provider->getAuthorizationUrl();
|
||||
$options = [];
|
||||
if (isset($iam_settings['redirect_url_extra'])) {
|
||||
// check if the current domain is used in an extra redirect URL
|
||||
$targetDomain = strtolower($_SERVER['HTTP_HOST']);
|
||||
foreach ($iam_settings['redirect_url_extra'] as $testUrl) {
|
||||
$testUrlParsed = parse_url($testUrl);
|
||||
if (isset($testUrlParsed['host']) && strtolower($testUrlParsed['host']) == $targetDomain) {
|
||||
$options['redirect_uri'] = $testUrl;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
$authUrl = $iam_provider->getAuthorizationUrl($options);
|
||||
$_SESSION['oauth2state'] = $iam_provider->getState();
|
||||
return $authUrl;
|
||||
break;
|
||||
|
||||
@@ -169,7 +169,7 @@ function quarantine($_action, $_data = null) {
|
||||
}
|
||||
}
|
||||
elseif ($release_format == 'raw') {
|
||||
$detail_row['msg'] = preg_replace('/^X-Spam-Flag: (.*)/', 'X-Pre-Release-Spam-Flag $1', $detail_row['msg']);
|
||||
$detail_row['msg'] = preg_replace('/^X-Spam-Flag: (.*)/m', 'X-Pre-Release-Spam-Flag: $1', $detail_row['msg']);
|
||||
$postfix_talk = array(
|
||||
array('220', 'HELO quarantine' . chr(10)),
|
||||
array('250', 'MAIL FROM: ' . $sender . chr(10)),
|
||||
@@ -464,7 +464,7 @@ function quarantine($_action, $_data = null) {
|
||||
}
|
||||
}
|
||||
elseif ($release_format == 'raw') {
|
||||
$row['msg'] = preg_replace('/^X-Spam-Flag: (.*)/', 'X-Pre-Release-Spam-Flag $1', $row['msg']);
|
||||
$row['msg'] = preg_replace('/^X-Spam-Flag: (.*)/m', 'X-Pre-Release-Spam-Flag: $1', $row['msg']);
|
||||
$postfix_talk = array(
|
||||
array('220', 'HELO quarantine' . chr(10)),
|
||||
array('250', 'MAIL FROM: ' . $sender . chr(10)),
|
||||
|
||||
@@ -76,7 +76,10 @@ if (isset($_POST["verify_tfa_login"])) {
|
||||
|
||||
$user_details = mailbox("get", "mailbox_details", $_SESSION['mailcow_cc_username']);
|
||||
$is_dual = (!empty($_SESSION["dual-login"]["username"])) ? true : false;
|
||||
if (intval($user_details['attributes']['sogo_access']) == 1 && !$is_dual) {
|
||||
if (intval($user_details['attributes']['sogo_access']) == 1 &&
|
||||
intval($user_details['attributes']['force_pw_update']) != 1 &&
|
||||
getenv('SKIP_SOGO') != "y" &&
|
||||
!$is_dual) {
|
||||
header("Location: /SOGo/so/{$_SESSION['mailcow_cc_username']}");
|
||||
die();
|
||||
} else {
|
||||
@@ -139,7 +142,10 @@ if (isset($_POST["login_user"]) && isset($_POST["pass_user"])) {
|
||||
|
||||
$user_details = mailbox("get", "mailbox_details", $login_user);
|
||||
$is_dual = (!empty($_SESSION["dual-login"]["username"])) ? true : false;
|
||||
if (intval($user_details['attributes']['sogo_access']) == 1 && !$is_dual) {
|
||||
if (intval($user_details['attributes']['sogo_access']) == 1 &&
|
||||
intval($user_details['attributes']['force_pw_update']) != 1 &&
|
||||
getenv('SKIP_SOGO') != "y" &&
|
||||
!$is_dual) {
|
||||
header("Location: /SOGo/so/{$login_user}");
|
||||
die();
|
||||
} else {
|
||||
|
||||
@@ -11,7 +11,7 @@ if (isset($_SESSION['mailcow_cc_role']) && isset($_SESSION['oauth2_request'])) {
|
||||
elseif (isset($_SESSION['mailcow_cc_role']) && $_SESSION['mailcow_cc_role'] == 'user') {
|
||||
$user_details = mailbox("get", "mailbox_details", $_SESSION['mailcow_cc_username']);
|
||||
$is_dual = (!empty($_SESSION["dual-login"]["username"])) ? true : false;
|
||||
if (intval($user_details['attributes']['sogo_access']) == 1 && !$is_dual) {
|
||||
if (intval($user_details['attributes']['sogo_access']) == 1 && !$is_dual && getenv('SKIP_SOGO') != "y") {
|
||||
header("Location: /SOGo/so/{$_SESSION['mailcow_cc_username']}");
|
||||
} else {
|
||||
header("Location: /user");
|
||||
@@ -33,16 +33,18 @@ $_SESSION['index_query_string'] = $_SERVER['QUERY_STRING'];
|
||||
|
||||
$has_iam_sso = false;
|
||||
if ($iam_provider){
|
||||
$has_iam_sso = identity_provider("get-redirect") ? true : false;
|
||||
$iam_redirect_url = identity_provider("get-redirect");
|
||||
$has_iam_sso = $iam_redirect_url ? true : false;
|
||||
}
|
||||
|
||||
$custom_login = customize('get', 'custom_login');
|
||||
|
||||
$template = 'user_index.twig';
|
||||
$template_data = [
|
||||
'oauth2_request' => @$_SESSION['oauth2_request'],
|
||||
'is_mobileconfig' => str_contains($_SESSION['index_query_string'], 'mobileconfig'),
|
||||
'login_delay' => @$_SESSION['ldelay'],
|
||||
'has_iam_sso' => $has_iam_sso
|
||||
'has_iam_sso' => $has_iam_sso,
|
||||
'custom_login' => $custom_login,
|
||||
];
|
||||
|
||||
$js_minifier->add('/web/js/site/index.js');
|
||||
|
||||
@@ -51,7 +51,7 @@ jQuery(function($){
|
||||
$('.submit_rspamd_regex').attr({"disabled": true});
|
||||
});
|
||||
$("#show_rspamd_global_filters").click(function() {
|
||||
$.get("inc/ajax/show_rspamd_global_filters.php");
|
||||
$.get("/inc/ajax/show_rspamd_global_filters.php");
|
||||
$("#confirm_show_rspamd_global_filters").hide();
|
||||
$("#rspamd_global_filters").removeClass("d-none");
|
||||
});
|
||||
@@ -558,7 +558,7 @@ jQuery(function($){
|
||||
} else if (table == 'oauth2clientstable') {
|
||||
$.each(data, function (i, item) {
|
||||
item.action = '<div class="btn-group">' +
|
||||
'<a href="/edit.php?oauth2client=' + encodeURI(item.id) + '" class="btn btn-xs btn-xs-lg btn-xs-half btn-secondary"><i class="bi bi-pencil-fill"></i> ' + lang.edit + '</a>' +
|
||||
'<a href="/edit/oauth2client/' + encodeURI(item.id) + '" class="btn btn-xs btn-xs-lg btn-xs-half btn-secondary"><i class="bi bi-pencil-fill"></i> ' + lang.edit + '</a>' +
|
||||
'<a href="#" data-action="delete_selected" data-id="single-oauth2-client" data-api-url="delete/oauth2-client" data-item="' + encodeURI(item.id) + '" class="btn btn-xs btn-xs-lg btn-xs-half btn-danger"><i class="bi bi-trash"></i> ' + lang.remove + '</a>' +
|
||||
'</div>';
|
||||
item.scope = "profile";
|
||||
@@ -573,7 +573,7 @@ jQuery(function($){
|
||||
item.action = '<div class="btn-group">' +
|
||||
'<a href="/edit/domainadmin/' + encodeURI(item.username) + '" class="btn btn-xs btn-xs-lg btn-xs-third btn-secondary"><i class="bi bi-pencil-fill"></i> ' + lang.edit + '</a>' +
|
||||
'<a href="#" data-action="delete_selected" data-id="single-domain-admin" data-api-url="delete/domain-admin" data-item="' + encodeURI(item.username) + '" class="btn btn-xs btn-xs-lg btn-xs-third btn-danger"><i class="bi bi-trash"></i> ' + lang.remove + '</a>' +
|
||||
'<a href="/index.php?duallogin=' + encodeURIComponent(item.username) + '" class="btn btn-xs btn-xs-lg btn-xs-third btn-success"><i class="bi bi-person-fill"></i> Login</a>' +
|
||||
'<a href="/domainadmin/?duallogin=' + encodeURIComponent(item.username) + '" class="btn btn-xs btn-xs-lg btn-xs-third btn-success"><i class="bi bi-person-fill"></i> Login</a>' +
|
||||
'</div>';
|
||||
});
|
||||
} else if (table == 'adminstable') {
|
||||
@@ -655,7 +655,7 @@ jQuery(function($){
|
||||
$(this).html('<i class="bi bi-arrow-repeat icon-spin"></i> ');
|
||||
$.ajax({
|
||||
type: 'GET',
|
||||
url: 'inc/ajax/relay_check.php',
|
||||
url: '/inc/ajax/relay_check.php',
|
||||
dataType: 'text',
|
||||
data: $('#test_relayhost_form').serialize(),
|
||||
complete: function (data) {
|
||||
@@ -789,6 +789,18 @@ jQuery(function($){
|
||||
$('.iam_ldap_rolemap_del').click(async function(e){
|
||||
deleteAttributeMappingRow(this, e);
|
||||
});
|
||||
$('.iam_redirect_add_keycloak').click(async function(e){
|
||||
addRedirectUrlRow('#iam_keycloak_redirect_list', '.iam_keycloak_redirect_del', e);
|
||||
});
|
||||
$('.iam_redirect_add_generic').click(async function(e){
|
||||
addRedirectUrlRow('#iam_generic_redirect_list', '.iam_generic_redirect_del', e);
|
||||
});
|
||||
$('.iam_keycloak_redirect_del').click(async function(e){
|
||||
deleteRedirectUrlRow(this, e);
|
||||
});
|
||||
$('.iam_generic_redirect_del').click(async function(e){
|
||||
deleteRedirectUrlRow(this, e);
|
||||
});
|
||||
// selecting identity provider
|
||||
$('#iam_provider').on('change', function(){
|
||||
// toggle password fields
|
||||
@@ -833,4 +845,22 @@ jQuery(function($){
|
||||
if ($(elem).parent().parent().parent().parent().children().length > 1)
|
||||
$(elem).parent().parent().parent().remove();
|
||||
}
|
||||
function addRedirectUrlRow(list_id, del_class, e) {
|
||||
e.preventDefault();
|
||||
|
||||
var parent = $(list_id)
|
||||
$(parent).children().last().clone().appendTo(parent);
|
||||
var newChild = $(parent).children().last();
|
||||
$(newChild).find('input').val('');
|
||||
|
||||
$(del_class).off('click');
|
||||
$(del_class).click(async function(e){
|
||||
deleteRedirectUrlRow(this, e);
|
||||
});
|
||||
}
|
||||
function deleteRedirectUrlRow(elem, e) {
|
||||
e.preventDefault();
|
||||
if ($(elem).parent().parent().parent().parent().children().length > 2)
|
||||
$(elem).parent().parent().parent().remove();
|
||||
}
|
||||
});
|
||||
|
||||
@@ -98,7 +98,7 @@ jQuery(function($){
|
||||
var local_datetime = datetime.toLocaleDateString(undefined, {year: "numeric", month: "2-digit", day: "2-digit", hour: "2-digit", minute: "2-digit", second: "2-digit"});
|
||||
var service = '<div class="badge bg-secondary">' + item.service.toUpperCase() + '</div>';
|
||||
var app_password = item.app_password ? ' <a href="/edit/app-passwd/' + item.app_password + '"><i class="bi bi-app-indicator"></i> ' + escapeHtml(item.app_password_name || "App") + '</a>' : '';
|
||||
var real_rip = item.real_rip.startsWith("Web") ? item.real_rip : '<a href="https://bgp.he.net/ip/' + item.real_rip + '" target="_blank">' + item.real_rip + "</a>";
|
||||
var real_rip = item.real_rip.startsWith("Web") ? item.real_rip : '<a href="https://bgp.tools/prefix/' + item.real_rip + '" target="_blank">' + item.real_rip + "</a>";
|
||||
var ip_location = item.location ? ' <span class="flag-icon flag-icon-' + item.location.toLowerCase() + '"></span>' : '';
|
||||
var ip_data = real_rip + ip_location + app_password;
|
||||
|
||||
|
||||
@@ -1976,6 +1976,9 @@ if (isset($_GET['query'])) {
|
||||
case "ip_check":
|
||||
process_edit_return(customize('edit', 'ip_check', $attr));
|
||||
break;
|
||||
case "custom_login":
|
||||
process_edit_return(customize('edit', 'custom_login', $attr));
|
||||
break;
|
||||
case "self":
|
||||
if ($_SESSION['mailcow_cc_role'] == "domainadmin") {
|
||||
process_edit_return(domain_admin('edit', $attr));
|
||||
|
||||
1
data/web/lang/lang.bg-bg.json
Normal file
1
data/web/lang/lang.bg-bg.json
Normal file
@@ -0,0 +1 @@
|
||||
{}
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"acl": {
|
||||
"alias_domains": "Doménové aliasy",
|
||||
"app_passwds": "Hesla aplikací",
|
||||
"app_passwds": "Správa hesel aplikací",
|
||||
"bcc_maps": "BCC mapy",
|
||||
"delimiter_action": "Zacházení s označkovanou poštou",
|
||||
"domain_desc": "Změnit popis domény",
|
||||
@@ -82,12 +82,12 @@
|
||||
"password": "Heslo",
|
||||
"password_repeat": "Potvrzení nového hesla (opakujte)",
|
||||
"port": "Port",
|
||||
"post_domain_add": "Po přidání nové domény je nutné restartovat SOGo kontejner!",
|
||||
"post_domain_add": "Po přidání nové domény se musí restartovat kontejner SOGo!<br><br>Je také třeba ověřit nastavení DNS nové domény. Po ověření restartujte kontejner \"acme-mailcow\", aby se vygenerovaly certifikáty domény (autoconfig.<domain>, autodiscover.<domain>).<br>Tento krok je volitelný, a provede se automaticky každých 24 hodin.",
|
||||
"private_comment": "Soukromý komentář",
|
||||
"public_comment": "Veřejný komentář",
|
||||
"quota_mb": "Kvóta (MiB)",
|
||||
"relay_all": "Předávání všech příjemců",
|
||||
"relay_all_info": "<small>Pokud se rozhodnete <b>nepředávat</b> všechny příjemce, musíte přidat prázdnou mailovou schránku pro každého příjemce, který se má předávat.</small>",
|
||||
"relay_all_info": "↪Pokud se rozhodnete <b>nepředávat</b> všechny příjemce, musíte přidat prázdnou mailovou schránku pro každého příjemce, který se má předávat.",
|
||||
"relay_domain": "Předávání domény",
|
||||
"relay_transport_info": "<div class=\"badge fs-6 bg-info\">Info</div> U této domény lze pro konkrétní cíl nastavit transportní mapu. Není-li nastavena, použije se MX záznam.",
|
||||
"relay_unknown_only": "Předávat jen neexistující schránky. Doručení do existujících proběhne lokálně.",
|
||||
@@ -183,7 +183,7 @@
|
||||
"f2b_ban_time": "Doba blokování (s)",
|
||||
"f2b_blacklist": "Sítě/hostitelé na blacklistu",
|
||||
"f2b_filter": "Regex filtre",
|
||||
"f2b_list_info": "Síť nebo hostitelé na blacklistu mají vždy větší váhu než položky na whitelistu. Blacklist se sestavuje vždy při startu kontejneru.",
|
||||
"f2b_list_info": "Síť nebo hostitelé na blacklistu mají vždy větší váhu než položky na whitelistu. <b>Každá úprava seznamů trvá pár sekund.</b>",
|
||||
"f2b_max_attempts": "Max. pokusů",
|
||||
"f2b_netban_ipv4": "Rozsah IPv4 podsítě k zablokování (8-32)",
|
||||
"f2b_netban_ipv6": "Rozsah IPv6 podsítě k zablokování (8-128)",
|
||||
@@ -256,7 +256,7 @@
|
||||
"quarantine_exclude_domains": "Vyloučené domény a doménové aliasy",
|
||||
"quarantine_max_age": "Maximální stáří ve dnech<br><small>Hodnota musí být rovna nebo větší než 1 den.</small>",
|
||||
"quarantine_max_score": "Neposílat notifikace pokud je spam skóre větší než hodnota:<br><small>Výchozí je 9999.0</small>",
|
||||
"quarantine_max_size": "Maximální velikost v MiB (větší prvky budou smazány)<br />0 <b>neznamená</b> neomezeno.",
|
||||
"quarantine_max_size": "Maximální velikost v MiB (větší prvky budou smazány)<br /><small>0 <b>neznamená</b> neomezeno.</small>",
|
||||
"quarantine_notification_html": "Šablona upozornění:<br><small>Ponechte prázdné, aby se obnovila výchozí šablona.</small>",
|
||||
"quarantine_notification_sender": "Odesílatel upozornění",
|
||||
"quarantine_notification_subject": "Předmět upozornění",
|
||||
@@ -264,7 +264,7 @@
|
||||
"quarantine_release_format": "Formát propuštěných položek",
|
||||
"quarantine_release_format_att": "Jako příloha",
|
||||
"quarantine_release_format_raw": "Nezměněný originál",
|
||||
"quarantine_retention_size": "Počet zadržených zpráv na mailovou schránku<br />0 znamená <b>neaktivní</b>.",
|
||||
"quarantine_retention_size": "Počet zadržených zpráv na mailovou schránku<br /><small>0 znamená <b>neaktivní</b>.</small>",
|
||||
"quota_notification_html": "Šablona upozornění:<br><small>Ponechte prázdné, aby se obnovila výchozí šablona.</small>",
|
||||
"quota_notification_sender": "Odesílatel upozornění",
|
||||
"quota_notification_subject": "Předmět upozornění",
|
||||
@@ -283,7 +283,7 @@
|
||||
"relay_rcpt": "\"Komu:\" adresa",
|
||||
"relay_run": "Provést test",
|
||||
"relayhosts": "Transporty podle odesílatele",
|
||||
"relayhosts_hint": "Zde definujte transporty podle odesílatele, jež pak můžete použít v nastavení domény.<br>\r\nProtokol transportu je vždy \"smtp:\". Bere se v potaz uživatelské nastavení odchozího TLS.",
|
||||
"relayhosts_hint": "Zde definujte transporty podle odesílatele, jež pak můžete použít v nastavení domény.<br>\nProtokol transportu je vždy \"smtp:\" a použije se TLS, je-li nabídnuto. Zabalené TLS (SMTPS) se nepodporuje. Bere se v potaz uživatelské nastavení odchozího TLS.<br>\nTýká se vybraných domén včetně doménových aliasů.",
|
||||
"remove": "Smazat",
|
||||
"remove_row": "Smazat řádek",
|
||||
"reset_default": "Obnovit výchozí nastavení",
|
||||
@@ -299,7 +299,7 @@
|
||||
"rsettings_preset_2": "Postmasteři chtějí dostávat spam",
|
||||
"rsettings_preset_3": "Povolit jen určité odesílatele pro schránku (např. jen interní schránka)",
|
||||
"rsettings_preset_4": "Deaktivujte Rspamd pro doménu",
|
||||
"rspamd_com_settings": "<a href=\"https://rspamd.com/doc/configuration/settings.html#settings-structure\" target=\"_blank\">Rspamd dokumentace</a>\r\n - Název nastavení bude automaticky vygenerován, viz níže uvedené předvolby.",
|
||||
"rspamd_com_settings": "Název nastavení se vygeneruje automaticky, viz ukázky nastavení níže. Více informací viz <a href=\"https://rspamd.com/doc/configuration/settings.html#settings-structure\" target=\"_blank\">Rspamd dokumentace</a>",
|
||||
"rspamd_global_filters": "Mapa globálních filtrů",
|
||||
"rspamd_global_filters_agree": "Budu opatrný!",
|
||||
"rspamd_global_filters_info": "Mapa globálních filtrů obsahuje jiné globální black- a whitelisty.",
|
||||
@@ -324,8 +324,8 @@
|
||||
"to_top": "Zpět na začátek",
|
||||
"transport_dest_format": "Formát: example.org, .example.org, *, box@example.org (vícero položek lze oddělit čárkou)",
|
||||
"transport_maps": "Transportní mapy",
|
||||
"transport_test_rcpt_info": "• Na otestování odchozí pošty je možné použít null@hosted.mailcow.de jako adresáta",
|
||||
"transports_hint": "→ Položka transportní mapy <b>přebíjí</b> transportní mapu podle odesílatele</b>.<br>\r\n→ Uživatelské nastavení odchozího TLS se ignoruje a lze je výhradně vynutit mapováním TLS pravidel.<br>\r\n→ Protokol transportu je vždy \"smtp:\".<br>\r\n→ Adresy, jež odpovídají výrazu \"/localhost$/\", se vždy předají přes \"local:\", takže nejsou zahrnuty do definice cíle \"*\".<br>\r\n→ Pro stanovení přihlašovacích údajů dalšího skoku, např. \"[host]:25\", bude Postfix <b>vždy</b> hledat nejdříve \"host\" a teprve pak \"[host]:25\". Kvůli tomu nelze použít současně \"host\" a \"[host]:25\"",
|
||||
"transport_test_rcpt_info": "• K otestování předávání pošty ven použijte null@hosted.mailcow.de.",
|
||||
"transports_hint": "• Položka transportní mapy <b>přebíjí</b> transportní mapu podle odesílatele</b>.<br>\n• Transporty založené na MX mají přednost.<br>\n• Uživatelské nastavení odchozího TLS se ignoruje a lze je vynutit výhradně mapou TLS pravidel.<br>\n• Transportní služnou pro tyto transporty je vždy \"smtp:\" a použije se TLS, je-li nabídnuto. Zabalené TLS (SMTPS) se nepodporuje.<br>\n• Adresy, jež odpovídají výrazu \"/localhost$/\", se vždy předají přes \"local:\", takže nejsou zahrnuty do definice cíle \"*\".<br>\n• Pro stanovení přihlašovacích údajů dalšího skoku, např. \"[host]:25\", bude Postfix <b>vždy</b> hledat nejdříve \"host\" a teprve pak \"[host]:25\". Kvůli tomu nelze použít současně \"host\" a \"[host]:25\".",
|
||||
"ui_footer": "Pata stránka (HTML povoleno)",
|
||||
"ui_header_announcement": "Oznámení",
|
||||
"ui_header_announcement_active": "Nastavit jako aktivní",
|
||||
@@ -344,17 +344,70 @@
|
||||
"validate_license_now": "Ověřit GUID na licenčním serveru",
|
||||
"verify": "Ověřit",
|
||||
"yes": "✓",
|
||||
"f2b_ban_time_increment": "Délka banu je prodlužována s každým dalším banem",
|
||||
"f2b_max_ban_time": "Maximální délka banu (s)",
|
||||
"f2b_ban_time_increment": "Délka bloku se prodlužuje s každým dalším zablokováním",
|
||||
"f2b_max_ban_time": "Maximální délka bloku (s)",
|
||||
"cors_settings": "Nastavení CORS",
|
||||
"queue_unban": "zrušit ban",
|
||||
"queue_unban": "odblokovat",
|
||||
"password_reset_info": "Pokud není zadán žádný e-mail pro obnovení, nelze tuto funkci použít.",
|
||||
"password_reset_settings": "Nastavení obnovení hesla",
|
||||
"password_settings": "Nastavení hesel",
|
||||
"password_reset_tmpl_html": "HTML šablona",
|
||||
"password_reset_tmpl_text": "Textová šablona",
|
||||
"reset_password_vars": "<code>{{link}}</code> Vygenerovaný odkaz pro obnovení hesla<br><code>{{username}}</code> Název mailboxu uživatele, který požádal o resetování hesla.<br><code>{{username2}}</code> Název schránky pro obnovení<br><code>{{date}}</code> Datum podání žádosti o obnovení hesla<br><code>{{token_lifetime}}</code> Délka životnosti tokenu v minutách<br><code>{{hostname}}</code> Název serveru mailcow",
|
||||
"restore_template": "Ponechte prázdné pro obnovení výchozí šablony."
|
||||
"restore_template": "Ponechte prázdné pro obnovení výchozí šablony.",
|
||||
"copy_to_clipboard": "Text zkopírován do schránky!",
|
||||
"iam_login_provisioning": "Automaticky vytvořit uživatele při přihlášení",
|
||||
"user_quicklink": "Skrýt zkratku na přihlášení uživatele",
|
||||
"domainadmin_quicklink": "Skrýt zkratku na přihlášení správce domény",
|
||||
"iam_auth_flow_info": "Kromě metody autorizačního kódu (Authorization Code Flow, výchozího v Keycloaku), jež se používá pro SSO, podporuje mailcow také metody autentizaci přímo pomocí přihlašovacích údajů. The metoda Mailpassword Flow se pokusí ověřit přihlašovací údaje uživatele přímo v Admin REST API Keycloaku. mailcow získá hash hesla z atributu <code>mailcow_password</code> , namapovaného v Keycloaku.",
|
||||
"iam_default_template_description": "Nemá-li uživatel přiřazenu šablonu, použije se výchozí šablona k vytvoření schránky, ale ne k její úpravě či aktualizaci.",
|
||||
"iam_userinfo_url": "Koncový bod pro informace o uživatelích",
|
||||
"iam_redirect_url": "URL přesměrování",
|
||||
"user_link": "Odkaz pro uživatele",
|
||||
"force_sso_text": "Je-li nastaven externí poskytovatel OIDC, zapnutím této volby skryjete výchozí přihlašovací formulář. Zůstane vidět jen tlačítko pro SSO",
|
||||
"iam_mapping": "Mapování atributů",
|
||||
"iam_bindpass": "Heslo pro bind",
|
||||
"iam_periodic_full_sync": "Pravidelná úplná synchronizace",
|
||||
"iam_port": "Port",
|
||||
"iam_realm": "Realm",
|
||||
"iam_rest_flow": "Mailpassword Flow",
|
||||
"iam_server_url": "URL serveru",
|
||||
"iam_sso": "Single Sign-On",
|
||||
"iam_sync_interval": "Interval synchronizace/importu (min)",
|
||||
"iam_test_connection": "Test spojení",
|
||||
"iam_token_url": "Koncový bod pro tokeny",
|
||||
"iam_username_field": "Pole uživatelského jména",
|
||||
"iam_binddn": "Doména pro bind",
|
||||
"iam_use_ssl": "Používat SSL",
|
||||
"iam_use_tls": "Používat StartTLS",
|
||||
"iam_version": "Verze",
|
||||
"quicklink_text": "Zobrazení zkratek k dalším přihlašovacím stránkám",
|
||||
"iam_use_tls_info": "Je-li zapnuto TLS, musí se používat standardní port pro LDAP (389). Port SSL nelze použít.",
|
||||
"ignore_ssl_error": "Ignorovat chyby SSL",
|
||||
"iam_use_ssl_info": "Je-li zapnuto SSL a nastaven port 389, použije se automaticky port 636.",
|
||||
"task": "Úloha",
|
||||
"app_hide": "Skrýt při přihlášení",
|
||||
"admin_quicklink": "Skrýt zkratku na přihlášení správce",
|
||||
"allowed_methods": "Access-Control-Allow-Methods",
|
||||
"allowed_origins": "Access-Control-Allow-Origin",
|
||||
"login_page": "Přihlašovací stránka",
|
||||
"f2b_manage_external": "Spravovat Fail2Ban externě",
|
||||
"f2b_manage_external_info": "Fail2ban bude udržovat seznam zakázaných adres, ale nebude aktivně nastavovat pravidla blokování. Pro blokování použijte seznam adres níže.",
|
||||
"filter": "Filtr",
|
||||
"force_sso": "Vypnout přihlášení mailcow a ponechat jen SSO",
|
||||
"iam": "Poskytovatel identity",
|
||||
"iam_attribute_field": "Pole atributu",
|
||||
"iam_authorize_url": "Autorizační koncový bod",
|
||||
"iam_basedn": "Doména (Base DN)",
|
||||
"iam_client_id": "ID klienta",
|
||||
"iam_client_secret": "Tajný kód klienta",
|
||||
"iam_client_scopes": "Scopes klienta",
|
||||
"iam_default_template": "Výchozí šablona",
|
||||
"iam_description": "Nastavení externího poskytovatele ověření<br>Schránky uživatele se vytvoří po prvním přihlášení automaticky, pokud je tedy nastaveno mapování atributů.",
|
||||
"iam_extra_permission": "Aby vše fungovalo, musí mít mailcow klient v Keycloaku nastavený <code>servisní účet</code> a povolení <code>view-users</code>.",
|
||||
"iam_host": "Hostitel",
|
||||
"iam_host_info": "Zadejte jeden či více hostitelů, oddělte čárkou.",
|
||||
"iam_import_users": "Importovat uživatele"
|
||||
},
|
||||
"danger": {
|
||||
"access_denied": "Přístup odepřen nebo jsou neplatná data ve formuláři",
|
||||
@@ -408,7 +461,7 @@
|
||||
"is_alias": "%s je již známa jako adresa aliasu",
|
||||
"is_alias_or_mailbox": "%s je již známa jako adresa aliasu, mailové schránky nebo aliasu rozvedeného z aliasu domény.",
|
||||
"is_spam_alias": "%s je již známa jako adresa spamového aliasu",
|
||||
"last_key": "Nelze smazat poslední klíč",
|
||||
"last_key": "Nelze smazat poslední klíč, vypněte tedy celé TFA.",
|
||||
"login_failed": "Přihlášení selhalo",
|
||||
"mailbox_defquota_exceeds_mailbox_maxquota": "Výchozí kvóta překračuje maximální kvótu schránky\"",
|
||||
"mailbox_invalid": "Název mailové schránky je neplatný",
|
||||
@@ -486,7 +539,16 @@
|
||||
"demo_mode_enabled": "Demo režim je zapnutý",
|
||||
"recovery_email_failed": "Nepodařilo se odeslat e-mail pro obnovení. Obraťte se prosím na svého správce.",
|
||||
"password_reset_invalid_user": "Mailbox nebyl nalezen nebo není nastaven žádný e-mail pro obnovu",
|
||||
"password_reset_na": "Obnovení hesla není v současné době k dispozici. Obraťte se prosím na svého správce."
|
||||
"password_reset_na": "Obnovení hesla není v současné době k dispozici. Obraťte se prosím na svého správce.",
|
||||
"generic_server_error": "Došlo k nečekané chybě. Obraťte se na vašeho správce.",
|
||||
"to_invalid": "Adresát nemůže být prázdný",
|
||||
"authsource_in_use": "Poskytovatele identity nelze změnit nebo odstranit, neboť se právě používá pro jednoho či více uživatelů.",
|
||||
"iam_test_connection": "Spojení selhalo",
|
||||
"img_dimensions_exceeded": "Obrázek je větší než povolené rozměry",
|
||||
"img_size_exceeded": "Obrázek má větší než povolenou velikost souboru",
|
||||
"invalid_reset_token": "Neplatný resetovací token",
|
||||
"required_data_missing": "Chybí potřebný údaj %s",
|
||||
"reset_token_limit_exceeded": "Byl překročen limit na reset tokeny. Zkuste to později."
|
||||
},
|
||||
"datatables": {
|
||||
"emptyTable": "Tabulka neobsahuje žádná data",
|
||||
@@ -548,7 +610,8 @@
|
||||
"update_failed": "Nepodařilo se zkontrolovat aktualizace",
|
||||
"wip": "Nedokončená vývojová verze",
|
||||
"memory": "Paměť",
|
||||
"container_disabled": "Kontejner je zastaven nebo zakázán"
|
||||
"container_disabled": "Kontejner je zastaven nebo zakázán",
|
||||
"cores": "jádra"
|
||||
},
|
||||
"diagnostics": {
|
||||
"cname_from_a": "Hodnota odvozena z A/AAAA záznamu. Lze použít, pokud záznam ukazuje na správný zdroj.",
|
||||
@@ -569,7 +632,7 @@
|
||||
"alias": "Upravit alias",
|
||||
"allow_from_smtp": "Umožnit pouze těmto IP adresám používat <b>SMTP</b>",
|
||||
"allow_from_smtp_info": "Nechte prázdné pro povolení všech odesílatelů.<br>IPv4/IPv6 adresy a sítě.",
|
||||
"allowed_protocols": "Povolené protokoly",
|
||||
"allowed_protocols": "Povolené protokoly pro přímá spojení (netýká se protokolů na změnu hesla)",
|
||||
"app_name": "Název aplikace",
|
||||
"app_passwd": "Heslo aplikace",
|
||||
"app_passwd_protocols": "Povolené protokoly pro hesla aplikací",
|
||||
@@ -607,7 +670,7 @@
|
||||
"inactive": "Neaktivní",
|
||||
"kind": "Druh",
|
||||
"last_modified": "Naposledy změněn",
|
||||
"lookup_mx": "Cíl je regulární výraz který se shoduje s MX záznamem (<code>.*\\.google\\.com</code> směřuje veškerou poštu na MX které jsou cílem pro google.com přes tento skok)",
|
||||
"lookup_mx": "Cíl je regulární výraz, jenž se porovná s MX záznamem (např. <code>.*\\.google\\.com</code> na tento skok nasměruje veškerou poštu s MX, jež končí na *.google.com)",
|
||||
"mailbox": "Úprava mailové schránky",
|
||||
"mailbox_quota_def": "Výchozí kvóta schránky",
|
||||
"mailbox_relayhost_info": "Aplikované jen na uživatelskou schránku a přímé aliasy, přepisuje předávající server domény.",
|
||||
@@ -641,7 +704,7 @@
|
||||
"ratelimit": "Omezení přenosu",
|
||||
"redirect_uri": "URL přesměrování/odvolání",
|
||||
"relay_all": "Předávání všech příjemců",
|
||||
"relay_all_info": "<small>Pokud se rozhodnete <b>nepředávat</b> všechny příjemce, musíte přidat prázdnou mailovou schránku pro každého příjemce, který se má předávat.</small>",
|
||||
"relay_all_info": "↪ Pokud se rozhodnete <b>nepředávat</b> všechny příjemce, musíte přidat prázdnou mailovou schránku pro každého příjemce, který se má předávat.",
|
||||
"relay_domain": "Předávání domény",
|
||||
"relay_transport_info": "<div class=\"badge fs-6 bg-info\">Info</div> U této domény lze pro konkrétní cíl nastavit transportní mapu. Není-li nastavena, použije se MX záznam.",
|
||||
"relay_unknown_only": "Předávat jen neexistující schránky. Doručení do existujících proběhne lokálně.",
|
||||
@@ -666,7 +729,7 @@
|
||||
"spam_score": "Nastavte vlastní skóre spamu",
|
||||
"subfolder2": "Synchronizace do podsložky v cílovém umístění<br><small>(prázdné = nepoužívat podsložku)</small>",
|
||||
"syncjob": "Upravit synchronizační úlohu",
|
||||
"target_address": "Cílová adresa/y<br /> <small>(oddělte čárkou)</small>",
|
||||
"target_address": "Cílová adresa/y <small>(oddělte čárkou)</small>",
|
||||
"target_domain": "Cílová doména",
|
||||
"timeout1": "Časový limit pro připojení ke vzdálenému serveru",
|
||||
"timeout2": "Časový limit pro připojení k lokálnímu serveru",
|
||||
@@ -690,7 +753,13 @@
|
||||
"custom_attributes": "Vlastní atributy",
|
||||
"footer_exclude": "Vyloučit ze zápatí",
|
||||
"domain_footer_skip_replies": "Ignorovat patičku u odpovědí na e-maily",
|
||||
"password_recovery_email": "E-mail pro obnovu hesla"
|
||||
"password_recovery_email": "E-mail pro obnovu hesla",
|
||||
"mailbox_rename": "Přejmenovat schránku",
|
||||
"mailbox_rename_agree": "Mám vytvořenou zálohu.",
|
||||
"mailbox_rename_warning": "DŮLEŽITÉ! Vytvořte si zálohu schránky, než ji přejmenujete.",
|
||||
"mailbox_rename_alias": "Automaticky vytvořit alias",
|
||||
"mailbox_rename_title": "Nový název zdejší schránky",
|
||||
"pushover": "Pushover"
|
||||
},
|
||||
"fido2": {
|
||||
"confirm": "Potvrdit",
|
||||
@@ -711,7 +780,7 @@
|
||||
"cancel": "Zrušit",
|
||||
"confirm_delete": "Potvdit smazání",
|
||||
"delete_now": "Smazat",
|
||||
"delete_these_items": "Prosím potvrďte změny objektu id:",
|
||||
"delete_these_items": "Prosím potvrďte změny objektu id",
|
||||
"hibp_check": "Ověřit heslo v databázi hacknutých hesel haveibeenpwned.com",
|
||||
"hibp_nok": "Nalezeno! Toto je potenciálně nebezpečné heslo!",
|
||||
"hibp_ok": "Nebyla nalezena žádná shoda.",
|
||||
@@ -720,12 +789,12 @@
|
||||
"restart_container": "Restartovat kontejner",
|
||||
"restart_container_info": "<b>Důležité:</b> Šetrný restart může chvíli trvat, prosím čekejte...",
|
||||
"restart_now": "Restartovat nyní",
|
||||
"restarting_container": "Restartuje se kontejner, může to chvilku trvat..."
|
||||
"restarting_container": "Restartuje se kontejner, může to chvilku trvat"
|
||||
},
|
||||
"header": {
|
||||
"administration": "Hlavní nastavení",
|
||||
"apps": "Aplikace",
|
||||
"debug": "Systémové informace",
|
||||
"debug": "Informace",
|
||||
"email": "E-Mail",
|
||||
"mailcow_system": "Systém",
|
||||
"mailcow_config": "Nastavení",
|
||||
@@ -753,7 +822,14 @@
|
||||
"new_password": "Nové heslo",
|
||||
"new_password_confirm": "Ověření nového hesla",
|
||||
"reset_password": "Obnovit heslo",
|
||||
"request_reset_password": "Požádat o změnu hesla"
|
||||
"request_reset_password": "Požádat o změnu hesla",
|
||||
"login_domainadmintext": "Přihlášení správce domény",
|
||||
"login_linkstext": "Hledáte jinou přihlašovací stránku?",
|
||||
"login_usertext": "Přihlášení uživatele",
|
||||
"login_admintext": "Přihlášení správce",
|
||||
"login_user": "Přihlášení uživatele",
|
||||
"login_dadmin": "Přihlášení správce domény",
|
||||
"login_admin": "Přihlášení správce"
|
||||
},
|
||||
"mailbox": {
|
||||
"action": "Akce",
|
||||
@@ -785,7 +861,7 @@
|
||||
"bcc": "BCC",
|
||||
"bcc_destination": "Cíl kopie",
|
||||
"bcc_destinations": "Cíl kopií",
|
||||
"bcc_info": "Skryté kopie (Mapa BCC) se používá pro tiché předávání kopií všech zpráv na jinou adresu. Při použití skryté kopie typu <i>Přijatý e-mail</i> budou přeposlány všechny maily směřující na dotyčnou adresu nebo doménu.\nU typu <i>Odeslaný e-mail</i> budou přeposlány všechny maily odeslané z dotyčné adresy nebo domény.\nPokud selže přeposlání na cílovou adresu, tak odesílatel o tom nebude informován.",
|
||||
"bcc_info": "Skrytá kopie (mapa BCC) se používá pro tiché předávání kopií všech zpráv na jinou adresu. Mapa příjemců se použije, funguje-li je místní cíl jako adresát zprávy. Totéž platí pro mapy odesílatelů.\nMístní cíl se nedozví, selže-li doručení na cíl BCC.",
|
||||
"bcc_local_dest": "Týká se",
|
||||
"bcc_map": "Skrytá kopie",
|
||||
"bcc_map_type": "Typ skryté kopie",
|
||||
@@ -840,7 +916,7 @@
|
||||
"last_run_reset": "Znovu naplánovat",
|
||||
"mailbox": "Mailová schránka",
|
||||
"mailbox_defaults": "Výchozí nastavení",
|
||||
"mailbox_defaults_info": "Definuje výchozí nastavení pro nové schránky",
|
||||
"mailbox_defaults_info": "Definuje výchozí nastavení pro nové schránky.",
|
||||
"mailbox_defquota": "Výchozí velikost schránky",
|
||||
"mailbox_templates": "Šablony schránek",
|
||||
"mailbox_quota": "Max. velikost schránky",
|
||||
@@ -860,7 +936,7 @@
|
||||
"private_comment": "Soukromý komentář",
|
||||
"public_comment": "Veřejný komentář",
|
||||
"q_add_header": "Složka nevyžádaná pošta",
|
||||
"q_all": "Všechny kategorie",
|
||||
"q_all": " Nevyžádaná pošta a Odmítnuta",
|
||||
"q_reject": "Odmítnuta",
|
||||
"quarantine_category": "Kategorie oznámení karantény",
|
||||
"quarantine_notification": "Upozornění z karantény",
|
||||
@@ -869,7 +945,7 @@
|
||||
"recipient_map": "Mapa příjemce",
|
||||
"recipient_map_info": "Mapy příjemců slouží k nahrazení cílové adresy zprávy před doručením.",
|
||||
"recipient_map_new": "Nový přijemce",
|
||||
"recipient_map_new_info": "Cílová adresa mapy příjemce musí být emailová adresa nebo název domény.",
|
||||
"recipient_map_new_info": "Cílovou adresou mapy příjemců musí být emailová adresa nebo název domény.",
|
||||
"recipient_map_old": "Původní příjemce",
|
||||
"recipient_map_old_info": "Původní příjemce musí být platná emailová adresa nebo název domény.",
|
||||
"recipient_maps": "Mapy příjemců",
|
||||
@@ -888,7 +964,7 @@
|
||||
"sieve_preset_5": "Automatický odpovídač (dovolená)",
|
||||
"sieve_preset_6": "Odmítnout zprávu s odpovědí",
|
||||
"sieve_preset_7": "Přesměrovat a ponechat/zahodit",
|
||||
"sieve_preset_8": "Zahodit zprávu poslanou na alias, do něhož patří i odesílatel",
|
||||
"sieve_preset_8": "Zprávu od určitého odesílatele přesměrovat, označit jako přečtenou a uložit do složky",
|
||||
"sieve_preset_header": "Vizte následující ukázková pravidla. Více informací na <a href=\"https://en.wikipedia.org/wiki/Sieve_(mail_filtering_language)\" target=\"_blank\">Wikipedii</a>.",
|
||||
"sogo_visible": "Alias dostupný v SOGo",
|
||||
"sogo_visible_n": "Skrýt alias v SOGo",
|
||||
@@ -928,7 +1004,8 @@
|
||||
"waiting": "Čekání",
|
||||
"weekly": "Každý týden",
|
||||
"yes": "✓",
|
||||
"relay_unknown": "Předávání neexistujících schránek"
|
||||
"relay_unknown": "Předávání neexistujících schránek",
|
||||
"iam": "Poskytovatel identity"
|
||||
},
|
||||
"oauth2": {
|
||||
"access_denied": "K udělení přístupu se přihlašte jako vlastník mailové schránky.",
|
||||
@@ -936,7 +1013,7 @@
|
||||
"deny": "Zamítnout",
|
||||
"permit": "Ověřit aplikaci",
|
||||
"profile": "Profil",
|
||||
"profile_desc": "Zobrazit osobní údaje: uživ. jméno, jméno, datum vytvoření a úpravy, stav",
|
||||
"profile_desc": "Zobrazit osobní údaje: uživ. jméno, celé jméno, datum vytvoření a úpravy, stav",
|
||||
"scope_ask_permission": "Aplikace požádala o následující oprávnění"
|
||||
},
|
||||
"quarantine": {
|
||||
@@ -1066,7 +1143,7 @@
|
||||
"logged_in_as": "Přihlášen jako %s",
|
||||
"mailbox_added": "Mailová schránka %s přidána",
|
||||
"mailbox_modified": "Změny mailové schránky %s uloženy",
|
||||
"mailbox_removed": "Mailová schránka %s odebrána",
|
||||
"mailbox_removed": "Mailová schránka %s odstraněna",
|
||||
"nginx_reloaded": "Nginx reload byl úspěšný",
|
||||
"object_modified": "Změny objektu %s uloženy",
|
||||
"password_policy_saved": "Politika hesel byla úspěšně uložena",
|
||||
@@ -1100,7 +1177,14 @@
|
||||
"verified_yotp_login": "Yubico OTP přihlášení ověřeno",
|
||||
"cors_headers_edited": "Nastavení CORS byla uložena",
|
||||
"domain_footer_modified": "Změny patičky domény %s byly uloženy",
|
||||
"recovery_email_sent": "E-mail k obnovení byl odeslán na adresu %s"
|
||||
"recovery_email_sent": "E-mail k obnovení byl odeslán na adresu %s",
|
||||
"custom_login_modified": "Úpravy přihlašování úspěšně uloženy",
|
||||
"domain_add_dkim_available": "Klíč DKIM už existoval",
|
||||
"f2b_banlist_refreshed": "Seznam zákazů úspěšně obnoven.",
|
||||
"iam_test_connection": "Spojení úspěšně navázano",
|
||||
"ip_check_opt_in_modified": "Kontrola IP adresy úspěšně uložena",
|
||||
"mailbox_renamed": "Schránka přejmenována z %s na %s",
|
||||
"password_changed_success": "Heslo úspěšně změněno"
|
||||
},
|
||||
"tfa": {
|
||||
"api_register": "%s používá Yubico Cloud API. Prosím získejte API klíč pro své Yubico <a href=\"https://upgrade.yubico.com/getapikey/\" target=\"_blank\">ZDE</a>",
|
||||
@@ -1116,7 +1200,7 @@
|
||||
"none": "Deaktivovat",
|
||||
"reload_retry": "- (znovu načtěte stránku, opakuje-li se chyba)",
|
||||
"scan_qr_code": "Prosím načtěte následující kód svou aplikací na ověření nebo zadejte kód ručně.",
|
||||
"select": "Prosím vyberte...",
|
||||
"select": "Vyberte prosím",
|
||||
"set_tfa": "Nastavení způsobu dvoufaktorového ověření",
|
||||
"start_webauthn_validation": "Zahájit inicializaci",
|
||||
"tfa": "Dvoufaktorové ověření (TFA)",
|
||||
@@ -1125,7 +1209,10 @@
|
||||
"webauthn": "WebAuthn ověření",
|
||||
"waiting_usb_auth": "<i>Čeká se na USB zařízení...</i><br><br>Prosím stiskněte tlačítko na svém WebAuthn USB zařízení.",
|
||||
"waiting_usb_register": "<i>Čeká se na USB zařízení...</i><br><br>Prosím zadejte své heslo výše a potvrďte WebAuthn registraci stiskem tlačítka na svém WebAuthn USB zařízení.",
|
||||
"yubi_otp": "Yubico OTP ověření"
|
||||
"yubi_otp": "Yubico OTP ověření",
|
||||
"u2f_deprecated": "Zdá se, že váš klíč byl registrován zastaralou metodou U2F. Dojde k deaktivaci dvoufaktorové autentifikace a smazání klíče.",
|
||||
"authenticators": "Autentifikátory",
|
||||
"u2f_deprecated_important": "Registrujte svůj klíč novou metodou WebAuthn ve správě správců."
|
||||
},
|
||||
"user": {
|
||||
"action": "Akce",
|
||||
@@ -1141,7 +1228,7 @@
|
||||
"alias_time_left": "Zbývající čas",
|
||||
"alias_valid_until": "Platný do",
|
||||
"aliases_also_send_as": "Smí odesílat také jako uživatel",
|
||||
"aliases_send_as_all": "Nekontrolovat přístup odesílatele pro následující doménu(y) a jejich aliasy domény:",
|
||||
"aliases_send_as_all": "Nekontrolovat přístup odesílatele pro následující doménu(y) a jejich aliasy",
|
||||
"allowed_protocols": "Povolené protokoly",
|
||||
"app_hint": "Hesla aplikací jsou alternativní heslo pro přihlášení k IMAP, SMTP, CalDAV, CardDAV a EAS. Uživatelské jméno zůstává stejné.<br>SOGo však nelze s heslem aplikace použít.",
|
||||
"app_name": "Název aplikace",
|
||||
@@ -1162,8 +1249,8 @@
|
||||
"description": "Popis",
|
||||
"delete_ays": "Potvrďte odstranění.",
|
||||
"direct_aliases": "Přímé aliasy",
|
||||
"direct_aliases_desc": "Na přímé aliasy se uplatňuje filtr spamu a nastavení pravidel TLS",
|
||||
"direct_protocol_access": "Tento uživatel mailové schránky má <b>přímý externí přístup</b> k následujícím protokolům a aplikacím. Toto nastavení je řízeno správcem. Pro udělení přístupu k jednotlivým protokolům a aplikacím lze vytvořit hesla aplikací.<br>Tlačítko \"Webmailu\" zajišťuje jednotné přihlášení k SOGo a je vždy k dispozici.",
|
||||
"direct_aliases_desc": "Na přímé aliasy se uplatňuje filtr spamu a nastavení pravidel TLS.",
|
||||
"direct_protocol_access": "Tento uživatel mailové schránky má <b>přímý externí přístup</b> k následujícím protokolům a aplikacím. Toto nastavení je řízeno správcem. Pro udělení přístupu k jednotlivým protokolům a aplikacím lze vytvořit hesla aplikací.<br>Tlačítko \"Webmail\" zajišťuje jednotné přihlášení k SOGo a je vždy k dispozici.",
|
||||
"eas_reset": "Smazat mezipaměť zařízení ActiveSync",
|
||||
"eas_reset_help": "Obnovení mezipaměti zařízení pomůže zpravidla obnovit poškozený profil služby ActiveSync.<br><b>Upozornění:</b> Všechna data budou opětovně stažena!",
|
||||
"eas_reset_now": "Smazat",
|
||||
@@ -1204,7 +1291,7 @@
|
||||
"no_last_login": "Žádný záznam o přihlášení",
|
||||
"no_record": "Žádný záznam",
|
||||
"open_logs": "Otevřít záznam",
|
||||
"open_webmail_sso": "Webmailu",
|
||||
"open_webmail_sso": "Webmail",
|
||||
"password": "Heslo",
|
||||
"password_now": "Současné heslo (pro potvrzení změny)",
|
||||
"password_repeat": "Heslo (znovu)",
|
||||
@@ -1241,8 +1328,8 @@
|
||||
"spamfilter": "Filtr spamu",
|
||||
"spamfilter_behavior": "Hodnocení",
|
||||
"spamfilter_bl": "Seznam zakázaných adres (blacklist)",
|
||||
"spamfilter_bl_desc": "Zakázané emailové adresy <b>budou vždy klasifikovány jako spam a odmítnuty</b>. Lze použít zástupné znaky (*). Filtr se použije pouze na přímé aliasy (s jednou cílovou mailovou schránkou), s výjimkou doménových košů a samotné mailové schránky.",
|
||||
"spamfilter_default_score": "Výchozí hodnoty:",
|
||||
"spamfilter_bl_desc": "Zakázané emailové adresy budou <b>vždy</b> klasifikovány jako spam a odmítnuty. Odmítnutá pošta <b>nebude</b> uložena do karantény. Lze použít zástupné znaky (*). Filtr se použije pouze na přímé aliasy (s jednou cílovou poštovní schránkou), s výjimkou doménových košů a samotné poštovní schránky.",
|
||||
"spamfilter_default_score": "Výchozí hodnoty",
|
||||
"spamfilter_green": "Zelená: tato zpráva není spam",
|
||||
"spamfilter_hint": "První hodnota představuje \"nízké spam skóre\" a druhá \"vysoké spam skóre\".",
|
||||
"spamfilter_red": "Červená: Tato zpráva je spam a server ji odmítne",
|
||||
@@ -1274,7 +1361,7 @@
|
||||
"tag_in_subject": "V předmětu",
|
||||
"text": "Text",
|
||||
"title": "Předmět",
|
||||
"tls_enforce_in": "Vynutit TLS pro příchozí poštu ",
|
||||
"tls_enforce_in": "Vynutit TLS pro příchozí poštu",
|
||||
"tls_enforce_out": "Vynutit TLS pro odchozí poštu",
|
||||
"tls_policy": "Politika šifrování",
|
||||
"tls_policy_warning": "<strong>Varování:</strong> Pokud se rozhodnete vynutit šifrovaný přenos pošty, může dojít ke ztrátě e-mailů.<br>Zprávy, které nesplňují tuto politiku, budou mailovým systémem odmítnuty.<br>Tato volba ovlivňuje primární e-mailovou adresu (přihlašovací jméno), všechny adresy odvozené z doménových aliasů i aliasy, jež mají tuto mailovou schránku jako cíl.",
|
||||
@@ -1290,7 +1377,13 @@
|
||||
"years": "let",
|
||||
"pushover_sound": "Zvukové upozornění",
|
||||
"password_reset_info": "Pokud není zadán e-mail pro obnovení hesla, nelze tuto funkci použít.",
|
||||
"pw_recovery_email": "E-mail pro obnovení hesla"
|
||||
"pw_recovery_email": "E-mail pro obnovení hesla",
|
||||
"tfa_info": "Dvoufaktorová autentizace vám pomáhá chránit svůj účet. Je-li zapnuta, musíte si vytvořit aplikační hesla pro aplikace, jež dvoufaktorovou autentizaci nepodporují (např. poštovní klienti).",
|
||||
"attribute": "Atribut",
|
||||
"authentication": "Autentifikace",
|
||||
"overview": "Přehled",
|
||||
"protocols": "Protokoly",
|
||||
"value": "Hodnota"
|
||||
},
|
||||
"warning": {
|
||||
"cannot_delete_self": "Nelze smazat právě přihlášeného uživatele",
|
||||
|
||||
@@ -134,6 +134,7 @@
|
||||
"admin_domains": "Domain-Zuweisungen",
|
||||
"admins": "Administratoren",
|
||||
"admins_ldap": "LDAP-Administratoren",
|
||||
"admin_quicklink": "Quicklink zur Admin-Loginseite ausblenden",
|
||||
"advanced_settings": "Erweiterte Einstellungen",
|
||||
"api_allow_from": "IP-Adressen oder Netzwerke (CIDR Notation) für Zugriff auf API",
|
||||
"api_info": "Die API befindet sich noch in Entwicklung, die Dokumentation kann unter <a href=\"/api\">/api</a> abgerufen werden.",
|
||||
@@ -155,6 +156,7 @@
|
||||
"credentials_transport_warning": "<b>Warnung</b>: Das Hinzufügen einer neuen Regel bewirkt die Aktualisierung der Authentifizierungsdaten aller vorhandenen Einträge mit identischem Next Hop.",
|
||||
"customer_id": "Kunde",
|
||||
"customize": "UI-Anpassung",
|
||||
"login_page": "Login-Seite",
|
||||
"destination": "Ziel",
|
||||
"dkim_add_key": "ARC/DKIM-Key hinzufügen",
|
||||
"dkim_domains_selector": "Selector",
|
||||
@@ -173,6 +175,7 @@
|
||||
"domain": "Domain",
|
||||
"domain_admin": "Administrator hinzufügen",
|
||||
"domain_admins": "Domain-Administratoren",
|
||||
"domainadmin_quicklink": "Quicklink zur Domainadmin-Loginseite ausblenden",
|
||||
"domain_s": "Domain(s)",
|
||||
"duplicate": "Duplizieren",
|
||||
"duplicate_dkim": "DKIM duplizieren",
|
||||
@@ -195,6 +198,8 @@
|
||||
"f2b_retry_window": "Wiederholungen im Zeitraum von (s)",
|
||||
"f2b_whitelist": "Whitelist für Netzwerke und Hosts",
|
||||
"filter_table": "Tabelle filtern",
|
||||
"force_sso_text": "Wenn ein externer OIDC-Provider konfiguriert ist, blendet diese Option die mailcow Loginform aus und zeigt nur den Single Sign-On-Button an.",
|
||||
"force_sso": "mailcow Login deaktivieren und nur Single Sign-On anzeigen",
|
||||
"forwarding_hosts": "Weiterleitungs-Hosts",
|
||||
"forwarding_hosts_add_hint": "Sie können entweder IPv4-/IPv6-Adressen, Netzwerke in CIDR-Notation, Hostnamen (die zu IP-Adressen aufgelöst werden), oder Domainnamen (die zu IP-Adressen aufgelöst werden, indem ihr SPF-Record abgefragt wird oder, in dessen Abwesenheit, ihre MX-Records) angeben.",
|
||||
"forwarding_hosts_hint": "Eingehende Nachrichten werden von den hier gelisteten Hosts bedingungslos akzeptiert. Diese Hosts werden dann nicht mit DNSBLs abgeglichen oder Greylisting unterworfen. Von ihnen empfangener Spam wird nie abgelehnt, optional kann er aber in den Spam-Ordner einsortiert werden. Die übliche Verwendung für diese Funktion ist, um Mailserver anzugeben, auf denen eine Weiterleitung zu Ihrem mailcow-Server eingerichtet wurde.",
|
||||
@@ -222,6 +227,7 @@
|
||||
"iam_host": "Host",
|
||||
"iam_host_info": "Gib einen oder mehrere LDAP-Hosts ein, getrennt durch Kommas.",
|
||||
"iam_import_users": "Importiere Benutzer",
|
||||
"iam_login_provisioning": "Benutzer beim Login erstellen",
|
||||
"iam_mapping": "Attribut Mapping",
|
||||
"iam_bindpass": "Bind Passwort",
|
||||
"iam_periodic_full_sync": "Vollsynchronisation",
|
||||
@@ -308,6 +314,7 @@
|
||||
"quarantine_release_format_att": "Als Anhang",
|
||||
"quarantine_release_format_raw": "Unverändertes Original",
|
||||
"quarantine_retention_size": "Rückhaltungen pro Mailbox:<br><small>0 bedeutet <b>inaktiv</b>.</small>",
|
||||
"quicklink_text": "Quicklinks zu anderen Login-Seiten unter der Loginform ein- oder ausblenden",
|
||||
"quota_notification_html": "Benachrichtigungs-E-Mail Inhalt:<br><small>Leer lassen, um Standard-Template wiederherzustellen.</small>",
|
||||
"quota_notification_sender": "Benachrichtigungs-E-Mail Absender",
|
||||
"quota_notification_subject": "Benachrichtigungs-E-Mail Betreff",
|
||||
@@ -387,6 +394,7 @@
|
||||
"unchanged_if_empty": "Unverändert, wenn leer",
|
||||
"upload": "Hochladen",
|
||||
"username": "Benutzername",
|
||||
"user_quicklink": "Quicklink zur Benutzer-Loginseite ausblenden",
|
||||
"validate_license_now": "GUID erneut verifizieren",
|
||||
"verify": "Verifizieren",
|
||||
"yes": "✓",
|
||||
@@ -398,7 +406,8 @@
|
||||
"allowed_methods": "Access-Control-Allow-Methods",
|
||||
"allowed_origins": "Access-Control-Allow-Origin",
|
||||
"logo_dark_label": "Invertiert für den Darkmode",
|
||||
"logo_normal_label": "Normal"
|
||||
"logo_normal_label": "Normal",
|
||||
"user_link": "Nutzer-Link"
|
||||
},
|
||||
"danger": {
|
||||
"access_denied": "Zugriff verweigert oder unvollständige/ungültige Daten",
|
||||
@@ -806,9 +815,13 @@
|
||||
"forgot_password": "> Passwort vergessen?",
|
||||
"invalid_pass_reset_token": "Der Rücksetz-Token für das Passwort ist ungültig oder abgelaufen.<br>Bitte fordern Sie einen neuen Link zur Passwortwiederherstellung an.",
|
||||
"login": "Anmelden",
|
||||
"login_user": "Benutzer Anmelden",
|
||||
"login_dadmin": "Domain-Administrator Anmelden",
|
||||
"login_admin": "Administrator Anmelden",
|
||||
"login_linkstext": "Nicht der richtige Login?",
|
||||
"login_usertext": "Als Benutzer anmelden",
|
||||
"login_domainadmintext": "Als Domainadmin anmelden",
|
||||
"login_admintext": "Als Admin anmelden",
|
||||
"login_user": "Anmeldung als Benutzer",
|
||||
"login_dadmin": "Anmeldung als Domain-Administrator",
|
||||
"login_admin": "Anmeldung als Administrator",
|
||||
"mobileconfig_info": "Bitte als Mailbox-Benutzer einloggen, um das Verbindungsprofil herunterzuladen.",
|
||||
"new_password": "Neues Passwort",
|
||||
"new_password_confirm": "Neues Passwort bestätigen",
|
||||
@@ -991,7 +1004,8 @@
|
||||
"syncjob_EXIT_TLS_FAILURE": "Problem mit verschlüsselter Verbindung",
|
||||
"syncjob_EXIT_AUTHENTICATION_FAILURE": "Authentifizierungsproblem",
|
||||
"syncjob_EXIT_OVERQUOTA": "Ziel Mailbox ist über dem Limit",
|
||||
"syncjob_EXIT_CONNECTION_FAILURE_HOST1": "Kann keine Verbindung zum Zielserver herstellen"
|
||||
"syncjob_EXIT_CONNECTION_FAILURE_HOST1": "Kann keine Verbindung zum Zielserver herstellen",
|
||||
"iam": "Identitätsanbieter"
|
||||
},
|
||||
"oauth2": {
|
||||
"access_denied": "Bitte als Mailbox-Nutzer einloggen, um den Zugriff via OAuth2 zu erlauben.",
|
||||
@@ -1094,6 +1108,7 @@
|
||||
"bcc_edited": "BCC-Map-Eintrag %s wurde geändert",
|
||||
"bcc_saved": "BCC- Map-Eintrag wurde gespeichert",
|
||||
"cors_headers_edited": "CORS Einstellungen wurden erfolgreich gespeichert",
|
||||
"custom_login_modified": "Login Anpassung wurde erfolgreich gespeichert",
|
||||
"db_init_complete": "Datenbankinitialisierung abgeschlossen",
|
||||
"delete_filter": "Filter-ID %s wurde gelöscht",
|
||||
"delete_filters": "Filter gelöscht: %s",
|
||||
|
||||
@@ -134,6 +134,7 @@
|
||||
"admin_domains": "Domain assignments",
|
||||
"admins": "Administrators",
|
||||
"admins_ldap": "LDAP Administrators",
|
||||
"admin_quicklink": "Hide Quicklink to Admin Login Page",
|
||||
"advanced_settings": "Advanced settings",
|
||||
"allowed_methods": "Access-Control-Allow-Methods",
|
||||
"allowed_origins": "Access-Control-Allow-Origin",
|
||||
@@ -161,6 +162,7 @@
|
||||
"credentials_transport_warning": "<b>Warning</b>: Adding a new transport map entry will update the credentials for all entries with a matching next hop column.",
|
||||
"customer_id": "Customer ID",
|
||||
"customize": "Customize",
|
||||
"login_page": "Login Page",
|
||||
"destination": "Destination",
|
||||
"dkim_add_key": "Add ARC/DKIM key",
|
||||
"dkim_domains_selector": "Selector",
|
||||
@@ -179,6 +181,7 @@
|
||||
"domain": "Domain",
|
||||
"domain_admin": "Domain administrator",
|
||||
"domain_admins": "Domain administrators",
|
||||
"domainadmin_quicklink": "Hide Quicklink to Domainadmin Login Page",
|
||||
"domain_s": "Domain/s",
|
||||
"duplicate": "Duplicate",
|
||||
"duplicate_dkim": "Duplicate DKIM record",
|
||||
@@ -202,6 +205,8 @@
|
||||
"f2b_whitelist": "Whitelisted networks/hosts",
|
||||
"filter": "Filter",
|
||||
"filter_table": "Filter table",
|
||||
"force_sso_text": "If an external OIDC provider is configured, this option hides the default mailcow login forms and only shows the Single Sign-On button",
|
||||
"force_sso": "Disable mailcow Login and show only Single Sign-On",
|
||||
"forwarding_hosts": "Forwarding Hosts",
|
||||
"forwarding_hosts_add_hint": "You can either specify IPv4/IPv6 addresses, networks in CIDR notation, host names (which will be resolved to IP addresses), or domain names (which will be resolved to IP addresses by querying SPF records or, in their absence, MX records).",
|
||||
"forwarding_hosts_hint": "Incoming messages are unconditionally accepted from any hosts listed here. These hosts are then not checked against DNSBLs or subjected to greylisting. Spam received from them is never rejected, but optionally it can be filed into the Junk folder. The most common use for this is to specify mail servers on which you have set up a rule that forwards incoming emails to your mailcow server.",
|
||||
@@ -229,6 +234,7 @@
|
||||
"iam_host": "Host",
|
||||
"iam_host_info": "Enter one or more LDAP hosts, separated by commas.",
|
||||
"iam_import_users": "Import Users",
|
||||
"iam_login_provisioning": "Auto-create users on login",
|
||||
"iam_mapping": "Attribute Mapping",
|
||||
"iam_bindpass": "Bind Password",
|
||||
"iam_periodic_full_sync": "Periodic Full Sync",
|
||||
@@ -317,6 +323,7 @@
|
||||
"quarantine_release_format_att": "As attachment",
|
||||
"quarantine_release_format_raw": "Unmodified original",
|
||||
"quarantine_retention_size": "Retentions per mailbox:<br><small>0 indicates <b>inactive</b>.</small>",
|
||||
"quicklink_text": "Show or hide quick links to other login pages under the login form",
|
||||
"quota_notification_html": "Notification email template:<br><small>Leave empty to restore default template.</small>",
|
||||
"quota_notification_sender": "Notification email sender",
|
||||
"quota_notification_subject": "Notification email subject",
|
||||
@@ -398,6 +405,7 @@
|
||||
"upload": "Upload",
|
||||
"username": "Username",
|
||||
"user_link": "User-Link",
|
||||
"user_quicklink": "Hide Quicklink to User Login Page",
|
||||
"validate_license_now": "Validate GUID against license server",
|
||||
"verify": "Verify",
|
||||
"yes": "✓"
|
||||
@@ -809,6 +817,10 @@
|
||||
"forgot_password": "> Forgot Password?",
|
||||
"invalid_pass_reset_token": "The reset password token is invalid or has expired.<br>Please request a new password reset link.",
|
||||
"login": "Login",
|
||||
"login_linkstext": "Not the correct login?",
|
||||
"login_usertext": "Log in as user",
|
||||
"login_domainadmintext": "Log in as domain admin",
|
||||
"login_admintext": "Log in as admin",
|
||||
"login_user": "User Login",
|
||||
"login_dadmin": "Domain-Administrator Login",
|
||||
"login_admin": "Administrator Login",
|
||||
@@ -1105,6 +1117,7 @@
|
||||
"bcc_edited": "BCC map entry %s edited",
|
||||
"bcc_saved": "BCC map entry saved",
|
||||
"cors_headers_edited": "CORS settings have been saved",
|
||||
"custom_login_modified": "Login customisation was saved successfully",
|
||||
"db_init_complete": "Database initialization completed",
|
||||
"delete_filter": "Deleted filters ID %s",
|
||||
"delete_filters": "Deleted filters: %s",
|
||||
|
||||
@@ -359,7 +359,55 @@
|
||||
"service": "Service",
|
||||
"success": "Succès",
|
||||
"cors_settings": "Paramètres CORS",
|
||||
"login_time": "Horodatage de connexion"
|
||||
"login_time": "Horodatage de connexion",
|
||||
"domainadmin_quicklink": "Masquer le lien rapide vers la page de connexion de l'administrateur du domaine",
|
||||
"force_sso_text": "Si un fournisseur OIDC externe est configuré, cette option masque les formulaires de connexion par défaut de mailcow et n'affiche que le bouton Singe Sign-On",
|
||||
"app_hide": "Masquer pour la connexion",
|
||||
"admin_quicklink": "Masquer le lien rapide vers la page de connexion de l'administrateur",
|
||||
"login_page": "Page de connexion",
|
||||
"force_sso": "Désactiver la connexion mailcow et n'afficher que Singe Sign-On",
|
||||
"iam_attribute_field": "Champ d'attribut",
|
||||
"iam_authorize_url": "Endpoint d'autorisation",
|
||||
"iam_auth_flow": "Flow d'authentification",
|
||||
"iam_auth_flow_info": "Outre le flux de code d'autorisation (flux standard dans Keycloak), qui est utilisé pour la connexion unique, mailcow prend également en charge le flux d'authentification avec des informations d'identification directes. Le flux Mailpassword tente de valider les informations d'identification de l'utilisateur en utilisant l'API REST de Keycloak Admin. mailcow récupère le mot de passe haché dans l'attribut <code>mailcow_password</code>, qui est mappé dans Keycloak.",
|
||||
"iam_basedn": "Base DN",
|
||||
"iam_client_id": "ID Client",
|
||||
"iam_client_secret": "Secret Client",
|
||||
"iam_use_ssl": "Utiliser SSL",
|
||||
"iam_redirect_url": "Url de redirection",
|
||||
"iam_use_ssl_info": "Si le protocole SSL est activé et que le port est défini sur 389, il sera automatiquement remplacé par 636.",
|
||||
"iam_use_tls_info": "Si vous activez TLS, vous devez utiliser le port par défaut de votre serveur LDAP (389). Les ports SSL ne peuvent pas être utilisés.",
|
||||
"iam_version": "Version",
|
||||
"ignore_ssl_error": "Ignorer les erreurs SSL",
|
||||
"iam_login_provisioning": "Créer automatiquement l'utilisateur à la connexion",
|
||||
"iam_mapping": "Mapping des attributs",
|
||||
"iam_bindpass": "Lier le mot de passe",
|
||||
"iam_periodic_full_sync": "Synchronisation complète périodique",
|
||||
"iam_port": "Port",
|
||||
"iam_realm": "Realm",
|
||||
"iam_rest_flow": "Flow Mailpassword",
|
||||
"iam_server_url": "URL du serveur",
|
||||
"iam_sso": "Single Sign-On",
|
||||
"iam_sync_interval": "Interval de Sync / Import (min)",
|
||||
"iam_test_connection": "Test de connexion",
|
||||
"iam_token_url": "Endpoint Token",
|
||||
"iam_userinfo_url": "Endpoint User info",
|
||||
"iam_username_field": "Champ du nom d'utilisateur",
|
||||
"iam_binddn": "Bind DN",
|
||||
"iam_use_tls": "Utiliser StartTLS",
|
||||
"quicklink_text": "Afficher ou masquer les liens rapides vers d'autres pages de connexion sous le formulaire de connexion",
|
||||
"task": "Tâche",
|
||||
"user_link": "Lien utilisateur",
|
||||
"user_quicklink": "Masquer le lien rapide vers la page de connexion de l'utilisateur",
|
||||
"iam_client_scopes": "Scopes Client",
|
||||
"iam_default_template": "Template par défaut",
|
||||
"iam_default_template_description": "Si aucun modèle n'est attribué à un utilisateur, le modèle par défaut sera utilisé pour créer la boîte aux lettres, mais pas pour la mettre à jour.",
|
||||
"iam_description": "Configurer un fournisseur externe pour l'authentification<br>Les boîtes aux lettres des utilisateurs seront automatiquement créées lors de leur première connexion, à condition qu'un mappage d'attributs ait été défini.",
|
||||
"iam_extra_permission": "Pour que les paramètres suivants fonctionnent, le client mailcow dans Keycloak a besoin d'un <code>Compte de service</code> et de l'autorisation de <code>voir les utilisateurs</code>.",
|
||||
"iam_host": "Hôte",
|
||||
"iam_host_info": "Saisissez un ou plusieurs hôtes LDAP, séparés par des virgules.",
|
||||
"iam_import_users": "Importer des utilisateurs",
|
||||
"filter": "Filtrer"
|
||||
},
|
||||
"danger": {
|
||||
"access_denied": "Accès refusé ou données de formulaire non valides",
|
||||
@@ -496,7 +544,11 @@
|
||||
"password_reset_invalid_user": "Boîte mail introuvable ou aucune adresse de récupération n'a été définie",
|
||||
"password_reset_na": "La réinitialisation des mots de passe est actuellement indisponible. Veuillez contacter votre administrateur.",
|
||||
"reset_token_limit_exceeded": "Le nombre limite de jetons de réinitialisation a été dépassé. Veuillez réessayer plus tard.",
|
||||
"to_invalid": "Le destinataire ne doit pas être vide"
|
||||
"to_invalid": "Le destinataire ne doit pas être vide",
|
||||
"generic_server_error": "Une erreur de serveur inattendue s'est produite. Veuillez contacter votre administrateur.",
|
||||
"authsource_in_use": "Le fournisseur d'identité ne peut pas être modifié ou supprimé car il est actuellement utilisé par un ou plusieurs utilisateurs.",
|
||||
"iam_test_connection": "Échec de la connexion",
|
||||
"required_data_missing": "La donnée requise %s est manquante"
|
||||
},
|
||||
"debug": {
|
||||
"chart_this_server": "Graphique (ce serveur)",
|
||||
@@ -553,7 +605,7 @@
|
||||
"alias": "Éditer les alias",
|
||||
"allow_from_smtp": "Restreindre l'utilisation de <b>SMTP</b> à ces adresses IP",
|
||||
"allow_from_smtp_info": "Laissez vide pour autoriser tous les expéditeurs.<br>Adresses IPv4/IPv6 et réseaux.",
|
||||
"allowed_protocols": "Protocoles autorisés",
|
||||
"allowed_protocols": "Protocoles autorisés pour l'accès direct de l'utilisateur (n'affecte pas les protocoles de mot de passe de l'application)",
|
||||
"app_name": "Nom de l'application",
|
||||
"app_passwd": "Mot de passe de l'application",
|
||||
"automap": "Tenter de cibler automatiquement les dossiers (« Sent items », « Sent » => « Sent » etc.)",
|
||||
@@ -672,7 +724,7 @@
|
||||
"none_inherit": "Aucun / Héritage",
|
||||
"quota_warning_bcc": "Avertissement sur les quotas BCC",
|
||||
"quota_warning_bcc_info": "Les avertissements seront envoyés en copies séparées aux destinataires suivants. Le sujet sera précédé du nom d'utilisateur correspondant entre parenthèses, par exemple : <code>Avertissement sur les quotas (user@example.com)</code>.",
|
||||
"sogo_access_info": "L'authentification unique à partir de l'interface de messagerie reste opérationnelle. Ce paramètre n'affecte pas l'accès à tous les autres services et ne supprime ni, ne modifie le profil SOGo existant d'un utilisateur.",
|
||||
"sogo_access_info": "Après s'être connecté, l'utilisateur est automatiquement redirigé vers SOGo.",
|
||||
"admin": "Modifier l'administrateur",
|
||||
"password_recovery_email": "Adresse email de récupération",
|
||||
"mailbox_rename_title": "Nouveau nom de la partie locale de la boîte de réception",
|
||||
@@ -680,7 +732,7 @@
|
||||
"mailbox_rename_agree": "J'ai fait une sauvegarde.",
|
||||
"mailbox_rename_warning": "IMPORTANT ! Faites une sauvegarde avant de renommer la boîte de réception.",
|
||||
"mailbox_rename_alias": "Créer un alias automatiquement",
|
||||
"sogo_access": "Autoriser la connexion directe à SOGo",
|
||||
"sogo_access": "Redirection directe vers SOGo",
|
||||
"pushover": "Pushover",
|
||||
"pushover_sound": "Son"
|
||||
},
|
||||
@@ -730,7 +782,14 @@
|
||||
"new_password": "Nouveau mot de passe",
|
||||
"new_password_confirm": "Confirmer le nouveau mot de passe",
|
||||
"reset_password": "Réinitialiser le mot de passe",
|
||||
"request_reset_password": "Demander le changement du mot de passe"
|
||||
"request_reset_password": "Demander le changement du mot de passe",
|
||||
"login_user": "Connexion Utilisateur",
|
||||
"login_dadmin": "Connexion Administrateur de domaine",
|
||||
"login_admin": "Connexion Administrateur",
|
||||
"login_linkstext": "L'identifiant n'est pas correct ?",
|
||||
"login_usertext": "Se connecter en tant qu'utilisateur",
|
||||
"login_domainadmintext": "Se connecter en tant qu'administrateur du domaine",
|
||||
"login_admintext": "Se connecter en tant qu'administrateur"
|
||||
},
|
||||
"mailbox": {
|
||||
"action": "Action",
|
||||
@@ -836,7 +895,7 @@
|
||||
"recipient_map_new": "Nouveau destinataire",
|
||||
"recipient_map_new_info": "La destination de la carte du destinataire doit être une adresse de courriel valide ou un nom de domaine.",
|
||||
"recipient_map_old": "Destinataire original",
|
||||
"recipient_map_old_info": "Une carte de destination originale doit être une adresse de courriel valide ou un nom de domaine.",
|
||||
"recipient_map_old_info": "La destination originale des cartes des destinataires doit être une adresse de courriel valide ou un nom de domaine.",
|
||||
"recipient_maps": "Cartes des bénéficiaires",
|
||||
"relay_all": "Relayer tous les destinataires",
|
||||
"remove": "Supprimer",
|
||||
@@ -905,7 +964,8 @@
|
||||
"template": "Modèle",
|
||||
"syncjob_check_log": "Vérifier le journal",
|
||||
"recipient": "Destinataire",
|
||||
"open_logs": "Afficher les journaux"
|
||||
"open_logs": "Afficher les journaux",
|
||||
"iam": "Fournisseur d'identité"
|
||||
},
|
||||
"oauth2": {
|
||||
"access_denied": "Veuillez vous connecter en tant que propriétaire de la boîte de réception pour accorder l’accès via Oauth2.",
|
||||
@@ -1076,7 +1136,9 @@
|
||||
"recovery_email_sent": "Email de réinitialisation envoyé à %s",
|
||||
"mailbox_renamed": "La boîte de réception a été renommée de %s à %s",
|
||||
"template_modified": "Les modifications au modèle %s ont été enregistrées",
|
||||
"password_policy_saved": "La politique de mot de passe a été enregistrée avec succès"
|
||||
"password_policy_saved": "La politique de mot de passe a été enregistrée avec succès",
|
||||
"custom_login_modified": "La personnalisation de la connexion a été sauvegardée avec succès",
|
||||
"iam_test_connection": "Connexion réussie"
|
||||
},
|
||||
"tfa": {
|
||||
"api_register": "%s utilise l'API Yubico Cloud. Veuillez obtenir une clé API pour votre clé <a href=\"https://upgrade.yubico.com/getapikey/\" target=\"_blank\">ici</a>",
|
||||
@@ -1256,8 +1318,8 @@
|
||||
"with_app_password": "avec le mot de passe de l'application",
|
||||
"apple_connection_profile_with_app_password": "Un nouveau mot de passe est généré et ajouté au profil, de sorte qu'aucun mot de passe ne doit être saisi lors de la configuration de votre appareil. Ne partagez pas le fichier car il vous donne un accès complet à votre boîte de réception.",
|
||||
"attribute": "Attribut",
|
||||
"direct_protocol_access": "Cet utilisateur de la boîte aux lettres dispose d'un <b>accès externe direct</b> aux protocoles et applications suivants. Votre administrateur contrôle ce paramètre. Il est possible de créer des mots de passe d'application pour accorder l'accès à des protocoles et des applications individuels.<br>Le bouton « Connexion au webmail » permet une connexion unique à SOGo et est toujours disponible.",
|
||||
"open_webmail_sso": "Connexion au webmail",
|
||||
"direct_protocol_access": "Cet utilisateur de la boîte aux lettres dispose d'un <b>accès externe direct</b> aux protocoles et applications suivants. Votre administrateur contrôle ce paramètre. Il est possible de créer des mots de passe d'application pour accorder l'accès à des protocoles et des applications individuels.<br>Le bouton « Connexion au Webmail » permet une connexion unique à SOGo et est toujours disponible.",
|
||||
"open_webmail_sso": "Connexion au Webmail",
|
||||
"recent_successful_connections": "Voir les connexions réussies",
|
||||
"syncjob_EXIT_TLS_FAILURE": "Problème de connexion chiffrée",
|
||||
"syncjob_EXIT_AUTHENTICATION_FAILURE": "Problème d'authentification",
|
||||
@@ -1286,7 +1348,9 @@
|
||||
"open_logs": "Afficher les journaux",
|
||||
"pushover_sound": "Son",
|
||||
"mailbox_general": "Général",
|
||||
"mailbox_settings": "Paramètres"
|
||||
"mailbox_settings": "Paramètres",
|
||||
"tfa_info": "L'authentification à deux facteurs permet de protéger votre compte. Si vous l'activez, vous aurez besoin de mots de passe d'application pour vous connecter à des applications ou des services qui ne prennent pas en charge l'authentification à deux facteurs (par exemple les clients e-mails).",
|
||||
"overview": "Vue d'ensemble"
|
||||
},
|
||||
"warning": {
|
||||
"cannot_delete_self": "Impossible de supprimer l’utilisateur connecté",
|
||||
|
||||
@@ -590,4 +590,4 @@
|
||||
"app_name": "Alkalmazás neve",
|
||||
"app_passwd_protocols": "Engedélyezett protokollok az alkalmazás jelszavához"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -353,7 +353,30 @@
|
||||
"password_settings": "Impostazioni della password",
|
||||
"queue_unban": "sblocca",
|
||||
"restore_template": "Lasciare vuoto per ripristinare il modello predefinito.",
|
||||
"logo_normal_label": "Normale"
|
||||
"logo_normal_label": "Normale",
|
||||
"app_hide": "Nascondi per il login",
|
||||
"ip_check_disabled": "Il controllo IP è disabilitato. Puoi abilitarlo sotto <br><strong>Sistema > Configurazione > Opzioni > Personalizza </strong>",
|
||||
"ip_check_opt_in": "Attiva l'utilizzo dei servizi di terze parti <strong>ipv4.mailcow.email</strong> e <strong> ipv6.mailcow.email</strong> per risolvere gli indirizzi IP esterni",
|
||||
"iam_login_provisioning": "Creazione automatica di utenti al login",
|
||||
"iam_port": "Porta",
|
||||
"iam_redirect_url": "URL di reindirizzamento",
|
||||
"iam_server_url": "URL server",
|
||||
"iam_sso": "Single Sign-On",
|
||||
"iam_test_connection": "Test connessione",
|
||||
"iam_use_ssl": "Usa SSL",
|
||||
"iam_use_tls": "Usa StartTLS",
|
||||
"iam_version": "Versione",
|
||||
"ignore_ssl_error": "Ignorare gli errori SSL",
|
||||
"task": "Attività",
|
||||
"login_page": "Pagina di accesso",
|
||||
"filter": "Filtro",
|
||||
"iam_attribute_field": "Campo attributo",
|
||||
"iam_authorize_url": "Endpoint di autorizzazione",
|
||||
"iam_auth_flow": "Flusso di autenticazione",
|
||||
"iam_client_id": "ID cliente",
|
||||
"iam_default_template": "Template predefinito",
|
||||
"iam_host": "Host",
|
||||
"iam_import_users": "Importa utenti"
|
||||
},
|
||||
"danger": {
|
||||
"access_denied": "Accesso negato o form di login non corretto",
|
||||
@@ -484,7 +507,11 @@
|
||||
"password_reset_invalid_user": "La casella di posta elettronica non è stata trovata o non è stata impostata un'e-mail di recupero",
|
||||
"password_reset_na": "Il recupero della password non è attualmente disponibile. Contattare l'amministratore.",
|
||||
"recovery_email_failed": "Impossibile inviare un'e-mail di recupero. Contattare l'amministratore.",
|
||||
"to_invalid": "Il destinatario non deve essere vuoto"
|
||||
"to_invalid": "Il destinatario non deve essere vuoto",
|
||||
"iam_test_connection": "Connessione non riuscita",
|
||||
"webauthn_authenticator_failed": "L'autenticator selezionato non è stato trovato",
|
||||
"webauthn_username_failed": "L'authenticator selezionato appartiene ad un altro account",
|
||||
"webauthn_publickey_failed": "Nessuna chiave pubblica è stata salvata per l'authenticator selezionato"
|
||||
},
|
||||
"debug": {
|
||||
"chart_this_server": "Grafico (questo server)",
|
||||
@@ -655,7 +682,10 @@
|
||||
"domain_footer_html": "Piè di pagina HTML",
|
||||
"domain_footer_plain": "Piè di pagina PLAIN",
|
||||
"footer_exclude": "Escludi dal piè di pagina",
|
||||
"password_recovery_email": "E-mail di recupero password"
|
||||
"password_recovery_email": "E-mail di recupero password",
|
||||
"mailbox_rename": "Rinominare la casella mail",
|
||||
"mailbox_rename_agree": "Ho creato un backup.",
|
||||
"mailbox_rename_alias": "Creare alias automaticamente"
|
||||
},
|
||||
"fido2": {
|
||||
"confirm": "Conferma",
|
||||
@@ -717,7 +747,11 @@
|
||||
"forgot_password": "> Password dimenticata?",
|
||||
"new_password": "Nuova password",
|
||||
"new_password_confirm": "Conferma la nuova password",
|
||||
"reset_password": "Ripristino della password"
|
||||
"reset_password": "Ripristino della password",
|
||||
"login_linkstext": "Non è il login corretto?",
|
||||
"login_usertext": "Accedere come utente",
|
||||
"login_domainadmintext": "Accedere come domain admin",
|
||||
"login_admintext": "Accedere come admin"
|
||||
},
|
||||
"mailbox": {
|
||||
"action": "Azione",
|
||||
|
||||
@@ -16,7 +16,16 @@
|
||||
"login_as": "Pieteikšanās kā pastkastes lietotājam",
|
||||
"mailbox_relayhost": "Pasta kastītes relayhost maiņa",
|
||||
"prohibited": "Aizliegts ar ACL",
|
||||
"protocol_access": "Protokola piekļuves maiņa"
|
||||
"protocol_access": "Protokola piekļuves maiņa",
|
||||
"pw_reset": "Ļaut atiestatīt mailcow lietotāja paroli",
|
||||
"ratelimit": "Piekļuves biežuma ierobežojums",
|
||||
"quarantine": "Karantīnas darbības",
|
||||
"quarantine_attachments": "Karantīnas pielikumi",
|
||||
"quarantine_category": "Mainīt karantīnas paziņojumu kategoriju",
|
||||
"quarantine_notification": "Mainīt karantīnas paziņojumus",
|
||||
"smtp_ip_access": "Mainīt SMTP atļautos saimniekdatorus",
|
||||
"sogo_access": "Atļaut SOGo piekļuves pārvaldību",
|
||||
"sogo_profile_reset": "Atiestatīt SOGo profilu"
|
||||
},
|
||||
"add": {
|
||||
"activate_filter_warn": "Visi pārējie filtri tiks deaktivizēti, kad aktīvs ir atzīmēts.",
|
||||
@@ -24,8 +33,8 @@
|
||||
"add": "Pievienot",
|
||||
"add_domain_only": "Tikai pievienot domēnu",
|
||||
"add_domain_restart": "Pievienot domēnu un restartēt SOGo",
|
||||
"alias_address": "Aizstājaddrese/s",
|
||||
"alias_address_info": "<small>Pilna epasta addrese/s vai @piemērs.com, lai notvertu visas domēna ziņas (komatu atdalītas). <b>tikai mailcow domēni</b>.</small>",
|
||||
"alias_address": "Aizstājadrese/s",
|
||||
"alias_address_info": "<small>Pilna epasta adrese/s vai @example.com, lai notvertu visus domēna ziņojumus (atdalītas ar komatu). <b>Tikai mailcow domēni</b>.</small>",
|
||||
"alias_domain": "Aizstājdomēni",
|
||||
"alias_domain_info": "<small>Tikai derīgi domēna vārdi (komatu atdalīti).</small>",
|
||||
"automap": "Mēģiniet automatizēt mapes (\"Nosūtītie vienumi\", \"Nosūtītie\" => \"Nosūtītie\" etc.)",
|
||||
@@ -63,15 +72,17 @@
|
||||
"skipcrossduplicates": "Izlaist dublētus ziņojumus pa mapēm (pirmais nāk, pirmais kalpo)",
|
||||
"syncjob": "Pievienot sinhronizācijas darbu",
|
||||
"syncjob_hint": "Ņemiet vērā, ka parole ir jāuzglabā vienkāršā tekstā!",
|
||||
"target_address": "Iet uz adresēm",
|
||||
"target_address_info": "<small>Pilna epasta addrese/s (comma-separated).</small>",
|
||||
"target_address": "Mērķa adreses",
|
||||
"target_address_info": "<small>Pilna epasta adrese/s (atdalītas ar komatu).</small>",
|
||||
"target_domain": "Mērķa domēns",
|
||||
"username": "Lietotājvārds",
|
||||
"validate": "Apstiprināt",
|
||||
"validation_success": "Apstiprināts veiksmīgi",
|
||||
"bcc_dest_format": "BCC galamērķim ir jābūt vienai derīgai e-pasta adresei.<br>Ja ir nepieciešams nosūtīt kopiju vairākām adresēm, jāizveido aizstājvārds un jāizmanto tas šeit.",
|
||||
"domain_matches_hostname": "Domēns %s atbilst saimniekdatora nosaukumam",
|
||||
"disable_login": "Neļaut pieteikšanos (ienākošais pasts joprojām tiks pieņemts)"
|
||||
"disable_login": "Neļaut pieteikšanos (ienākošais pasts joprojām tiks pieņemts)",
|
||||
"app_password": "Pievienot lietotnes paroli",
|
||||
"app_passwd_protocols": "Atļautie lietotnes paroles protokoli"
|
||||
},
|
||||
"admin": {
|
||||
"access": "Pieeja",
|
||||
@@ -114,7 +125,7 @@
|
||||
"f2b_whitelist": "Baltā saraksta tīkls/hosts",
|
||||
"filter_table": "Filtru tabula",
|
||||
"forwarding_hosts": "Hostu pārsūtīšana",
|
||||
"forwarding_hosts_add_hint": "Var norādīt vai nu IPv4/IPv6 addreses, tīklu ar CIDR apzīmējumu, saimniekdatoru nosaukumus (kas tiks atrisināti IP adresēs) vai arī domēna vārdus (kas tiks atrisināti IP adresēs, vaicājot SPF ierakstus, vai, ja tādu nav, MX ierakstus).",
|
||||
"forwarding_hosts_add_hint": "Var norādīt vai nu IPv4/IPv6 adreses, tīklu ar CIDR apzīmējumu, saimniekdatoru nosaukumus (kas tiks atrisināti IP adresēs) vai arī domēna vārdus (kas tiks atrisināti IP adresēs, vaicājot SPF ierakstus, vai, ja tādu nav, MX ierakstus).",
|
||||
"forwarding_hosts_hint": "Ienākošie ziņojumi tiek bez nosacījumiem pieņemti no visiem šeit norādītajiem saimniekdatoriem. Tie tad netiek pārbaudīti pret DNSBL vai pakļauti ievietošanai pelēkajā sarakstā. No tiem saņemtās mēstules nekad netiek noraidītas, bet pēc izvēles tās var pārvietot mapē \"Nevēlams\". Visbiežāk to izmanto, lai norādītu pasta serverus, kuros ir uzstādīts nosacījums, kas pārsūta ienākošās e-pasta vēstules uz Tavu mailcow serveri.",
|
||||
"help_text": "Pārrakstīt palīdzības tekstu zem pieteikšanās maskas (var izmantot HTML)",
|
||||
"host": "Hosts",
|
||||
@@ -142,7 +153,7 @@
|
||||
"recipients": "Adresāts",
|
||||
"refresh": "Atsvaidzināt",
|
||||
"regen_api_key": "Reģenerēt API atslēgu",
|
||||
"relay_from": "\"No:\" addrese",
|
||||
"relay_from": "\"No:\" adrese",
|
||||
"relay_run": "Palaist testu",
|
||||
"relayhosts_hint": "Norādīt no sūtītāja atkarīgas piegādes, lai varētu tos atlasīt domēnu konfigurācijas uzvednē.<br>\n Piegādes pakalpojums vienmēr ir \"smtp\", tādējādi tiks mēģināts TLS, kad piedāvāts. Iekļautais TLS (SMTPS) netiek atbalstīts. Tiek ņemts vērā lietotāja atsevišķais izejošā TLS nosacījuma iestatījums.<br>\n Ietekmē atlasītos domēnus, tajā skaitā aizstājdomēnus.",
|
||||
"remove": "Noņemt",
|
||||
@@ -222,7 +233,8 @@
|
||||
"targetd_not_found": "Mērķa domēns nav atrasts",
|
||||
"username_invalid": "Lietotājvārds nevar tikt izmantots",
|
||||
"validity_missing": "Lūdzu piešķiriet derīguma termiņu",
|
||||
"domain_cannot_match_hostname": "Domēns nevar atbilst saimniekdatora nosaukumam"
|
||||
"domain_cannot_match_hostname": "Domēns nevar atbilst saimniekdatora nosaukumam",
|
||||
"app_passwd_id_invalid": "Lietotnes paroles Id %s ir nederīgs"
|
||||
},
|
||||
"diagnostics": {
|
||||
"cname_from_a": "Vērtība, kas iegūta no A/AAAA ieraksta. Tas tiek atbalstīts tik ilgi, kamēr ieraksts norāda uz pareizo resursu.",
|
||||
@@ -257,7 +269,7 @@
|
||||
"hostname": "Saimniekdatora nosaukums",
|
||||
"inactive": "Neaktīvs",
|
||||
"kind": "Veids",
|
||||
"mailbox": "Rediģēt pastkasti",
|
||||
"mailbox": "Labot pastkasti",
|
||||
"max_aliases": "Lielākais aizstājvārdu skaits",
|
||||
"max_mailboxes": "Maks. iespējamās pastkastes",
|
||||
"max_quota": "Maks. kvota uz pastkasti (MiB)",
|
||||
@@ -283,8 +295,8 @@
|
||||
"spam_policy": "Pievienot vai noņemt vienumus baltajā-/melnajā sarakstā",
|
||||
"spam_score": "Iestatīt pielāgotu surogātpasta vērtējumu",
|
||||
"subfolder2": "Sinhronizēt galamērķa apakšmapē<br><small>(tukšs = neizmantot apakšmapi)</small>",
|
||||
"syncjob": "Rediģēt sinhronizācijas darbu",
|
||||
"target_address": "Iet uz adresi/ēm <small>(komatu atdalītas)</small>",
|
||||
"syncjob": "Labot sinhronizācijas darbu",
|
||||
"target_address": "Mērķa adrese/s <small>(atdalītas ar komatu)</small>",
|
||||
"target_domain": "Mērķa domēns",
|
||||
"title": "Labot priekšmetu",
|
||||
"unchanged_if_empty": "Ja neizmainīts atstājiet tukšu",
|
||||
@@ -300,8 +312,11 @@
|
||||
"sogo_visible": "Aizstājvārds ir redzams SOGo",
|
||||
"sogo_visible_info": "Šī iespēja ietekmē tikai tos objektus, kurus var parādīt SOGo (koplietojamās vai nekoplietojamās aizstājadreses, kas norāda uz vismaz vienu vietējo pastkasti). Ja paslēpts, netiks parādīts SOGo kā atlasāms sūtītājs.",
|
||||
"mbox_rl_info": "Šis pieprasījumu ierobežojums tiek piemērots SASL pieteikšanās vārdam, tas atbilst jebkurai \"from\" adresei, ko izmanto lietotājs, kurš ir pieteicies. Pastkastes pieprasījumu ierobežojums pārraksta domēna mēroga pieprasījumu ierobežojumu.",
|
||||
"sogo_access": "Nodrošināt tiešu pieteikšanās piekļuvi SOGo",
|
||||
"disable_login": "Neļaut pieteikšanos (ienākošais pasts joprojām tiks pieņemts)"
|
||||
"sogo_access": "Tieša pārvirzīšana uz SOGo",
|
||||
"disable_login": "Neļaut pieteikšanos (ienākošais pasts joprojām tiks pieņemts)",
|
||||
"app_passwd_protocols": "Atļautie lietotnes paroles protokoli",
|
||||
"allowed_protocols": "Atļautie protokoli tiešai lietotāja piekļuvei (neietekmē lietotnes paroles protokolus)",
|
||||
"app_passwd": "Lietotnes parole"
|
||||
},
|
||||
"footer": {
|
||||
"cancel": "Atcelt",
|
||||
@@ -508,7 +523,9 @@
|
||||
"verified_fido2_login": "Apliecināta FIDO2 pieteikšanās",
|
||||
"verified_webauthn_login": "Apliecināta WebAuthn pieteikšanās",
|
||||
"verified_totp_login": "Apliecināta TOTP pieteikšanās",
|
||||
"verified_yotp_login": "Apliecināta Yubico OTP pieteikšanās"
|
||||
"verified_yotp_login": "Apliecināta Yubico OTP pieteikšanās",
|
||||
"app_passwd_removed": "Noņemta lietotnes parole ar Id %s",
|
||||
"app_passwd_added": "Pievienota jauna lietotnes parole"
|
||||
},
|
||||
"tfa": {
|
||||
"api_register": "%s izmanto Yubico Cloud API. Lūdzu iegūstiet API atslēgu priekš Jūsu atslēgas<a href=\"https://upgrade.yubico.com/getapikey/\" target=\"_blank\">here</a>",
|
||||
@@ -523,7 +540,7 @@
|
||||
"scan_qr_code": "Lūdzu, skenējiet šo kodu ar savu autentifikācijas lietojumprogrammu vai ievadiet kodu manuāli.",
|
||||
"select": "Lūdzu izvēlaties",
|
||||
"set_tfa": "Uzstādīt difi faktoru autentifik;acijas metodi",
|
||||
"tfa": "Divu faktoru autentifikācija",
|
||||
"tfa": "Divpakāpju pieteikšanās",
|
||||
"totp": "Uz laiku bāzēta vienreizēja parole (Google Autentifikātors utt.)",
|
||||
"webauthn": "WebAuthn autentifikācija",
|
||||
"waiting_usb_auth": "<i>Gaida USB ierīci...</i><br><br>Lūdzu, tagad nospiežiet pogu uz Jūsu WebAuthn USB ierīces.",
|
||||
@@ -618,12 +635,18 @@
|
||||
"apple_connection_profile_mailonly": "Šis savienojuma profils iekļauj IMAP un SMTP konfigurācijas parametrus Apple ierīcei.",
|
||||
"pushover_info": "Pašpiegādes paziņojumu iestatījumi attieksies uz visu tīro (ne surogātpasta) pastu, kas piegādāts uz <b>%s</b>, ieskaitot aizstājvārdus (kopīgotus, nekopīgotus, ar birkām).",
|
||||
"app_hint": "Lietotņu paroles ir aizstājējparoles, lai pieteiktos IMAP, SMTP, CalDAV, CardDAV un EAS. Lietotājvārds paliek nemainīgs. SOGo tīmekļa pasts nav pieejams ar lietotņu parolēm.",
|
||||
"direct_protocol_access": "Šim pastkastes lietotājam ir <b> tieša, ārēja piekļuve</b> zemāk uzskaitītajiem protokoliem un lietotnēm. Šo iestatījumu pārrauga pārvaldītājs. Lietotņu paroles var izveidot, lai nodrošinātu piekļuvi atsevišķiem protokoliem un lietotnēm.<br>Poga \"Pieteikties tīmekļa pastā\" nodrošina vienotu pieteikšanos SOGo un vienmēr ir pieejama.",
|
||||
"direct_protocol_access": "Šim pastkastes lietotājam ir <b> tieša, ārēja piekļuve</b> zemāk uzskaitītajiem protokoliem un lietotnēm. Šo iestatījumu pārrauga pārvaldītājs. Lietotņu paroles var izveidot, lai nodrošinātu piekļuvi atsevišķiem protokoliem un lietotnēm.<br>Poga \"Tīmekļa pasts\" nodrošina vienotu pieteikšanos SOGo un vienmēr ir pieejama.",
|
||||
"last_ui_login": "Pēdējā pieteikšanās saskarnē",
|
||||
"login_history": "Pieteikšanās vēsture",
|
||||
"no_last_login": "Nav informācijas par pēdējām pieteikšanās saskarnē reizēm",
|
||||
"open_webmail_sso": "Pieteikšanās tīmekļa pastā",
|
||||
"last_mail_login": "Pēdējā pasta pieteikšanās"
|
||||
"open_webmail_sso": "Tīmekļa pasts",
|
||||
"last_mail_login": "Pēdējā pasta pieteikšanās",
|
||||
"change_password_hint_app_passwords": "Kontā ir %d lietotņu paroles, kas netiks mainītas. Lai pārvaldītu tās, jādodas uz cilni \"Lietotņu paroles\".",
|
||||
"with_app_password": "ar lietotnes paroli",
|
||||
"apple_connection_profile_with_app_password": "Jauna lietotnes parole ir izveidota un pievienota profilam, lai ierīces iestatīšanas laikā nebūtu nepieciešams ievadīt paroli. Lūgums nekopīgot datni, jo tā nodrošina pilnu piekļuvi pastkastei.",
|
||||
"tfa_info": "Divpakāpju autentificēšanās palīdz aizsargāt kontu.Ja tā ir iespējota, var būt nepieciešamas lietotņu paroles, lai pieteiktos lietotnēs vai pakalpojumos, kas nenodrošina divpakāpju autentificēšanos (piem., e-pasta klienti).",
|
||||
"app_passwds": "Lietotņu paroles",
|
||||
"create_app_passwd": "Izveidot lietotnes paroli"
|
||||
},
|
||||
"datatables": {
|
||||
"paginate": {
|
||||
@@ -657,4 +680,4 @@
|
||||
"fido2": {
|
||||
"fido2_auth": "Pieteikties ar FIDO2"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,7 +2,8 @@
|
||||
"acl": {
|
||||
"sogo_profile_reset": "Usuń profil SOGo (webmail)",
|
||||
"syncjobs": "Polecenie synchronizacji",
|
||||
"alias_domains": "Dodaj aliasy domen"
|
||||
"alias_domains": "Dodaj aliasy domen",
|
||||
"delimiter_action": "Akcja oparta na separatorze"
|
||||
},
|
||||
"add": {
|
||||
"active": "Aktywny",
|
||||
@@ -430,4 +431,4 @@
|
||||
"weekly": "Co tydzień",
|
||||
"weeks": "Tygodnie"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"add": {
|
||||
"active": "Ativo",
|
||||
"add": "Salvar",
|
||||
"add": "Guardar",
|
||||
"alias_address": "Apelidos:",
|
||||
"alias_address_info": "<small>Endereço de email completo ou @example.com, para uma conta coringa -catch all. (separado por vírgula). <b>apenas domínios cadastrados</b>.</small>",
|
||||
"alias_domain": "Encaminhamento de Domínio",
|
||||
@@ -17,7 +17,7 @@
|
||||
"max_mailboxes": "Máximo de contas:",
|
||||
"password": "Senha:",
|
||||
"password_repeat": "Confirmar a senha (repetir):",
|
||||
"port": "Port",
|
||||
"port": "Porta",
|
||||
"quota_mb": "Espaço (MiB):",
|
||||
"relay_all": "Relay para todas as contas",
|
||||
"relay_all_info": "<small>Se <b>não</b> selecionar para retransmitir todas as contas, você deve adicionar uma (\"blind\") para cada conta que será direcionada.</small>",
|
||||
@@ -27,13 +27,26 @@
|
||||
"target_address": "Encaminhar para:",
|
||||
"target_address_info": "<small>Endereço de email completo (separado por vírgulas).</small>",
|
||||
"target_domain": "Domínio de Destino:",
|
||||
"username": "Administrador"
|
||||
"username": "Nome de utilizador",
|
||||
"app_name": "Nome da App",
|
||||
"destination": "Destino",
|
||||
"generate": "gerar",
|
||||
"private_comment": "Comentário privado",
|
||||
"inactive": "Inativo",
|
||||
"public_comment": "Comentário público",
|
||||
"sieve_desc": "Breve descrição",
|
||||
"sieve_type": "Tipo de filtro",
|
||||
"subscribeall": "Subscrever todas as pastas",
|
||||
"syncjob": "Adicionar sincronização",
|
||||
"validate": "Validar",
|
||||
"validation_success": "Validado com sucesso",
|
||||
"app_passwd_protocols": "Protocolos permitidos para senha de aplicação"
|
||||
},
|
||||
"admin": {
|
||||
"access": "Acessos",
|
||||
"action": "Ação",
|
||||
"active": "Ativo",
|
||||
"add": "Salvar",
|
||||
"add": "Adicionar",
|
||||
"add_domain_admin": "Adicionar administrador de domínio(s)",
|
||||
"admin": "Administrador",
|
||||
"admin_details": "Editar informações do administrator",
|
||||
@@ -58,7 +71,47 @@
|
||||
"search_domain_da": "Selecione o(s) domínio(s)",
|
||||
"spamfilter": "Filtro de Spam",
|
||||
"unchanged_if_empty": "Deixar em branco para não alterar",
|
||||
"username": "Administrador"
|
||||
"username": "Administrador",
|
||||
"add_row": "Adicionar linha",
|
||||
"add_transport": "Adicionar transporte",
|
||||
"change_logo": "Alterar logo",
|
||||
"filter": "Filtro",
|
||||
"iam_port": "Porta",
|
||||
"iam_use_ssl": "Usar SSL",
|
||||
"iam_version": "Versão",
|
||||
"import": "Importar",
|
||||
"import_private_key": "Importar chave privada",
|
||||
"message": "Mensagem",
|
||||
"dkim_private_key": "Chave privada",
|
||||
"customize": "Personalizar",
|
||||
"destination": "Destino",
|
||||
"dkim_from": "De",
|
||||
"activate_api": "Ativar API",
|
||||
"add_admin": "Adicionar administrador",
|
||||
"admins": "Administradores",
|
||||
"advanced_settings": "Configurações avançadas",
|
||||
"api_key": "Chave API",
|
||||
"api_read_only": "Acesso leitura",
|
||||
"api_read_write": "Acesso leitura e escrita",
|
||||
"login_page": "Página de login",
|
||||
"dkim_key_missing": "Chave em falta",
|
||||
"dkim_key_valid": "Chave válida",
|
||||
"dkim_to": "Para",
|
||||
"domain_admin": "Administrador de dominio",
|
||||
"domain_s": "Dominio(s)",
|
||||
"duplicate": "Duplicar",
|
||||
"duplicate_dkim": "Duplicar registo DKIM",
|
||||
"empty": "Sem resultados",
|
||||
"excludes": "Excluir estes recipientes",
|
||||
"f2b_filter": "Filtros de regex",
|
||||
"from": "De",
|
||||
"generate": "gerar",
|
||||
"html": "HTML",
|
||||
"iam_import_users": "Importar Utilizadores",
|
||||
"ui_header_announcement_content": "Texto (HTML permitido)",
|
||||
"ui_footer": "Rodapé (HTML permitido)",
|
||||
"activate_send": "Ativar botão de envio",
|
||||
"help_text": "Anular texto de ajuda abaixo da máscara de login (HTML permitido)"
|
||||
},
|
||||
"danger": {
|
||||
"access_denied": "Acesso negado ou dados inválidos",
|
||||
@@ -97,7 +150,10 @@
|
||||
"target_domain_invalid": "O endereço de Domínio Destino é inválido",
|
||||
"targetd_not_found": "Domínio de Destino não encontrado",
|
||||
"username_invalid": "Nome de utilizador inválido",
|
||||
"validity_missing": "Você deve definir um período de validade"
|
||||
"validity_missing": "Você deve definir um período de validade",
|
||||
"comment_too_long": "Comentário demasiado longo, máximo 160 chars permitidos",
|
||||
"ip_list_empty": "Lista de IPs permitidos não pode estar vazia",
|
||||
"last_key": "A última tecla não pode ser apagada, por favor desactivar a TFA."
|
||||
},
|
||||
"edit": {
|
||||
"active": "Ativo",
|
||||
@@ -129,7 +185,9 @@
|
||||
"target_domain": "Domínio de Destino:",
|
||||
"title": "Editar dos Objetos",
|
||||
"unchanged_if_empty": "Deixar em branco para não modificar",
|
||||
"username": "Administrador"
|
||||
"username": "Administrador",
|
||||
"app_passwd_protocols": "Protocolos permitidos para palavra-passe de aplicação",
|
||||
"allowed_protocols": "Protocolos permitidos para acesso direto do utilizador (não afeta os protocolos de palavra-passe da aplicação)"
|
||||
},
|
||||
"footer": {
|
||||
"loading": "Aguarde..."
|
||||
@@ -186,11 +244,15 @@
|
||||
"target_domain": "Domínio Destino",
|
||||
"tls_enforce_in": "Forçar TLS na entrada",
|
||||
"tls_enforce_out": "Forçar TLS na saída",
|
||||
"username": "Utilizador"
|
||||
"username": "Utilizador",
|
||||
"allowed_protocols": "Protocolos permitidos",
|
||||
"activate": "Ativar",
|
||||
"deactivate": "Desativar"
|
||||
},
|
||||
"quarantine": {
|
||||
"action": "Ação",
|
||||
"remove": "Remover"
|
||||
"remove": "Remover",
|
||||
"check_hash": "Pesquisar hash de ficheiro @ VT"
|
||||
},
|
||||
"queue": {
|
||||
"queue_manager": "Queue Manager"
|
||||
@@ -269,6 +331,31 @@
|
||||
"user_settings": "Configurações do utilizador",
|
||||
"username": "Administrador",
|
||||
"week": "Semana",
|
||||
"weeks": "Semanas"
|
||||
"weeks": "Semanas",
|
||||
"aliases_also_send_as": "Também autorizado a enviar como utilizador",
|
||||
"app_hint": "As senhas de aplicação são senhas alternativas para o seu login IMAP, SMTP, CalDAV, CardDAV e EAS. O nome de utilizador permanece inalterado. O webmail SOGo não está disponível através de passwords de aplicação.",
|
||||
"allowed_protocols": "Protocolos permitidos"
|
||||
},
|
||||
"acl": {
|
||||
"tls_policy": "Política de TLS",
|
||||
"quarantine_attachments": "Anexos de quarentena",
|
||||
"filters": "Filtros",
|
||||
"smtp_ip_access": "Mudar anfitriões permitidos para SMTP"
|
||||
},
|
||||
"warning": {
|
||||
"no_active_admin": "Não é possível desactivar o último administrador activo"
|
||||
},
|
||||
"tfa": {
|
||||
"u2f_deprecated": "Parece que a sua chave foi registada usando o método U2F depreciado. Desactivaremos dois factores-autenticação para si e apagaremos a sua Chave.",
|
||||
"none": "Desativar"
|
||||
},
|
||||
"datatables": {
|
||||
"search": "Procurar:",
|
||||
"info": "A mostrar _START_ a _END_ de _TOTAL_ entradas",
|
||||
"infoEmpty": "A mostrar 0 a 0 de 0 entradas",
|
||||
"aria": {
|
||||
"sortAscending": ": activar para ordenar a coluna ascendente",
|
||||
"sortDescending": ": activar para ordenar a coluna descendente"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -359,7 +359,56 @@
|
||||
"username": "Имя пользователя",
|
||||
"validate_license_now": "Получить лицензию на основе GUID с сервера лицензий",
|
||||
"verify": "Проверить",
|
||||
"yes": "✓"
|
||||
"yes": "✓",
|
||||
"force_sso_text": "Если настроен внешний провайдер OIDC, эта опция скрывает стандартные формы входа mailcow и показывает только кнопку Singe Sign-On",
|
||||
"domainadmin_quicklink": "Скрыть ссылку на вход для администраторов домена",
|
||||
"iam_periodic_full_sync": "Периодическая полная синхронизация",
|
||||
"iam_sync_interval": "Интервал синхронизации/импорта (мин)",
|
||||
"iam_use_tls_info": "При включённом TLS необходимо использовать стандартный порт LDAP-сервера (389). Порты SSL не подходят.",
|
||||
"iam_use_ssl_info": "При включённом SSL, если указан порт 389, то вместо него автоматически будет использоваться порт 636.",
|
||||
"quicklink_text": "Показать или скрыть ссылки для быстрого перехода к другим страницам входа под формой авторизации",
|
||||
"iam_login_provisioning": "Автоматическое создание пользователей при входе в систему",
|
||||
"iam_mapping": "Сопоставление атрибутов",
|
||||
"iam_bindpass": "Bind пароль",
|
||||
"iam_port": "Порт",
|
||||
"iam_realm": "Realm",
|
||||
"iam_redirect_url": "URL переадресации",
|
||||
"iam_rest_flow": "Поток Mailpassword",
|
||||
"iam_server_url": "URL сервера",
|
||||
"iam_sso": "Технология единого входа (SSO)",
|
||||
"iam_token_url": "Token endpoint",
|
||||
"iam_userinfo_url": "User info endpoint",
|
||||
"iam_username_field": "Поле имени пользователя",
|
||||
"iam_binddn": "Bind DN",
|
||||
"iam_use_ssl": "Использовать SSL",
|
||||
"iam_use_tls": "Использовать StartTLS",
|
||||
"iam_version": "Версия",
|
||||
"ignore_ssl_error": "Игнорировать ошибки SSL",
|
||||
"task": "Задача",
|
||||
"user_link": "Пользовательская ссылка",
|
||||
"user_quicklink": "Скрыть ссылку на вход для пользователей",
|
||||
"app_hide": "Скрыть для входа",
|
||||
"iam_test_connection": "Проверка соединения",
|
||||
"login_page": "Страница входа",
|
||||
"filter": "Фильтр",
|
||||
"force_sso": "Отключить mailcow авторизацию и показывать только Singe Sign-On",
|
||||
"iam": "Провайдер идентификации",
|
||||
"iam_attribute_field": "Поле атрибута",
|
||||
"iam_authorize_url": "Конечная точка авторизации",
|
||||
"iam_auth_flow": "Процесс аутентификации",
|
||||
"iam_auth_flow_info": "В дополнение к потоку кода авторизации (стандартный поток в Keycloak), который используется для Single-Sign On входа, mailcow также поддерживает поток аутентификации с непосредственными учетными данными. Поток Mailpassword пытается проверить учетные данные пользователя с помощью REST API администратора Keycloak. mailcow извлекает хешированный пароль из атрибута <code>mailcow_password</code>, который отображается в Keycloak.",
|
||||
"iam_basedn": "Base DN",
|
||||
"iam_client_id": "ID клиента",
|
||||
"iam_client_secret": "Секрет клиента",
|
||||
"iam_client_scopes": "Области действия клиента",
|
||||
"iam_default_template": "Шаблон по умолчанию",
|
||||
"iam_default_template_description": "Если пользователю не назначен шаблон, шаблон по умолчанию будет использоваться при создании почтового ящика, но не при обновлении почтового ящика.",
|
||||
"iam_description": "Настройка внешнего провайдера для аутентификации<br>Почтовые ящики пользователей будут автоматически создаваться при первом входе в систему, если было задано сопоставление атрибутов.",
|
||||
"iam_extra_permission": "Для работы следующих настроек клиенту mailcow в Keycloak необходима <code>служебная учетная запись</code> и разрешение на <code>просмотр пользователей</code>.",
|
||||
"iam_host": "Хост",
|
||||
"iam_host_info": "Укажите один или несколько LDAP-хостов через запятую.",
|
||||
"iam_import_users": "Импорт пользователей",
|
||||
"admin_quicklink": "Скрыть ссылку на вход для администраторов"
|
||||
},
|
||||
"danger": {
|
||||
"access_denied": "Доступ запрещён, или указаны неверные данные",
|
||||
@@ -496,7 +545,11 @@
|
||||
"webauthn_publickey_failed": "Для выбранного аутентификатора не был сохранен открытый ключ",
|
||||
"webauthn_username_failed": "Выбранный аутентификатор принадлежит другой учетной записи",
|
||||
"webauthn_verification_failed": "Ошибка валидации WebAuthn: %s",
|
||||
"yotp_verification_failed": "Ошибка валидации Yubico OTP: %s"
|
||||
"yotp_verification_failed": "Ошибка валидации Yubico OTP: %s",
|
||||
"generic_server_error": "На сервере произошла непредвиденная ошибка. Пожалуйста, свяжитесь с вашим администратором.",
|
||||
"authsource_in_use": "Поставщик идентификационных данных не может быть изменен или удален, так как в данный момент он используется одним или несколькими пользователями.",
|
||||
"iam_test_connection": "Ошибка соединения",
|
||||
"required_data_missing": "Отсутствуют необходимые данные %s"
|
||||
},
|
||||
"datatables": {
|
||||
"collapse_all": "Свернуть все",
|
||||
@@ -581,7 +634,7 @@
|
||||
"alias": "Изменить псевдоним",
|
||||
"allow_from_smtp": "Разрешить использование <b>SMTP</b> только для этих IP",
|
||||
"allow_from_smtp_info": "Укажите IPv4/IPv6 адреса и/или подсети.<br>Оставьте поле пустым, чтобы разрешить отправку с любых адресов.",
|
||||
"allowed_protocols": "Разрешённые протоколы",
|
||||
"allowed_protocols": "Разрешённые протоколы для прямого доступа пользователей (не влияет на протоколы паролей приложений)",
|
||||
"app_name": "Название приложения",
|
||||
"app_passwd": "Пароль приложения",
|
||||
"app_passwd_protocols": "Разрешенные протоколы для пароля приложения",
|
||||
@@ -771,7 +824,14 @@
|
||||
"password": "Пароль",
|
||||
"request_reset_password": "Запросить восстановление пароля",
|
||||
"reset_password": "Восстановление пароля",
|
||||
"username": "Имя пользователя"
|
||||
"username": "Имя пользователя",
|
||||
"login_linkstext": "Неправильный логин?",
|
||||
"login_usertext": "Войти как пользователь",
|
||||
"login_domainadmintext": "Войти как администратор домена",
|
||||
"login_admintext": "Войти как администратор",
|
||||
"login_user": "Вход для пользователей",
|
||||
"login_dadmin": "Вход для администраторов домена",
|
||||
"login_admin": "Вход для администраторов"
|
||||
},
|
||||
"mailbox": {
|
||||
"action": "Действия",
|
||||
@@ -946,7 +1006,8 @@
|
||||
"username": "Имя пользователя",
|
||||
"waiting": "В ожидании",
|
||||
"weekly": "Раз в неделю",
|
||||
"yes": "✓"
|
||||
"yes": "✓",
|
||||
"iam": "Поставщик идентификационных данных"
|
||||
},
|
||||
"oauth2": {
|
||||
"access_denied": "Пожалуйста, войдите в систему как владелец почтового аккаунта, чтобы получить доступ через OAuth2.",
|
||||
@@ -1124,7 +1185,9 @@
|
||||
"verified_fido2_login": "Авторизация FIDO2 пройдена",
|
||||
"verified_totp_login": "Авторизация TOTP пройдена",
|
||||
"verified_webauthn_login": "Авторизация WebAuthn пройдена",
|
||||
"verified_yotp_login": "Авторизация Yubico OTP пройдена"
|
||||
"verified_yotp_login": "Авторизация Yubico OTP пройдена",
|
||||
"iam_test_connection": "Успешное соединение",
|
||||
"custom_login_modified": "Настройки входа успешно сохранены"
|
||||
},
|
||||
"tfa": {
|
||||
"api_register": "%s использует Yubico Cloud API. Пожалуйста, получите ключ API для вашего ключа <a href=\"https://upgrade.yubico.com/getapikey/\" target=\"_blank\">здесь</a>",
|
||||
@@ -1191,7 +1254,7 @@
|
||||
"delete_ays": "Пожалуйста, подтвердите удаление",
|
||||
"direct_aliases": "Личные псевдонимы",
|
||||
"direct_aliases_desc": "На личные псевдонимы распространяются фильтры нежелательной почты и параметры политики TLS.",
|
||||
"direct_protocol_access": "Этот пользователь почтового ящика имеет <b>прямой, внешний доступ</b> к следующим протоколам и приложениям. Эта настройка контролируется вашим администратором. Для предоставления доступа к отдельным протоколам и приложениям могут быть созданы пароли приложений.<br> Кнопка \"Вход в веб-почту\" обеспечивает единый вход в SOGo и всегда доступна.",
|
||||
"direct_protocol_access": "Этот пользователь почтового ящика имеет <b>прямой, внешний доступ</b> к следующим протоколам и приложениям. Эта настройка контролируется вашим администратором. Для предоставления доступа к отдельным протоколам и приложениям могут быть созданы пароли приложений.<br> Кнопка \"Веб-почта\" обеспечивает единый вход в SOGo и всегда доступна.",
|
||||
"eas_reset": "Сбросить кеш ActiveSync устройств",
|
||||
"eas_reset_help": "Во многих случаях сброс кеша устройств помогает восстановить повреждённый профиль ActiveSync.<br><b>Внимание:</b> все письма, календари и контакты будут загружены заново на все ваши устройства!",
|
||||
"eas_reset_now": "Сбросить кеш сейчас",
|
||||
@@ -1319,7 +1382,11 @@
|
||||
"weeks": "недели",
|
||||
"with_app_password": "с паролем приложения",
|
||||
"year": "год",
|
||||
"years": "лет"
|
||||
"years": "лет",
|
||||
"authentication": "Аутентификация",
|
||||
"tfa_info": "Двухфакторная аутентификация помогает защитить вашу учетную запись. Если вы включите эту функцию, вам понадобятся пароли приложений для входа в приложения или службы, которые не поддерживают двухфакторную аутентификацию (например, почтовые клиенты).",
|
||||
"protocols": "Протоколы",
|
||||
"overview": "Обзор"
|
||||
},
|
||||
"warning": {
|
||||
"cannot_delete_self": "Вы не можете удалить сами себя",
|
||||
|
||||
@@ -352,13 +352,69 @@
|
||||
"allowed_origins": "Upravljanje-dostopa-Dovoljeni-Viri",
|
||||
"copy_to_clipboard": "Besedilo kopirano v odložišče!",
|
||||
"f2b_manage_external": "Zunanje upravljanje Fail2Ban",
|
||||
"f2b_manage_external_info": "Fail2ban bo še vedno vzdrževal seznam prepovedi, vendar ne bo aktivno nastavil pravil za blokiranje prometa. Uporabite spodnji ustvarjeni seznam prepovedi za zunanje blokiranje prometa."
|
||||
"f2b_manage_external_info": "Fail2ban bo še vedno vzdrževal seznam prepovedi, vendar ne bo aktivno nastavil pravil za blokiranje prometa. Uporabite spodnji ustvarjeni seznam prepovedi za zunanje blokiranje prometa.",
|
||||
"force_sso_text": "Če je konfiguriran zunanji ponudnik OIDC, ta možnost skrije privzete obrazce za prijavo v Mailcow in prikaže samo gumb za enotno prijavo",
|
||||
"app_hide": "Skrij za prijavo",
|
||||
"iam_login_provisioning": "Samodejno ustvarjanje uporabnikov ob prijavi",
|
||||
"admin_quicklink": "Skrij hitro povezavo do strani za prijavo skrbnika",
|
||||
"login_page": "Prijavna stran",
|
||||
"domainadmin_quicklink": "Skrij hitro povezavo do strani za prijavo v Skrbnik domen",
|
||||
"filter": "Filter",
|
||||
"force_sso": "Onemogoči prijavo v mailcow in prikaži samo enotno prijavo",
|
||||
"iam": "Ponudnik identitete",
|
||||
"iam_attribute_field": "Polje atributa",
|
||||
"iam_authorize_url": "Končna točka avtorizacije",
|
||||
"iam_auth_flow": "Potek preverjanja pristnosti",
|
||||
"iam_auth_flow_info": "Poleg toka avtorizacijske kode (standardni tok v Keycloaku), ki se uporablja za prijavo z enotno prijavo, mailcow podpira tudi tok preverjanja pristnosti z neposrednimi poverilnicami. Tok Mailpassword poskuša preveriti uporabnikove poverilnice z uporabo REST API-ja Keycloak Admin. mailcow pridobi zgoščeno geslo iz atributa <code>mailcow_password</code>, ki je preslikan v Keycloaku.",
|
||||
"iam_basedn": "Osnovni DN",
|
||||
"iam_client_id": "ID odjemalca",
|
||||
"iam_client_secret": "Skrivnost odjemalca",
|
||||
"iam_client_scopes": "Obsegi odjemalcev",
|
||||
"iam_default_template": "Privzeta predloga",
|
||||
"iam_default_template_description": "Če uporabniku ni dodeljena nobena predloga, bo privzeta predloga uporabljena za ustvarjanje nabiralnika, ne pa za posodabljanje nabiralnika.",
|
||||
"iam_description": "Konfigurirajte zunanjega ponudnika za preverjanje pristnosti<br>Uporabnikovi poštni nabiralniki bodo samodejno ustvarjeni ob prvi prijavi, če je nastavljeno preslikavanje atributov.",
|
||||
"iam_extra_permission": "Za delovanje naslednjih nastavitev potrebuje odjemalec mailcow v Keycloaku <code>Servisni račun</code> in dovoljenje za <code>ogled uporabnikov</code>.",
|
||||
"iam_host": "Gostitelj",
|
||||
"iam_host_info": "Vnesite enega ali več gostiteljev LDAP, ločenih z vejicami.",
|
||||
"iam_import_users": "Uvozi uporabnike",
|
||||
"iam_use_tls_info": "Če omogočite TLS, morate uporabiti privzeta vrata za strežnik LDAP (389). Vrat SSL ni mogoče uporabiti.",
|
||||
"iam_sync_interval": "Interval sinhronizacije / uvoza (min)",
|
||||
"user_quicklink": "Skrij hitro povezavo do strani za prijavo uporabnika",
|
||||
"iam_use_ssl_info": "Če omogočite SSL in so vrata nastavljena na 389, bodo samodejno prepisana na uporabo 636.",
|
||||
"iam_mapping": "Preslikava atributov",
|
||||
"iam_bindpass": "Vezano geslo",
|
||||
"iam_periodic_full_sync": "Periodična popolna sinhronizacija",
|
||||
"iam_port": "Vrata",
|
||||
"iam_redirect_url": "Preusmeri URL",
|
||||
"iam_rest_flow": "Tok gesla za pošto",
|
||||
"iam_server_url": "URL strežnika",
|
||||
"iam_sso": "Enotna prijava",
|
||||
"iam_test_connection": "Preizkus povezave",
|
||||
"iam_token_url": "Končna točka žetona",
|
||||
"iam_userinfo_url": "Končna točka z uporabniškimi podatki",
|
||||
"iam_username_field": "Polje z uporabniškim imenom",
|
||||
"iam_binddn": "Povezava DN",
|
||||
"iam_use_ssl": "Uporabi SSL",
|
||||
"iam_use_tls": "Uporabi StartTLS",
|
||||
"iam_version": "Različica",
|
||||
"ignore_ssl_error": "Prezri napake SSL",
|
||||
"password_reset_info": "Če ni naveden e-poštni naslov za obnovitev, te funkcije ni mogoče uporabiti.",
|
||||
"password_reset_settings": "Nastavitve za obnovitev gesla",
|
||||
"password_reset_tmpl_html": "Predloga HTML",
|
||||
"password_reset_tmpl_text": "Predloga besedila",
|
||||
"password_settings": "Nastavitve gesla",
|
||||
"quicklink_text": "Prikaži ali skrij hitre povezave do drugih strani za prijavo pod prijavnim obrazcem",
|
||||
"reset_password_vars": "<code>{{link}}<code> Ustvarjena povezava za ponastavitev gesla<br><code>{{username}}<code> Ime nabiralnika uporabnika, ki je zahteval ponastavitev gesla<br><code>{{username2}}<code> Ime obnovitvenega nabiralnika<br><code>{{date}}<code> Datum zahteve za ponastavitev gesla<br><code>{{token_lifetime}}<code> Življenjska doba žetona v minutah<br><code>{{hostname}}<code> Ime gostitelja mailcow",
|
||||
"restore_template": "Za obnovitev privzete predloge pustite polje prazno.",
|
||||
"task": "Naloga",
|
||||
"user_link": "Uporabniška povezava",
|
||||
"iam_realm": "Realm"
|
||||
},
|
||||
"danger": {
|
||||
"alias_goto_identical": "Alias in goto naslov morata biti identična",
|
||||
"aliasd_targetd_identical": "Alias domena ne sme biti enaka ciljni domeni: %s",
|
||||
"bcc_exists": "BCC preslikava obstaja za vrsto %s",
|
||||
"dkim_domain_or_sel_exists": "DKIM ključ za \"%s\" obstaja in ne bo prepisan.",
|
||||
"dkim_domain_or_sel_exists": "DKIM ključ za \"%s\" obstaja in ne bo prepisan",
|
||||
"domain_quota_m_in_use": "Kvota domene mora biti večja ali enaka %s MiB",
|
||||
"extra_acl_invalid_domain": "Zunanji pošiljatelj \"%s\" uporablja neveljavno domeno",
|
||||
"global_map_write_error": "Ni mogoče zapisati ID globalne preslikave %s: %s",
|
||||
@@ -375,8 +431,8 @@
|
||||
"app_passwd_id_invalid": "ID gesla aplikacije %s je neveljaven",
|
||||
"bcc_empty": "BCC cilj ne more biti prazen",
|
||||
"bcc_must_be_email": "BCC cilj %s ni veljaven e-poštni naslov",
|
||||
"comment_too_long": "Komentar je predolg, dovoljeno je največ 100 znakov.",
|
||||
"defquota_empty": "Privzeta kvota na poštni predal ne more biti 0",
|
||||
"comment_too_long": "Komentar je predolg, dovoljeno je največ 160 znakov",
|
||||
"defquota_empty": "Privzeta kvota na poštni predal ne more biti 0.",
|
||||
"description_invalid": "Opis resursa za %s ni veljaven",
|
||||
"dkim_domain_or_sel_invalid": "Domena ali izbirnik DKIM ni veljaven: %s",
|
||||
"domain_cannot_match_hostname": "Domena se ne more ujemati z imenom gostitelja",
|
||||
@@ -414,9 +470,9 @@
|
||||
"invalid_recipient_map_old": "Naveden neveljaven izvirni prejemnik: %s",
|
||||
"ip_list_empty": "Seznam dovoljenih IPjev ne sme biti prazen",
|
||||
"is_alias": "%s je že znan kot alias naslov",
|
||||
"is_alias_or_mailbox": "%s je že znan kot alias, poštni naslov, ali alias izveden iz alias domene",
|
||||
"is_alias_or_mailbox": "%s je že znan kot alias, poštni naslov, ali alias izveden iz alias domene.",
|
||||
"is_spam_alias": "%s že obstaja kot začasen alias (spam alias naslov)",
|
||||
"last_key": "Zadnji ključ ne more biti izbrisan, prosim raje deaktivirajte dvofaktorsko avtentikacijo (TFA)",
|
||||
"last_key": "Zadnji ključ ne more biti izbrisan, prosim raje deaktivirajte dvofaktorsko avtentikacijo (TFA).",
|
||||
"login_failed": "Prijava ni uspela",
|
||||
"mailbox_defquota_exceeds_mailbox_maxquota": "Privzeta kvota presega najvišjo omejitev",
|
||||
"mailbox_invalid": "Ime poštnega predala ni veljavno",
|
||||
@@ -428,7 +484,7 @@
|
||||
"map_content_empty": "Preslikava vsebine ne more biti prazna",
|
||||
"max_alias_exceeded": "Preseženo največje število aliasov",
|
||||
"max_mailbox_exceeded": "Preseženo največje število poštnih predalov (%d od %d)",
|
||||
"maxquota_empty": "Največja kvota na poštni predal ne more biti 0",
|
||||
"maxquota_empty": "Največja kvota na poštni predal ne more biti 0.",
|
||||
"mysql_error": "Napaka MySQL: %s",
|
||||
"network_host_invalid": "Nepravilno omrežje ali gostitel: %s",
|
||||
"next_hop_interferes": "% moti naslednji skok %s",
|
||||
@@ -483,7 +539,17 @@
|
||||
"cors_invalid_origin": "Naveden neveljaven Allow-Origin",
|
||||
"invalid_recipient_map_new": "Naveden neveljaven nov prejemnik: %s",
|
||||
"img_dimensions_exceeded": "Slika presega največje dovoljene dimenzije",
|
||||
"img_size_exceeded": "Slika presega največjo dovoljeno velikost datoteke"
|
||||
"img_size_exceeded": "Slika presega največjo dovoljeno velikost datoteke",
|
||||
"iam_test_connection": "Povezava ni uspela",
|
||||
"authsource_in_use": "Ponudnika identitete ni mogoče spremeniti ali izbrisati, ker ga trenutno uporablja eden ali več uporabnikov.",
|
||||
"password_reset_na": "Obnovitev gesla trenutno ni na voljo. Obrnite se na skrbnika.",
|
||||
"generic_server_error": "Prišlo je do nepričakovane napake strežnika. Obrnite se na skrbnika.",
|
||||
"invalid_reset_token": "Neveljaven žeton za ponastavitev",
|
||||
"password_reset_invalid_user": "Poštni predal ni bil najden ali pa ni nastavljen e-poštni naslov za obnovitev",
|
||||
"recovery_email_failed": "E-poštnega sporočila za obnovitev ni bilo mogoče poslati. Obrnite se na skrbnika.",
|
||||
"required_data_missing": "Manjkajo zahtevani podatki %s",
|
||||
"reset_token_limit_exceeded": "Omejitev žetonov za ponastavitev je bila presežena. Poskusite znova pozneje.",
|
||||
"to_invalid": "Polje za prejemnika ne sme biti prazno"
|
||||
},
|
||||
"debug": {
|
||||
"containers_info": "Informacije o vsebniku (containerju)",
|
||||
@@ -583,8 +649,8 @@
|
||||
"pushover_sender_array": "Upoštevaj samo sledeče e-poštne naslove pošiljateljev <small>(ločeni z vejico)</small>",
|
||||
"mbox_rl_info": "Ta omejitev velja za SASL uporabniško ime, preverja se ujemanje s katerim koli \"from\" naslovom, ki ga uporablja prijavljeni uporabnik. Omejitev pošiljanja za poštni predal preglasi pravilo omejitve za domeno.",
|
||||
"kind": "Tip",
|
||||
"client_secret": "Client secret",
|
||||
"comment_info": "Zasebni komentar ni viden uporabniku, javni komentar pa je viden kot tooltip v uporabnikovem pregledu.",
|
||||
"client_secret": "Skrivnost odjemalca",
|
||||
"comment_info": "Zasebni komentar ni viden uporabniku, javni komentar pa se prikaže kot opis orodja, ko nanj v pregledu uporabnika zadržite miško",
|
||||
"created_on": "Ustvarjeno",
|
||||
"custom_attributes": "Atributi po meri",
|
||||
"delete1": "Izbriši na viru, ko je končano",
|
||||
@@ -601,11 +667,11 @@
|
||||
"pushover_verify": "Preveri poverilnice",
|
||||
"quota_mb": "Omejitev (MiB)",
|
||||
"quota_warning_bcc": "BCC za sporočilo z opozorilom omejitve",
|
||||
"quota_warning_bcc_info": "Opozorila bodo poslana kot ločene kopije sledečim prejemnikom. K naslovu sporočila bo dodano uporabniško ime v oklepajih, npr. <code>Opozorilo omejitve (user@example.com)</code>",
|
||||
"quota_warning_bcc_info": "Opozorila bodo poslana kot ločene kopije naslednjim prejemnikom. Zadevi bo v oklepaju dodano ustrezno uporabniško ime, na primer: <code>Opozorilo o kvoti (uporabnik@example.com)</code>.",
|
||||
"ratelimit": "Omejitev pošiljanja",
|
||||
"advanced_settings": "Napredne nastavitve",
|
||||
"allow_from_smtp_info": "Pustite prazno da dovolite vse pošiljatelje.<br>IPv4/IPv6 naslovi in omrežja.",
|
||||
"allowed_protocols": "Dovoljeni protokoli",
|
||||
"allowed_protocols": "Dovoljeni protokoli za neposreden dostop uporabnikov (ne vpliva na protokole za gesla aplikacij)",
|
||||
"app_name": "Ime aplikacije",
|
||||
"app_passwd": "Geslo aplikacije",
|
||||
"app_passwd_protocols": "Dovoljeni protokoli za geslo aplikacije",
|
||||
@@ -647,12 +713,691 @@
|
||||
"public_comment": "Javni komentar",
|
||||
"pushover": "Pushover",
|
||||
"pushover_evaluate_x_prio": "Eskaliraj visoko prednostno pošto [<code>X-Priority: 1</code>]",
|
||||
"pushover_info": "Nastavitve potisnih obvestil bodo veljala za vsa čisto (ne spam) elektronsko pošto dostavljeno v <b>%s</b> vključno z aliasi (deljeni, nedeljeni, označeni)",
|
||||
"pushover_info": "Nastavitve potisnih obvestil bodo veljale za vso čisto (ne neželeno) pošto, dostavljeno na <b>%s</b>, vključno z vzdevki (v skupni rabi, brez skupne rabe, označeni).",
|
||||
"pushover_only_x_prio": "Upoštevaj samo pošto z visoko prioriteto [<code>X-Priority: 1</code>]",
|
||||
"pushover_sender_regex": "Upoštevaj sledeči regex za pošiljatelja",
|
||||
"pushover_text": "Besedilo obvestila",
|
||||
"pushover_sound": "Zvok",
|
||||
"encryption": "Šifriranje",
|
||||
"alias": "Uredi alias"
|
||||
"alias": "Uredi alias",
|
||||
"relayhost": "Prenosi, odvisni od pošiljatelja",
|
||||
"mailbox_rename_alias": "Samodejno ustvari vzdevek",
|
||||
"sender_acl_info": "Če lahko uporabnik poštnega predala A pošilja kot uporabnik poštnega predala B, se naslov pošiljatelja v SOGo ne prikaže samodejno kot izbirno polje \"od\".<br>\n Uporabnik poštnega predala B mora v SOGo ustvariti pooblastilo, da lahko uporabnik poštnega predala A izbere svoj naslov kot pošiljatelja. Če želite pooblastiti poštni predal v SOGo, uporabite meni (tri pike) desno od imena vašega poštnega predala v zgornjem levem kotu v pogledu pošte. To vedenje ne velja za vzdevke.",
|
||||
"redirect_uri": "URL za preusmeritev/povratni klic",
|
||||
"relay_all": "Posreduj vsem prejemnikom",
|
||||
"relay_unknown_only": "Posreduj samo neobstoječe poštne nabiralnike. Obstoječi poštni nabiralniki bodo dostavljeni lokalno.",
|
||||
"relay_domain": "Posreduj to domeno",
|
||||
"remove": "Odstrani",
|
||||
"resource": "Vir",
|
||||
"mailbox_rename_title": "Novo ime lokalnega poštnega predala",
|
||||
"password_recovery_email": "E-poštno sporočilo za obnovitev gesla",
|
||||
"relay_all_info": "↪ Če se odločite, da <b>ne</b> želite posredovati vseh prejemnikov, boste morali za vsakega posameznega prejemnika, ki ga želite posredovati, dodati (\"slepi\") poštni predal.",
|
||||
"relay_transport_info": "<div class=\"badge fs-6 bg-info\">Informacije</div> Za to domeno lahko določite transportne zemljevide za cilj po meri. Če niso nastavljeni, bo izvedeno iskanje MX.",
|
||||
"save": "Shrani spremembe",
|
||||
"scope": "Obseg",
|
||||
"sender_acl": "Dovoli pošiljanje kot",
|
||||
"sender_acl_disabled": "<span class=\"badge fs-6 bg-danger\">Preverjanje pošiljatelja je onemogočeno</span>",
|
||||
"sieve_type": "Vrsta filtra",
|
||||
"skipcrossduplicates": "Preskoči podvojena sporočila med mapami (po principu \"kdor prej pride, prej melje\")",
|
||||
"sogo_access": "Neposredno posredovanje na SOGo",
|
||||
"sogo_access_info": "Po prijavi je uporabnik samodejno preusmerjen na SOGo.",
|
||||
"sogo_visible": "Vzdevek je viden v SOGo",
|
||||
"sogo_visible_info": "Ta možnost vpliva samo na objekte, ki jih je mogoče prikazati v SOGo (naslovi aliasov v skupni rabi ali brez nje, ki kažejo na vsaj en lokalni poštni predal). Če je skrita, vzdevek ne bo prikazan kot izbirni pošiljatelj v SOGo.",
|
||||
"spam_alias": "Ustvarjanje ali spreminjanje časovno omejenih vzdevkovnih naslovov",
|
||||
"spam_filter": "Filter neželene pošte",
|
||||
"spam_policy": "Dodajanje ali odstranjevanje elementov na beli/črni seznam",
|
||||
"spam_score": "Nastavite oceno neželene pošte po meri",
|
||||
"subfolder2": "Sinhroniziraj v podmapo na cilju<br><small>(prazno = ne uporabi podmape)</small>",
|
||||
"syncjob": "Urejanje sinhronizacijskega opravila",
|
||||
"target_address": "Pojdi na naslov/e <small>(ločeno z vejico)</small>",
|
||||
"target_domain": "Ciljna domena",
|
||||
"timeout1": "Časovna omejitev za povezavo z oddaljenim gostiteljem",
|
||||
"timeout2": "Časovna omejitev za povezavo z lokalnim gostiteljem",
|
||||
"title": "Urejanje predmeta",
|
||||
"unchanged_if_empty": "Če ni spremenjeno, pustite prazno",
|
||||
"username": "Uporabniško ime",
|
||||
"validate_save": "Potrdi in shrani",
|
||||
"mailbox_rename": "Preimenuj poštni predal",
|
||||
"mailbox_rename_agree": "Ustvaril/a sem varnostno kopijo.",
|
||||
"mailbox_rename_warning": "POMEMBNO! Pred preimenovanjem nabiralnika ustvarite varnostno kopijo.",
|
||||
"sieve_desc": "Kratek opis"
|
||||
},
|
||||
"footer": {
|
||||
"restart_container_info": "<b>Pomembno:</b> Ugoden ponovni zagon lahko traja nekaj časa, zato počakajte, da se konča.",
|
||||
"delete_these_items": "Prosimo, potrdite spremembe naslednjega ID-ja objekta",
|
||||
"confirm_delete": "Potrdi brisanje",
|
||||
"delete_now": "Izbriši zdaj",
|
||||
"hibp_check": "Preverite na haveibeenpwned.com",
|
||||
"hibp_nok": "Ujema se! To je potencialno nevarno geslo!",
|
||||
"hibp_ok": "Ni najdenega ujemanja.",
|
||||
"loading": "Prosim, počakajte...",
|
||||
"nothing_selected": "Nič izbranega",
|
||||
"restart_container": "Znova zaženite zabojnik",
|
||||
"restart_now": "Znova zaženi zdaj",
|
||||
"restarting_container": "Ponovni zagon zabojnika, to lahko traja nekaj časa",
|
||||
"cancel": "Prekliči"
|
||||
},
|
||||
"login": {
|
||||
"password": "Geslo",
|
||||
"invalid_pass_reset_token": "Žeton za ponastavitev gesla je neveljaven ali je potekel.<br>Zahtevajte novo povezavo za ponastavitev gesla.",
|
||||
"back_to_mailcow": "Nazaj v mailcow",
|
||||
"delayed": "Prijava je bila zakasnjena za %s sekund.",
|
||||
"fido2_webauthn": "Prijava FIDO2/WebAuthent",
|
||||
"forgot_password": "> Ste pozabili geslo?",
|
||||
"login": "Prijava",
|
||||
"login_linkstext": "Ni pravilna prijava?",
|
||||
"login_usertext": "Prijava kot uporabnik",
|
||||
"login_domainadmintext": "Prijava kot skrbnik domene",
|
||||
"login_admintext": "Prijava kot skrbnik",
|
||||
"login_user": "Prijava uporabnika",
|
||||
"login_dadmin": "Prijava skrbnika domene",
|
||||
"login_admin": "Prijava skrbnika",
|
||||
"mobileconfig_info": "Za prenos zahtevanega profila povezave Apple se prijavite kot uporabnik poštnega predala.",
|
||||
"new_password": "Novo geslo",
|
||||
"new_password_confirm": "Potrdi novo geslo",
|
||||
"other_logins": "ali se prijavite s/z",
|
||||
"reset_password": "Ponastavi geslo",
|
||||
"request_reset_password": "Zahteva za spremembo gesla",
|
||||
"username": "Uporabniško ime"
|
||||
},
|
||||
"mailbox": {
|
||||
"last_mail_login": "Zadnja prijava v e-pošto",
|
||||
"deactivate": "Deaktiviraj",
|
||||
"domain_admins": "Skrbniki domen",
|
||||
"kind": "Prijazno",
|
||||
"mailbox_defaults_info": "Določite privzete nastavitve za nove poštne nabiralnike.",
|
||||
"allowed_protocols": "Dovoljeni protokoli",
|
||||
"add_alias": "Dodaj vzdevek",
|
||||
"mins_interval": "Interval (min)",
|
||||
"recipient_map_info": "Zemljevidi prejemnikov se uporabljajo za zamenjavo naslova prejemnika v sporočilu, preden je dostavljeno.",
|
||||
"add_domain_record_first": "Najprej dodajte domeno",
|
||||
"booking_ltnull": "Neomejeno, vendar se ob rezervaciji prikaži kot zasedeno",
|
||||
"alias_domain_alias_hint": "Vzdevki se na vzdevke domen samodejno <b>ne</b> uporabijo. Naslov vzdevka <code>my-alias@domain</code> <b>ne</b> pokriva naslova <code>my-alias@alias-domain</code> (kjer je \"vzdevek domene\" namišljeni vzdevek domene za \"domeno\").<br>Za preusmeritev pošte v zunanji nabiralnik uporabite filter sito (glejte zavihek »Filtri« ali uporabite SOGo -> Posrednik). Za samodejno dodajanje manjkajočih vzdevkov uporabite \"Razširi vzdevek čez domene vzdevkov\".",
|
||||
"q_all": " ob premiku v mapo Neželena pošta in ob zavrnitvi",
|
||||
"bcc_info": "BCC zemljevidi se uporabljajo za tiho posredovanje kopij vseh sporočil na drug naslov. Vnos vrste preslikave prejemnika se uporablja, kadar lokalni cilj deluje kot prejemnik pošte. Preslikave pošiljatelja delujejo po istem načelu.<br>\n Lokalni cilj ne bo obveščen o neuspeli dostavi.",
|
||||
"force_pw_update": "Vsiljena posodobitev gesla ob naslednji prijavi",
|
||||
"recipient_map_new_info": "Cilj zemljevida prejemnika mora biti veljaven e-poštni naslov ali ime domene.",
|
||||
"recipient_map_old_info": "Izvirni cilj prejemnika mora biti veljaven e-poštni naslov ali ime domene.",
|
||||
"action": "Dejanje",
|
||||
"activate": "Aktiviraj",
|
||||
"active": "Aktivno",
|
||||
"add": "Dodaj",
|
||||
"add_alias_expand": "Razširi vzdevek nad vzdevki domen",
|
||||
"add_bcc_entry": "Dodaj zemljevid BCC",
|
||||
"add_domain": "Dodaj domeno",
|
||||
"add_domain_alias": "Dodaj vzdevek domene",
|
||||
"add_filter": "Dodaj filter",
|
||||
"add_mailbox": "Dodaj poštni predal",
|
||||
"add_recipient_map_entry": "Dodaj zemljevid prejemnikov",
|
||||
"add_resource": "Dodaj vir",
|
||||
"add_template": "Dodaj predlogo",
|
||||
"add_tls_policy_map": "Dodaj zemljevid pravilnikov TLS",
|
||||
"address_rewriting": "Prepisovanje naslovov",
|
||||
"alias": "Vzdevek",
|
||||
"alias_domain_backupmx": "Vzdevek domene ni aktiven za posredovalno domeno",
|
||||
"aliases": "Vzdevki",
|
||||
"all_domains": "Vse domene",
|
||||
"allow_from_smtp": "Dovoli samo tem IP-jem uporabo <b>SMTP</b>",
|
||||
"allow_from_smtp_info": "Pustite prazno, da dovolite vse pošiljatelje.<br>Naslovi in omrežja IPv4/IPv6.",
|
||||
"backup_mx": "Posredovalna domena",
|
||||
"bcc": "BCC",
|
||||
"bcc_destination": "Ciljna stran BCC",
|
||||
"bcc_destinations": "Ciljna stran BCC",
|
||||
"bcc_local_dest": "Lokalni cilj",
|
||||
"bcc_map": "BCC zemljevid",
|
||||
"bcc_map_type": "BCC tip",
|
||||
"bcc_maps": "BCC zemljevidi",
|
||||
"bcc_rcpt_map": "Zemljevid prejemnikov",
|
||||
"bcc_sender_map": "Zemljevid pošiljatelja",
|
||||
"bcc_to_rcpt": "Preklopi na vrsto zemljevida prejemnika",
|
||||
"bcc_to_sender": "Preklopi na vrsto zemljevida pošiljatelja",
|
||||
"bcc_type": "BCC tip",
|
||||
"booking_null": "Vedno prikaži kot brezplačno",
|
||||
"booking_0_short": "Vedno prost",
|
||||
"booking_custom": "Točna omejitev na število rezervacij po meri",
|
||||
"booking_custom_short": "Trda omejitev",
|
||||
"booking_lt0_short": "Mehka omejitev",
|
||||
"catch_all": "Zajemi vse",
|
||||
"created_on": "Ustvarjeno dne",
|
||||
"daily": "Dnevno",
|
||||
"description": "Opis",
|
||||
"disable_login": "Prepreči prijavo (dohodna pošta je še vedno sprejeta)",
|
||||
"disable_x": "Onemogoči",
|
||||
"dkim_domains_selector": "Izbirnik",
|
||||
"dkim_key_length": "Dolžina ključa DKIM (biti)",
|
||||
"domain": "Domena",
|
||||
"domain_aliases": "Vzdevki domen",
|
||||
"domain_templates": "Predloge domen",
|
||||
"domain_quota": "Kvota",
|
||||
"domain_quota_total": "Celotna kvota domene",
|
||||
"domains": "Domene",
|
||||
"edit": "Uredi",
|
||||
"empty": "Ni rezultatov",
|
||||
"enable_x": "Omogoči",
|
||||
"filters": "Filtri",
|
||||
"fname": "Polno ime",
|
||||
"gal": "Globalni seznam naslovov",
|
||||
"goto_ham": "Uči se kot <b>ham</b>",
|
||||
"goto_spam": "Uči se kot <b>spam</b>",
|
||||
"hourly": "Urno",
|
||||
"iam": "Ponudnik identitete",
|
||||
"in_use": "V uporabi (%)",
|
||||
"inactive": "Neaktivno",
|
||||
"insert_preset": "Vstavi primer prednastavitve \"%s\"",
|
||||
"last_modified": "Zadnja sprememba",
|
||||
"last_pw_change": "Zadnja sprememba gesla",
|
||||
"last_run_reset": "Načrtuj naslednje",
|
||||
"mailbox": "Poštni nabiralnik",
|
||||
"mailbox_defaults": "Privzete nastavitve",
|
||||
"mailbox_defquota": "Privzeta velikost poštnega nabiralnika",
|
||||
"mailbox_templates": "Predloge poštnih nabiralnikov",
|
||||
"mailbox_quota": "Največja velikost poštnega nabiralnika",
|
||||
"mailboxes": "Poštni nabiralniki",
|
||||
"max_aliases": "Največje število vzdevkov",
|
||||
"max_mailboxes": "Največje možno število poštnih predalov",
|
||||
"max_quota": "Največja kvota na poštni predal",
|
||||
"msg_num": "Sporočilo #",
|
||||
"multiple_bookings": "Več rezervacij",
|
||||
"never": "Nikoli",
|
||||
"no": "✕",
|
||||
"no_record": "Ni zapisa za objekt %s",
|
||||
"no_record_single": "Ni zapisa",
|
||||
"open_logs": "Odpri dnevnike",
|
||||
"owner": "Lastnik",
|
||||
"private_comment": "Zasebni komentar",
|
||||
"public_comment": "Javni komentar",
|
||||
"q_add_header": "ko je premaknjeno v mapo Neželena pošta",
|
||||
"q_reject": "ob zavrnitvi",
|
||||
"quarantine_category": "Kategorija obvestil o karanteni",
|
||||
"quarantine_notification": "Obvestila o karanteni",
|
||||
"quick_actions": "Dejanja",
|
||||
"recipient": "Prejemnik",
|
||||
"recipient_map": "Zemljevid prejemnikov",
|
||||
"recipient_map_new": "Nov prejemnik",
|
||||
"recipient_map_old": "Prvotni prejemnik",
|
||||
"recipient_maps": "Zemljevidi prejemnikov",
|
||||
"relay_all": "Posreduj vsem prejemnikom",
|
||||
"relay_unknown": "Posredovanje neznanih poštnih predalov",
|
||||
"remove": "Odstrani",
|
||||
"resources": "Viri",
|
||||
"running": "V teku",
|
||||
"sender": "Pošiljatelj",
|
||||
"set_postfilter": "Označi kot postfilter",
|
||||
"set_prefilter": "Označi kot predfilter",
|
||||
"sieve_preset_1": "Zavrzi pošto z verjetno nevarnimi vrstami datotek",
|
||||
"filter_table": "Filtriraj tabelo",
|
||||
"excludes": "Izključuje",
|
||||
"last_run": "Zadnji zagon",
|
||||
"sieve_preset_2": "Vedno označi e-pošto določenega pošiljatelja kot videno",
|
||||
"target_address": "Pojdi na naslov",
|
||||
"syncjob_EXIT_TLS_FAILURE": "Težava s šifrirano povezavo",
|
||||
"syncjob_EXIT_CONNECTION_FAILURE_HOST1": "Ni mogoče vzpostaviti povezave z oddaljenim strežnikom",
|
||||
"tls_map_parameters_info": "Prazno ali parametri, na primer: protocols=!SSLv2 ciphers=medium exclude=3DES",
|
||||
"tls_policy_maps_enforced_tls": "Ti pravilniki bodo preglasili tudi vedenje uporabnikov poštnih predalov, ki vsiljujejo odhodne povezave TLS. Če spodaj ni pravilnika, bodo ti uporabniki uporabili privzete vrednosti, določene kot <code>smtp_tls_mandatory_protocols</code> in <code>smtp_tls_mandatory_ciphers</code>.",
|
||||
"spam_aliases": "Začasni vzdevek",
|
||||
"sieve_preset_3": "Tiho zavrzite, ustavite vso nadaljnjo obdelavo s presejanjem",
|
||||
"sieve_preset_4": "Vloži v mapo PREJETO, preskoči nadaljnjo obdelavo s sitastimi filtri",
|
||||
"sieve_preset_5": "Samodejni odzivnik (dopust)",
|
||||
"sieve_preset_6": "Zavrni pošto z odgovorom",
|
||||
"sieve_preset_7": "Preusmeritev in ohrani/opusti",
|
||||
"sieve_preset_8": "Preusmeritev e-pošte od določenega pošiljatelja, označitev kot prebrano in razvrščanje v podmapo",
|
||||
"sieve_preset_header": "Spodaj si oglejte primere prednastavitev. Za več podrobnosti glejte <a href=\"https://en.wikipedia.org/wiki/Sieve_(mail_filtering_language)\" target=\"_blank\">Wikipedijo</a>.",
|
||||
"sogo_visible": "Vzdevek je viden v SOGo",
|
||||
"sogo_visible_n": "Skrij vzdevek v SOGo",
|
||||
"sogo_visible_y": "Prikaži vzdevek v SOGo",
|
||||
"stats": "Statistika",
|
||||
"status": "Stanje",
|
||||
"sync_jobs": "Sinhronizacija opravil",
|
||||
"syncjob_check_log": "Preveri dnevnik",
|
||||
"syncjob_last_run_result": "Rezultat zadnjega zagona",
|
||||
"syncjob_EX_OK": "Uspešno",
|
||||
"syncjob_EXIT_CONNECTION_FAILURE": "Težava s povezavo",
|
||||
"syncjob_EXIT_AUTHENTICATION_FAILURE": "Težava z overjanjem",
|
||||
"syncjob_EXIT_OVERQUOTA": "Ciljni poštni predal presega kvoto",
|
||||
"table_size_show_n": "Prikaži %s elementov",
|
||||
"target_domain": "Ciljna domena",
|
||||
"template": "Predloga",
|
||||
"tls_enforce_in": "Uveljavi dohodni TLS",
|
||||
"tls_enforce_out": "Uveljavi odhodni TLS",
|
||||
"tls_map_dest": "Cilj",
|
||||
"tls_map_dest_info": "Primeri: example.org, .example.org, [mail.example.org]:25",
|
||||
"tls_map_parameters": "Parametri",
|
||||
"tls_map_policy": "Politika",
|
||||
"tls_policy_maps": "Zemljevidi pravilnikov TLS",
|
||||
"syncjob_EXIT_AUTHENTICATION_FAILURE_USER1": "Napačno uporabniško ime ali geslo",
|
||||
"templates": "Predloge",
|
||||
"tls_policy_maps_long": "Preglasitve zemljevidov pravilnikov odhodnega TLS",
|
||||
"table_size": "Velikost tabele",
|
||||
"toggle_all": "Preklopi vse",
|
||||
"username": "Uporabniško ime",
|
||||
"waiting": "Čakanje",
|
||||
"yes": "✓",
|
||||
"weekly": "Tedensko",
|
||||
"sieve_info": "Na uporabnika lahko shranite več filtrov, vendar je lahko hkrati aktiven le en predfilter in en postfilter.<br>\nVsak filter bo obdelan v opisanem vrstnem redu. Niti neuspešen skript niti izdan ukaz »keep;« ne bosta ustavila obdelave nadaljnjih skript. Spremembe globalnih skriptov sita bodo sprožile ponovni zagon Dovecota.<br><br>Globalni predfilter sita • Predfilter • Uporabniški skripti • Postfilter • Globalni postfilter sita",
|
||||
"tls_policy_maps_info": "Ta preslikava pravilnikov preglasi pravila odhodnega prenosa TLS neodvisno od uporabnikovih nastavitev pravilnikov TLS.<br>\n Za več informacij preverite <a href=\"http://www.postfix.org/postconf.5.html#smtp_tls_policy_maps\" target=\"_blank\">dokumentacijo »smtp_tls_policy_maps«</a>."
|
||||
},
|
||||
"fido2": {
|
||||
"known_ids": "Znani ID-ji",
|
||||
"set_fido2_touchid": "Registrirajte Touch ID na Apple M1",
|
||||
"confirm": "Potrdi",
|
||||
"fido2_auth": "Prijava s FIDO2",
|
||||
"fido2_success": "Naprava je bila uspešno registrirana",
|
||||
"fido2_validation_failed": "Preverjanje ni uspelo",
|
||||
"fn": "Prijazno ime",
|
||||
"none": "Onemogočeno",
|
||||
"register_status": "Status registracije",
|
||||
"rename": "Preimenuj",
|
||||
"set_fido2": "Registrirajte napravo FIDO2",
|
||||
"set_fn": "Nastavi prijazno ime",
|
||||
"start_fido2_validation": "Začni validacijo FIDO2"
|
||||
},
|
||||
"info": {
|
||||
"session_expires": "Vaša seja bo potekla čez približno 15 sekund",
|
||||
"awaiting_tfa_confirmation": "Čakam na potrditev TFA",
|
||||
"no_action": "Ni veljavnih ukrepov"
|
||||
},
|
||||
"header": {
|
||||
"administration": "Konfiguracija in podrobnosti",
|
||||
"apps": "Aplikacije",
|
||||
"debug": "Informacije",
|
||||
"email": "E-pošta",
|
||||
"mailcow_system": "Sistem",
|
||||
"mailcow_config": "Konfiguracija",
|
||||
"quarantine": "Karantena",
|
||||
"restart_netfilter": "Znova zaženite omrežni filter",
|
||||
"restart_sogo": "Znova zaženite SOGo",
|
||||
"user_settings": "Uporabniške nastavitve"
|
||||
},
|
||||
"quarantine": {
|
||||
"learn_spam_delete": "Uči se kot neželena pošta in izbriši",
|
||||
"medium_danger": "Srednje",
|
||||
"notified": "Obveščen",
|
||||
"low_danger": "Nizko",
|
||||
"qinfo": "Sistem karantene bo zavrnjeno pošto shranil v zbirko podatkov (pošiljatelj ne bo imel vtisa, da je bila pošta dostavljena), prav tako pa bo pošto, ki bo dostavljena kot kopija, shranil v mapo »Neželena pošta« v nabiralniku.\n<br>»Uči kot neželeno pošto in izbriši« bo sporočilo prepoznal kot neželeno pošto prek Bayesovega izreka in izračunal tudi mehke zgoščene vrednosti, da bi v prihodnje zavrnil podobna sporočila.\n<br>Upoštevajte, da je učenje več sporočil lahko – odvisno od vašega sistema – zamudno.<br>Elementi na črnem seznamu so izključeni iz karantene.",
|
||||
"junk_folder": "Mapa z neželeno pošto",
|
||||
"action": "Dejanje",
|
||||
"atts": "Priloge",
|
||||
"check_hash": "Iskanje zgoščene vrednosti datoteke @ VT",
|
||||
"confirm": "Potrdi",
|
||||
"confirm_delete": "Potrdite brisanje tega elementa.",
|
||||
"danger": "Nevarnost",
|
||||
"deliver_inbox": "Dostavi v mapo »Prejeto«",
|
||||
"disabled_by_config": "Trenutna konfiguracija sistema onemogoča funkcionalnost karantene. Nastavite »število hranjenj na poštni predal« in »največjo velikost« za elemente karantene.",
|
||||
"download_eml": "Prenesi (.eml)",
|
||||
"empty": "Ni rezultatov",
|
||||
"high_danger": "Visoko",
|
||||
"info": "Informacija",
|
||||
"neutral_danger": "Nevtralno",
|
||||
"qhandler_success": "Zahteva je bila uspešno poslana v sistem. Zdaj lahko zaprete okno.",
|
||||
"qid": "Rspamd QID",
|
||||
"qitem": "Predmet iz karantene",
|
||||
"spam_score": "Rezultat",
|
||||
"text_from_html_content": "Vsebina (pretvorjen html)",
|
||||
"quarantine": "Karantena",
|
||||
"quick_delete_link": "Odpri povezavo za hitro brisanje",
|
||||
"quick_info_link": "Odpri povezavo z informacijami",
|
||||
"quick_release_link": "Odpri povezavo za hitro objavo",
|
||||
"rcpt": "Prejemnik",
|
||||
"received": "Prejeto",
|
||||
"recipients": "Prejemniki",
|
||||
"refresh": "Osveži",
|
||||
"rejected": "Zavrnjeno",
|
||||
"release": "Izdaja",
|
||||
"release_body": "Vaše sporočilo smo priložili kot datoteko eml temu sporočilu.",
|
||||
"release_subject": "Potencialno škodljiv predmet v karanteni %s",
|
||||
"remove": "Odstrani",
|
||||
"rewrite_subject": "Prepiši zadevo",
|
||||
"rspamd_result": "Rezultat Rspamd",
|
||||
"sender": "Pošiljatelj (SMTP)",
|
||||
"sender_header": "Pošiljatelj (glava »Od«)",
|
||||
"settings_info": "Največje število elementov za karanteno: %s<br>Največja velikost e-pošte: %s MiB",
|
||||
"show_item": "Prikaži element",
|
||||
"spam": "Neželena pošta",
|
||||
"subj": "Zadeva",
|
||||
"table_size": "Velikost tabele",
|
||||
"table_size_show_n": "Prikaži %s elementov",
|
||||
"text_plain_content": "Vsebina (besedilo/navadno)",
|
||||
"toggle_all": "Preklopi vse",
|
||||
"type": "Vrsta",
|
||||
"quick_actions": "Dejanja"
|
||||
},
|
||||
"oauth2": {
|
||||
"access_denied": "Za odobritev dostopa prek OAuth2 se prijavite kot lastnik poštnega predala.",
|
||||
"authorize_app": "Avtorizacija aplikacije",
|
||||
"deny": "Zavrni",
|
||||
"permit": "Avtorizacija aplikacije",
|
||||
"profile": "Profil",
|
||||
"profile_desc": "Ogled osebnih podatkov: uporabniško ime, polno ime, ustvarjeno, spremenjeno, aktivno",
|
||||
"scope_ask_permission": "Aplikacija je zahtevala naslednja dovoljenja"
|
||||
},
|
||||
"queue": {
|
||||
"info": "Čakalna vrsta pošte vsebuje vsa e-poštna sporočila, ki čakajo na dostavo. Če je e-poštno sporočilo dlje časa obtičalo v čakalni vrsti, ga sistem samodejno izbriše.<br>Sporočilo o napaki ustreznega e-poštnega sporočila vsebuje informacije o tem, zakaj sporočila ni bilo mogoče dostaviti.",
|
||||
"delete": "Izbriši vse",
|
||||
"flush": "Izprazni čakalno vrsto",
|
||||
"legend": "Funkcije dejanj čakalne vrste pošte:",
|
||||
"ays": "Potrdite, da želite izbrisati vse elemente iz trenutne čakalne vrste.",
|
||||
"deliver_mail": "Dostavi",
|
||||
"deliver_mail_legend": "Poskusi ponovne dostave izbranih e-poštnih sporočil.",
|
||||
"hold_mail": "Zadrži",
|
||||
"hold_mail_legend": "Zadrži izbrano pošto. (Prepreči nadaljnje poskuse dostave)",
|
||||
"queue_manager": "Upravitelj čakalnih vrst",
|
||||
"show_message": "Prikaži sporočilo",
|
||||
"unban": "odblokiraj čakalno vrsto",
|
||||
"unhold_mail": "Nezadrži",
|
||||
"unhold_mail_legend": "Sprosti izbrana sporočila za dostavo. (Zahteva predhodno zadržanje)"
|
||||
},
|
||||
"success": {
|
||||
"eas_reset": "Naprave ActiveSync za uporabnika %s so bile ponastavljene",
|
||||
"alias_added": "Dodan je bil vzdevek %s (%d)",
|
||||
"app_passwd_added": "Dodano novo geslo za aplikacijo",
|
||||
"domain_add_dkim_available": "Ključ DKIM je že obstajal",
|
||||
"custom_login_modified": "Prilagoditev prijave je bila uspešno shranjena",
|
||||
"rl_saved": "Omejitev hitrosti za objekt %s je shranjena",
|
||||
"domain_admin_modified": "Spremembe skrbnika domene %s so bile shranjene",
|
||||
"license_modified": "Spremembe licence so bile shranjene",
|
||||
"pushover_settings_edited": "Nastavitve Pushoverja so bile uspešno nastavljene, preverite poverilnice.",
|
||||
"mailbox_renamed": "Poštni nabiralnik je bil preimenovan iz %s v %s",
|
||||
"recovery_email_sent": "E-poštno sporočilo za obnovitev je bilo poslano na %s",
|
||||
"relayhost_removed": "Vnos na zemljevidu %s je bil odstranjen",
|
||||
"acl_saved": "ACL za objekt %s shranjen",
|
||||
"admin_added": "Dodan je bil skrbnik %s",
|
||||
"admin_api_modified": "Spremembe API-ja so bile shranjene",
|
||||
"admin_modified": "Spremembe skrbnika so bile shranjene",
|
||||
"admin_removed": "Administrator %s je bil odstranjen",
|
||||
"alias_domain_removed": "Vzdevek domene %s je bil odstranjen",
|
||||
"alias_modified": "Spremembe vzdevka %s so bile shranjene",
|
||||
"alias_removed": "Vzdevek %s je bil odstranjen",
|
||||
"aliasd_added": "Dodan vzdevek domene %s",
|
||||
"aliasd_modified": "Spremembe vzdevka domene %s so bile shranjene",
|
||||
"app_links": "Shranjene spremembe povezav aplikacij",
|
||||
"app_passwd_removed": "Odstranjen ID gesla za aplikacijo %s",
|
||||
"bcc_deleted": "Vnosi na zemljevidu BCC so izbrisani: %s",
|
||||
"bcc_edited": "Vnos na zemljevidu BCC %s je bil urejen",
|
||||
"db_init_complete": "Inicializacija baze podatkov končana",
|
||||
"delete_filter": "Izbrisani filtri ID %s",
|
||||
"delete_filters": "Izbrisani filtri: %s",
|
||||
"deleted_syncjob": "Izbrisan ID sinhronizacijskega opravila %s",
|
||||
"deleted_syncjobs": "Izbrisana opravila sinhronizacije: %s",
|
||||
"dkim_added": "Ključ DKIM %s je bil shranjen",
|
||||
"dkim_duplicated": "Ključ DKIM za domeno %s je bil kopiran v %s",
|
||||
"dkim_removed": "Ključ DKIM %s je bil odstranjen",
|
||||
"domain_added": "Dodana domena %s",
|
||||
"domain_admin_added": "Dodan je bil skrbnik domene %s",
|
||||
"domain_admin_removed": "Skrbnik domene %s je bil odstranjen",
|
||||
"domain_footer_modified": "Spremembe v nogi domene %s so bile shranjene",
|
||||
"domain_modified": "Spremembe domene %s so bile shranjene",
|
||||
"domain_removed": "Domena %s je bila odstranjena",
|
||||
"dovecot_restart_success": "Dovecot je bil uspešno ponovno zagnan",
|
||||
"f2b_banlist_refreshed": "ID seznama prepovedanih je bil uspešno osvežen.",
|
||||
"f2b_modified": "Spremembe parametrov Fail2ban so bile shranjene",
|
||||
"forwarding_host_added": "Dodan je bil posredovalni gostitelj %s",
|
||||
"forwarding_host_removed": "Gostitelj za posredovanje %s je bil odstranjen",
|
||||
"global_filter_written": "Filter je bil uspešno zapisan v datoteko",
|
||||
"hash_deleted": "Zgoščena vrednost je izbrisana",
|
||||
"iam_test_connection": "Povezava je bila uspešna",
|
||||
"ip_check_opt_in_modified": "Preverjanje IP-ja je bilo uspešno shranjeno",
|
||||
"item_deleted": "Element %s je bil uspešno izbrisan",
|
||||
"items_deleted": "Element %s je bil uspešno izbrisan",
|
||||
"items_released": "Izbrani elementi so bili izdani",
|
||||
"logged_in_as": "Prijavljen kot %s",
|
||||
"mailbox_added": "Dodan je bil poštni predal %s",
|
||||
"mailbox_modified": "Spremembe poštnega nabiralnika %s so bile shranjene",
|
||||
"mailbox_removed": "Poštni nabiralnik %s je bil odstranjen",
|
||||
"nginx_reloaded": "Nginx je bil ponovno naložen",
|
||||
"object_modified": "Spremembe objekta %s so bile shranjene",
|
||||
"password_policy_saved": "Pravilnik o geslih je bil uspešno shranjen",
|
||||
"password_changed_success": "Geslo je bilo uspešno spremenjeno",
|
||||
"qlearn_spam": "Sporočilo z ID-jem %s je bilo prepoznano kot neželena pošta in izbrisano",
|
||||
"queue_command_success": "Ukaz za čakalno vrsto je bil uspešno zaključen",
|
||||
"recipient_map_entry_deleted": "ID zemljevida prejemnika %s je bil izbrisan",
|
||||
"recipient_map_entry_saved": "Vnos zemljevida prejemnika »%s« je bil shranjen",
|
||||
"relayhost_added": "Dodan je bil vnos na zemljevid %s",
|
||||
"reset_main_logo": "Ponastavi na privzeti logotip",
|
||||
"resource_added": "Dodan je bil vir %s",
|
||||
"resource_modified": "Spremembe poštnega nabiralnika %s so bile shranjene",
|
||||
"resource_removed": "Vir %s je bil odstranjen",
|
||||
"rspamd_ui_pw_set": "Geslo uporabniškega vmesnika Rspamd je bilo uspešno nastavljeno",
|
||||
"settings_map_added": "Dodan vnos nastavitev zemljevida",
|
||||
"settings_map_removed": "Odstranjen ID zemljevida nastavitev %s",
|
||||
"sogo_profile_reset": "Profil SOGo za uporabnika %s je bil ponastavljen",
|
||||
"template_added": "Dodana predloga %s",
|
||||
"template_modified": "Spremembe predloge %s so bile shranjene",
|
||||
"template_removed": "ID predloge %s je bil izbrisan",
|
||||
"tls_policy_map_entry_deleted": "ID zemljevida pravilnika TLS %s je bil izbrisan",
|
||||
"tls_policy_map_entry_saved": "Vnos zemljevida pravilnika TLS »%s« je bil shranjen",
|
||||
"ui_texts": "Shranjene spremembe besedil uporabniškega vmesnika",
|
||||
"upload_success": "Datoteka je bila uspešno naložena",
|
||||
"verified_fido2_login": "Preverjena prijava v FIDO2",
|
||||
"verified_totp_login": "Preverjena prijava v TOTP",
|
||||
"verified_webauthn_login": "Preverjena prijava v WebAuth",
|
||||
"verified_yotp_login": "Preverjena prijava z enkratnim geslom Yubico",
|
||||
"bcc_saved": "Vnos na zemljevidu BCC je shranjen",
|
||||
"cors_headers_edited": "Nastavitve CORS so bile shranjene",
|
||||
"item_released": "Izdan je bil element %s",
|
||||
"saved_settings": "Shranjene nastavitve",
|
||||
"learned_ham": "Uspešno naučen ID %s kot zaželjen"
|
||||
},
|
||||
"start": {
|
||||
"imap_smtp_server_auth_info": "Prosimo, uporabite svoj celoten e-poštni naslov in mehanizem za preverjanje pristnosti PLAIN.<br>\nVaši podatki za prijavo bodo šifrirani z obveznim šifriranjem na strani strežnika.",
|
||||
"help": "Prikaži/skrij ploščo s pomočjo"
|
||||
},
|
||||
"tfa": {
|
||||
"api_register": "%s uporablja Yubico Cloud API. Pridobite API ključ za svoj ključ <a href=\"https://upgrade.yubico.com/getapikey/\" target=\"_blank\">tukaj</a>",
|
||||
"authenticators": "Preverjevalniki pristnosti",
|
||||
"confirm": "Potrdi",
|
||||
"delete_tfa": "Onemogoči TFA",
|
||||
"disable_tfa": "Onemogoči TFA do naslednje uspešne prijave",
|
||||
"enter_qr_code": "Vaša koda TOTP, če vaša naprava ne more skenirati kod QR",
|
||||
"error_code": "Koda napake",
|
||||
"confirm_totp_token": "Spremembe potrdite z vnosom ustvarjenega žetona",
|
||||
"tfa": "Dvofaktorska avtentikacija",
|
||||
"webauthn": "Preverjanje pristnosti WebAuthn",
|
||||
"none": "Deaktiviraj",
|
||||
"init_webauthn": "Inicializacija, prosim počakajte...",
|
||||
"key_id": "Identifikator za vašo napravo",
|
||||
"key_id_totp": "Identifikator za vaš ključ",
|
||||
"reload_retry": "- (če napaka vztraja, znova zaženite brskalnik)",
|
||||
"scan_qr_code": "Prosimo, skenirajte naslednjo kodo z aplikacijo za preverjanje pristnosti ali jo vnesite ročno.",
|
||||
"select": "Prosimo, izberite",
|
||||
"set_tfa": "Nastavite metodo dvofaktorske avtentikacije",
|
||||
"start_webauthn_validation": "Začni validacijo",
|
||||
"tfa_token_invalid": "Žeton TFA neveljaven",
|
||||
"totp": "Enkratno geslo na podlagi časa (Google Authenticator, Authy itd.)",
|
||||
"u2f_deprecated": "Zdi se, da je bil vaš ključ registriran z zastarelo metodo U2F. Deaktivirali bomo dvofaktorsko overjanje in izbrisali vaš ključ.",
|
||||
"u2f_deprecated_important": "Prosimo, registrirajte svoj ključ v skrbniški plošči z novo metodo WebAuthn.",
|
||||
"waiting_usb_auth": "<i>Čakanje na napravo USB ...</i><br><br>Zdaj se dotaknite gumba na napravi USB.",
|
||||
"waiting_usb_register": "<i>Čakanje na napravo USB ...</i><br><br>Vnesite svoje geslo zgoraj in potrdite registracijo tako, da tapnete gumb na napravi USB.",
|
||||
"yubi_otp": "Avtentikacija z enkratnim geslom Yubico"
|
||||
},
|
||||
"ratelimit": {
|
||||
"disabled": "Onemogočeno",
|
||||
"second": "sporočil / sekundo",
|
||||
"minute": "sporočil / minuto",
|
||||
"hour": "sporočil / uro",
|
||||
"day": "sporočil / dan"
|
||||
},
|
||||
"user": {
|
||||
"create_syncjob": "Ustvari novo sinhronizacijsko opravilo",
|
||||
"open_webmail_sso": "Spletna pošta",
|
||||
"attribute": "Atribut",
|
||||
"description": "Opis",
|
||||
"direct_aliases_desc": "Na neposredne vzdevke vplivajo nastavitve filtra neželene pošte in pravilnika TLS.",
|
||||
"direct_protocol_access": "Ta uporabnik poštnega predala ima <b>neposreden zunanji dostop</b> do naslednjih protokolov in aplikacij. To nastavitev nadzoruje vaš skrbnik. Za dostop do posameznih protokolov in aplikacij je mogoče ustvariti gesla za aplikacije.<br>Gumb »Spletna pošta« omogoča enotno prijavo v SOGo in je vedno na voljo.",
|
||||
"shared_aliases_desc": "Na uporabniške nastavitve, kot sta filter neželene pošte ali pravilnik za šifriranje, ne vplivajo skupni vzdevki. Ustrezne filtre neželene pošte lahko nastavi le skrbnik kot pravilnik za celotno domeno.",
|
||||
"force_pw_update": "Za dostop do storitev, povezanih s skupinsko programsko opremo, <b>morate</b> nastaviti novo geslo.",
|
||||
"new_password": "Novo geslo",
|
||||
"password_reset_info": "Če ni naveden e-poštni naslov za obnovitev gesla, te funkcije ni mogoče uporabiti.",
|
||||
"pushover_sender_array": "Upoštevajte naslednje e-poštne naslove pošiljateljev <small>(ločeni z vejico)</small>",
|
||||
"tag_help_explain": "V podmapi: pod mapo INBOX (\"INBOX/Facebook\") bo ustvarjena nova podmapa, poimenovana po oznaki.<br>\nV zadevi: ime oznake bo dodano pred zadevo e-poštnega sporočila, na primer: \"[Facebook] Moje novice\".",
|
||||
"pushover_vars": "Če filter pošiljatelja ni definiran, bodo upoštevana vsa e-poštna sporočila.<br>Filtre regularnih izrazov in natančna preverjanja pošiljateljev je mogoče definirati posamično in bodo obravnavana zaporedno. Niso odvisna drug od drugega.<br>Uporabne spremenljivke za besedilo in naslov (upoštevajte pravilnike o varstvu podatkov)",
|
||||
"quarantine_notification_info": "Ko je obvestilo poslano, bodo elementi označeni kot »obveščeni« in za ta določen element ne bodo poslana nobena nadaljnja obvestila.",
|
||||
"verify": "Preveri",
|
||||
"spamfilter_bl_desc": "E-poštni naslovi na črnem seznamu, ki jih <b>vedno</b> razvrstite kot neželeno pošto in zavrnete. Zavrnjena pošta <b>ne</b> bo kopirana v karanteno. Uporabite lahko nadomestne znake. Filter se uporabi samo za neposredne vzdevke (vzdevke z enim samim ciljnim nabiralnikom), izključujoč vseobsegajoče vzdevke in sam nabiralnik.",
|
||||
"spamfilter_wl_desc": "E-poštni naslovi na belem seznamu so programirani tako, da se <b>nikoli</b> ne razvrstijo kot neželena pošta. Uporabijo se lahko nadomestni znaki. Filter se uporabi samo za neposredne vzdevke (vzdevke z enim samim ciljnim poštnim predalom), izključujoč vseobsegajoče vzdevke in sam poštni predal.",
|
||||
"tls_policy_warning": "<strong>Opozorilo:</strong> Če se odločite za uveljavitev šifriranega prenosa pošte, lahko izgubite e-pošto.<br>Sporočila, ki ne ustrezajo pravilniku, bo poštni sistem zavrnil s popolno napako.<br>Ta možnost velja za vaš primarni e-poštni naslov (prijavno ime), vse naslove, izpeljane iz vzdevkov domen, in vzdevke, <b>ki imajo samo ta en poštni predal</b> kot cilj.",
|
||||
"allowed_protocols": "Dovoljeni protokoli",
|
||||
"title": "Naslov",
|
||||
"action": "Dejanje",
|
||||
"active": "Aktivno",
|
||||
"active_sieve": "Aktiven filter",
|
||||
"advanced_settings": "Napredne nastavitve",
|
||||
"alias": "Vzdevek",
|
||||
"alias_create_random": "Generiraj naključne vzdevke",
|
||||
"alias_extend_all": "Podaljšaj vzdevek za 1 uro",
|
||||
"alias_full_date": "d.m.Y, H:i:s T",
|
||||
"alias_remove_all": "Odstrani vse vzdevke",
|
||||
"alias_select_validity": "Obdobje veljavnosti",
|
||||
"alias_time_left": "Preostali čas",
|
||||
"alias_valid_until": "Veljavno do",
|
||||
"aliases_also_send_as": "Pošiljanje je dovoljeno tudi kot uporabnik",
|
||||
"aliases_send_as_all": "Ne preverjaj dostopa pošiljatelja za naslednje domene in njihove vzdevke",
|
||||
"app_hint": "Gesla aplikacij so alternativna gesla za prijavo v IMAP, SMTP, CalDAV, CardDAV in EAS. Uporabniško ime ostane nespremenjeno. Spletna pošta SOGo ni na voljo prek gesel aplikacij.",
|
||||
"app_name": "Ime aplikacije",
|
||||
"app_passwds": "Gesla aplikacij",
|
||||
"apple_connection_profile": "Profil povezave Apple",
|
||||
"apple_connection_profile_complete": "Ta profil povezave vključuje parametre IMAP in SMTP ter poti CalDAV (koledarji) in CardDAV (stiki) za napravo Apple.",
|
||||
"apple_connection_profile_mailonly": "Ta profil povezave vključuje konfiguracijske parametre IMAP in SMTP za napravo Apple.",
|
||||
"apple_connection_profile_with_app_password": "Novo geslo za aplikacijo se ustvari in doda v profil, tako da pri nastavitvi naprave ni treba vnesti gesla. Datoteke ne delite, saj omogoča poln dostop do vašega nabiralnika.",
|
||||
"authentication": "Avtentikacija",
|
||||
"change_password": "Spremeni geslo",
|
||||
"change_password_hint_app_passwords": "Vaš račun ima %d gesel aplikacij, ki ne bodo spremenjena. Če jih želite upravljati, odprite zavihek Gesla aplikacij.",
|
||||
"clear_recent_successful_connections": "Jasno vidne uspešne povezave",
|
||||
"client_configuration": "Prikaži vodnike za konfiguracijo e-poštnih odjemalcev in pametnih telefonov",
|
||||
"create_app_passwd": "Ustvari geslo za aplikacijo",
|
||||
"created_on": "Ustvarjeno dne",
|
||||
"daily": "Dnevno",
|
||||
"day": "dan",
|
||||
"delete_ays": "Prosimo, potrdite postopek brisanja.",
|
||||
"direct_aliases": "Neposredni vzdevki",
|
||||
"eas_reset": "Ponastavi predpomnilnik naprave ActiveSync",
|
||||
"eas_reset_help": "V mnogih primerih bo ponastavitev predpomnilnika naprave pomagala obnoviti pokvarjen profil ActiveSync.<br><b>Pozor:</b> Vsi elementi bodo ponovno preneseni!",
|
||||
"eas_reset_now": "Ponastavi zdaj",
|
||||
"edit": "Uredi",
|
||||
"email": "E-pošta",
|
||||
"email_and_dav": "E-pošta, koledarji in stiki",
|
||||
"empty": "Ni rezultatov",
|
||||
"encryption": "Šifriranje",
|
||||
"excludes": "Izključuje",
|
||||
"expire_in": "Poteče čez",
|
||||
"fido2_webauthn": "FIDO2/WebAuthn",
|
||||
"from": "od",
|
||||
"generate": "ustvari",
|
||||
"hour": "ura",
|
||||
"hourly": "Urno",
|
||||
"hours": "ure",
|
||||
"in_use": "Uporabljeno",
|
||||
"interval": "Interval",
|
||||
"is_catch_all": "Vseobsegajoča povezava za domeno/e",
|
||||
"last_mail_login": "Zadnja prijava v e-pošto",
|
||||
"last_pw_change": "Zadnja sprememba gesla",
|
||||
"last_run": "Zadnji zagon",
|
||||
"last_ui_login": "Zadnja prijava v uporabniški vmesnik",
|
||||
"loading": "Nalaganje ...",
|
||||
"login_history": "Zgodovina prijav",
|
||||
"mailbox": "Poštni nabiralnik",
|
||||
"mailbox_details": "Podrobnosti",
|
||||
"mailbox_general": "Splošno",
|
||||
"mailbox_settings": "Nastavitve",
|
||||
"messages": "sporočila",
|
||||
"month": "mesec",
|
||||
"months": "meseci",
|
||||
"never": "Nikoli",
|
||||
"new_password_repeat": "Potrditveno geslo (ponovite)",
|
||||
"no_active_filter": "Ni aktivnega filtra",
|
||||
"no_last_login": "Ni zadnjih podatkov za prijavo v uporabniški vmesnik",
|
||||
"no_record": "Ni zapisa",
|
||||
"open_logs": "Odpri dnevnike",
|
||||
"overview": "Pregled",
|
||||
"password": "Geslo",
|
||||
"password_now": "Trenutno geslo (potrdite spremembe)",
|
||||
"password_repeat": "Geslo (ponovite)",
|
||||
"protocols": "Protokoli",
|
||||
"pushover_evaluate_x_prio": "Eskalacija e-pošte z visoko prioriteto [<code>X-Priority: 1</code>]",
|
||||
"pushover_info": "Nastavitve potisnih obvestil bodo veljale za vso čisto (ne neželeno) pošto, dostavljeno na <b>%s</b>, vključno z vzdevki (v skupni rabi, brez skupne rabe, označeni).",
|
||||
"pushover_only_x_prio": "Upoštevaj samo pošto z visoko prioriteto [<code>X-Priority: 1</code>]",
|
||||
"pushover_sender_regex": "Poišči ujemanje pošiljateljev z naslednjim regularnim izrazom",
|
||||
"pushover_text": "Besedilo obvestila",
|
||||
"pushover_title": "Naslov obvestila",
|
||||
"pushover_sound": "Zvok",
|
||||
"pushover_verify": "Preverite poverilnice",
|
||||
"pw_recovery_email": "E-poštno sporočilo za obnovitev gesla",
|
||||
"q_add_header": "Mapa z neželeno pošto",
|
||||
"q_reject": "Zavrnjeno",
|
||||
"quarantine_category": "Kategorija obvestil o karanteni",
|
||||
"quarantine_category_info": "Kategorija obvestil »Zavrnjeno« vključuje zavrnjeno pošto, medtem ko »Mapa z neželeno pošto« obvesti uporabnika o e-pošti, ki je bila premaknjena v mapo z neželeno pošto.",
|
||||
"quarantine_notification": "Obvestila o karanteni",
|
||||
"recent_successful_connections": "Videne uspešne povezave",
|
||||
"remove": "Odstrani",
|
||||
"running": "V teku",
|
||||
"save": "Shrani spremembe",
|
||||
"save_changes": "Shrani spremembe",
|
||||
"sender_acl_disabled": "<span class=\"badge fs-6 bg-danger\">Preverjanje pošiljatelja je onemogočeno</span>",
|
||||
"shared_aliases": "Skupni vzdevki",
|
||||
"show_sieve_filters": "Prikaži filter sita aktivnega uporabnika",
|
||||
"sogo_profile_reset": "Ponastavi profil SOGo",
|
||||
"sogo_profile_reset_help": "S tem boste uničili uporabnikov profil SOGo in <b>nepovratno izbrisali vse stike in podatke koledarja</b>.",
|
||||
"sogo_profile_reset_now": "Ponastavi profil zdaj",
|
||||
"spam_aliases": "Začasni vzdevki e-pošte",
|
||||
"spam_score_reset": "Ponastavi na privzete nastavitve strežnika",
|
||||
"spamfilter": "Filter neželene pošte",
|
||||
"spamfilter_behavior": "Ocena",
|
||||
"spamfilter_bl": "Črna lista",
|
||||
"spamfilter_default_score": "Privzete vrednosti",
|
||||
"spamfilter_green": "Zelena: to sporočilo ni neželena pošta",
|
||||
"spamfilter_hint": "Prva vrednost opisuje »nizko oceno neželene pošte«, druga pa »visoko oceno neželene pošte«.",
|
||||
"spamfilter_red": "Rdeča: To sporočilo je neželena pošta in ga bo strežnik zavrnil.",
|
||||
"spamfilter_table_action": "Dejanje",
|
||||
"spamfilter_table_add": "Dodaj element",
|
||||
"spamfilter_table_domain_policy": "ni na voljo (pravilnik domene)",
|
||||
"spamfilter_table_empty": "Ni podatkov za prikaz",
|
||||
"spamfilter_table_remove": "odstrani",
|
||||
"spamfilter_table_rule": "Pravilo",
|
||||
"spamfilter_wl": "Bela lista",
|
||||
"spamfilter_yellow": "Rumena: to sporočilo je morda neželena pošta, označeno bo kot neželena pošta in premaknjeno v mapo z neželeno pošto",
|
||||
"status": "Stanje",
|
||||
"sync_jobs": "Sinhronizacija opravil",
|
||||
"syncjob_check_log": "Preveri dnevnik",
|
||||
"syncjob_last_run_result": "Rezultat zadnjega zagona",
|
||||
"syncjob_EXIT_CONNECTION_FAILURE": "Težava s povezavo",
|
||||
"syncjob_EXIT_TLS_FAILURE": "Težava s šifrirano povezavo",
|
||||
"syncjob_EXIT_AUTHENTICATION_FAILURE": "Težava z overjanjem",
|
||||
"syncjob_EXIT_OVERQUOTA": "Ciljni poštni predal presega kvoto",
|
||||
"syncjob_EXIT_CONNECTION_FAILURE_HOST1": "Ni mogoče vzpostaviti povezave z oddaljenim strežnikom",
|
||||
"syncjob_EXIT_AUTHENTICATION_FAILURE_USER1": "Napačno uporabniško ime ali geslo",
|
||||
"tag_handling": "Nastavitev obravnave označene pošte",
|
||||
"tag_help_example": "Primer označenega e-poštnega naslova: jaz<b>+Facebook</b>@example.org",
|
||||
"tag_in_none": "Ne naredi ničesar",
|
||||
"tag_in_subfolder": "V podmapi",
|
||||
"tag_in_subject": "V zadevi",
|
||||
"text": "Besedilo",
|
||||
"tfa_info": "Dvofaktorska avtentikacija pomaga zaščititi vaš račun. Če jo omogočite, boste za prijavo v aplikacije ali storitve, ki ne podpirajo dvofaktorske avtentikacije (npr. poštni odjemalci), potrebovali gesla za aplikacije.",
|
||||
"tls_enforce_in": "Uveljavi dohodni TLS",
|
||||
"tls_enforce_out": "Uveljavi odhodni TLS",
|
||||
"tls_policy": "Pravilnik o šifriranju",
|
||||
"user_settings": "Uporabniške nastavitve",
|
||||
"username": "Uporabniško ime",
|
||||
"value": "Vrednost",
|
||||
"week": "teden",
|
||||
"weekly": "Tedensko",
|
||||
"weeks": "tedni",
|
||||
"with_app_password": "z geslom za aplikacijo",
|
||||
"year": "leto",
|
||||
"years": "leta",
|
||||
"waiting": "Čakanje",
|
||||
"q_all": "Vse kategorije",
|
||||
"syncjob_EX_OK": "Uspeh"
|
||||
},
|
||||
"warning": {
|
||||
"cannot_delete_self": "Prijavljenega uporabnika ni mogoče izbrisati",
|
||||
"domain_added_sogo_failed": "Domena je bila dodana, vendar ponovni zagon SOGo ni uspel. Preverite dnevnike strežnika.",
|
||||
"dovecot_restart_failed": "Dovecota ni uspelo znova zagnati, preverite dnevnike.",
|
||||
"fuzzy_learn_error": "Napaka učenja mehkega zgoščevanja: %s",
|
||||
"hash_not_found": "Zgoščena vrednost ni bila najdena ali je bila že izbrisana",
|
||||
"ip_invalid": "Preskočen neveljaven IP: %s",
|
||||
"is_not_primary_alias": "Preskočen neprimarni vzdevek %s",
|
||||
"no_active_admin": "Zadnjega aktivnega skrbnika ni mogoče deaktivirati",
|
||||
"quota_exceeded_scope": "Kvota domene presežena: V tem obsegu domene je mogoče ustvariti le neomejeno število poštnih predalov.",
|
||||
"session_token": "Neveljaven žeton obrazca: Neujemanje žetonov",
|
||||
"session_ua": "Neveljaven žeton obrazca: Napaka pri preverjanju uporabniškega agenta"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1309,4 +1309,4 @@
|
||||
"q_reject": "Reddedildi",
|
||||
"week": "Hafta"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1307,4 +1307,4 @@
|
||||
},
|
||||
"collapse_all": "Згорнути все"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -108,7 +108,8 @@
|
||||
"timeout2": "本地主机连接超时时间",
|
||||
"username": "用户名",
|
||||
"validate": "验证",
|
||||
"validation_success": "验证成功"
|
||||
"validation_success": "验证成功",
|
||||
"dry": "模拟同步(Dry run)"
|
||||
},
|
||||
"admin": {
|
||||
"access": "权限管理",
|
||||
@@ -358,7 +359,53 @@
|
||||
"ip_check_disabled": "IP 检查已禁用。你可透过以下路径启用<br> <strong>系统 > 配置 > 选项 > 页面自定义</strong>",
|
||||
"queue_unban": "解除封禁",
|
||||
"allowed_methods": "访问控制允许方式",
|
||||
"allowed_origins": "访问控制允许原"
|
||||
"allowed_origins": "访问控制允许原",
|
||||
"iam": "身份识别提供者",
|
||||
"iam_attribute_field": "Attribute 域",
|
||||
"iam_authorize_url": "Authorization endpoint",
|
||||
"iam_auth_flow": "认证流程",
|
||||
"iam_basedn": "Base DN",
|
||||
"iam_client_id": "客户端 ID",
|
||||
"iam_client_secret": "客户端凭据",
|
||||
"iam_client_scopes": "客户端 Scopes",
|
||||
"iam_default_template": "默认模板",
|
||||
"iam_default_template_description": "如果未为用户分配模板,则在创建邮箱时将使用默认模板,但在更新邮箱时不会使用默认模板。",
|
||||
"iam_description": "配置外部认证提供者<br>如果已设置好属性映射,用户在首次登录时将会自动创建其 Mailbox。",
|
||||
"iam_host": "Host",
|
||||
"iam_host_info": "请输入一个或多个 LDAP 主机,使用英文逗号分隔。",
|
||||
"iam_import_users": "导入用户",
|
||||
"iam_mapping": "属性映射",
|
||||
"iam_bindpass": "密码绑定(Bind Password)",
|
||||
"iam_periodic_full_sync": "周期性全量同步",
|
||||
"iam_port": "端口",
|
||||
"iam_realm": "Realm",
|
||||
"iam_redirect_url": "重定向 Url",
|
||||
"iam_rest_flow": "Mailpassword 流程",
|
||||
"iam_server_url": "服务器 Url",
|
||||
"iam_sso": "单点登录(SSO)",
|
||||
"iam_sync_interval": "同步/导入周期(min)",
|
||||
"iam_test_connection": "测试连接",
|
||||
"iam_token_url": "Token endpoint",
|
||||
"iam_userinfo_url": "User info endpoint",
|
||||
"iam_username_field": "Username 域",
|
||||
"iam_binddn": "Bind DN",
|
||||
"iam_use_ssl": "使用 SSL",
|
||||
"iam_use_tls": "使用 StartTLS",
|
||||
"iam_version": "版本",
|
||||
"ignore_ssl_error": "忽略 SSL 错误",
|
||||
"iam_auth_flow_info": "除了在单点登录(SSO)中使用的 Authorization Code 流程(在 Keycloak 中是标准流程)之外,mailcow 还支持使用 Credentials 的身份认证流程。Mailpassword 流程尝试通过 Keycloak 的 Admin REST API 验证用户凭据,mailcow 会从 Keycloak 中的 <code>mailcow_password</code> 属性中获取哈希后的密码。",
|
||||
"filter": "过滤",
|
||||
"iam_extra_permission": "要使以下设置生效,Keycloak 中的 mailcow 客户端需要一个 <code>服务账户(Service account)</code> 以及 <code>查看用户(view-users)</code> 的权限。",
|
||||
"domainadmin_quicklink": "隐藏指向域管理员登陆页面的快捷链接",
|
||||
"force_sso_text": "如果配置了外部的 OIDC 认证,这个选项隐藏默认的 mailcow 登陆界面,只显示单点登录(SSO)的按钮",
|
||||
"iam_login_provisioning": "登录时自动创建用户",
|
||||
"login_page": "登陆页面",
|
||||
"iam_use_ssl_info": "如果使用了 SSL,且端口被设置为 389,该端口将自动被覆盖为 636。",
|
||||
"quicklink_text": "显示或隐藏登陆表单下面指向其他登陆页面的快捷链接",
|
||||
"user_quicklink": "隐藏指向用户登陆页面的快捷链接",
|
||||
"admin_quicklink": "隐藏指向管理员登陆页面的快捷链接",
|
||||
"force_sso": "强制要求单点登录(SSO)",
|
||||
"user_link": "自定义链接"
|
||||
},
|
||||
"danger": {
|
||||
"access_denied": "访问被拒绝或者表单数据无效",
|
||||
@@ -495,7 +542,11 @@
|
||||
"webauthn_authenticator_failed": "找不到所选的 authenticator",
|
||||
"webauthn_publickey_failed": "没有为选定的身份验证器保存公钥",
|
||||
"webauthn_username_failed": "所选的 authenticator 属于另一个账户",
|
||||
"demo_mode_enabled": "演示模式已开启"
|
||||
"demo_mode_enabled": "演示模式已开启",
|
||||
"generic_server_error": "服务器错误。请联系您的管理员。",
|
||||
"authsource_in_use": "由于当前有一个或多个用户正在使用该身份提供者(IDP),因此无法更改或删除。",
|
||||
"iam_test_connection": "连接失败",
|
||||
"required_data_missing": "缺少需要的 %s 数据"
|
||||
},
|
||||
"debug": {
|
||||
"chart_this_server": "图表 (此服务器)",
|
||||
@@ -640,7 +691,7 @@
|
||||
"sieve_desc": "简短描述",
|
||||
"sieve_type": "过滤器类型",
|
||||
"skipcrossduplicates": "跳过其他文件夹中已存在的邮件(保留已经存在的邮件)",
|
||||
"sogo_access": "直接转发给 SOGo",
|
||||
"sogo_access": "直接转到 SOGo",
|
||||
"sogo_access_info": "登录后,用户会自动跳转到 SOGo。",
|
||||
"sogo_visible": "SOGo 显示的别名",
|
||||
"sogo_visible_info": "此设置只影响 SOGo 上可显示的对象 (指向本地邮箱的共享或非共享别名地址)。如果设置为隐藏,则别名地址不会作为可选发件人的下拉项显示。",
|
||||
@@ -744,7 +795,14 @@
|
||||
"new_password_confirm": "确认新密码",
|
||||
"reset_password": "重置密码",
|
||||
"request_reset_password": "请求重置密码",
|
||||
"invalid_pass_reset_token": "密码重置 token 无效或已过期。<br> 请重新获取新的密码重置链接。"
|
||||
"invalid_pass_reset_token": "密码重置 token 无效或已过期。<br> 请重新获取新的密码重置链接。",
|
||||
"login_user": "用户登录",
|
||||
"login_dadmin": "域管理员登录",
|
||||
"login_admin": "管理员登录",
|
||||
"login_linkstext": "不是正确的登陆页面?",
|
||||
"login_usertext": "以用户身份登陆",
|
||||
"login_domainadmintext": "以域管理员身份登陆",
|
||||
"login_admintext": "以管理员身份登陆"
|
||||
},
|
||||
"mailbox": {
|
||||
"action": "操作",
|
||||
@@ -848,7 +906,7 @@
|
||||
"recipient_map": "收件人映射",
|
||||
"recipient_map_info": "收件人映射用于在邮件被发送前替换收件人的地址。",
|
||||
"recipient_map_new": "新收件人",
|
||||
"recipient_map_new_info": "新收件人必须为合法的邮箱地址。",
|
||||
"recipient_map_new_info": "收件人映射的目标必须为合法的邮件地址或域名。",
|
||||
"recipient_map_old": "原收件人",
|
||||
"recipient_map_old_info": "原收件人必须为合法的邮箱地址。",
|
||||
"recipient_maps": "收件人映射",
|
||||
@@ -919,7 +977,8 @@
|
||||
"max_quota": "每个信箱的最大容量配额",
|
||||
"relay_unknown": "转发未知信箱",
|
||||
"templates": "模板",
|
||||
"template": "模板"
|
||||
"template": "模板",
|
||||
"iam": "身份提供者(IDP)"
|
||||
},
|
||||
"oauth2": {
|
||||
"access_denied": "请作为邮箱所有者登录以使用 OAuth2 授权。",
|
||||
@@ -950,7 +1009,7 @@
|
||||
"neutral_danger": "无危险等级",
|
||||
"notified": "已发送通知",
|
||||
"qhandler_success": "已成功向系统发送请求,现在你可以关闭这个窗口了。",
|
||||
"qid": "Rspamd QID",
|
||||
"qid": "Rspamd 队列ID(QID)",
|
||||
"qinfo": "隔离系统会把已被拒绝接收的邮件以及作为拷贝发送到垃圾箱的邮件保存到数据库中 (发件人<em>不</em>会知道)。\r\n <br>\"学习为垃圾并删除\" 会根据贝叶斯定理将消息作为垃圾学习并计算其模糊特征以拒绝未来收到相似消息。\r\n <br>请注意,这取决于你的系统资源,学习多个消息可能会花费较长时间。<br>黑名单中项目会被隔离系统排除。",
|
||||
"qitem": "隔离项目",
|
||||
"quarantine": "隔离",
|
||||
@@ -1097,7 +1156,9 @@
|
||||
"recovery_email_sent": "重置邮件已发送至 %s",
|
||||
"template_added": "新增了模板 %s",
|
||||
"template_modified": "模板 %s 的修改已保存",
|
||||
"template_removed": "模板 ID %s 已删除"
|
||||
"template_removed": "模板 ID %s 已删除",
|
||||
"iam_test_connection": "连接成功",
|
||||
"custom_login_modified": "登陆选项保存成功"
|
||||
},
|
||||
"tfa": {
|
||||
"api_register": "%s 使用了 Yubico Cloud API,请<a href=\"https://upgrade.yubico.com/getapikey/\" target=\"_blank\">在此</a>为你的密钥获取 API 密钥",
|
||||
@@ -1292,7 +1353,11 @@
|
||||
"password_reset_info": "如果不提供密码重置邮箱,此功能将无法使用。",
|
||||
"pushover_sound": "声音",
|
||||
"value": "值",
|
||||
"attribute": "属性"
|
||||
"attribute": "属性",
|
||||
"protocols": "协议",
|
||||
"authentication": "认证",
|
||||
"tfa_info": "两步验证有助于保护您的账户安全。启用后,对于不支持两步验证的应用程序或服务(例如邮件客户端),需要使用应用专用密码进行登录。",
|
||||
"overview": "概览"
|
||||
},
|
||||
"warning": {
|
||||
"cannot_delete_self": "不能删除已登录的用户",
|
||||
@@ -1332,4 +1397,4 @@
|
||||
"loadingRecords": "加载中...",
|
||||
"zeroRecords": "未找到符合条件的记录"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -94,7 +94,8 @@ elseif (isset($_SERVER['HTTP_X_ORIGINAL_URI']) && strcasecmp(substr($_SERVER['HT
|
||||
!empty($email) &&
|
||||
filter_var($email, FILTER_VALIDATE_EMAIL) &&
|
||||
is_array($_SESSION[$session_var_user_allowed]) &&
|
||||
in_array($email, $_SESSION[$session_var_user_allowed])
|
||||
in_array($email, $_SESSION[$session_var_user_allowed]) &&
|
||||
!$_SESSION['pending_pw_update']
|
||||
) {
|
||||
$username = $email;
|
||||
$password = file_get_contents("/etc/sogo-sso/sogo-sso.pass");
|
||||
|
||||
@@ -51,7 +51,41 @@
|
||||
</div></p>
|
||||
</form>
|
||||
</div>
|
||||
<legend>{{ lang.admin.app_links }}</legend><hr />
|
||||
<legend style="padding-top:20px" unselectable="on">{{ lang.admin.login_page }}</legend><hr />
|
||||
<div>
|
||||
<form class="form" data-id="custom_login" role="form" method="post">
|
||||
<p class="text-muted">{{ lang.admin.quicklink_text }}</p>
|
||||
<div class="ms-2 mb-1">
|
||||
<input class="form-check-input" type="checkbox" value="1" name="hide_user_quicklink" id="hide_user_quicklink" {% if custom_login.hide_user_quicklink == 1 %}checked{% endif %}>
|
||||
<label class="form-check-label" for="hide_user_quicklink">
|
||||
{{ lang.admin.user_quicklink|raw }}
|
||||
</label>
|
||||
</div>
|
||||
<div class="ms-2 mb-1">
|
||||
<input class="form-check-input" type="checkbox" value="1" name="hide_domainadmin_quicklink" id="hide_domainadmin_quicklink" {% if custom_login.hide_domainadmin_quicklink == 1 %}checked{% endif %}>
|
||||
<label class="form-check-label" for="hide_domainadmin_quicklink">
|
||||
{{ lang.admin.domainadmin_quicklink|raw }}
|
||||
</label>
|
||||
</div>
|
||||
<div class="ms-2 mb-4">
|
||||
<input class="form-check-input" type="checkbox" value="1" name="hide_admin_quicklink" id="hide_admin_quicklink" {% if custom_login.hide_admin_quicklink == 1 %}checked{% endif %}>
|
||||
<label class="form-check-label" for="hide_admin_quicklink">
|
||||
{{ lang.admin.admin_quicklink|raw }}
|
||||
</label>
|
||||
</div>
|
||||
<p class="text-muted">{{ lang.admin.force_sso_text|raw }}</p>
|
||||
<div class="ms-2 mb-4">
|
||||
<input class="form-check-input" type="checkbox" value="1" name="force_sso" id="force_sso" {% if custom_login.force_sso == 1 %}checked{% endif %}>
|
||||
<label class="form-check-label" for="force_sso">
|
||||
{{ lang.admin.force_sso|raw }}
|
||||
</label>
|
||||
</div>
|
||||
<p><div class="btn-group">
|
||||
<button class="btn btn-sm btn-xs-half d-block d-sm-inline btn-success" data-action="edit_selected" data-item="admin" data-id="custom_login" data-reload="no" data-api-url='edit/custom_login' data-api-attr='{}' href="#"><i class="bi bi-check-lg"></i> {{ lang.admin.save }}</button>
|
||||
</div></p>
|
||||
</form>
|
||||
</div>
|
||||
<legend style="padding-top:20px">{{ lang.admin.app_links }}</legend><hr />
|
||||
<p class="text-muted">{{ lang.admin.merged_vars_hint|raw }}</p>
|
||||
<form class="form-inline" data-id="app_links" role="form" method="post">
|
||||
<table class="table table-condensed" style="white-space: nowrap;" id="app_link_table">
|
||||
|
||||
@@ -110,7 +110,7 @@
|
||||
<p>
|
||||
<span class="badge fs-7 bg-info d-block d-sm-inline-block">
|
||||
<i class="bi bi-funnel-fill"></i>
|
||||
<a href="https://bgp.he.net/ip/{{ active_ban.ip }}" target="_blank">
|
||||
<a href="https://bgp.tools/prefix/{{ active_ban.ip }}" target="_blank">
|
||||
{{ active_ban.network }}
|
||||
</a>
|
||||
({{ active_ban.banned_until }})
|
||||
@@ -130,7 +130,7 @@
|
||||
<p>
|
||||
<span class="badge fs-7 bg-danger d-block d-sm-inline-block">
|
||||
<i class="bi bi-funnel-fill"></i>
|
||||
<a href="https://bgp.he.net/ip/{{ perm_ban.ip }}" target="_blank">
|
||||
<a href="https://bgp.tools/prefix/{{ perm_ban.ip }}" target="_blank">
|
||||
{{ perm_ban.network }}
|
||||
</a>
|
||||
</span>
|
||||
|
||||
@@ -64,10 +64,42 @@
|
||||
</div>
|
||||
<div class="row mb-2">
|
||||
<div class="col-md-3 d-flex align-items-center justify-content-md-end">
|
||||
<label class="control-label" for="iam_keycloak_redirecturl">{{ lang.admin.iam_redirect_url }}:</label>
|
||||
<label class="control-label">{{ lang.admin.iam_redirect_url }}:</label>
|
||||
</div>
|
||||
<div class="col-12 col-md-9 col-lg-4">
|
||||
<input type="text" class="form-control" id="iam_keycloak_redirecturl" name="redirect_url" value="{{ iam_settings.redirect_url }}" required>
|
||||
<div class="row px-2 align-items-center">
|
||||
<span class="col-10 p-0 pe-2">
|
||||
<input type="text" class="form-control" name="redirect_url" value="{{ iam_settings.redirect_url }}" required>
|
||||
</span>
|
||||
<div class="col-2 p-0 d-flex">
|
||||
<button class="btn btn-sm d-block d-sm-inline btn-secondary ms-auto iam_redirect_add_keycloak"><i class="bi bi-plus-lg"></i></button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row mb-2" id="iam_keycloak_redirect_list">
|
||||
<input type="hidden" name="redirect_url_extra" value="">
|
||||
{% for key, url in iam_settings.redirect_url_extra %}
|
||||
<div class="offset-md-3 col-12 col-md-9 col-lg-4 mb-2">
|
||||
<div class="row px-2">
|
||||
<div class="col-10 p-0 pe-2">
|
||||
<input type="text" class="form-control me-2" name="redirect_url_extra" value="{{ iam_settings.redirect_url_extra[key] }}">
|
||||
</div>
|
||||
<div class="col-2 p-0 d-flex">
|
||||
<button class="iam_keycloak_redirect_del btn btn-sm d-block d-sm-inline btn-secondary ms-auto"><i class="bi bi-x-lg"></i></button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% endfor %}
|
||||
<div class="offset-md-3 col-12 col-md-9 col-lg-4 mb-2">
|
||||
<div class="row px-2">
|
||||
<div class="col-10 p-0 pe-2">
|
||||
<input type="text" class="form-control me-2" name="redirect_url_extra" value="">
|
||||
</div>
|
||||
<div class="col-2 p-0 d-flex">
|
||||
<button class="iam_keycloak_redirect_del btn btn-sm d-block d-sm-inline btn-secondary ms-auto"><i class="bi bi-x-lg"></i></button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row mb-4">
|
||||
@@ -187,6 +219,16 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row mb-2">
|
||||
<div class="col-md-3 d-flex align-items-center justify-content-md-end">
|
||||
<label class="control-label">{{ lang.admin.iam_login_provisioning }}</label>
|
||||
</div>
|
||||
<div class="col-12 col-md-9">
|
||||
<div class="form-check form-switch">
|
||||
<input class="form-check-input" type="checkbox" role="switch" name="login_provisioning" value="1" {% if iam_settings.login_provisioning == 1 %}checked{% endif %}>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row mb-2">
|
||||
<div class="col-md-3 d-flex align-items-center justify-content-md-end">
|
||||
<label class="control-label">{{ lang.admin.iam_periodic_full_sync }}</label>
|
||||
@@ -274,10 +316,42 @@
|
||||
</div>
|
||||
<div class="row mb-2">
|
||||
<div class="col-md-3 d-flex align-items-center justify-content-md-end">
|
||||
<label class="control-label" for="iam_redirect_url">{{ lang.admin.iam_redirect_url }}:</label>
|
||||
<label class="control-label">{{ lang.admin.iam_redirect_url }}:</label>
|
||||
</div>
|
||||
<div class="col-12 col-md-9 col-lg-4">
|
||||
<input type="text" class="form-control" id="iam_redirect_url" name="redirect_url" value="{{ iam_settings.redirect_url }}" required>
|
||||
<div class="row px-2 align-items-center">
|
||||
<span class="col-10 p-0 pe-2">
|
||||
<input type="text" class="form-control" name="redirect_url" value="{{ iam_settings.redirect_url }}" required>
|
||||
</span>
|
||||
<div class="col-2 p-0 d-flex">
|
||||
<button class="btn btn-sm d-block d-sm-inline btn-secondary ms-auto iam_redirect_add_generic"><i class="bi bi-plus-lg"></i></button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row mb-2" id="iam_generic_redirect_list">
|
||||
<input type="hidden" name="redirect_url_extra" value="">
|
||||
{% for key, url in iam_settings.redirect_url_extra %}
|
||||
<div class="offset-md-3 col-12 col-md-9 col-lg-4 mb-2">
|
||||
<div class="row px-2">
|
||||
<div class="col-10 p-0 pe-2">
|
||||
<input type="text" class="form-control me-2" name="redirect_url_extra" value="{{ iam_settings.redirect_url_extra[key] }}">
|
||||
</div>
|
||||
<div class="col-2 p-0 d-flex">
|
||||
<button class="iam_generic_redirect_del btn btn-sm d-block d-sm-inline btn-secondary ms-auto"><i class="bi bi-x-lg"></i></button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% endfor %}
|
||||
<div class="offset-md-3 col-12 col-md-9 col-lg-4 mb-2">
|
||||
<div class="row px-2">
|
||||
<div class="col-10 p-0 pe-2">
|
||||
<input type="text" class="form-control me-2" name="redirect_url_extra" value="">
|
||||
</div>
|
||||
<div class="col-2 p-0 d-flex">
|
||||
<button class="iam_generic_redirect_del btn btn-sm d-block d-sm-inline btn-secondary ms-auto"><i class="bi bi-x-lg"></i></button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row mb-4">
|
||||
@@ -366,7 +440,7 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row mb-4">
|
||||
<div class="row mb-2">
|
||||
<div class="col-md-3 d-flex align-items-center justify-content-md-end">
|
||||
<label class="control-label">{{ lang.admin.ignore_ssl_error }}</label>
|
||||
</div>
|
||||
@@ -376,6 +450,16 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row mb-4">
|
||||
<div class="col-md-3 d-flex align-items-center justify-content-md-end">
|
||||
<label class="control-label">{{ lang.admin.iam_login_provisioning }}</label>
|
||||
</div>
|
||||
<div class="col-12 col-md-9">
|
||||
<div class="form-check form-switch">
|
||||
<input class="form-check-input" type="checkbox" role="switch" name="login_provisioning" value="1" {% if iam_settings.login_provisioning == 1 %}checked{% endif %}>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row mt-4 mb-2">
|
||||
<div class="offset-md-3 col-12 col-md-9 d-flex flex-wrap">
|
||||
<div class="btn-group mb-2">
|
||||
@@ -582,6 +666,16 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row mb-2">
|
||||
<div class="col-md-3 d-flex align-items-center justify-content-md-end">
|
||||
<label class="control-label">{{ lang.admin.iam_login_provisioning }}</label>
|
||||
</div>
|
||||
<div class="col-12 col-md-9">
|
||||
<div class="form-check form-switch">
|
||||
<input class="form-check-input" type="checkbox" role="switch" name="login_provisioning" value="1" {% if iam_settings.login_provisioning == 1 %}checked{% endif %}>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row mb-2">
|
||||
<div class="col-md-3 d-flex align-items-center justify-content-md-end">
|
||||
<label class="control-label">{{ lang.admin.iam_periodic_full_sync }}</label>
|
||||
|
||||
@@ -5,13 +5,28 @@
|
||||
{% block content %}
|
||||
<div class="row mb-4" style="margin-top: 60px">
|
||||
<div class="col-12 col-md-7 col-lg-6 col-xl-5 ms-auto me-auto">
|
||||
|
||||
<div class="card">
|
||||
<div class="card-header d-flex align-items-center">
|
||||
<div class="card-header d-flex align-items-center text-break">
|
||||
<i class="bi bi-person-fill me-2"></i> {{ lang.login.login_admin }}
|
||||
<div class="ms-auto form-check form-switch my-auto d-flex align-items-center">
|
||||
<label class="form-check-label"><i class="bi bi-moon-fill"></i></label>
|
||||
<input class="form-check-input ms-2" type="checkbox" id="dark-mode-toggle">
|
||||
</div>
|
||||
<div class="ms-4 d-grid d-sm-block">
|
||||
<button type="button" {% if available_languages|length == 1 %}disabled="true"{% endif %} class="text-secondary btn p-0 border-0 bg-transparent ms-auto dropdown-toggle" data-bs-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
|
||||
<span class="flag-icon flag-icon-{{ mailcow_locale[-2:] }}"></span>
|
||||
</button>
|
||||
<ul class="dropdown-menu ms-auto login">
|
||||
{% for key, val in available_languages %}
|
||||
<li>
|
||||
<a class="dropdown-item {% if mailcow_locale == key %}active{% endif %}" href="?{{ query_string({'lang': key}) }}">
|
||||
<span class="flag-icon flag-icon-{{ key[-2:] }}"></span>{{ val }}
|
||||
</a>
|
||||
</li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<div class="text-center mailcow-logo mb-4">
|
||||
@@ -37,23 +52,10 @@
|
||||
</div>
|
||||
</div>
|
||||
<div class="d-flex justify-content-between mt-4" style="position: relative">
|
||||
<button type="submit" class="btn btn-xs-lg btn-success" value="Login">{{ lang.login.login }}</button> <div class="d-grid d-sm-block">
|
||||
<button type="button" {% if available_languages|length == 1 %}disabled="true"{% endif %} class="btn btn-secondary ms-auto dropdown-toggle" data-bs-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
|
||||
<span class="flag-icon flag-icon-{{ mailcow_locale[-2:] }}"></span>
|
||||
</button>
|
||||
<ul class="dropdown-menu ms-auto login">
|
||||
{% for key, val in available_languages %}
|
||||
<li>
|
||||
<a class="dropdown-item {% if mailcow_locale == key %}active{% endif %}" href="?{{ query_string({'lang': key}) }}">
|
||||
<span class="flag-icon flag-icon-{{ key[-2:] }}"></span>{{ val }}
|
||||
</a>
|
||||
</li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
</div>
|
||||
<button type="submit" class="btn btn-xs-lg btn-success w-100 mt-2 mx-auto" style="max-width: 400px;" value="Login">{{ lang.login.login }}</button>
|
||||
</div>
|
||||
</form>
|
||||
<div class="hr-title mt-5"><strong>{{ lang.login.other_logins }}</strong></div>
|
||||
<div class="hr-title"><strong>{{ lang.login.other_logins }}</strong></div>
|
||||
<div class="d-flex flex-column align-items-center">
|
||||
<a class="btn btn-xs-lg btn-secondary w-100" style="max-width: 400px;" href="#" id="fido2-login"><i class="bi bi-shield-fill-check"></i> {{ lang.login.fido2_webauthn }}</a>
|
||||
</div>
|
||||
@@ -86,6 +88,15 @@
|
||||
{% endif %}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{% if custom_login.hide_user_quicklink != 1 or custom_login.hide_domainadmin_quicklink != 1 %}
|
||||
<p class="text-center mt-3 text-muted" style="font-size: 0.9rem;">
|
||||
{{ lang.login.login_linkstext }}<br>
|
||||
{% if custom_login.hide_user_quicklink != 1 %}<a href="/">{{ lang.login.login_usertext }}</a>{% endif %}
|
||||
{% if custom_login.hide_user_quicklink != 1 and custom_login.hide_domainadmin_quicklink != 1 %}|{% endif %}
|
||||
{% if custom_login.hide_domainadmin_quicklink != 1 %}<a href="/domainadmin">{{ lang.login.login_domainadmintext }}</a>{% endif %}
|
||||
</p>
|
||||
{% endif %}
|
||||
</div>
|
||||
</div>
|
||||
{% endblock %}
|
||||
|
||||
@@ -5,13 +5,28 @@
|
||||
{% block content %}
|
||||
<div class="row mb-4" style="margin-top: 60px">
|
||||
<div class="col-12 col-md-7 col-lg-6 col-xl-5 ms-auto me-auto">
|
||||
|
||||
<div class="card">
|
||||
<div class="card-header d-flex align-items-center">
|
||||
<div class="card-header d-flex align-items-center text-break">
|
||||
<i class="bi bi-person-fill me-2"></i> {{ lang.login.login_dadmin }}
|
||||
<div class="ms-auto form-check form-switch my-auto d-flex align-items-center">
|
||||
<label class="form-check-label"><i class="bi bi-moon-fill"></i></label>
|
||||
<input class="form-check-input ms-2" type="checkbox" id="dark-mode-toggle">
|
||||
</div>
|
||||
<div class="ms-4 d-grid d-sm-block">
|
||||
<button type="button" {% if available_languages|length == 1 %}disabled="true"{% endif %} class="text-secondary btn p-0 border-0 bg-transparent ms-auto dropdown-toggle" data-bs-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
|
||||
<span class="flag-icon flag-icon-{{ mailcow_locale[-2:] }}"></span>
|
||||
</button>
|
||||
<ul class="dropdown-menu ms-auto login">
|
||||
{% for key, val in available_languages %}
|
||||
<li>
|
||||
<a class="dropdown-item {% if mailcow_locale == key %}active{% endif %}" href="?{{ query_string({'lang': key}) }}">
|
||||
<span class="flag-icon flag-icon-{{ key[-2:] }}"></span>{{ val }}
|
||||
</a>
|
||||
</li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<div class="text-center mailcow-logo mb-4">
|
||||
@@ -37,23 +52,10 @@
|
||||
</div>
|
||||
</div>
|
||||
<div class="d-flex justify-content-between mt-4" style="position: relative">
|
||||
<button type="submit" class="btn btn-xs-lg btn-success" value="Login">{{ lang.login.login }}</button> <div class="d-grid d-sm-block">
|
||||
<button type="button" {% if available_languages|length == 1 %}disabled="true"{% endif %} class="btn btn-secondary ms-auto dropdown-toggle" data-bs-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
|
||||
<span class="flag-icon flag-icon-{{ mailcow_locale[-2:] }}"></span>
|
||||
</button>
|
||||
<ul class="dropdown-menu ms-auto login">
|
||||
{% for key, val in available_languages %}
|
||||
<li>
|
||||
<a class="dropdown-item {% if mailcow_locale == key %}active{% endif %}" href="?{{ query_string({'lang': key}) }}">
|
||||
<span class="flag-icon flag-icon-{{ key[-2:] }}"></span>{{ val }}
|
||||
</a>
|
||||
</li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
</div>
|
||||
<button type="submit" class="btn btn-xs-lg btn-success w-100 mt-2 mx-auto" style="max-width: 400px;" value="Login">{{ lang.login.login }}</button>
|
||||
</div>
|
||||
</form>
|
||||
<div class="hr-title mt-5"><strong>{{ lang.login.other_logins }}</strong></div>
|
||||
<div class="hr-title"><strong>{{ lang.login.other_logins }}</strong></div>
|
||||
<div class="d-flex flex-column align-items-center">
|
||||
<a class="btn btn-xs-lg btn-secondary w-100" style="max-width: 400px;" href="#" id="fido2-login"><i class="bi bi-shield-fill-check"></i> {{ lang.login.fido2_webauthn }}</a>
|
||||
</div>
|
||||
@@ -86,6 +88,15 @@
|
||||
{% endif %}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{% if custom_login.hide_user_quicklink != 1 or custom_login.hide_admin_quicklink != 1 %}
|
||||
<p class="text-center mt-3 text-muted" style="font-size: 0.9rem;">
|
||||
{{ lang.login.login_linkstext }}<br>
|
||||
{% if custom_login.hide_user_quicklink != 1 %}<a href="/">{{ lang.login.login_usertext }}</a>{% endif %}
|
||||
{% if custom_login.hide_user_quicklink != 1 and custom_login.hide_admin_quicklink != 1 %}|{% endif %}
|
||||
{% if custom_login.hide_admin_quicklink != 1 %}<a href="/admin">{{ lang.login.login_admintext }}</a>{% endif %}
|
||||
</p>
|
||||
{% endif %}
|
||||
</div>
|
||||
</div>
|
||||
{% endblock %}
|
||||
|
||||
@@ -5,13 +5,30 @@
|
||||
{% block content %}
|
||||
<div class="row mb-4" style="margin-top: 60px">
|
||||
<div class="col-12 col-md-7 col-lg-6 col-xl-5 ms-auto me-auto">
|
||||
|
||||
<div class="card">
|
||||
<div class="card-header d-flex align-items-center">
|
||||
<div class="card-header d-flex align-items-center text-break">
|
||||
<i class="bi bi-person-fill me-2"></i> {{ lang.login.login_user }}
|
||||
<div class="ms-auto form-check form-switch my-auto d-flex align-items-center">
|
||||
<label class="form-check-label"><i class="bi bi-moon-fill"></i></label>
|
||||
<input class="form-check-input ms-2" type="checkbox" id="dark-mode-toggle">
|
||||
</div>
|
||||
{% if not oauth2_request %}
|
||||
<div class="ms-4 d-grid d-sm-block">
|
||||
<button type="button" {% if available_languages|length == 1 %}disabled="true"{% endif %} class="text-secondary btn p-0 border-0 bg-transparent ms-auto dropdown-toggle" data-bs-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
|
||||
<span class="flag-icon flag-icon-{{ mailcow_locale[-2:] }}"></span>
|
||||
</button>
|
||||
<ul class="dropdown-menu ms-auto login">
|
||||
{% for key, val in available_languages %}
|
||||
<li>
|
||||
<a class="dropdown-item {% if mailcow_locale == key %}active{% endif %}" href="?{{ query_string({'lang': key}) }}">
|
||||
<span class="flag-icon flag-icon-{{ key[-2:] }}"></span>{{ val }}
|
||||
</a>
|
||||
</li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
</div>
|
||||
{% endif %}
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<div class="text-center mailcow-logo mb-4">
|
||||
@@ -25,6 +42,7 @@
|
||||
{% if is_mobileconfig %}
|
||||
<div class="my-4 alert alert-info ">{{ lang.login.mobileconfig_info }}</div>
|
||||
{% endif %}
|
||||
{% if custom_login.force_sso != 1 %}
|
||||
<form method="post" autofill="off">
|
||||
<div class="d-flex mt-3">
|
||||
<label class="visually-hidden" for="login_user">{{ lang.login.username }}</label>
|
||||
@@ -40,35 +58,22 @@
|
||||
<input name="pass_user" type="password" id="pass_user" class="form-control" placeholder="{{ lang.login.password }}" required="" autocomplete="current-password">
|
||||
</div>
|
||||
</div>
|
||||
<div class="mt-2 text-muted" style="font-size: 0.9rem;">
|
||||
<a href="/reset-password">{{ lang.login.forgot_password }}</a>
|
||||
</div>
|
||||
<div class="d-flex justify-content-between mt-4" style="position: relative">
|
||||
<button type="submit" class="btn btn-xs-lg btn-success" value="Login">{{ lang.login.login }}</button>
|
||||
{% if not oauth2_request %}
|
||||
<div class="d-grid d-sm-block">
|
||||
<button type="button" {% if available_languages|length == 1 %}disabled="true"{% endif %} class="btn btn-secondary ms-auto dropdown-toggle" data-bs-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
|
||||
<span class="flag-icon flag-icon-{{ mailcow_locale[-2:] }}"></span>
|
||||
</button>
|
||||
<ul class="dropdown-menu ms-auto login">
|
||||
{% for key, val in available_languages %}
|
||||
<li>
|
||||
<a class="dropdown-item {% if mailcow_locale == key %}active{% endif %}" href="?{{ query_string({'lang': key}) }}">
|
||||
<span class="flag-icon flag-icon-{{ key[-2:] }}"></span>{{ val }}
|
||||
</a>
|
||||
</li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
</div>
|
||||
{% endif %}
|
||||
<button type="submit" class="btn btn-xs-lg btn-success w-100 mt-2 mx-auto" style="max-width: 400px;" value="Login">{{ lang.login.login }}</button>
|
||||
</div>
|
||||
</form>
|
||||
<div class="mt-3">
|
||||
<a href="/reset-password">{{ lang.login.forgot_password }}</a>
|
||||
</div>
|
||||
<div class="hr-title mt-5"><strong>{{ lang.login.other_logins }}</strong></div>
|
||||
<div class="hr-title"><strong>{{ lang.login.other_logins }}</strong></div>
|
||||
{% endif %}
|
||||
<div class="d-flex flex-column align-items-center">
|
||||
{% if has_iam_sso %}
|
||||
<a class="btn btn-xs-lg btn-secondary w-100 mt-2" style="max-width: 400px;" href="/?iam_sso=1"><i class="bi bi-cloud-arrow-up-fill"></i> {{ lang.admin.iam_sso }}</a>
|
||||
{% endif %}
|
||||
{% if custom_login.force_sso != 1 %}
|
||||
<a class="btn btn-xs-lg btn-secondary w-100 mt-2" style="max-width: 400px;" href="#" id="fido2-login"><i class="bi bi-shield-fill-check"></i> {{ lang.login.fido2_webauthn }}</a>
|
||||
{% endif %}
|
||||
</div>
|
||||
{% if login_delay %}
|
||||
<p><div class="my-4 alert alert-info">{{ lang.login.delayed|format(login_delay) }}</b></div></p>
|
||||
@@ -96,9 +101,20 @@
|
||||
{% endfor %}
|
||||
{% endfor %}
|
||||
</div>
|
||||
<div>
|
||||
</div>
|
||||
{% endif %}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{% if custom_login.hide_admin_quicklink != 1 or custom_login.hide_domainadmin_quicklink != 1 %}
|
||||
<p class="text-center mt-3 text-muted" style="font-size: 0.9rem;">
|
||||
{{ lang.login.login_linkstext }}<br>
|
||||
{% if custom_login.hide_admin_quicklink != 1 %}<a href="/admin">{{ lang.login.login_admintext }}</a>{% endif %}
|
||||
{% if custom_login.hide_admin_quicklink != 1 and custom_login.hide_domainadmin_quicklink != 1 %}|{% endif %}
|
||||
{% if custom_login.hide_domainadmin_quicklink != 1 %}<a href="/domainadmin">{{ lang.login.login_domainadmintext }}</a>{% endif %}
|
||||
</p>
|
||||
{% endif %}
|
||||
</div>
|
||||
</div>
|
||||
{% if not oauth2_request and ui_texts.help_text %}
|
||||
|
||||
@@ -24,7 +24,7 @@ services:
|
||||
stop_grace_period: 45s
|
||||
volumes:
|
||||
- mysql-vol-1:/var/lib/mysql/
|
||||
- mysql-socket-vol-1:/var/run/mysqld/
|
||||
- mysql-socket-vol-1:/var/run/mysqld/:z
|
||||
- ./data/conf/mysql/:/etc/mysql/conf.d/:ro,Z
|
||||
environment:
|
||||
- TZ=${TZ}
|
||||
@@ -84,7 +84,7 @@ services:
|
||||
- clamd
|
||||
|
||||
rspamd-mailcow:
|
||||
image: ghcr.io/mailcow/rspamd:2.1
|
||||
image: ghcr.io/mailcow/rspamd:2.2
|
||||
stop_grace_period: 30s
|
||||
depends_on:
|
||||
- dovecot-mailcow
|
||||
@@ -134,7 +134,7 @@ services:
|
||||
- ./data/web/inc/functions.ratelimit.inc.php:/mailcowauth/functions.ratelimit.inc.php:z
|
||||
- ./data/web/inc/functions.acl.inc.php:/mailcowauth/functions.acl.inc.php:z
|
||||
- rspamd-vol-1:/var/lib/rspamd
|
||||
- mysql-socket-vol-1:/var/run/mysqld/
|
||||
- mysql-socket-vol-1:/var/run/mysqld/:z
|
||||
- ./data/conf/sogo/:/etc/sogo/:z
|
||||
- ./data/conf/rspamd/meta_exporter:/meta_exporter:ro,z
|
||||
- ./data/conf/phpfpm/crons:/crons:z
|
||||
@@ -176,6 +176,7 @@ services:
|
||||
- COMPOSE_PROJECT_NAME=${COMPOSE_PROJECT_NAME:-mailcow-dockerized}
|
||||
- SKIP_FTS=${SKIP_FTS:-y}
|
||||
- SKIP_CLAMD=${SKIP_CLAMD:-n}
|
||||
- SKIP_OLEFY=${SKIP_OLEFY:-n}
|
||||
- SKIP_SOGO=${SKIP_SOGO:-n}
|
||||
- ALLOW_ADMIN_EMAIL_LOGIN=${ALLOW_ADMIN_EMAIL_LOGIN:-n}
|
||||
- MASTER=${MASTER:-y}
|
||||
@@ -229,7 +230,7 @@ services:
|
||||
- ./data/conf/sogo/custom-fulllogo.png:/usr/lib/GNUstep/SOGo/WebServerResources/img/sogo-logo.png:z
|
||||
- ./data/conf/sogo/custom-theme.js:/usr/lib/GNUstep/SOGo/WebServerResources/js/theme.js:z
|
||||
- ./data/conf/sogo/custom-sogo.js:/usr/lib/GNUstep/SOGo/WebServerResources/js/custom-sogo.js:z
|
||||
- mysql-socket-vol-1:/var/run/mysqld/
|
||||
- mysql-socket-vol-1:/var/run/mysqld/:z
|
||||
- sogo-web-vol-1:/sogo_web
|
||||
- sogo-userdata-backup-vol-1:/sogo_backup
|
||||
labels:
|
||||
@@ -250,7 +251,7 @@ services:
|
||||
- sogo
|
||||
|
||||
dovecot-mailcow:
|
||||
image: ghcr.io/mailcow/dovecot:2.33
|
||||
image: ghcr.io/mailcow/dovecot:2.34
|
||||
depends_on:
|
||||
- mysql-mailcow
|
||||
- netfilter-mailcow
|
||||
@@ -271,7 +272,7 @@ services:
|
||||
- ./data/conf/rspamd/custom/:/etc/rspamd/custom:z
|
||||
- ./data/assets/templates:/templates:z
|
||||
- rspamd-vol-1:/var/lib/rspamd
|
||||
- mysql-socket-vol-1:/var/run/mysqld/
|
||||
- mysql-socket-vol-1:/var/run/mysqld/:z
|
||||
environment:
|
||||
- DOVECOT_MASTER_USER=${DOVECOT_MASTER_USER:-}
|
||||
- DOVECOT_MASTER_PASS=${DOVECOT_MASTER_PASS:-}
|
||||
@@ -350,7 +351,7 @@ services:
|
||||
- postfix-vol-1:/var/spool/postfix
|
||||
- crypt-vol-1:/var/lib/zeyple
|
||||
- rspamd-vol-1:/var/lib/rspamd
|
||||
- mysql-socket-vol-1:/var/run/mysqld/
|
||||
- mysql-socket-vol-1:/var/run/mysqld/:z
|
||||
environment:
|
||||
- LOG_LINES=${LOG_LINES:-9999}
|
||||
- TZ=${TZ}
|
||||
@@ -439,12 +440,11 @@ services:
|
||||
condition: service_started
|
||||
unbound-mailcow:
|
||||
condition: service_healthy
|
||||
image: ghcr.io/mailcow/acme:1.92
|
||||
image: ghcr.io/mailcow/acme:1.93
|
||||
dns:
|
||||
- ${IPV4_NETWORK:-172.22.1}.254
|
||||
environment:
|
||||
- LOG_LINES=${LOG_LINES:-9999}
|
||||
- ACME_CONTACT=${ACME_CONTACT:-}
|
||||
- ADDITIONAL_SAN=${ADDITIONAL_SAN}
|
||||
- AUTODISCOVER_SAN=${AUTODISCOVER_SAN:-y}
|
||||
- MAILCOW_HOSTNAME=${MAILCOW_HOSTNAME}
|
||||
@@ -469,7 +469,7 @@ services:
|
||||
- ./data/web/.well-known/acme-challenge:/var/www/acme:z
|
||||
- ./data/assets/ssl:/var/lib/acme/:z
|
||||
- ./data/assets/ssl-example:/var/lib/ssl-example/:ro,Z
|
||||
- mysql-socket-vol-1:/var/run/mysqld/
|
||||
- mysql-socket-vol-1:/var/run/mysqld/:z
|
||||
restart: always
|
||||
networks:
|
||||
mailcow-network:
|
||||
@@ -497,14 +497,14 @@ services:
|
||||
- /lib/modules:/lib/modules:ro
|
||||
|
||||
watchdog-mailcow:
|
||||
image: ghcr.io/mailcow/watchdog:2.07
|
||||
image: ghcr.io/mailcow/watchdog:2.08
|
||||
dns:
|
||||
- ${IPV4_NETWORK:-172.22.1}.254
|
||||
tmpfs:
|
||||
- /tmp
|
||||
volumes:
|
||||
- rspamd-vol-1:/var/lib/rspamd
|
||||
- mysql-socket-vol-1:/var/run/mysqld/
|
||||
- mysql-socket-vol-1:/var/run/mysqld/:z
|
||||
- postfix-vol-1:/var/spool/postfix
|
||||
- ./data/assets/ssl:/etc/ssl/mail/:ro,z
|
||||
restart: always
|
||||
@@ -538,6 +538,7 @@ services:
|
||||
- IP_BY_DOCKER_API=${IP_BY_DOCKER_API:-0}
|
||||
- CHECK_UNBOUND=${CHECK_UNBOUND:-1}
|
||||
- SKIP_CLAMD=${SKIP_CLAMD:-n}
|
||||
- SKIP_OLEFY=${SKIP_OLEFY:-n}
|
||||
- SKIP_LETS_ENCRYPT=${SKIP_LETS_ENCRYPT:-n}
|
||||
- SKIP_SOGO=${SKIP_SOGO:-n}
|
||||
- HTTPS_PORT=${HTTPS_PORT:-443}
|
||||
@@ -589,7 +590,7 @@ services:
|
||||
- dockerapi
|
||||
|
||||
olefy-mailcow:
|
||||
image: ghcr.io/mailcow/olefy:1.14
|
||||
image: ghcr.io/mailcow/olefy:1.15
|
||||
restart: always
|
||||
environment:
|
||||
- TZ=${TZ}
|
||||
@@ -601,6 +602,7 @@ services:
|
||||
- OLEFY_LOGLVL=20
|
||||
- OLEFY_MINLENGTH=500
|
||||
- OLEFY_DEL_TMP=1
|
||||
- SKIP_OLEFY=${SKIP_OLEFY:-n}
|
||||
networks:
|
||||
mailcow-network:
|
||||
aliases:
|
||||
|
||||
@@ -382,6 +382,10 @@ SKIP_UNBOUND_HEALTHCHECK=n
|
||||
|
||||
SKIP_CLAMD=${SKIP_CLAMD}
|
||||
|
||||
# Skip Olefy (olefy-mailcow) anti-virus for Office documents (Rspamd will auto-detect a missing Olefy container) - y/n
|
||||
|
||||
SKIP_OLEFY=n
|
||||
|
||||
# Skip SOGo: Will disable SOGo integration and therefore webmail, DAV protocols and ActiveSync support (experimental, unsupported, not fully implemented) - y/n
|
||||
|
||||
SKIP_SOGO=n
|
||||
@@ -494,13 +498,6 @@ DOVECOT_MASTER_USER=
|
||||
# LEAVE EMPTY IF UNSURE
|
||||
DOVECOT_MASTER_PASS=
|
||||
|
||||
# Let's Encrypt registration contact information
|
||||
# Optional: Leave empty for none
|
||||
# This value is only used on first order!
|
||||
# Setting it at a later point will require the following steps:
|
||||
# https://docs.mailcow.email/troubleshooting/debug-reset_tls/
|
||||
ACME_CONTACT=
|
||||
|
||||
# WebAuthn device manufacturer verification
|
||||
# After setting WEBAUTHN_ONLY_TRUSTED_VENDORS=y only devices from trusted manufacturers are allowed
|
||||
# root certificates can be placed for validation under mailcow-dockerized/data/web/inc/lib/WebAuthn/rootCertificates
|
||||
|
||||
59
update.sh
59
update.sh
@@ -323,6 +323,7 @@ adapt_new_options() {
|
||||
"WATCHDOG_EXTERNAL_CHECKS"
|
||||
"WATCHDOG_SUBJECT"
|
||||
"SKIP_CLAMD"
|
||||
"SKIP_OLEFY"
|
||||
"SKIP_IP_CHECK"
|
||||
"ADDITIONAL_SAN"
|
||||
"DOVEADM_PORT"
|
||||
@@ -352,7 +353,6 @@ adapt_new_options() {
|
||||
"DOVECOT_MASTER_PASS"
|
||||
"MAILCOW_PASS_SCHEME"
|
||||
"ADDITIONAL_SERVER_NAMES"
|
||||
"ACME_CONTACT"
|
||||
"WATCHDOG_VERBOSE"
|
||||
"WEBAUTHN_ONLY_TRUSTED_VENDORS"
|
||||
"SPAMHAUS_DQS_KEY"
|
||||
@@ -598,16 +598,6 @@ adapt_new_options() {
|
||||
echo '# Comma separated list without spaces! Example: ADDITIONAL_SERVER_NAMES=a.b.c,d.e.f' >> mailcow.conf
|
||||
echo 'ADDITIONAL_SERVER_NAMES=' >> mailcow.conf
|
||||
fi
|
||||
elif [[ ${option} == "ACME_CONTACT" ]]; then
|
||||
if ! grep -q ${option} mailcow.conf; then
|
||||
echo "Adding new option \"${option}\" to mailcow.conf"
|
||||
echo '# Lets Encrypt registration contact information' >> mailcow.conf
|
||||
echo '# Optional: Leave empty for none' >> mailcow.conf
|
||||
echo '# This value is only used on first order!' >> mailcow.conf
|
||||
echo '# Setting it at a later point will require the following steps:' >> mailcow.conf
|
||||
echo '# https://docs.mailcow.email/troubleshooting/debug-reset_tls/' >> mailcow.conf
|
||||
echo 'ACME_CONTACT=' >> mailcow.conf
|
||||
fi
|
||||
elif [[ ${option} == "WEBAUTHN_ONLY_TRUSTED_VENDORS" ]]; then
|
||||
if ! grep -q ${option} mailcow.conf; then
|
||||
echo "Adding new option \"${option}\" to mailcow.conf"
|
||||
@@ -760,6 +750,27 @@ detect_major_update() {
|
||||
fi
|
||||
}
|
||||
|
||||
remove_obsolete_options() {
|
||||
OBSOLETE_OPTIONS=(
|
||||
"ACME_CONTACT"
|
||||
)
|
||||
|
||||
for option in "${OBSOLETE_OPTIONS[@]}"; do
|
||||
if [[ "$option" == "ACME_CONTACT" ]]; then
|
||||
sed -i '/^# Lets Encrypt registration contact information/d' mailcow.conf
|
||||
sed -i "/^# Let's Encrypt registration contact information/d" mailcow.conf
|
||||
sed -i '/^# Optional: Leave empty for none/d' mailcow.conf
|
||||
sed -i '/^# This value is only used on first order!/d' mailcow.conf
|
||||
sed -i '/^# Setting it at a later point will require the following steps:/d' mailcow.conf
|
||||
sed -i '/^# https:\/\/docs.mailcow.email\/troubleshooting\/debug-reset_tls\//d' mailcow.conf
|
||||
sed -i '/^ACME_CONTACT=.*/d' mailcow.conf
|
||||
sed -i '/^#ACME_CONTACT=.*/d' mailcow.conf
|
||||
else
|
||||
sed -i "/^${option}=.*/d" mailcow.conf
|
||||
sed -i "/^#${option}=.*/d" mailcow.conf
|
||||
fi
|
||||
done
|
||||
}
|
||||
############## End Function Section ##############
|
||||
|
||||
# Check permissions
|
||||
@@ -967,6 +978,7 @@ CONFIG_ARRAY=(
|
||||
"WATCHDOG_EXTERNAL_CHECKS"
|
||||
"WATCHDOG_SUBJECT"
|
||||
"SKIP_CLAMD"
|
||||
"SKIP_OLEFY"
|
||||
"SKIP_IP_CHECK"
|
||||
"ADDITIONAL_SAN"
|
||||
"AUTODISCOVER_SAN"
|
||||
@@ -994,7 +1006,6 @@ CONFIG_ARRAY=(
|
||||
"DOVECOT_MASTER_PASS"
|
||||
"MAILCOW_PASS_SCHEME"
|
||||
"ADDITIONAL_SERVER_NAMES"
|
||||
"ACME_CONTACT"
|
||||
"WATCHDOG_VERBOSE"
|
||||
"WEBAUTHN_ONLY_TRUSTED_VENDORS"
|
||||
"SPAMHAUS_DQS_KEY"
|
||||
@@ -1230,17 +1241,6 @@ for option in "${CONFIG_ARRAY[@]}"; do
|
||||
echo '# in the reverse proxy.' >> mailcow.conf
|
||||
echo 'AUTODISCOVER_SAN=y' >> mailcow.conf
|
||||
fi
|
||||
|
||||
elif [[ "${option}" == "ACME_CONTACT" ]]; then
|
||||
if ! grep -q "${option}" mailcow.conf; then
|
||||
echo "Adding new option \"${option}\" to mailcow.conf"
|
||||
echo '# Lets Encrypt registration contact information' >> mailcow.conf
|
||||
echo '# Optional: Leave empty for none' >> mailcow.conf
|
||||
echo '# This value is only used on first order!' >> mailcow.conf
|
||||
echo '# Setting it at a later point will require the following steps:' >> mailcow.conf
|
||||
echo '# https://docs.mailcow.email/troubleshooting/debug-reset_tls/' >> mailcow.conf
|
||||
echo 'ACME_CONTACT=' >> mailcow.conf
|
||||
fi
|
||||
elif [[ "${option}" == "WEBAUTHN_ONLY_TRUSTED_VENDORS" ]]; then
|
||||
if ! grep -q "${option}" mailcow.conf; then
|
||||
echo "Adding new option \"${option}\" to mailcow.conf"
|
||||
@@ -1278,6 +1278,18 @@ for option in "${CONFIG_ARRAY[@]}"; do
|
||||
echo '# CAUTION: Disabling this may expose container ports to other neighbors on the same subnet, even if the ports are bound to localhost' >> mailcow.conf
|
||||
echo 'DISABLE_NETFILTER_ISOLATION_RULE=n' >> mailcow.conf
|
||||
fi
|
||||
elif [[ "${option}" == "SKIP_CLAMD" ]]; then
|
||||
if ! grep -q "${option}" mailcow.conf; then
|
||||
echo "Adding new option \"${option}\" to mailcow.conf"
|
||||
echo '# Skip ClamAV (clamd-mailcow) anti-virus (Rspamd will auto-detect a missing ClamAV container) - y/n' >> mailcow.conf
|
||||
echo 'SKIP_CLAMD=n' >> mailcow.conf
|
||||
fi
|
||||
elif [[ "${option}" == "SKIP_OLEFY" ]]; then
|
||||
if ! grep -q "${option}" mailcow.conf; then
|
||||
echo "Adding new option \"${option}\" to mailcow.conf"
|
||||
echo '# Skip Olefy (olefy-mailcow) anti-virus for Office documents (Rspamd will auto-detect a missing Olefy container) - y/n' >> mailcow.conf
|
||||
echo 'SKIP_OLEFY=n' >> mailcow.conf
|
||||
fi
|
||||
elif [[ "${option}" == "REDISPASS" ]]; then
|
||||
if ! grep -q "${option}" mailcow.conf; then
|
||||
echo "Adding new option \"${option}\" to mailcow.conf"
|
||||
@@ -1474,6 +1486,7 @@ done
|
||||
[[ -f data/conf/nginx/ZZZ-ejabberd.conf ]] && rm data/conf/nginx/ZZZ-ejabberd.conf
|
||||
migrate_solr_config_options
|
||||
adapt_new_options
|
||||
remove_obsolete_options
|
||||
|
||||
# Silently fixing remote url from andryyy to mailcow
|
||||
# git remote set-url origin https://github.com/mailcow/mailcow-dockerized
|
||||
|
||||
Reference in New Issue
Block a user