commit
fa9a058cf8
|
@ -1,39 +1,21 @@
|
||||||
FROM debian:stretch-slim
|
FROM alpine
|
||||||
LABEL maintainer "https://m-ko.de Markus Kosmal <code@cnfg.io>"
|
LABEL maintainer "https://m-ko.de Markus Kosmal <code@cnfg.io>"
|
||||||
|
|
||||||
# Debian Base to use
|
RUN apk add -U --no-cache clamav clamav-libunrar clamav-daemon bash curl
|
||||||
ENV DEBIAN_VERSION stretch
|
|
||||||
ARG DEBIAN_FRONTEND=noninteractive
|
|
||||||
|
|
||||||
# initial install of av daemon
|
|
||||||
RUN echo "deb http://http.debian.net/debian/ $DEBIAN_VERSION main contrib non-free" > /etc/apt/sources.list && \
|
|
||||||
echo "deb http://http.debian.net/debian/ $DEBIAN_VERSION-updates main contrib non-free" >> /etc/apt/sources.list && \
|
|
||||||
echo "deb http://security.debian.org/ $DEBIAN_VERSION/updates main contrib non-free" >> /etc/apt/sources.list && \
|
|
||||||
apt-get update && apt-get install -y -qq --no-install-recommends \
|
|
||||||
clamav-daemon \
|
|
||||||
clamav-freshclam \
|
|
||||||
libclamunrar7 \
|
|
||||||
&& rm -rf /var/lib/apt/lists/*
|
|
||||||
|
|
||||||
# initial update of av databases
|
# initial update of av databases
|
||||||
COPY dl_files.sh /dl_files.sh
|
COPY dl_files.sh /dl_files.sh
|
||||||
RUN chmod +x /dl_files.sh
|
RUN chmod +x /dl_files.sh
|
||||||
|
|
||||||
|
# pre-download defintions
|
||||||
RUN set -ex; \
|
RUN set -ex; \
|
||||||
\
|
/dl_files.sh && \
|
||||||
fetchDeps=' \
|
apk del curl
|
||||||
curl \
|
|
||||||
'; \
|
|
||||||
apt-get update; \
|
|
||||||
apt-get install -y --no-install-recommends $fetchDeps; \
|
|
||||||
rm -rf /var/lib/apt/lists/*; \
|
|
||||||
/dl_files.sh \
|
|
||||||
apt-get purge -y --auto-remove $fetchDeps
|
|
||||||
|
|
||||||
# permission juggling
|
# permission juggling
|
||||||
RUN mkdir /var/run/clamav && \
|
RUN mkdir -p /run/clamav && \
|
||||||
chown clamav:clamav /var/run/clamav && \
|
chown clamav:clamav /run/clamav && \
|
||||||
chmod 750 /var/run/clamav
|
chmod 750 /run/clamav
|
||||||
|
|
||||||
# av configuration update
|
# av configuration update
|
||||||
RUN sed -i 's/^Foreground .*$/Foreground true/g' /etc/clamav/clamd.conf && \
|
RUN sed -i 's/^Foreground .*$/Foreground true/g' /etc/clamav/clamd.conf && \
|
||||||
|
|
|
@ -1,7 +1,10 @@
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
trap "kill 0" SIGINT
|
trap "kill 0" SIGINT
|
||||||
|
|
||||||
|
touch /var/log/clamav/clamd.log /var/log/clamav/freshclam.log
|
||||||
|
chown -R clamav:clamav /var/log/clamav/
|
||||||
|
|
||||||
freshclam -d &
|
freshclam -d &
|
||||||
clamd &
|
clamd &
|
||||||
|
|
||||||
sleep inf
|
tail -f /var/log/clamav/clamd.log /var/log/clamav/freshclam.log
|
||||||
|
|
|
@ -96,6 +96,8 @@ RUN groupadd -g 5000 vmail \
|
||||||
&& useradd -c "Dovecot login user" -d /dev/null -u 402 -g dovenull -s /bin/false dovenull
|
&& useradd -c "Dovecot login user" -d /dev/null -u 402 -g dovenull -s /bin/false dovenull
|
||||||
|
|
||||||
RUN touch /etc/default/locale
|
RUN touch /etc/default/locale
|
||||||
|
RUN apt-get purge -y build-essential automake autotools-dev \
|
||||||
|
&& apt-get autoremove --purge -y
|
||||||
|
|
||||||
EXPOSE 24 10001
|
EXPOSE 24 10001
|
||||||
|
|
||||||
|
|
|
@ -1,8 +1,6 @@
|
||||||
FROM php:7.1-fpm-alpine
|
FROM php:7.1-fpm-alpine
|
||||||
LABEL maintainer "Andre Peters <andre.peters@servercow.de>"
|
LABEL maintainer "Andre Peters <andre.peters@servercow.de>"
|
||||||
|
|
||||||
ARG DEBIAN_FRONTEND=noninteractive
|
|
||||||
|
|
||||||
RUN apk add -U --no-cache libxml2-dev icu-dev icu-libs redis mysql-client bash autoconf g++ make openssl
|
RUN apk add -U --no-cache libxml2-dev icu-dev icu-libs redis mysql-client bash autoconf g++ make openssl
|
||||||
RUN pecl install redis && pecl clear-cache
|
RUN pecl install redis && pecl clear-cache
|
||||||
RUN docker-php-ext-configure intl
|
RUN docker-php-ext-configure intl
|
||||||
|
|
|
@ -51,10 +51,35 @@ for file in $(ls /data/dkim/keys/); do
|
||||||
domain=${file%.dkim}
|
domain=${file%.dkim}
|
||||||
if [[ -f /data/dkim/txt/${file} ]]; then
|
if [[ -f /data/dkim/txt/${file} ]]; then
|
||||||
redis-cli -h redis-mailcow HSET DKIM_PUB_KEYS "${domain}" "$(cat /data/dkim/txt/${file})"
|
redis-cli -h redis-mailcow HSET DKIM_PUB_KEYS "${domain}" "$(cat /data/dkim/txt/${file})"
|
||||||
redis-cli -h redis-mailcow HSET DKIM_PRIV_KEYS "${domain}" "$(cat /data/dkim/keys/${file})"
|
redis-cli -h redis-mailcow HSET DKIM_PRIV_KEYS "dkim.${domain}" "$(cat /data/dkim/keys/${file})"
|
||||||
redis-cli -h redis-mailcow HSET DKIM_SELECTORS "${domain}" "dkim"
|
redis-cli -h redis-mailcow HSET DKIM_SELECTORS "${domain}" "dkim"
|
||||||
fi
|
fi
|
||||||
rm /data/dkim/{keys,txt}/${file}
|
rm /data/dkim/{keys,txt}/${file}
|
||||||
done
|
done
|
||||||
|
|
||||||
|
# Fix DKIM keys
|
||||||
|
|
||||||
|
# Fetch domains
|
||||||
|
declare -a DOMAIN_ARRAY
|
||||||
|
while read line
|
||||||
|
do
|
||||||
|
DOMAIN_ARRAY+=("$line")
|
||||||
|
done < <(mysql -h mysql-mailcow -u ${DBUSER} -p${DBPASS} ${DBNAME} -e "SELECT domain FROM domain" -Bs)
|
||||||
|
while read line
|
||||||
|
do
|
||||||
|
DOMAIN_ARRAY+=("$line")
|
||||||
|
done < <(mysql -h mysql-mailcow -u ${DBUSER} -p${DBPASS} ${DBNAME} -e "SELECT alias_domain FROM alias_domain" -Bs)
|
||||||
|
|
||||||
|
# Loop through array and fix keys
|
||||||
|
if [[ ! -z ${DOMAIN_ARRAY} ]]; then
|
||||||
|
for domain in "${DOMAIN_ARRAY[@]}"; do
|
||||||
|
WRONG_KEY=$(redis-cli -h redis-mailcow HGET DKIM_PRIV_KEYS ${domain} | tr -d \")
|
||||||
|
if [[ ! -z ${WRONG_KEY} ]]; then
|
||||||
|
echo "Migrating defect key for domain ${domain}"
|
||||||
|
redis-cli -h redis-mailcow HSET DKIM_PRIV_KEYS "dkim.${domain}" ${WRONG_KEY}
|
||||||
|
redis-cli -h redis-mailcow HDEL DKIM_PRIV_KEYS "${domain}"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
|
||||||
exec "$@"
|
exec "$@"
|
||||||
|
|
|
@ -8,7 +8,6 @@ RUN apt-key adv --fetch-keys http://rspamd.com/apt-stable/gpg.key \
|
||||||
&& echo "deb http://rspamd.com/apt-stable/ jessie main" > /etc/apt/sources.list.d/rspamd.list \
|
&& echo "deb http://rspamd.com/apt-stable/ jessie main" > /etc/apt/sources.list.d/rspamd.list \
|
||||||
&& apt-get update && apt-get install -y \
|
&& apt-get update && apt-get install -y \
|
||||||
ca-certificates \
|
ca-certificates \
|
||||||
python-pip \
|
|
||||||
rspamd \
|
rspamd \
|
||||||
&& rm -rf /var/lib/apt/lists/*
|
&& rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
|
@ -17,12 +16,9 @@ RUN echo '.include $LOCAL_CONFDIR/local.d/rspamd.conf.local' > /etc/rspamd/rspam
|
||||||
COPY settings.conf /etc/rspamd/modules.d/settings.conf
|
COPY settings.conf /etc/rspamd/modules.d/settings.conf
|
||||||
COPY antivirus.conf /etc/rspamd/modules.d/antivirus.conf
|
COPY antivirus.conf /etc/rspamd/modules.d/antivirus.conf
|
||||||
COPY dkim_signing.lua /usr/share/rspamd/lua/dkim_signing.lua
|
COPY dkim_signing.lua /usr/share/rspamd/lua/dkim_signing.lua
|
||||||
RUN pip install -U oletools
|
|
||||||
|
|
||||||
CMD /usr/bin/rspamd -f -u _rspamd -g _rspamd
|
CMD /usr/bin/rspamd -f -u _rspamd -g _rspamd
|
||||||
|
|
||||||
RUN rm -rf /tmp/* /var/tmp/*
|
RUN rm -rf /tmp/* /var/tmp/*
|
||||||
|
|
||||||
USER _rspamd
|
USER _rspamd
|
||||||
|
|
||||||
EXPOSE 11333 11334
|
|
||||||
|
|
|
@ -58,7 +58,7 @@ $tfa_data = get_tfa();
|
||||||
<div class="col-sm-9 col-xs-7">
|
<div class="col-sm-9 col-xs-7">
|
||||||
<p id="tfa_pretty"><?=$tfa_data['pretty'];?></p>
|
<p id="tfa_pretty"><?=$tfa_data['pretty'];?></p>
|
||||||
<div id="tfa_additional">
|
<div id="tfa_additional">
|
||||||
<?php if($tfa_data['additional']):
|
<?php if (!empty($tfa_data['additional'])):
|
||||||
foreach ($tfa_data['additional'] as $key_info): ?>
|
foreach ($tfa_data['additional'] as $key_info): ?>
|
||||||
<form style="display:inline;" method="post">
|
<form style="display:inline;" method="post">
|
||||||
<input type="hidden" name="unset_tfa_key" value="<?=$key_info['id'];?>" />
|
<input type="hidden" name="unset_tfa_key" value="<?=$key_info['id'];?>" />
|
||||||
|
|
|
@ -1,24 +1,28 @@
|
||||||
<?php
|
<?php
|
||||||
require_once "inc/vars.inc.php";
|
require_once 'inc/vars.inc.php';
|
||||||
if (empty($mailcow_hostname)) { exit(); }
|
|
||||||
header("Content-Type: application/xml");
|
if (empty($mailcow_hostname)) {
|
||||||
|
exit();
|
||||||
|
}
|
||||||
|
|
||||||
|
header('Content-Type: application/xml');
|
||||||
?>
|
?>
|
||||||
<?='<?xml version="1.0"?>';?>
|
<?= '<?xml version="1.0"?>'; ?>
|
||||||
<clientConfig version="1.1">
|
<clientConfig version="1.1">
|
||||||
<emailProvider id="<?=$mailcow_hostname;?>">
|
<emailProvider id="<?= $mailcow_hostname; ?>">
|
||||||
<domain>%EMAILDOMAIN%</domain>
|
<domain>%EMAILDOMAIN%</domain>
|
||||||
<displayName>A mailcow mail server</displayName>
|
<displayName>A mailcow mail server</displayName>
|
||||||
<displayShortName>mail server</displayShortName>
|
<displayShortName>mail server</displayShortName>
|
||||||
|
|
||||||
<incomingServer type="imap">
|
<incomingServer type="imap">
|
||||||
<hostname><?=$mailcow_hostname;?></hostname>
|
<hostname><?= $mailcow_hostname; ?></hostname>
|
||||||
<port>993</port>
|
<port>993</port>
|
||||||
<socketType>SSL</socketType>
|
<socketType>SSL</socketType>
|
||||||
<username>%EMAILADDRESS%</username>
|
<username>%EMAILADDRESS%</username>
|
||||||
<authentication>password-cleartext</authentication>
|
<authentication>password-cleartext</authentication>
|
||||||
</incomingServer>
|
</incomingServer>
|
||||||
<incomingServer type="imap">
|
<incomingServer type="imap">
|
||||||
<hostname><?=$mailcow_hostname;?></hostname>
|
<hostname><?= $mailcow_hostname; ?></hostname>
|
||||||
<port>143</port>
|
<port>143</port>
|
||||||
<socketType>STARTTLS</socketType>
|
<socketType>STARTTLS</socketType>
|
||||||
<username>%EMAILADDRESS%</username>
|
<username>%EMAILADDRESS%</username>
|
||||||
|
@ -26,14 +30,14 @@ header("Content-Type: application/xml");
|
||||||
</incomingServer>
|
</incomingServer>
|
||||||
|
|
||||||
<incomingServer type="pop3">
|
<incomingServer type="pop3">
|
||||||
<hostname><?=$mailcow_hostname;?></hostname>
|
<hostname><?= $mailcow_hostname; ?></hostname>
|
||||||
<port>995</port>
|
<port>995</port>
|
||||||
<socketType>SSL</socketType>
|
<socketType>SSL</socketType>
|
||||||
<username>%EMAILADDRESS%</username>
|
<username>%EMAILADDRESS%</username>
|
||||||
<authentication>password-cleartext</authentication>
|
<authentication>password-cleartext</authentication>
|
||||||
</incomingServer>
|
</incomingServer>
|
||||||
<incomingServer type="pop3">
|
<incomingServer type="pop3">
|
||||||
<hostname><?=$mailcow_hostname;?></hostname>
|
<hostname><?= $mailcow_hostname; ?></hostname>
|
||||||
<port>110</port>
|
<port>110</port>
|
||||||
<socketType>STARTTLS</socketType>
|
<socketType>STARTTLS</socketType>
|
||||||
<username>%EMAILADDRESS%</username>
|
<username>%EMAILADDRESS%</username>
|
||||||
|
@ -41,7 +45,7 @@ header("Content-Type: application/xml");
|
||||||
</incomingServer>
|
</incomingServer>
|
||||||
|
|
||||||
<outgoingServer type="smtp">
|
<outgoingServer type="smtp">
|
||||||
<hostname><?=$mailcow_hostname;?></hostname>
|
<hostname><?= $mailcow_hostname; ?></hostname>
|
||||||
<port>465</port>
|
<port>465</port>
|
||||||
<socketType>SSL</socketType>
|
<socketType>SSL</socketType>
|
||||||
<username>%EMAILADDRESS%</username>
|
<username>%EMAILADDRESS%</username>
|
||||||
|
@ -49,14 +53,14 @@ header("Content-Type: application/xml");
|
||||||
</outgoingServer>
|
</outgoingServer>
|
||||||
|
|
||||||
<outgoingServer type="smtp">
|
<outgoingServer type="smtp">
|
||||||
<hostname><?=$mailcow_hostname;?></hostname>
|
<hostname><?= $mailcow_hostname; ?></hostname>
|
||||||
<port>587</port>
|
<port>587</port>
|
||||||
<socketType>STARTTLS</socketType>
|
<socketType>STARTTLS</socketType>
|
||||||
<username>%EMAILADDRESS%</username>
|
<username>%EMAILADDRESS%</username>
|
||||||
<authentication>password-cleartext</authentication>
|
<authentication>password-cleartext</authentication>
|
||||||
</outgoingServer>
|
</outgoingServer>
|
||||||
|
|
||||||
<enable visiturl="https://<?=$mailcow_hostname;?>/admin.php">
|
<enable visiturl="https://<?= $mailcow_hostname; ?>/admin.php">
|
||||||
<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>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>
|
<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>
|
</enable>
|
||||||
|
@ -64,6 +68,6 @@ header("Content-Type: application/xml");
|
||||||
</emailProvider>
|
</emailProvider>
|
||||||
|
|
||||||
<webMail>
|
<webMail>
|
||||||
<loginPage url="https://<?=$mailcow_hostname;?>/SOGo/" />
|
<loginPage url="https://<?= $mailcow_hostname; ?>/SOGo/" />
|
||||||
</webMail>
|
</webMail>
|
||||||
</clientConfig>
|
</clientConfig>
|
||||||
|
|
|
@ -19,3 +19,7 @@ body.modal-open {
|
||||||
overflow-y:scroll;
|
overflow-y:scroll;
|
||||||
padding-right: inherit !important;
|
padding-right: inherit !important;
|
||||||
}
|
}
|
||||||
|
.mass-actions-admin {
|
||||||
|
user-select: none;
|
||||||
|
padding:10px 0 10px 0;
|
||||||
|
}
|
||||||
|
|
|
@ -18,15 +18,12 @@ table.footable>tbody>tr.footable-empty>td {
|
||||||
padding: 10px;
|
padding: 10px;
|
||||||
background: #F5F5F5;
|
background: #F5F5F5;
|
||||||
}
|
}
|
||||||
|
|
||||||
#alias_table {
|
|
||||||
cursor:pointer;
|
|
||||||
}
|
|
||||||
#alias_table .footable-paging {
|
|
||||||
cursor: auto;
|
|
||||||
}
|
|
||||||
@media (min-width: 992px) {
|
@media (min-width: 992px) {
|
||||||
.container {
|
.container {
|
||||||
width: 80%;
|
width: 80%;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
.mass-actions-mailbox {
|
||||||
|
user-select: none;
|
||||||
|
padding:10px 0 10px 10px;
|
||||||
|
}
|
||||||
|
|
|
@ -63,11 +63,3 @@ body.modal-open {
|
||||||
max-width: 550px;
|
max-width: 550px;
|
||||||
z-index: 2000;
|
z-index: 2000;
|
||||||
}
|
}
|
||||||
.mass-actions-mailbox {
|
|
||||||
user-select: none;
|
|
||||||
padding:10px 0 10px 10px;
|
|
||||||
}
|
|
||||||
.mass-actions-admin {
|
|
||||||
user-select: none;
|
|
||||||
padding:10px 0 10px 0;
|
|
||||||
}
|
|
||||||
|
|
|
@ -0,0 +1,24 @@
|
||||||
|
table.footable>tbody>tr.footable-empty>td {
|
||||||
|
font-size:15px !important;
|
||||||
|
font-style:italic;
|
||||||
|
}
|
||||||
|
.pagination a {
|
||||||
|
text-decoration: none !important;
|
||||||
|
}
|
||||||
|
.panel panel-default {
|
||||||
|
overflow: visible !important;
|
||||||
|
}
|
||||||
|
.table-responsive {
|
||||||
|
overflow: visible !important;
|
||||||
|
}
|
||||||
|
.footer-add-item {
|
||||||
|
display:block;
|
||||||
|
text-align: center;
|
||||||
|
font-style: italic;
|
||||||
|
padding: 10px;
|
||||||
|
background: #F5F5F5;
|
||||||
|
}
|
||||||
|
.mass-actions-user {
|
||||||
|
user-select: none;
|
||||||
|
padding:10px 0 10px 0;
|
||||||
|
}
|
|
@ -1,46 +1,48 @@
|
||||||
<?php
|
<?php
|
||||||
include("inc/tfa_modals.php");
|
include 'inc/tfa_modals.php';
|
||||||
if (isset($_SESSION['mailcow_cc_role']) && $_SESSION['mailcow_cc_role'] == "admin"):
|
|
||||||
|
if (isset($_SESSION['mailcow_cc_role']) && $_SESSION['mailcow_cc_role'] == 'admin'):
|
||||||
?>
|
?>
|
||||||
<div id="RestartSOGo" class="modal fade" role="dialog">
|
<div id="RestartSOGo" class="modal fade" role="dialog">
|
||||||
<div class="modal-dialog">
|
<div class="modal-dialog">
|
||||||
<div class="modal-content">
|
<div class="modal-content">
|
||||||
<div class="modal-header">
|
<div class="modal-header">
|
||||||
<button type="button" class="close" data-dismiss="modal">×</button>
|
<button type="button" class="close" data-dismiss="modal">×</button>
|
||||||
<h4 class="modal-title"><?=$lang['footer']['restart_sogo'];?></h4>
|
<h4 class="modal-title"><?= $lang['footer']['restart_sogo']; ?></h4>
|
||||||
</div>
|
</div>
|
||||||
<div class="modal-body">
|
<div class="modal-body">
|
||||||
<p><?=$lang['footer']['restart_sogo_info'];?></p>
|
<p><?= $lang['footer']['restart_sogo_info']; ?></p>
|
||||||
<hr />
|
<hr>
|
||||||
<button class="btn btn-md btn-primary" id="triggerRestartSogo"><?=$lang['footer']['restart_now'];?></button>
|
<button class="btn btn-md btn-primary" id="triggerRestartSogo"><?= $lang['footer']['restart_now']; ?></button>
|
||||||
<br /><br />
|
<br><br>
|
||||||
<div id="statusTriggerRestartSogo"></div>
|
<div id="statusTriggerRestartSogo"></div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<?php
|
<?php
|
||||||
endif;
|
endif;
|
||||||
?>
|
?>
|
||||||
<div id="ConfirmDeleteModal" class="modal fade" role="dialog">
|
<div id="ConfirmDeleteModal" class="modal fade" role="dialog">
|
||||||
<div class="modal-dialog">
|
<div class="modal-dialog">
|
||||||
<div class="modal-content">
|
<div class="modal-content">
|
||||||
<div class="modal-header">
|
<div class="modal-header">
|
||||||
<button type="button" class="close" data-dismiss="modal">×</button>
|
<button type="button" class="close" data-dismiss="modal">×</button>
|
||||||
<h4 class="modal-title"><?=$lang['footer']['confirm_delete'];?></h4>
|
<h4 class="modal-title"><?= $lang['footer']['confirm_delete']; ?></h4>
|
||||||
</div>
|
</div>
|
||||||
<div class="modal-body">
|
<div class="modal-body">
|
||||||
<p><?=$lang['footer']['delete_these_items'];?></p>
|
<p><?= $lang['footer']['delete_these_items']; ?></p>
|
||||||
<ul id="ItemsToDelete"></ul>
|
<ul id="ItemsToDelete"></ul>
|
||||||
<hr />
|
<hr>
|
||||||
<button class="btn btn-sm btn-danger" id="IsConfirmed"><?=$lang['footer']['delete_now'];?></button>
|
<button class="btn btn-sm btn-danger" id="IsConfirmed"><?= $lang['footer']['delete_now']; ?></button>
|
||||||
<button class="btn btn-sm btn-default" id="isCanceled"><?=$lang['footer']['cancel'];?></button>
|
<button class="btn btn-sm btn-default" id="isCanceled"><?= $lang['footer']['cancel']; ?></button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div style="margin-bottom:100px"></div>
|
<div style="margin-bottom: 100px;"></div>
|
||||||
<script src="//cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.6/js/bootstrap.min.js"></script>
|
|
||||||
|
<script src="//cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.7/js/bootstrap.min.js" integrity="sha256-U5ZEeKfGNOja007MMD3YBI0A3OSZOQbeG6z2f2Y0hu8=" crossorigin="anonymous"></script>
|
||||||
<script src="/js/bootstrap-switch.min.js"></script>
|
<script src="/js/bootstrap-switch.min.js"></script>
|
||||||
<script src="/js/bootstrap-slider.min.js"></script>
|
<script src="/js/bootstrap-slider.min.js"></script>
|
||||||
<script src="/js/bootstrap-select.min.js"></script>
|
<script src="/js/bootstrap-select.min.js"></script>
|
||||||
|
@ -49,8 +51,8 @@ endif;
|
||||||
<script>
|
<script>
|
||||||
// Select language and reopen active URL without POST
|
// Select language and reopen active URL without POST
|
||||||
function setLang(sel) {
|
function setLang(sel) {
|
||||||
$.post( "<?=$_SERVER['REQUEST_URI'];?>", {lang: sel} );
|
$.post( "<?= $_SERVER['REQUEST_URI']; ?>", {lang: sel} );
|
||||||
window.location.href = window.location.pathname + window.location.search;
|
window.location.href = window.location.pathname + window.location.search;
|
||||||
}
|
}
|
||||||
|
|
||||||
$(document).ready(function() {
|
$(document).ready(function() {
|
||||||
|
@ -58,7 +60,7 @@ $(document).ready(function() {
|
||||||
$.notify({message: message},{type: type,placement: {from: "bottom",align: "right"},animate: {enter: 'animated fadeInUp',exit: 'animated fadeOutDown'}});
|
$.notify({message: message},{type: type,placement: {from: "bottom",align: "right"},animate: {enter: 'animated fadeInUp',exit: 'animated fadeOutDown'}});
|
||||||
}
|
}
|
||||||
<?php if (isset($_SESSION['return'])): ?>
|
<?php if (isset($_SESSION['return'])): ?>
|
||||||
mailcow_alert_box("<?=$_SESSION['return']['msg'];?>", "<?=$_SESSION['return']['type'];?>");
|
mailcow_alert_box("<?= $_SESSION['return']['msg']; ?>", "<?= $_SESSION['return']['type']; ?>");
|
||||||
<?php endif; unset($_SESSION['return']); ?>
|
<?php endif; unset($_SESSION['return']); ?>
|
||||||
// Confirm TFA modal
|
// Confirm TFA modal
|
||||||
<?php if (isset($_SESSION['pending_tfa_method'])):?>
|
<?php if (isset($_SESSION['pending_tfa_method'])):?>
|
||||||
|
@ -74,7 +76,7 @@ $(document).ready(function() {
|
||||||
type: "GET",
|
type: "GET",
|
||||||
cache: false,
|
cache: false,
|
||||||
dataType: 'script',
|
dataType: 'script',
|
||||||
url: "/api/v1/get/u2f-authentication/<?=(isset($_SESSION['pending_mailcow_cc_username'])) ? $_SESSION['pending_mailcow_cc_username'] : null;?>",
|
url: "/api/v1/get/u2f-authentication/<?= (isset($_SESSION['pending_mailcow_cc_username'])) ? $_SESSION['pending_mailcow_cc_username'] : null; ?>",
|
||||||
success: function(data){
|
success: function(data){
|
||||||
data;
|
data;
|
||||||
}
|
}
|
||||||
|
@ -111,7 +113,7 @@ $(document).ready(function() {
|
||||||
type: "GET",
|
type: "GET",
|
||||||
cache: false,
|
cache: false,
|
||||||
dataType: 'script',
|
dataType: 'script',
|
||||||
url: "/api/v1/get/u2f-registration/<?=(isset($_SESSION['mailcow_cc_username'])) ? $_SESSION['mailcow_cc_username'] : null;?>",
|
url: "/api/v1/get/u2f-registration/<?= (isset($_SESSION['mailcow_cc_username'])) ? $_SESSION['mailcow_cc_username'] : null; ?>",
|
||||||
success: function(data){
|
success: function(data){
|
||||||
data;
|
data;
|
||||||
}
|
}
|
||||||
|
@ -144,14 +146,14 @@ $(document).ready(function() {
|
||||||
$(function () {
|
$(function () {
|
||||||
$('[data-toggle="tooltip"]').tooltip()
|
$('[data-toggle="tooltip"]').tooltip()
|
||||||
})
|
})
|
||||||
// Hide alerts after n seconds
|
// Hide alerts after n seconds
|
||||||
$("#alert-fade").fadeTo(7000, 500).slideUp(500, function(){
|
$("#alert-fade").fadeTo(7000, 500).slideUp(500, function(){
|
||||||
$("#alert-fade").alert('close');
|
$("#alert-fade").alert('close');
|
||||||
});
|
});
|
||||||
|
|
||||||
// Remember last navigation pill
|
// Remember last navigation pill
|
||||||
(function () {
|
(function () {
|
||||||
'use strict';
|
'use strict';
|
||||||
if ($('a[data-toggle="tab"]').length) {
|
if ($('a[data-toggle="tab"]').length) {
|
||||||
$('a[data-toggle="tab"]').on('shown.bs.tab', function (e) {
|
$('a[data-toggle="tab"]').on('shown.bs.tab', function (e) {
|
||||||
var id = $(this).parents('[role="tablist"]').attr('id');
|
var id = $(this).parents('[role="tablist"]').attr('id');
|
||||||
|
@ -173,62 +175,66 @@ $(document).ready(function() {
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
})();
|
})();
|
||||||
|
|
||||||
// Disable submit after submitting form
|
// Disable submit after submitting form
|
||||||
$('form').submit(function() {
|
$('form').submit(function() {
|
||||||
if ($('form button[type="submit"]').data('submitted') == '1') {
|
if ($('form button[type="submit"]').data('submitted') == '1') {
|
||||||
return false;
|
return false;
|
||||||
} else {
|
} else {
|
||||||
$(this).find('button[type="submit"]').first().text('<?=$lang['footer']['loading'];?>');
|
$(this).find('button[type="submit"]').first().text('<?= $lang['footer']['loading']; ?>');
|
||||||
$('form button[type="submit"]').attr('data-submitted', '1');
|
$('form button[type="submit"]').attr('data-submitted', '1');
|
||||||
function disableF5(e) { if ((e.which || e.keyCode) == 116 || (e.which || e.keyCode) == 82) e.preventDefault(); };
|
function disableF5(e) { if ((e.which || e.keyCode) == 116 || (e.which || e.keyCode) == 82) e.preventDefault(); };
|
||||||
$(document).on("keydown", disableF5);
|
$(document).on("keydown", disableF5);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
// IE fix to hide scrollbars when table body is empty
|
// IE fix to hide scrollbars when table body is empty
|
||||||
$('tbody').filter(function (index) {
|
$('tbody').filter(function (index) {
|
||||||
return $(this).children().length < 1;
|
return $(this).children().length < 1;
|
||||||
}).remove();
|
}).remove();
|
||||||
|
|
||||||
// Init Bootstrap Selectpicker
|
// Init Bootstrap Selectpicker
|
||||||
$('select').selectpicker();
|
$('select').selectpicker();
|
||||||
|
|
||||||
// Trigger SOGo restart
|
// Trigger SOGo restart
|
||||||
$('#triggerRestartSogo').click(function(){
|
$('#triggerRestartSogo').click(function(){
|
||||||
$(this).prop("disabled",true);
|
$(this).prop("disabled",true);
|
||||||
$(this).html('<span class="glyphicon glyphicon-refresh glyphicon-spin"></span> ');
|
$(this).html('<span class="glyphicon glyphicon-refresh glyphicon-spin"></span> ');
|
||||||
$('#statusTriggerRestartSogo').text('Stopping SOGo workers, this may take a while... ');
|
$('#statusTriggerRestartSogo').text('Stopping SOGo workers, this may take a while... ');
|
||||||
$.ajax({
|
$.ajax({
|
||||||
method: 'get',
|
method: 'get',
|
||||||
url: 'call_sogo_ctrl.php',
|
url: 'call_sogo_ctrl.php',
|
||||||
data: {
|
data: {
|
||||||
'ajax': true,
|
'ajax': true,
|
||||||
'ACTION': 'stop'
|
'ACTION': 'stop'
|
||||||
},
|
},
|
||||||
success: function(data) {
|
success: function(data) {
|
||||||
$('#statusTriggerRestartSogo').append(data);
|
$('#statusTriggerRestartSogo').append(data);
|
||||||
$('#statusTriggerRestartSogo').append('<br />Starting SOGo... ');
|
$('#statusTriggerRestartSogo').append('<br>Starting SOGo...');
|
||||||
$.ajax({
|
$.ajax({
|
||||||
method: 'get',
|
method: 'get',
|
||||||
url: 'call_sogo_ctrl.php',
|
url: 'call_sogo_ctrl.php',
|
||||||
data: {
|
data: {
|
||||||
'ajax': true,
|
'ajax': true,
|
||||||
'ACTION': 'start'
|
'ACTION': 'start'
|
||||||
},
|
},
|
||||||
success: function(data) {
|
success: function(data) {
|
||||||
$('#statusTriggerRestartSogo').append(data);
|
$('#statusTriggerRestartSogo').append(data);
|
||||||
$('#triggerRestartSogo').html('<span class="glyphicon glyphicon-ok"></span> ');
|
$('#triggerRestartSogo').html('<span class="glyphicon glyphicon-ok"></span> ');
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
$("<input type='hidden' value='<?=$_SESSION['CSRF']['TOKEN'];?>' />").attr("id", "csrf_token").attr("name", "csrf_token").appendTo("form");
|
|
||||||
|
// CSRF
|
||||||
|
$('<input type="hidden" value="<?= $_SESSION['CSRF']['TOKEN']; ?>">').attr('id', 'csrf_token').attr('name', 'csrf_token').appendTo('form');
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
<?php $stmt = null; $pdo = null; ?>
|
<?php
|
||||||
|
$stmt = null;
|
||||||
|
$pdo = null;
|
||||||
|
|
|
@ -867,7 +867,7 @@ function delete_policy_list_item($postarray) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
function get_syncjobs($username = null) {
|
function get_syncjobs($username = null) {
|
||||||
// 'username' can be be set, if not, default to mailcow_cc_username
|
// 'username' can be set, if not set, defaults to mailcow_cc_username
|
||||||
global $lang;
|
global $lang;
|
||||||
global $pdo;
|
global $pdo;
|
||||||
$data = array();
|
$data = array();
|
||||||
|
@ -880,7 +880,10 @@ function get_syncjobs($username = null) {
|
||||||
$username = $_SESSION['mailcow_cc_username'];
|
$username = $_SESSION['mailcow_cc_username'];
|
||||||
}
|
}
|
||||||
try {
|
try {
|
||||||
$stmt = $pdo->prepare("SELECT *, CONCAT(LEFT(`password1`, 3), '…') as `password1_short`
|
$stmt = $pdo->prepare("SELECT *,
|
||||||
|
CONCAT(LEFT(`password1`, 3), '...') AS `password1_short`,
|
||||||
|
`active` AS `active_int`,
|
||||||
|
CASE `active` WHEN 1 THEN '".$lang['mailbox']['yes']."' ELSE '".$lang['mailbox']['no']."' END AS `active`
|
||||||
FROM `imapsync`
|
FROM `imapsync`
|
||||||
WHERE `user2` = :username");
|
WHERE `user2` = :username");
|
||||||
$stmt->execute(array(':username' => $username));
|
$stmt->execute(array(':username' => $username));
|
||||||
|
@ -1096,126 +1099,107 @@ function add_syncjob($postarray) {
|
||||||
}
|
}
|
||||||
function edit_syncjob($postarray) {
|
function edit_syncjob($postarray) {
|
||||||
// Array items
|
// Array items
|
||||||
// 'username' can be set, defaults to mailcow_cc_username
|
|
||||||
global $lang;
|
global $lang;
|
||||||
global $pdo;
|
global $pdo;
|
||||||
if (isset($postarray['username']) && filter_var($postarray['username'], FILTER_VALIDATE_EMAIL)) {
|
if (!is_array($postarray['id'])) {
|
||||||
if (!hasMailboxObjectAccess($_SESSION['mailcow_cc_username'], $_SESSION['mailcow_cc_role'], $postarray['username'])) {
|
$ids = array();
|
||||||
|
$ids[] = $postarray['id'];
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
$ids = $postarray['id'];
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach ($ids as $id) {
|
||||||
|
$is_now = get_syncjob_details($id);
|
||||||
|
if (!empty($is_now)) {
|
||||||
|
$username = $is_now['user2'];
|
||||||
|
$user1 = (!empty($postarray['user1'])) ? $postarray['user1'] : $is_now['user1'];
|
||||||
|
$active = (isset($postarray['active'])) ? $postarray['active'] : $is_now['active_int'];
|
||||||
|
$delete2duplicates = (isset($postarray['delete2duplicates'])) ? $postarray['delete2duplicates'] : $is_now['delete2duplicates'];
|
||||||
|
$delete1 = (isset($postarray['delete1'])) ? $postarray['delete1'] : $is_now['delete1'];
|
||||||
|
$port1 = (!empty($postarray['port1'])) ? $postarray['port1'] : $is_now['port1'];
|
||||||
|
$password1 = (!empty($postarray['password1'])) ? $postarray['password1'] : $is_now['password1'];
|
||||||
|
$host1 = (!empty($postarray['host1'])) ? $postarray['host1'] : $is_now['host1'];
|
||||||
|
$subfolder2 = (!empty($postarray['subfolder2'])) ? $postarray['subfolder2'] : $is_now['subfolder2'];
|
||||||
|
$enc1 = (!empty($postarray['enc1'])) ? $postarray['enc1'] : $is_now['enc1'];
|
||||||
|
$mins_interval = (!empty($postarray['mins_interval'])) ? $postarray['mins_interval'] : $is_now['mins_interval'];
|
||||||
|
$exclude = (!empty($postarray['exclude'])) ? $postarray['exclude'] : $is_now['exclude'];
|
||||||
|
$maxage = (!empty($postarray['maxage'])) ? $postarray['maxage'] : $is_now['maxage'];
|
||||||
|
}
|
||||||
|
else {
|
||||||
$_SESSION['return'] = array(
|
$_SESSION['return'] = array(
|
||||||
'type' => 'danger',
|
'type' => 'danger',
|
||||||
'msg' => sprintf($lang['danger']['access_denied'])
|
'msg' => sprintf($lang['danger']['access_denied'])
|
||||||
);
|
);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
else {
|
if (empty($subfolder2)) {
|
||||||
$username = $postarray['username'];
|
$subfolder2 = "";
|
||||||
|
}
|
||||||
|
if (!isset($maxage) || !filter_var($maxage, FILTER_VALIDATE_INT, array('options' => array('min_range' => 1, 'max_range' => 32767)))) {
|
||||||
|
$maxage = "0";
|
||||||
|
}
|
||||||
|
if (!filter_var($port1, FILTER_VALIDATE_INT, array('options' => array('min_range' => 1, 'max_range' => 65535)))) {
|
||||||
|
$_SESSION['return'] = array(
|
||||||
|
'type' => 'danger',
|
||||||
|
'msg' => sprintf($lang['danger']['access_denied'])
|
||||||
|
);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if (!filter_var($mins_interval, FILTER_VALIDATE_INT, array('options' => array('min_range' => 10, 'max_range' => 3600)))) {
|
||||||
|
$_SESSION['return'] = array(
|
||||||
|
'type' => 'danger',
|
||||||
|
'msg' => sprintf($lang['danger']['access_denied'])
|
||||||
|
);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if (!is_valid_domain_name($host1)) {
|
||||||
|
$_SESSION['return'] = array(
|
||||||
|
'type' => 'danger',
|
||||||
|
'msg' => sprintf($lang['danger']['access_denied'])
|
||||||
|
);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if ($enc1 != "TLS" && $enc1 != "SSL" && $enc1 != "PLAIN") {
|
||||||
|
$_SESSION['return'] = array(
|
||||||
|
'type' => 'danger',
|
||||||
|
'msg' => sprintf($lang['danger']['access_denied'])
|
||||||
|
);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if (@preg_match("/" . $exclude . "/", null) === false) {
|
||||||
|
$_SESSION['return'] = array(
|
||||||
|
'type' => 'danger',
|
||||||
|
'msg' => sprintf($lang['danger']['access_denied'])
|
||||||
|
);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
try {
|
||||||
|
$stmt = $pdo->prepare("UPDATE `imapsync` SET `delete1` = :delete1, `maxage` = :maxage, `subfolder2` = :subfolder2, `exclude` = :exclude, `host1` = :host1, `user1` = :user1, `password1` = :password1, `mins_interval` = :mins_interval, `port1` = :port1, `enc1` = :enc1, `delete2duplicates` = :delete2duplicates, `active` = :active
|
||||||
|
WHERE `id` = :id");
|
||||||
|
$stmt->execute(array(
|
||||||
|
':delete1' => $delete1,
|
||||||
|
':id' => $id,
|
||||||
|
':exclude' => $exclude,
|
||||||
|
':maxage' => $maxage,
|
||||||
|
':subfolder2' => $subfolder2,
|
||||||
|
':host1' => $host1,
|
||||||
|
':user1' => $user1,
|
||||||
|
':password1' => $password1,
|
||||||
|
':mins_interval' => $mins_interval,
|
||||||
|
':port1' => $port1,
|
||||||
|
':enc1' => $enc1,
|
||||||
|
':delete2duplicates' => $delete2duplicates,
|
||||||
|
':active' => $active,
|
||||||
|
));
|
||||||
|
}
|
||||||
|
catch(PDOException $e) {
|
||||||
|
$_SESSION['return'] = array(
|
||||||
|
'type' => 'danger',
|
||||||
|
'msg' => 'MySQL: '.$e
|
||||||
|
);
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
else {
|
|
||||||
$username = $_SESSION['mailcow_cc_username'];
|
|
||||||
}
|
|
||||||
|
|
||||||
$active = intval($postarray['active']);
|
|
||||||
$delete2duplicates = intval($postarray['delete2duplicates']);
|
|
||||||
$delete1 = intval($postarray['delete1']);
|
|
||||||
$id = $postarray['id'];
|
|
||||||
$port1 = $postarray['port1'];
|
|
||||||
$host1 = $postarray['host1'];
|
|
||||||
$password1 = $postarray['password1'];
|
|
||||||
$exclude = $postarray['exclude'];
|
|
||||||
$maxage = $postarray['maxage'];
|
|
||||||
$subfolder2 = $postarray['subfolder2'];
|
|
||||||
$user1 = $postarray['user1'];
|
|
||||||
$mins_interval = $postarray['mins_interval'];
|
|
||||||
$enc1 = $postarray['enc1'];
|
|
||||||
|
|
||||||
if (empty($subfolder2)) {
|
|
||||||
$subfolder2 = "";
|
|
||||||
}
|
|
||||||
if (!isset($maxage) || !filter_var($maxage, FILTER_VALIDATE_INT, array('options' => array('min_range' => 1, 'max_range' => 32767)))) {
|
|
||||||
$maxage = "0";
|
|
||||||
}
|
|
||||||
if (!filter_var($port1, FILTER_VALIDATE_INT, array('options' => array('min_range' => 1, 'max_range' => 65535)))) {
|
|
||||||
$_SESSION['return'] = array(
|
|
||||||
'type' => 'danger',
|
|
||||||
'msg' => sprintf($lang['danger']['access_denied'])
|
|
||||||
);
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
if (!filter_var($mins_interval, FILTER_VALIDATE_INT, array('options' => array('min_range' => 10, 'max_range' => 3600)))) {
|
|
||||||
$_SESSION['return'] = array(
|
|
||||||
'type' => 'danger',
|
|
||||||
'msg' => sprintf($lang['danger']['access_denied'])
|
|
||||||
);
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
if (!is_valid_domain_name($host1)) {
|
|
||||||
$_SESSION['return'] = array(
|
|
||||||
'type' => 'danger',
|
|
||||||
'msg' => sprintf($lang['danger']['access_denied'])
|
|
||||||
);
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
if ($enc1 != "TLS" && $enc1 != "SSL" && $enc1 != "PLAIN") {
|
|
||||||
$_SESSION['return'] = array(
|
|
||||||
'type' => 'danger',
|
|
||||||
'msg' => sprintf($lang['danger']['access_denied'])
|
|
||||||
);
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
if (@preg_match("/" . $exclude . "/", null) === false) {
|
|
||||||
$_SESSION['return'] = array(
|
|
||||||
'type' => 'danger',
|
|
||||||
'msg' => sprintf($lang['danger']['access_denied'])
|
|
||||||
);
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
try {
|
|
||||||
$stmt = $pdo->prepare("SELECT `user2` FROM `imapsync`
|
|
||||||
WHERE `user2` = :user2 AND `id` = :id");
|
|
||||||
$stmt->execute(array(':user2' => $username, ':id' => $id));
|
|
||||||
$num_results = count($stmt->fetchAll(PDO::FETCH_ASSOC));
|
|
||||||
}
|
|
||||||
catch(PDOException $e) {
|
|
||||||
$_SESSION['return'] = array(
|
|
||||||
'type' => 'danger',
|
|
||||||
'msg' => 'MySQL: '.$e
|
|
||||||
);
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
if (empty($num_results)) {
|
|
||||||
$_SESSION['return'] = array(
|
|
||||||
'type' => 'danger',
|
|
||||||
'msg' => sprintf($lang['danger']['access_denied'])
|
|
||||||
);
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
try {
|
|
||||||
$stmt = $pdo->prepare("UPDATE `imapsync` set `delete1` = :delete1, `maxage` = :maxage, `subfolder2` = :subfolder2, `exclude` = :exclude, `host1` = :host1, `user1` = :user1, `password1` = :password1, `mins_interval` = :mins_interval, `port1` = :port1, `enc1` = :enc1, `delete2duplicates` = :delete2duplicates, `active` = :active
|
|
||||||
WHERE `user2` = :user2 AND `id` = :id");
|
|
||||||
$stmt->execute(array(
|
|
||||||
':user2' => $username,
|
|
||||||
':delete1' => $delete1,
|
|
||||||
':id' => $id,
|
|
||||||
':exclude' => $exclude,
|
|
||||||
':maxage' => $maxage,
|
|
||||||
':subfolder2' => $subfolder2,
|
|
||||||
':host1' => $host1,
|
|
||||||
':user1' => $user1,
|
|
||||||
':password1' => $password1,
|
|
||||||
':mins_interval' => $mins_interval,
|
|
||||||
':port1' => $port1,
|
|
||||||
':enc1' => $enc1,
|
|
||||||
':delete2duplicates' => $delete2duplicates,
|
|
||||||
':active' => $active,
|
|
||||||
));
|
|
||||||
}
|
|
||||||
catch(PDOException $e) {
|
|
||||||
$_SESSION['return'] = array(
|
|
||||||
'type' => 'danger',
|
|
||||||
'msg' => 'MySQL: '.$e
|
|
||||||
);
|
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
$_SESSION['return'] = array(
|
$_SESSION['return'] = array(
|
||||||
'type' => 'success',
|
'type' => 'success',
|
||||||
|
@ -2479,7 +2463,7 @@ function dkim_delete_key($postarray) {
|
||||||
$selector = $redis->hGet('DKIM_SELECTORS', $domain);
|
$selector = $redis->hGet('DKIM_SELECTORS', $domain);
|
||||||
$redis->hDel('DKIM_PUB_KEYS', $domain);
|
$redis->hDel('DKIM_PUB_KEYS', $domain);
|
||||||
$redis->hDel('DKIM_PRIV_KEYS', $selector . '.' . $domain);
|
$redis->hDel('DKIM_PRIV_KEYS', $selector . '.' . $domain);
|
||||||
$redis->hDel('DKIM_SELECTORS', $selector);
|
$redis->hDel('DKIM_SELECTORS', $domain);
|
||||||
}
|
}
|
||||||
catch (RedisException $e) {
|
catch (RedisException $e) {
|
||||||
$_SESSION['return'] = array(
|
$_SESSION['return'] = array(
|
||||||
|
|
|
@ -6,12 +6,12 @@
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||||
<title>mailcow UI</title>
|
<title>mailcow UI</title>
|
||||||
<!--[if lt IE 9]>
|
<!--[if lt IE 9]>
|
||||||
<script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
|
<script src="https://cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.3/html5shiv.min.js" integrity="sha256-3Jy/GbSLrg0o9y5Z5n1uw0qxZECH7C6OQpVBgNFYa0g=" crossorigin="anonymous"></script>
|
||||||
<script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
|
<script src="https://cdnjs.cloudflare.com/ajax/libs/respond.js/1.4.2/respond.min.js" integrity="sha256-g6iAfvZp+nDQ2TdTR/VVKJf3bGro4ub5fvWSWVRi2NE=" crossorigin="anonymous"></script>
|
||||||
<![endif]-->
|
<![endif]-->
|
||||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.12.0/jquery.min.js" integrity="sha384-XxcvoeNF5V0ZfksTnV+bejnCsJjOOIzN6UVwF85WBsAnU3zeYh5bloN+L4WLgeNE" crossorigin="anonymous"></script>
|
<script src="//cdnjs.cloudflare.com/ajax/libs/jquery/1.12.4/jquery.min.js" integrity="sha256-ZosEbRLbNQzLpnKIkEdrPv7lOy9C27hHQ+Xp8a4MxAQ=" crossorigin="anonymous"></script>
|
||||||
<link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.6/css/bootstrap.min.css">
|
<link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha256-916EbMg70RQy9LHiGkXzG8hSg9EdNy97GazNG/aiY1w=" crossorigin="anonymous">
|
||||||
<link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/bootswatch/3.3.6/<?=strtolower(trim($DEFAULT_THEME));?>/bootstrap.min.css">
|
<link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/bootswatch/3.3.7/<?= strtolower(trim($DEFAULT_THEME)); ?>/bootstrap.min.css">
|
||||||
<link rel="stylesheet" href="/css/bootstrap-select.min.css">
|
<link rel="stylesheet" href="/css/bootstrap-select.min.css">
|
||||||
<link rel="stylesheet" href="/css/bootstrap-slider.min.css">
|
<link rel="stylesheet" href="/css/bootstrap-slider.min.css">
|
||||||
<link rel="stylesheet" href="/css/bootstrap-switch.min.css">
|
<link rel="stylesheet" href="/css/bootstrap-switch.min.css">
|
||||||
|
@ -19,100 +19,102 @@
|
||||||
<link rel="stylesheet" href="/inc/languages.min.css">
|
<link rel="stylesheet" href="/inc/languages.min.css">
|
||||||
<link rel="stylesheet" href="/css/mailcow.css">
|
<link rel="stylesheet" href="/css/mailcow.css">
|
||||||
<link rel="stylesheet" href="/css/animate.min.css">
|
<link rel="stylesheet" href="/css/animate.min.css">
|
||||||
<?=(preg_match("/mailbox.php/i", $_SERVER['REQUEST_URI'])) ? '<link rel="stylesheet" href="/css/mailbox.css">' : null;?>
|
<?= (preg_match("/mailbox.php/i", $_SERVER['REQUEST_URI'])) ? '<link rel="stylesheet" href="/css/mailbox.css">' : null; ?>
|
||||||
<?=(preg_match("/admin.php/i", $_SERVER['REQUEST_URI'])) ? '<link rel="stylesheet" href="/css/admin.css">' : null;?>
|
<?= (preg_match("/admin.php/i", $_SERVER['REQUEST_URI'])) ? '<link rel="stylesheet" href="/css/admin.css">' : null; ?>
|
||||||
|
<?= (preg_match("/user.php/i", $_SERVER['REQUEST_URI'])) ? '<link rel="stylesheet" href="/css/user.css">' : null; ?>
|
||||||
<link rel="shortcut icon" href="/favicon.png" type="image/png">
|
<link rel="shortcut icon" href="/favicon.png" type="image/png">
|
||||||
<link rel="icon" href="/favicon.png" type="image/png">
|
<link rel="icon" href="/favicon.png" type="image/png">
|
||||||
</head>
|
</head>
|
||||||
<body style="padding-top:70px">
|
<body style="padding-top: 70px;">
|
||||||
<nav class="navbar navbar-default navbar-fixed-top" role="navigation">
|
<nav class="navbar navbar-default navbar-fixed-top" role="navigation">
|
||||||
<div class="container-fluid">
|
<div class="container-fluid">
|
||||||
<div class="navbar-header">
|
<div class="navbar-header">
|
||||||
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar">
|
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar">
|
||||||
<span class="sr-only">Toggle navigation</span>
|
<span class="sr-only">Toggle navigation</span>
|
||||||
<span class="icon-bar"></span>
|
<span class="icon-bar"></span>
|
||||||
<span class="icon-bar"></span>
|
<span class="icon-bar"></span>
|
||||||
<span class="icon-bar"></span>
|
<span class="icon-bar"></span>
|
||||||
</button>
|
</button>
|
||||||
<a class="navbar-brand" href="/"><img height="32" alt="mailcow-logo" style="margin-top:-5px;" src="/img/cow_mailcow.svg" /></a>
|
<a class="navbar-brand" href="/"><img height="32" alt="mailcow-logo" style="margin-top: -5px;" src="/img/cow_mailcow.svg"></a>
|
||||||
</div>
|
</div>
|
||||||
<div id="navbar" class="navbar-collapse collapse">
|
<div id="navbar" class="navbar-collapse collapse">
|
||||||
<ul class="nav navbar-nav navbar-right">
|
<ul class="nav navbar-nav navbar-right">
|
||||||
<?php
|
<?php
|
||||||
if (isset($_SESSION['mailcow_locale'])) {
|
if (isset($_SESSION['mailcow_locale'])) {
|
||||||
?>
|
?>
|
||||||
<li class="dropdown">
|
<li class="dropdown">
|
||||||
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false"><span class="lang-sm lang-lbl" lang="<?=$_SESSION['mailcow_locale'];?>"></span><span class="caret"></span></a>
|
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false"><span class="lang-sm lang-lbl" lang="<?= $_SESSION['mailcow_locale']; ?>"></span><span class="caret"></span></a>
|
||||||
<ul class="dropdown-menu" role="menu">
|
<ul class="dropdown-menu" role="menu">
|
||||||
<li <?=($_SESSION['mailcow_locale'] == 'de') ? 'class="active"' : ''?>> <a href="?<?= http_build_query(array_merge($_GET, array("lang" => "de"))) ?>"><span class="lang-xs lang-lbl-full" lang="de"></span></a></li>
|
<?php
|
||||||
<li <?=($_SESSION['mailcow_locale'] == 'en') ? 'class="active"' : ''?>> <a href="?<?= http_build_query(array_merge($_GET, array("lang" => "en"))) ?>"><span class="lang-xs lang-lbl-full" lang="en"></span></a></li>
|
foreach ($AVAILABLE_LANGUAGES as $language) {
|
||||||
<li <?=($_SESSION['mailcow_locale'] == 'es') ? 'class="active"' : ''?>> <a href="?<?= http_build_query(array_merge($_GET, array("lang" => "es"))) ?>"><span class="lang-xs lang-lbl-full" lang="es"></span></a></li>
|
?>
|
||||||
<li <?=($_SESSION['mailcow_locale'] == 'nl') ? 'class="active"' : ''?>> <a href="?<?= http_build_query(array_merge($_GET, array("lang" => "nl"))) ?>"><span class="lang-xs lang-lbl-full" lang="nl"></span></a></li>
|
<li<?= ($_SESSION['mailcow_locale'] == $language) ? ' class="active"' : ''; ?>><a href="?<?= http_build_query(array_merge($_GET, array('lang' => $language))); ?>"><span class="lang-xs lang-lbl-full" lang="<?= $language; ?>"></span></a></li>
|
||||||
<li <?=($_SESSION['mailcow_locale'] == 'pt') ? 'class="active"' : ''?>> <a href="?<?= http_build_query(array_merge($_GET, array("lang" => "pt"))) ?>"><span class="lang-xs lang-lbl-full" lang="pt"></span></a></li>
|
<?php
|
||||||
<li <?=($_SESSION['mailcow_locale'] == 'ru') ? 'class="active"' : ''?>> <a href="?<?= http_build_query(array_merge($_GET, array("lang" => "ru"))) ?>"><span class="lang-xs lang-lbl-full" lang="ru"></span></a></li>
|
}
|
||||||
</ul>
|
?>
|
||||||
</li>
|
</ul>
|
||||||
<?php
|
</li>
|
||||||
}
|
<?php
|
||||||
if (isset($_SESSION['mailcow_cc_role'])) {
|
}
|
||||||
?>
|
if (isset($_SESSION['mailcow_cc_role'])) {
|
||||||
<li class="dropdown">
|
?>
|
||||||
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false"> <?=$lang['header']['mailcow_settings'];?> <span class="caret"></span></a>
|
<li class="dropdown">
|
||||||
<ul class="dropdown-menu" role="menu">
|
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false"><?= $lang['header']['mailcow_settings']; ?> <span class="caret"></span></a>
|
||||||
<?php
|
<ul class="dropdown-menu" role="menu">
|
||||||
if (isset($_SESSION['mailcow_cc_role'])) {
|
<?php
|
||||||
if ($_SESSION['mailcow_cc_role'] == "admin") {
|
if (isset($_SESSION['mailcow_cc_role'])) {
|
||||||
?>
|
if ($_SESSION['mailcow_cc_role'] == 'admin') {
|
||||||
<li <?=(preg_match("/admin/i", $_SERVER['REQUEST_URI'])) ? 'class="active"' : ''?>><a href="/admin.php"><?=$lang['header']['administration'];?></a></li>
|
?>
|
||||||
<?php
|
<li<?= (preg_match("/admin/i", $_SERVER['REQUEST_URI'])) ? ' class="active"' : ''; ?>><a href="/admin.php"><?= $lang['header']['administration']; ?></a></li>
|
||||||
}
|
<?php
|
||||||
if ($_SESSION['mailcow_cc_role'] == "admin" || $_SESSION['mailcow_cc_role'] == "domainadmin") {
|
|
||||||
?>
|
|
||||||
<li <?=(preg_match("/mailbox/i", $_SERVER['REQUEST_URI'])) ? 'class="active"' : ''?>><a href="/mailbox.php"><?=$lang['header']['mailboxes'];?></a></li>
|
|
||||||
<?php
|
|
||||||
}
|
|
||||||
if ($_SESSION['mailcow_cc_role'] != "admin") {
|
|
||||||
?>
|
|
||||||
<li <?=(preg_match("/user/i", $_SERVER['REQUEST_URI'])) ? 'class="active"' : ''?>><a href="/user.php"><?=$lang['header']['user_settings'];?></a></li>
|
|
||||||
<?php
|
|
||||||
}
|
}
|
||||||
}
|
if ($_SESSION['mailcow_cc_role'] == 'admin' || $_SESSION['mailcow_cc_role'] == 'domainadmin') {
|
||||||
?>
|
?>
|
||||||
</ul>
|
<li<?= (preg_match("/mailbox/i", $_SERVER['REQUEST_URI'])) ? ' class="active"' : ''; ?>><a href="/mailbox.php"><?= $lang['header']['mailboxes']; ?></a></li>
|
||||||
</li>
|
<?php
|
||||||
<?php
|
}
|
||||||
if ($_SESSION['mailcow_cc_role'] == "admin"):
|
if ($_SESSION['mailcow_cc_role'] != 'admin') {
|
||||||
?>
|
?>
|
||||||
<li><a href data-toggle="modal" data-target="#RestartSOGo"><span style="font-size:12px" class="glyphicon glyphicon-refresh" aria-hidden="true"></span> <?=$lang['header']['restart_sogo'];?></a></li>
|
<li<?= (preg_match("/user/i", $_SERVER['REQUEST_URI'])) ? ' class="active"' : ''; ?>><a href="/user.php"><?= $lang['header']['user_settings']; ?></a></li>
|
||||||
<?php
|
<?php
|
||||||
endif;
|
}
|
||||||
?>
|
}
|
||||||
<li class="dropdown">
|
?>
|
||||||
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false"><span class="glyphicon glyphicon-link" aria-hidden="true"></span> Apps <span class="caret"></span></a>
|
</ul>
|
||||||
<ul class="dropdown-menu" role="menu">
|
</li>
|
||||||
|
<?php
|
||||||
|
if ($_SESSION['mailcow_cc_role'] == 'admin') {
|
||||||
|
?>
|
||||||
|
<li><a href data-toggle="modal" data-target="#RestartSOGo"><span style="font-size: 12px;" class="glyphicon glyphicon-refresh" aria-hidden="true"></span> <?= $lang['header']['restart_sogo']; ?></a></li>
|
||||||
|
<?php
|
||||||
|
}
|
||||||
|
?>
|
||||||
|
<li class="dropdown">
|
||||||
|
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false"><span class="glyphicon glyphicon-link" aria-hidden="true"></span> Apps <span class="caret"></span></a>
|
||||||
|
<ul class="dropdown-menu" role="menu">
|
||||||
<?php
|
<?php
|
||||||
foreach ($MAILCOW_APPS as $app):
|
foreach ($MAILCOW_APPS as $app):
|
||||||
?>
|
?>
|
||||||
<li><a href="<?=$app['link'];?>"><?=$app['name'];?></a></li>
|
<li><a href="<?= $app['link']; ?>"><?= $app['name']; ?></a></li>
|
||||||
<?php
|
<?php
|
||||||
endforeach;
|
endforeach;
|
||||||
?>
|
?>
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
<?php
|
<?php
|
||||||
}
|
}
|
||||||
if (!isset($_SESSION["dual-login"]) && isset($_SESSION['mailcow_cc_username'])):
|
if (!isset($_SESSION['dual-login']) && isset($_SESSION['mailcow_cc_username'])):
|
||||||
?>
|
?>
|
||||||
<li><a style="border-left:1px solid #E7E7E7" href="#" onclick="logout.submit()"><?=sprintf($lang['header']['logged_in_as_logout'], $_SESSION['mailcow_cc_username']);?></a></li>
|
<li><a href="#" style="border-left: 1px solid #E7E7E7;" onclick="logout.submit()"><?= sprintf($lang['header']['logged_in_as_logout'], $_SESSION['mailcow_cc_username']); ?></a></li>
|
||||||
<?php
|
<?php
|
||||||
elseif (isset($_SESSION["dual-login"])):
|
elseif (isset($_SESSION['dual-login'])):
|
||||||
?>
|
?>
|
||||||
<li><a style="border-left:1px solid #E7E7E7" href="#" onclick="logout.submit()"><?=sprintf($lang['header']['logged_in_as_logout_dual'], $_SESSION['mailcow_cc_username'], $_SESSION["dual-login"]["username"]);?></a></li>
|
<li><a href="#" style="border-left: 1px solid #E7E7E7;" onclick="logout.submit()"><?= sprintf($lang['header']['logged_in_as_logout_dual'], $_SESSION['mailcow_cc_username'], $_SESSION['dual-login']['username']); ?></a></li>
|
||||||
<?php
|
<?php
|
||||||
endif;
|
endif;
|
||||||
?>
|
?>
|
||||||
</ul>
|
</ul>
|
||||||
</div><!--/.nav-collapse -->
|
</div><!--/.nav-collapse -->
|
||||||
</div><!--/.container-fluid -->
|
</div><!--/.container-fluid -->
|
||||||
</nav>
|
</nav>
|
||||||
<form action="/" method="post" id="logout"><input type="hidden" name="logout"></form>
|
<form action="/" method="post" id="logout"><input type="hidden" name="logout"></form>
|
||||||
|
|
|
@ -2,8 +2,8 @@
|
||||||
require_once $_SERVER['DOCUMENT_ROOT'] . '/inc/sessions.inc.php';
|
require_once $_SERVER['DOCUMENT_ROOT'] . '/inc/sessions.inc.php';
|
||||||
|
|
||||||
require_once $_SERVER['DOCUMENT_ROOT'] . '/inc/vars.inc.php';
|
require_once $_SERVER['DOCUMENT_ROOT'] . '/inc/vars.inc.php';
|
||||||
if (file_exists('./inc/vars.local.inc.php')) {
|
if (file_exists($_SERVER['DOCUMENT_ROOT'] . '/inc/vars.local.inc.php')) {
|
||||||
include_once 'inc/vars.local.inc.php';
|
include_once $_SERVER['DOCUMENT_ROOT'] . '/inc/vars.local.inc.php';
|
||||||
}
|
}
|
||||||
|
|
||||||
// Yubi OTP API
|
// Yubi OTP API
|
||||||
|
@ -32,13 +32,13 @@ $offset = sprintf('%+d:%02d', $hrs*$sgn, $mins);
|
||||||
|
|
||||||
$dsn = $database_type . ":host=" . $database_host . ";dbname=" . $database_name;
|
$dsn = $database_type . ":host=" . $database_host . ";dbname=" . $database_name;
|
||||||
$opt = [
|
$opt = [
|
||||||
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
|
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
|
||||||
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
|
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
|
||||||
PDO::ATTR_EMULATE_PREPARES => false,
|
PDO::ATTR_EMULATE_PREPARES => false,
|
||||||
PDO::MYSQL_ATTR_INIT_COMMAND => "SET time_zone = '" . $offset . "'",
|
PDO::MYSQL_ATTR_INIT_COMMAND => "SET time_zone = '" . $offset . "'",
|
||||||
];
|
];
|
||||||
try {
|
try {
|
||||||
$pdo = new PDO($dsn, $database_user, $database_pass, $opt);
|
$pdo = new PDO($dsn, $database_user, $database_pass, $opt);
|
||||||
}
|
}
|
||||||
catch (PDOException $e) {
|
catch (PDOException $e) {
|
||||||
?>
|
?>
|
||||||
|
@ -47,64 +47,20 @@ catch (PDOException $e) {
|
||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Set language
|
||||||
$_SESSION['mailcow_locale'] = strtolower(trim($DEFAULT_LANG));
|
$_SESSION['mailcow_locale'] = strtolower(trim($DEFAULT_LANG));
|
||||||
setcookie('language', $DEFAULT_LANG);
|
|
||||||
if (isset($_COOKIE['language'])) {
|
if (isset($_GET['lang']) && in_array($_GET['lang'], $AVAILABLE_LANGUAGES)) {
|
||||||
switch ($_COOKIE['language']) {
|
$_SESSION['mailcow_locale'] = $_GET['lang'];
|
||||||
case "de":
|
|
||||||
$_SESSION['mailcow_locale'] = 'de';
|
|
||||||
setcookie('language', 'de');
|
|
||||||
break;
|
|
||||||
case "en":
|
|
||||||
$_SESSION['mailcow_locale'] = 'en';
|
|
||||||
setcookie('language', 'en');
|
|
||||||
break;
|
|
||||||
case "es":
|
|
||||||
$_SESSION['mailcow_locale'] = 'es';
|
|
||||||
setcookie('language', 'es');
|
|
||||||
break;
|
|
||||||
case "nl":
|
|
||||||
$_SESSION['mailcow_locale'] = 'nl';
|
|
||||||
setcookie('language', 'nl');
|
|
||||||
break;
|
|
||||||
case "pt":
|
|
||||||
$_SESSION['mailcow_locale'] = 'pt';
|
|
||||||
setcookie('language', 'pt');
|
|
||||||
break;
|
|
||||||
case "ru":
|
|
||||||
$_SESSION['mailcow_locale'] = 'ru';
|
|
||||||
setcookie('language', 'ru');
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
if (isset($_GET['lang'])) {
|
elseif (isset($_COOKIE['language']) && in_array($_COOKIE['language'], $AVAILABLE_LANGUAGES)) {
|
||||||
switch ($_GET['lang']) {
|
$_SESSION['mailcow_locale'] = $_COOKIE['language'];
|
||||||
case "de":
|
|
||||||
$_SESSION['mailcow_locale'] = 'de';
|
|
||||||
setcookie('language', 'de');
|
|
||||||
break;
|
|
||||||
case "en":
|
|
||||||
$_SESSION['mailcow_locale'] = 'en';
|
|
||||||
setcookie('language', 'en');
|
|
||||||
break;
|
|
||||||
case "es":
|
|
||||||
$_SESSION['mailcow_locale'] = 'es';
|
|
||||||
setcookie('language', 'es');
|
|
||||||
break;
|
|
||||||
case "nl":
|
|
||||||
$_SESSION['mailcow_locale'] = 'nl';
|
|
||||||
setcookie('language', 'nl');
|
|
||||||
break;
|
|
||||||
case "pt":
|
|
||||||
$_SESSION['mailcow_locale'] = 'pt';
|
|
||||||
setcookie('language', 'pt');
|
|
||||||
break;
|
|
||||||
case "ru":
|
|
||||||
$_SESSION['mailcow_locale'] = 'ru';
|
|
||||||
setcookie('language', 'ru');
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
if (isset($_SESSION['mailcow_locale']) && !file_exists($_SERVER['DOCUMENT_ROOT'] . '/lang/lang.'.$_SESSION['mailcow_locale'].'.php')) {
|
||||||
|
$_SESSION['mailcow_locale'] = strtolower(trim($DEFAULT_LANG));
|
||||||
|
}
|
||||||
|
setcookie('language', $_SESSION['mailcow_locale']);
|
||||||
|
|
||||||
require_once $_SERVER['DOCUMENT_ROOT'] . '/lang/lang.en.php';
|
require_once $_SERVER['DOCUMENT_ROOT'] . '/lang/lang.en.php';
|
||||||
include $_SERVER['DOCUMENT_ROOT'] . '/lang/lang.'.$_SESSION['mailcow_locale'].'.php';
|
include $_SERVER['DOCUMENT_ROOT'] . '/lang/lang.'.$_SESSION['mailcow_locale'].'.php';
|
||||||
require_once $_SERVER['DOCUMENT_ROOT'] . '/inc/functions.inc.php';
|
require_once $_SERVER['DOCUMENT_ROOT'] . '/inc/functions.inc.php';
|
||||||
|
|
|
@ -13,7 +13,7 @@ elseif (isset($_SERVER['HTTPS'])) {
|
||||||
else {
|
else {
|
||||||
$IS_HTTPS = false;
|
$IS_HTTPS = false;
|
||||||
}
|
}
|
||||||
session_set_cookie_params($GLOBALS['SESSION_LIFETIME'], '/', $_SERVER['SERVER_NAME'], $IS_HTTPS, true);
|
session_set_cookie_params($GLOBALS['SESSION_LIFETIME'], '/', '', $IS_HTTPS, true);
|
||||||
session_start();
|
session_start();
|
||||||
if (!isset($_SESSION['CSRF']['TOKEN'])) {
|
if (!isset($_SESSION['CSRF']['TOKEN'])) {
|
||||||
$_SESSION['CSRF']['TOKEN'] = bin2hex(random_bytes(32));
|
$_SESSION['CSRF']['TOKEN'] = bin2hex(random_bytes(32));
|
||||||
|
|
|
@ -9,8 +9,8 @@ This file will be reset on upgrades.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
// SQL database connection variables
|
// SQL database connection variables
|
||||||
$database_type = "mysql";
|
$database_type = 'mysql';
|
||||||
$database_host = "mysql";
|
$database_host = 'mysql';
|
||||||
$database_user = getenv('DBUSER');
|
$database_user = getenv('DBUSER');
|
||||||
$database_pass = getenv('DBPASS');
|
$database_pass = getenv('DBPASS');
|
||||||
$database_name = getenv('DBNAME');
|
$database_name = getenv('DBNAME');
|
||||||
|
@ -21,20 +21,23 @@ $mailcow_hostname = getenv('MAILCOW_HOSTNAME');
|
||||||
// Where to go after adding and editing objects
|
// Where to go after adding and editing objects
|
||||||
// Can be "form" or "previous"
|
// Can be "form" or "previous"
|
||||||
// "form" will stay in the current form, "previous" will redirect to previous page
|
// "form" will stay in the current form, "previous" will redirect to previous page
|
||||||
$FORM_ACTION = "previous";
|
$FORM_ACTION = 'previous';
|
||||||
|
|
||||||
// File locations should not be changed
|
// File locations should not be changed
|
||||||
$MC_DKIM_TXTS = "/data/dkim/txt";
|
$MC_DKIM_TXTS = '/data/dkim/txt';
|
||||||
$MC_DKIM_KEYS = "/data/dkim/keys";
|
$MC_DKIM_KEYS = '/data/dkim/keys';
|
||||||
|
|
||||||
// Change default language, "en", "es" "pt", "de", "ru" or "nl"
|
// Change default language, "de", "en", "es", "nl", "pt", "ru"
|
||||||
$DEFAULT_LANG = "en";
|
$DEFAULT_LANG = 'en';
|
||||||
|
|
||||||
|
// Available languages
|
||||||
|
$AVAILABLE_LANGUAGES = array('de', 'en', 'es', 'nl', 'pt', 'ru');
|
||||||
|
|
||||||
// Change theme (default: lumen)
|
// Change theme (default: lumen)
|
||||||
// Needs to be one of those: cerulean, cosmo, cyborg, darkly, flatly, journal, lumen, paper, readable, sandstone,
|
// Needs to be one of those: cerulean, cosmo, cyborg, darkly, flatly, journal, lumen, paper, readable, sandstone,
|
||||||
// simplex, slate, spacelab, superhero, united, yeti
|
// simplex, slate, spacelab, superhero, united, yeti
|
||||||
// See https://bootswatch.com/
|
// See https://bootswatch.com/
|
||||||
$DEFAULT_THEME = "lumen";
|
$DEFAULT_THEME = 'lumen';
|
||||||
|
|
||||||
// Password complexity as regular expression
|
// Password complexity as regular expression
|
||||||
$PASSWD_REGEP = '.{4,}';
|
$PASSWD_REGEP = '.{4,}';
|
||||||
|
@ -56,5 +59,3 @@ $PAGINATION_SIZE = 10;
|
||||||
|
|
||||||
// Session lifetime in seconds
|
// Session lifetime in seconds
|
||||||
$SESSION_LIFETIME = 3600;
|
$SESSION_LIFETIME = 3600;
|
||||||
|
|
||||||
?>
|
|
||||||
|
|
|
@ -1,97 +1,98 @@
|
||||||
<?php
|
<?php
|
||||||
require_once("inc/prerequisites.inc.php");
|
require_once 'inc/prerequisites.inc.php';
|
||||||
|
|
||||||
if (isset($_SESSION['mailcow_cc_role']) && $_SESSION['mailcow_cc_role'] == "admin") {
|
if (isset($_SESSION['mailcow_cc_role']) && $_SESSION['mailcow_cc_role'] == 'admin') {
|
||||||
header('Location: /admin.php');
|
header('Location: /admin.php');
|
||||||
exit();
|
exit();
|
||||||
}
|
}
|
||||||
elseif (isset($_SESSION['mailcow_cc_role']) && $_SESSION['mailcow_cc_role'] == "domainadmin") {
|
elseif (isset($_SESSION['mailcow_cc_role']) && $_SESSION['mailcow_cc_role'] == 'domainadmin') {
|
||||||
header('Location: /mailbox.php');
|
header('Location: /mailbox.php');
|
||||||
exit();
|
exit();
|
||||||
}
|
}
|
||||||
elseif (isset($_SESSION['mailcow_cc_role']) && $_SESSION['mailcow_cc_role'] == "user") {
|
elseif (isset($_SESSION['mailcow_cc_role']) && $_SESSION['mailcow_cc_role'] == 'user') {
|
||||||
header('Location: /user.php');
|
header('Location: /user.php');
|
||||||
exit();
|
exit();
|
||||||
}
|
}
|
||||||
require_once("inc/header.inc.php");
|
|
||||||
|
require_once 'inc/header.inc.php';
|
||||||
$_SESSION['return_to'] = $_SERVER['REQUEST_URI'];
|
$_SESSION['return_to'] = $_SERVER['REQUEST_URI'];
|
||||||
?>
|
?>
|
||||||
<div class="container">
|
<div class="container">
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-md-offset-3 col-md-6">
|
<div class="col-md-offset-3 col-md-6">
|
||||||
<div class="panel panel-default">
|
<div class="panel panel-default">
|
||||||
<div class="panel-heading"><span class="glyphicon glyphicon-user" aria-hidden="true"></span> <?=$lang['login']['login'];?></div>
|
<div class="panel-heading"><span class="glyphicon glyphicon-user" aria-hidden="true"></span> <?= $lang['login']['login']; ?></div>
|
||||||
<div class="panel-body">
|
<div class="panel-body">
|
||||||
<center><img style="max-width:250px" src="/img/cow_mailcow.svg" alt="mailcow"></center>
|
<div class="text-center"><img style="max-width: 250px;" src="/img/cow_mailcow.svg" alt="mailcow"></div>
|
||||||
<legend>mailcow UI</legend>
|
<legend>mailcow UI</legend>
|
||||||
<form method="post" autofill="off">
|
<form method="post" autofill="off">
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label class="sr-only" for="login_user"><?=$lang['login']['username'];?></label>
|
<label class="sr-only" for="login_user"><?= $lang['login']['username']; ?></label>
|
||||||
<div class="input-group">
|
<div class="input-group">
|
||||||
<div class="input-group-addon"><i class="glyphicon glyphicon-user"></i></div>
|
<div class="input-group-addon"><i class="glyphicon glyphicon-user"></i></div>
|
||||||
<input name="login_user" autocorrect="off" autocapitalize="none" type="text" id="login_user" class="form-control" placeholder="<?=$lang['login']['username'];?>" required="" autofocus="">
|
<input name="login_user" autocorrect="off" autocapitalize="none" type="text" id="login_user" class="form-control" placeholder="<?= $lang['login']['username']; ?>" required="" autofocus="">
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label class="sr-only" for="pass_user"><?=$lang['login']['password'];?></label>
|
<label class="sr-only" for="pass_user"><?= $lang['login']['password']; ?></label>
|
||||||
<div class="input-group">
|
<div class="input-group">
|
||||||
<div class="input-group-addon"><i class="glyphicon glyphicon-lock"></i></div>
|
<div class="input-group-addon"><i class="glyphicon glyphicon-lock"></i></div>
|
||||||
<input name="pass_user" type="password" id="pass_user" class="form-control" placeholder="<?=$lang['login']['password'];?>" required="">
|
<input name="pass_user" type="password" id="pass_user" class="form-control" placeholder="<?= $lang['login']['password']; ?>" required="">
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<button type="submit" class="btn btn-success" value="Login"><?=$lang['login']['login'];?></button>
|
<button type="submit" class="btn btn-success" value="Login"><?= $lang['login']['login']; ?></button>
|
||||||
<div class="btn-group pull-right">
|
<div class="btn-group pull-right">
|
||||||
<button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
|
<button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
|
||||||
<span class="lang-sm lang-lbl" lang="<?=$_SESSION['mailcow_locale'];?>"></span> <span class="caret"></span>
|
<span class="lang-sm lang-lbl" lang="<?= $_SESSION['mailcow_locale']; ?>"></span> <span class="caret"></span>
|
||||||
</button>
|
</button>
|
||||||
<ul class="dropdown-menu">
|
<ul class="dropdown-menu">
|
||||||
<li <?=($_SESSION['mailcow_locale'] == 'de') ? 'class="active"' : ''?>><a href="?<?= http_build_query(array_merge($_GET, array("lang" => "de"))) ?>"><span class="lang-xs lang-lbl-full" lang="de"></span></a></li>
|
<?php
|
||||||
<li <?=($_SESSION['mailcow_locale'] == 'en') ? 'class="active"' : ''?>><a href="?<?= http_build_query(array_merge($_GET, array("lang" => "en"))) ?>"><span class="lang-xs lang-lbl-full" lang="en"></span></a></li>
|
foreach ($AVAILABLE_LANGUAGES as $language):
|
||||||
<li <?=($_SESSION['mailcow_locale'] == 'es') ? 'class="active"' : ''?>><a href="?<?= http_build_query(array_merge($_GET, array("lang" => "es"))) ?>"><span class="lang-xs lang-lbl-full" lang="es"></span></a></li>
|
?>
|
||||||
<li <?=($_SESSION['mailcow_locale'] == 'nl') ? 'class="active"' : ''?>><a href="?<?= http_build_query(array_merge($_GET, array("lang" => "nl"))) ?>"><span class="lang-xs lang-lbl-full" lang="nl"></span></a></li>
|
<li<?= ($_SESSION['mailcow_locale'] == $language) ? ' class="active"' : ''; ?>><a href="?<?= http_build_query(array_merge($_GET, array('lang' => $language))) ?>"><span class="lang-xs lang-lbl-full" lang="<?= $language; ?>"></span></a></li>
|
||||||
<li <?=($_SESSION['mailcow_locale'] == 'pt') ? 'class="active"' : ''?>><a href="?<?= http_build_query(array_merge($_GET, array("lang" => "pt"))) ?>"><span class="lang-xs lang-lbl-full" lang="pt"></span></a></li>
|
<?php
|
||||||
<li <?=($_SESSION['mailcow_locale'] == 'ru') ? 'class="active"' : ''?>><a href="?<?= http_build_query(array_merge($_GET, array("lang" => "ru"))) ?>"><span class="lang-xs lang-lbl-full" lang="ru"></span></a></li>
|
endforeach;
|
||||||
</ul>
|
?>
|
||||||
</div>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
</form>
|
</div>
|
||||||
<?php
|
</form>
|
||||||
if (isset($_SESSION['ldelay']) && $_SESSION['ldelay'] != "0"):
|
<?php
|
||||||
?>
|
if (isset($_SESSION['ldelay']) && $_SESSION['ldelay'] != '0'):
|
||||||
<p><div class="alert alert-info"><?=sprintf($lang['login']['delayed'], $_SESSION['ldelay']);?></b></div></p>
|
?>
|
||||||
<?php
|
<p><div class="alert alert-info"><?= sprintf($lang['login']['delayed'], $_SESSION['ldelay']); ?></b></div></p>
|
||||||
endif;
|
<?php
|
||||||
?>
|
endif;
|
||||||
<legend>mailcow Apps</legend>
|
?>
|
||||||
|
<legend>mailcow Apps</legend>
|
||||||
<?php
|
<?php
|
||||||
foreach ($MAILCOW_APPS as $app):
|
foreach ($MAILCOW_APPS as $app):
|
||||||
?>
|
?>
|
||||||
<a href="<?=$app['link'];?>" role="button" class="btn btn-lg btn-default"><?=$app['name'];?></a>
|
<a href="<?= $app['link']; ?>" role="button" class="btn btn-lg btn-default"><?= $app['name']; ?></a>
|
||||||
<?php
|
<?php
|
||||||
endforeach;
|
endforeach;
|
||||||
?>
|
?>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-md-offset-3 col-md-6">
|
<div class="col-md-offset-3 col-md-6">
|
||||||
<div class="panel panel-default" style="">
|
<div class="panel panel-default">
|
||||||
<div class="panel-heading">
|
<div class="panel-heading">
|
||||||
<a data-toggle="collapse" href="#collapse1"><span class="glyphicon glyphicon-question-sign" aria-hidden="true"></span> <?=$lang['start']['help'];?></a>
|
<a data-toggle="collapse" href="#collapse1"><span class="glyphicon glyphicon-question-sign" aria-hidden="true"></span> <?= $lang['start']['help']; ?></a>
|
||||||
</div>
|
</div>
|
||||||
<div id="collapse1" class="panel-collapse collapse">
|
<div id="collapse1" class="panel-collapse collapse">
|
||||||
<div class="panel-body">
|
<div class="panel-body">
|
||||||
<p><span style="border-bottom: 1px dotted #999">mailcow UI</span></p>
|
<p><span style="border-bottom: 1px dotted #999;">mailcow UI</span></p>
|
||||||
<p><?=$lang['start']['mailcow_panel_detail'];?></p>
|
<p><?= $lang['start']['mailcow_panel_detail']; ?></p>
|
||||||
<p><span style="border-bottom: 1px dotted #999">mailcow Apps</span></p>
|
<p><span style="border-bottom: 1px dotted #999;">mailcow Apps</span></p>
|
||||||
<p><?=$lang['start']['mailcow_apps_detail'];?></p>
|
<p><?= $lang['start']['mailcow_apps_detail']; ?></p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div> <!-- /container -->
|
</div><!-- /.container -->
|
||||||
<script src="js/index.js"></script>
|
<script src="js/index.js"></script>
|
||||||
<?php
|
<?php
|
||||||
require_once("inc/footer.inc.php");
|
require_once 'inc/footer.inc.php';
|
||||||
?>
|
|
||||||
|
|
|
@ -56,7 +56,7 @@ $(document).ready(function() {
|
||||||
url: '/api/v1/' + api_url,
|
url: '/api/v1/' + api_url,
|
||||||
jsonp: false,
|
jsonp: false,
|
||||||
complete: function (data) {
|
complete: function (data) {
|
||||||
location.assign(window.location);
|
location.reload(true);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
})
|
})
|
||||||
|
|
|
@ -88,7 +88,6 @@ $(document).ready(function() {
|
||||||
$('#ConfirmDeleteModal').modal('hide');
|
$('#ConfirmDeleteModal').modal('hide');
|
||||||
});;
|
});;
|
||||||
});
|
});
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
jQuery(function($){
|
jQuery(function($){
|
||||||
|
|
|
@ -22,12 +22,165 @@ $(document).ready(function() {
|
||||||
|
|
||||||
// Init Bootstrap Switch
|
// Init Bootstrap Switch
|
||||||
$.fn.bootstrapSwitch.defaults.onColor = 'success';
|
$.fn.bootstrapSwitch.defaults.onColor = 'success';
|
||||||
$("[name='tls_out']").bootstrapSwitch();
|
$("#tls_out").bootstrapSwitch();
|
||||||
$("[name='tls_in']").bootstrapSwitch();
|
$("#tls_in").bootstrapSwitch();
|
||||||
|
|
||||||
// Log modal
|
// Log modal
|
||||||
$('#logModal').on('show.bs.modal', function(e) {
|
$('#logModal').on('show.bs.modal', function(e) {
|
||||||
var logText = $(e.relatedTarget).data('log-text');
|
var logText = $(e.relatedTarget).data('log-text');
|
||||||
$(e.currentTarget).find('#logText').html('<pre style="background:none;font-size:11px;line-height:1.1;border:0px">' + logText + '</pre>');
|
$(e.currentTarget).find('#logText').html('<pre style="background:none;font-size:11px;line-height:1.1;border:0px">' + logText + '</pre>');
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// Collect values of input fields with name multi_select with same data-id to js array multi_data[data-id]
|
||||||
|
var multi_data = [];
|
||||||
|
$(document).on('change', 'input[name=multi_select]:checkbox', function() {
|
||||||
|
if ($(this).is(':checked') && $(this).data('id')) {
|
||||||
|
var id = $(this).data('id');
|
||||||
|
if (typeof multi_data[id] == "undefined") {
|
||||||
|
multi_data[id] = [];
|
||||||
|
}
|
||||||
|
multi_data[id].push($(this).val());
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
var id = $(this).data('id');
|
||||||
|
multi_data[id].splice($.inArray($(this).val(), multi_data[id]),1);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
// Select checkbox by click on parent tr
|
||||||
|
$(document).on('click', 'tbody>tr', function(e) {
|
||||||
|
if (e.target.type == "checkbox") {
|
||||||
|
e.stopPropagation();
|
||||||
|
} else {
|
||||||
|
var checkbox = $(this).find(':checkbox');
|
||||||
|
checkbox.trigger('click');
|
||||||
|
}
|
||||||
|
});
|
||||||
|
// Select or deselect all checkboxes with same data-id
|
||||||
|
$(document).on('click', '#toggle_multi_select_all', function(e) {
|
||||||
|
e.preventDefault();
|
||||||
|
id = $(this).data("id");
|
||||||
|
multi_data[id] = [];
|
||||||
|
var all_checkboxes = $("input[data-id=" + id + "]:enabled");
|
||||||
|
all_checkboxes.prop("checked", !all_checkboxes.prop("checked")).change();
|
||||||
|
});
|
||||||
|
// General API edit actions
|
||||||
|
$(document).on('click', '#edit_selected', function(e) {
|
||||||
|
e.preventDefault();
|
||||||
|
var id = $(this).data('id');
|
||||||
|
if (typeof multi_data[id] == "undefined") return;
|
||||||
|
data_array = multi_data[id];
|
||||||
|
api_url = $(this).data('api-url');
|
||||||
|
api_attr = $(this).data('api-attr');
|
||||||
|
if (Object.keys(data_array).length !== 0) {
|
||||||
|
$.ajax({
|
||||||
|
type: "POST",
|
||||||
|
dataType: "json",
|
||||||
|
data: { "items": JSON.stringify(data_array), "attr": JSON.stringify(api_attr), "csrf_token": csrf_token },
|
||||||
|
url: '/api/v1/' + api_url,
|
||||||
|
jsonp: false,
|
||||||
|
complete: function (data) {
|
||||||
|
// var reponse = (JSON.parse(data.responseText));
|
||||||
|
// console.log(reponse.type);
|
||||||
|
// console.log(reponse.msg);
|
||||||
|
location.assign(window.location);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
// General API delete actions
|
||||||
|
$(document).on('click', '#delete_selected', function(e) {
|
||||||
|
e.preventDefault();
|
||||||
|
var id = $(this).data('id');
|
||||||
|
if (typeof multi_data[id] == "undefined" || multi_data[id] == "") return;
|
||||||
|
data_array = multi_data[id];
|
||||||
|
api_url = $(this).data('api-url');
|
||||||
|
$(document).on('show.bs.modal','#ConfirmDeleteModal', function () {
|
||||||
|
$("#ItemsToDelete").empty();
|
||||||
|
for (var i in data_array) {
|
||||||
|
$("#ItemsToDelete").append("<li>" + data_array[i] + "</li>");
|
||||||
|
}
|
||||||
|
})
|
||||||
|
$('#ConfirmDeleteModal').modal({
|
||||||
|
backdrop: 'static',
|
||||||
|
keyboard: false
|
||||||
|
})
|
||||||
|
.one('click', '#IsConfirmed', function(e) {
|
||||||
|
$.ajax({
|
||||||
|
type: "POST",
|
||||||
|
dataType: "json",
|
||||||
|
data: { "items": JSON.stringify(data_array), "csrf_token": csrf_token },
|
||||||
|
url: '/api/v1/' + api_url,
|
||||||
|
jsonp: false,
|
||||||
|
complete: function (data) {
|
||||||
|
location.reload(true);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
})
|
||||||
|
.one('click', '#isCanceled', function(e) {
|
||||||
|
$('#ConfirmDeleteModal').modal('hide');
|
||||||
|
});;
|
||||||
|
});
|
||||||
|
});
|
||||||
|
jQuery(function($){
|
||||||
|
// http://stackoverflow.com/questions/24816/escaping-html-strings-with-jquery
|
||||||
|
var entityMap = {
|
||||||
|
'&': '&',
|
||||||
|
'<': '<',
|
||||||
|
'>': '>',
|
||||||
|
'"': '"',
|
||||||
|
"'": ''',
|
||||||
|
'/': '/',
|
||||||
|
'`': '`',
|
||||||
|
'=': '='
|
||||||
|
};
|
||||||
|
function escapeHtml(string) {
|
||||||
|
return String(string).replace(/[&<>"'`=\/]/g, function (s) {
|
||||||
|
return entityMap[s];
|
||||||
|
});
|
||||||
|
}
|
||||||
|
function draw_sync_job_table() {
|
||||||
|
ft_aliasdomain_table = FooTable.init('#sync_job_table', {
|
||||||
|
"columns": [
|
||||||
|
{"name":"chkbox","title":"","style":{"maxWidth":"40px","width":"40px"},"filterable": false,"sortable": false,"type":"html"},
|
||||||
|
{"sorted": true,"name":"server_w_port","title":"Server"},
|
||||||
|
{"name":"enc1","title":lang.encryption},
|
||||||
|
{"name":"user1","title":lang.username},
|
||||||
|
{"name":"exclude","title":lang.excludes},
|
||||||
|
{"name":"mins_interval","title":lang.interval + " (min)"},
|
||||||
|
{"name":"last_run","title":lang.last_run},
|
||||||
|
{"name":"log","title":"Log"},
|
||||||
|
{"name":"active","filterable": false,"style":{"maxWidth":"50px","width":"70px"},"title":lang.active},
|
||||||
|
{"name":"action","filterable": false,"sortable": false,"style":{"text-align":"right","maxWidth":"180px","width":"180px"},"type":"html","title":lang.action,"breakpoints":"xs sm"}
|
||||||
|
],
|
||||||
|
"empty": lang.empty,
|
||||||
|
"rows": $.ajax({
|
||||||
|
dataType: 'json',
|
||||||
|
url: '/api/v1/get/syncjob',
|
||||||
|
jsonp: false,
|
||||||
|
error: function () {
|
||||||
|
console.log('Cannot draw sync job table');
|
||||||
|
},
|
||||||
|
success: function (data) {
|
||||||
|
$.each(data, function (i, item) {
|
||||||
|
item.log = '<a href="#logModal" data-toggle="modal" data-log-text="' + escapeHtml(item.returned_text) + '">Open logs</a>'
|
||||||
|
item.exclude = '<code>' + item.exclude + '</code>'
|
||||||
|
item.server_w_port = item.host1 + ':' + item.port1;
|
||||||
|
item.action = '<div class="btn-group">' +
|
||||||
|
'<a href="/edit.php?syncjob=' + item.id + '" class="btn btn-xs btn-default"><span class="glyphicon glyphicon-pencil"></span> ' + lang.edit + '</a>' +
|
||||||
|
'</div>';
|
||||||
|
item.chkbox = '<input type="checkbox" data-id="syncjob" name="multi_select" value="' + item.id + '" />';
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}),
|
||||||
|
"paging": {
|
||||||
|
"enabled": true,
|
||||||
|
"limit": 5,
|
||||||
|
"size": pagination_size
|
||||||
|
},
|
||||||
|
"sorting": {
|
||||||
|
"enabled": true
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
draw_sync_job_table();
|
||||||
});
|
});
|
|
@ -151,7 +151,19 @@ if (isset($_SESSION['mailcow_cc_role']) || isset($_SESSION['pending_mailcow_cc_u
|
||||||
echo json_encode($data, JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT);
|
echo json_encode($data, JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case "syncjob":
|
||||||
|
switch ($object) {
|
||||||
|
default:
|
||||||
|
$data = get_syncjobs($object);
|
||||||
|
if (!isset($data) || empty($data)) {
|
||||||
|
echo '{}';
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
echo json_encode($data, JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT);
|
||||||
|
}
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case "resource":
|
case "resource":
|
||||||
|
@ -183,7 +195,6 @@ if (isset($_SESSION['mailcow_cc_role']) || isset($_SESSION['pending_mailcow_cc_u
|
||||||
echo '{}';
|
echo '{}';
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
$data = mailbox_get_resource_details($object);
|
$data = mailbox_get_resource_details($object);
|
||||||
if (!isset($data) || empty($data)) {
|
if (!isset($data) || empty($data)) {
|
||||||
|
@ -193,7 +204,6 @@ if (isset($_SESSION['mailcow_cc_role']) || isset($_SESSION['pending_mailcow_cc_u
|
||||||
echo json_encode($data, JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT);
|
echo json_encode($data, JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case "fwdhost":
|
case "fwdhost":
|
||||||
|
@ -226,7 +236,6 @@ if (isset($_SESSION['mailcow_cc_role']) || isset($_SESSION['pending_mailcow_cc_u
|
||||||
echo json_encode($data, JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT);
|
echo json_encode($data, JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case "alias-domain":
|
case "alias-domain":
|
||||||
|
@ -258,7 +267,6 @@ if (isset($_SESSION['mailcow_cc_role']) || isset($_SESSION['pending_mailcow_cc_u
|
||||||
echo '{}';
|
echo '{}';
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
$data = mailbox_get_alias_domains($object);
|
$data = mailbox_get_alias_domains($object);
|
||||||
if (!isset($data) || empty($data)) {
|
if (!isset($data) || empty($data)) {
|
||||||
|
@ -756,6 +764,50 @@ if (isset($_SESSION['mailcow_cc_role']) || isset($_SESSION['pending_mailcow_cc_u
|
||||||
));
|
));
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
case "syncjob":
|
||||||
|
if (isset($_POST['items']) && isset($_POST['attr'])) {
|
||||||
|
$items = (array)json_decode($_POST['items'], true);
|
||||||
|
$attr = (array)json_decode($_POST['attr'], true);
|
||||||
|
$postarray = array_merge(array('id' => $items), $attr);
|
||||||
|
if (is_array($postarray['id'])) {
|
||||||
|
if (edit_syncjob($postarray) === false) {
|
||||||
|
if (isset($_SESSION['return'])) {
|
||||||
|
echo json_encode($_SESSION['return']);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
echo json_encode(array(
|
||||||
|
'type' => 'error',
|
||||||
|
'msg' => 'Edit failed'
|
||||||
|
));
|
||||||
|
}
|
||||||
|
exit();
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
if (isset($_SESSION['return'])) {
|
||||||
|
echo json_encode($_SESSION['return']);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
echo json_encode(array(
|
||||||
|
'type' => 'success',
|
||||||
|
'msg' => 'Task completed'
|
||||||
|
));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
echo json_encode(array(
|
||||||
|
'type' => 'error',
|
||||||
|
'msg' => 'Incomplete post data'
|
||||||
|
));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
echo json_encode(array(
|
||||||
|
'type' => 'error',
|
||||||
|
'msg' => 'Incomplete post data'
|
||||||
|
));
|
||||||
|
}
|
||||||
|
break;
|
||||||
case "resource":
|
case "resource":
|
||||||
if (isset($_POST['items']) && isset($_POST['attr'])) {
|
if (isset($_POST['items']) && isset($_POST['attr'])) {
|
||||||
$items = (array)json_decode($_POST['items'], true);
|
$items = (array)json_decode($_POST['items'], true);
|
||||||
|
|
|
@ -1,14 +1,13 @@
|
||||||
<?php
|
<?php
|
||||||
/*
|
/*
|
||||||
//
|
* German language file
|
||||||
// German language file
|
*/
|
||||||
//
|
|
||||||
*/
|
|
||||||
$lang['footer']['loading'] = 'Einen Moment bitte...';
|
$lang['footer']['loading'] = 'Einen Moment bitte...';
|
||||||
$lang['header']['restart_sogo'] = 'SOGo neustarten';
|
$lang['header']['restart_sogo'] = 'SOGo neustarten';
|
||||||
$lang['footer']['restart_sogo'] = 'SOGo neustarten';
|
$lang['footer']['restart_sogo'] = 'SOGo neustarten';
|
||||||
$lang['footer']['restart_now'] = 'Jetzt neustarten';
|
$lang['footer']['restart_now'] = 'Jetzt neustarten';
|
||||||
$lang['footer']['restart_sogo_info'] = 'Einige Änderungen an Domains benötigen einen Neustart SOGos. Hier können Sie SOGo neustarten.<br /><br /><b>Wichtig:</b> Ein korrekter Neustart SOGos kann eine Weile in Anspruch nehmen, bitte warten Sie, bis der Prozess vollständig beendet wurde.';
|
$lang['footer']['restart_sogo_info'] = 'Einige Änderungen an Domains benötigen einen Neustart SOGos. Hier können Sie SOGo neustarten.<br><br><b>Wichtig:</b> Ein korrekter Neustart SOGos kann eine Weile in Anspruch nehmen, bitte warten Sie, bis der Prozess vollständig beendet wurde.';
|
||||||
|
|
||||||
$lang['footer']['confirm_delete'] = 'Löschen bestätigen';
|
$lang['footer']['confirm_delete'] = 'Löschen bestätigen';
|
||||||
$lang['footer']['delete_these_items'] = 'Sind Sie sicher, dass die folgenden Elemente entfernt werden sollen?';
|
$lang['footer']['delete_these_items'] = 'Sind Sie sicher, dass die folgenden Elemente entfernt werden sollen?';
|
||||||
|
@ -154,7 +153,7 @@ $lang['user']['spamfilter_default_score'] = 'Standardwert:';
|
||||||
$lang['user']['spamfilter_hint'] = 'Der erste Wert beschreibt den "low spam score", der zweite Wert den "high spam score".';
|
$lang['user']['spamfilter_hint'] = 'Der erste Wert beschreibt den "low spam score", der zweite Wert den "high spam score".';
|
||||||
$lang['user']['spamfilter_table_domain_policy'] = "n.v. (Domainrichtlinie)";
|
$lang['user']['spamfilter_table_domain_policy'] = "n.v. (Domainrichtlinie)";
|
||||||
|
|
||||||
$lang['user']['tls_policy_warning'] = '<strong>Vorsicht:</strong> Entscheiden Sie sich unverschlüsselte Verbindungen abzulehnen, kann dies dazu führen, dass Kontakte Sie nicht mehr erreichen.<br />Nachrichten, die die Richtlinie nicht erfüllen, werden durch einen Hard-Fail im Mailsystem abgewiesen.<br />Diese Einstellung ist aktiv für die primäre Mailbox, für alle Alias-Adressen, die dieser Mailbox <b>direkt zugeordnet</b> sind (lediglich eine einzige Ziel-Adresse) und der Adressen, die sich aus Alias-Domains ergeben. Ausgeschlossen sind temporäre Aliasse ("Spam-Alias-Adressen"), Catch-All Alias-Adressen sowie Alias-Adressen mit mehreren Zielen.';
|
$lang['user']['tls_policy_warning'] = '<strong>Vorsicht:</strong> Entscheiden Sie sich unverschlüsselte Verbindungen abzulehnen, kann dies dazu führen, dass Kontakte Sie nicht mehr erreichen.<br>Nachrichten, die die Richtlinie nicht erfüllen, werden durch einen Hard-Fail im Mailsystem abgewiesen.<br>Diese Einstellung ist aktiv für die primäre Mailbox, für alle Alias-Adressen, die dieser Mailbox <b>direkt zugeordnet</b> sind (lediglich eine einzige Ziel-Adresse) und der Adressen, die sich aus Alias-Domains ergeben. Ausgeschlossen sind temporäre Aliasse ("Spam-Alias-Adressen"), Catch-All Alias-Adressen sowie Alias-Adressen mit mehreren Zielen.';
|
||||||
$lang['user']['tls_policy'] = 'Verschlüsselungsrichtlinie';
|
$lang['user']['tls_policy'] = 'Verschlüsselungsrichtlinie';
|
||||||
$lang['user']['tls_enforce_in'] = 'TLS eingehend erzwingen';
|
$lang['user']['tls_enforce_in'] = 'TLS eingehend erzwingen';
|
||||||
$lang['user']['tls_enforce_out'] = 'TLS ausgehend erzwingen';
|
$lang['user']['tls_enforce_out'] = 'TLS ausgehend erzwingen';
|
||||||
|
@ -166,12 +165,12 @@ $lang['user']['misc_delete_profile'] = 'Sonstige Kontoeinstellungen';
|
||||||
$lang['user']['tag_handling'] = 'Umgang mit getaggten E-Mails steuern';
|
$lang['user']['tag_handling'] = 'Umgang mit getaggten E-Mails steuern';
|
||||||
$lang['user']['tag_in_subfolder'] = 'In Unterordner';
|
$lang['user']['tag_in_subfolder'] = 'In Unterordner';
|
||||||
$lang['user']['tag_in_subject'] = 'In Betreff';
|
$lang['user']['tag_in_subject'] = 'In Betreff';
|
||||||
$lang['user']['tag_help_explain'] = 'Als Unterordner: Es wird ein Ordner mit dem Namen des Tags unterhalb der Inbox erstellt ("INBOX/Facebook").<br />
|
$lang['user']['tag_help_explain'] = 'Als Unterordner: Es wird ein Ordner mit dem Namen des Tags unterhalb der Inbox erstellt ("INBOX/Facebook").<br>
|
||||||
In Betreff: Der Name des Tags wird dem Betreff angefügt, etwa "[Facebook] Meine Neuigkeiten".';
|
In Betreff: Der Name des Tags wird dem Betreff angefügt, etwa "[Facebook] Meine Neuigkeiten".';
|
||||||
$lang['user']['tag_help_example'] = 'Beispiel für eine getaggte E-Mail-Adresse: ich<b>+Facebook</b>@example.org';
|
$lang['user']['tag_help_example'] = 'Beispiel für eine getaggte E-Mail-Adresse: ich<b>+Facebook</b>@example.org';
|
||||||
$lang['user']['eas_reset'] = 'ActiveSync Geräte-Cache zurücksetzen';
|
$lang['user']['eas_reset'] = 'ActiveSync Geräte-Cache zurücksetzen';
|
||||||
$lang['user']['eas_reset_now'] = 'Jetzt zurücksetzen';
|
$lang['user']['eas_reset_now'] = 'Jetzt zurücksetzen';
|
||||||
$lang['user']['eas_reset_help'] = 'In vielen Fällen kann ein ActiveSync Profil durch das Zurücksetzen des Caches repariert werden.<br /><b>Vorsicht:</b> Alle Elemente werden erneut heruntergeladen!';
|
$lang['user']['eas_reset_help'] = 'In vielen Fällen kann ein ActiveSync Profil durch das Zurücksetzen des Caches repariert werden.<br><b>Vorsicht:</b> Alle Elemente werden erneut heruntergeladen!';
|
||||||
|
|
||||||
$lang['user']['encryption'] = 'Verschlüsselung';
|
$lang['user']['encryption'] = 'Verschlüsselung';
|
||||||
$lang['user']['username'] = 'Benutzername';
|
$lang['user']['username'] = 'Benutzername';
|
||||||
|
@ -192,17 +191,17 @@ $lang['start']['start_sogo'] = 'SOGo öffnen';
|
||||||
$lang['start']['mailcow_apps_detail'] = 'Verwenden Sie mailcow Apps, um E-Mails abzurufen, Kalender- und Kontakte zu verwalten und vieles mehr.';
|
$lang['start']['mailcow_apps_detail'] = 'Verwenden Sie mailcow Apps, um E-Mails abzurufen, Kalender- und Kontakte zu verwalten und vieles mehr.';
|
||||||
$lang['start']['mailcow_panel'] = 'mailcow UI starten';
|
$lang['start']['mailcow_panel'] = 'mailcow UI starten';
|
||||||
$lang['start']['mailcow_panel_description'] = 'Die mailcow Steuerung steht sowohl für Administratoren als auch Mailbox-Benutzer zur Verfügung.';
|
$lang['start']['mailcow_panel_description'] = 'Die mailcow Steuerung steht sowohl für Administratoren als auch Mailbox-Benutzer zur Verfügung.';
|
||||||
$lang['start']['mailcow_panel_detail'] = '<b>Domain-Administratoren</b> erstellen, verändern oder löschen Mailboxen, verwalten die Domäne und sehen sonstige Einstellungen ein.<br />
|
$lang['start']['mailcow_panel_detail'] = '<b>Domain-Administratoren</b> erstellen, verändern oder löschen Mailboxen, verwalten die Domäne und sehen sonstige Einstellungen ein.<br>
|
||||||
Als <b>Mailbox-Benutzer</b> erstellen Sie hier zeitlich limitierte Aliasse, ändern das Verhalten des Spamfilters, setzen ein neues Passwort und vieles mehr.';
|
Als <b>Mailbox-Benutzer</b> erstellen Sie hier zeitlich limitierte Aliasse, ändern das Verhalten des Spamfilters, setzen ein neues Passwort und vieles mehr.';
|
||||||
$lang['start']['recommended_config'] = 'Empfohlene Software-Konfiguration (ohne ActiveSync)';
|
$lang['start']['recommended_config'] = 'Empfohlene Software-Konfiguration (ohne ActiveSync)';
|
||||||
$lang['start']['imap_smtp_server'] = 'IMAP- und SMTP-Server';
|
$lang['start']['imap_smtp_server'] = 'IMAP- und SMTP-Server';
|
||||||
$lang['start']['imap_smtp_server_description'] = 'Für eine optimale Verbindung empfehlen wir die Verwendung des <a href="%s" target="_blank"><b>Mozilla Thunderbirds</b></a>.';
|
$lang['start']['imap_smtp_server_description'] = 'Für eine optimale Verbindung empfehlen wir die Verwendung des <a href="%s" target="_blank"><b>Mozilla Thunderbirds</b></a>.';
|
||||||
$lang['start']['imap_smtp_server_badge'] = 'E-Mail lesen und schreiben';
|
$lang['start']['imap_smtp_server_badge'] = 'E-Mail lesen und schreiben';
|
||||||
$lang['start']['imap_smtp_server_auth_info'] = 'Bitte verwenden Sie Ihre vollständige E-Mail-Adresse sowie das PLAIN-Authentifizierungsverfahren.<br />
|
$lang['start']['imap_smtp_server_auth_info'] = 'Bitte verwenden Sie Ihre vollständige E-Mail-Adresse sowie das PLAIN-Authentifizierungsverfahren.<br>
|
||||||
Ihre Anmeldedaten werden durch die obligatorische Verschlüsselung entgegen des Begriffes "PLAIN" nicht unverschlüsselt übertragen.';
|
Ihre Anmeldedaten werden durch die obligatorische Verschlüsselung entgegen des Begriffes "PLAIN" nicht unverschlüsselt übertragen.';
|
||||||
$lang['start']['managesieve'] = 'ManageSieve';
|
$lang['start']['managesieve'] = 'ManageSieve';
|
||||||
$lang['start']['managesieve_badge'] = 'E-Mail-Filter';
|
$lang['start']['managesieve_badge'] = 'E-Mail-Filter';
|
||||||
$lang['start']['managesieve_description'] = 'Bitte verwenden Sie <b>Mozilla Thunderbirds</b> zusammen mit der <a style="text-decoration:none" target="_blank" href="%s"><b>Sieve Erweiterung</b></a>.<br />Nach dem Herunterladen der Erweiterung starten Sie Thunderbird, öffnen das Fenster für Erweiterungen und ziehen die heruntergeladene Datei in das offene Fenster.<br />Der Servername lautet <b>%s</b>, als Port konfigurieren Sie bitte <b>4190</b>. Die Anmeldedaten entsprechen dem E-Mail Login.';
|
$lang['start']['managesieve_description'] = 'Bitte verwenden Sie <b>Mozilla Thunderbirds</b> zusammen mit der <a style="text-decoration:none" target="_blank" href="%s"><b>Sieve Erweiterung</b></a>.<br>Nach dem Herunterladen der Erweiterung starten Sie Thunderbird, öffnen das Fenster für Erweiterungen und ziehen die heruntergeladene Datei in das offene Fenster.<br>Der Servername lautet <b>%s</b>, als Port konfigurieren Sie bitte <b>4190</b>. Die Anmeldedaten entsprechen dem E-Mail Login.';
|
||||||
$lang['start']['service'] = 'Dienstname';
|
$lang['start']['service'] = 'Dienstname';
|
||||||
$lang['start']['encryption'] = 'Verschlüsselungstyp';
|
$lang['start']['encryption'] = 'Verschlüsselungstyp';
|
||||||
$lang['start']['help'] = 'Hilfe ein-/ausblenden';
|
$lang['start']['help'] = 'Hilfe ein-/ausblenden';
|
||||||
|
@ -272,7 +271,7 @@ $lang['delete']['remove_mailbox_warning'] = '<b>Warnung:</b> Sie entfernen die M
|
||||||
$lang['delete']['remove_mailbox_details'] = 'Die Mailbox wird <b>vollständig und permanent</b> entfernt!';
|
$lang['delete']['remove_mailbox_details'] = 'Die Mailbox wird <b>vollständig und permanent</b> entfernt!';
|
||||||
$lang['delete']['remove_resource_warning'] = '<b>Warnung:</b> Sie entfernen die Ressource <b>%s</b>!';
|
$lang['delete']['remove_resource_warning'] = '<b>Warnung:</b> Sie entfernen die Ressource <b>%s</b>!';
|
||||||
$lang['delete']['remove_resource_details'] = 'Die Ressource wird <b>vollständig und permanent</b> entfernt!';
|
$lang['delete']['remove_resource_details'] = 'Die Ressource wird <b>vollständig und permanent</b> entfernt!';
|
||||||
$lang['delete']['remove_domain_details'] = 'Diese Aktion entfernt ebenfalls Domain-Aliasse.<br /><br /><b>Eine Domain muss leer sein, um entfernt zu werden.</b>';
|
$lang['delete']['remove_domain_details'] = 'Diese Aktion entfernt ebenfalls Domain-Aliasse.<br><br><b>Eine Domain muss leer sein, um entfernt zu werden.</b>';
|
||||||
$lang['delete']['remove_syncjob_details'] = 'Objekte dieses Sync-Jobs werden nicht mehr vom entfernten Server abgeholt.';
|
$lang['delete']['remove_syncjob_details'] = 'Objekte dieses Sync-Jobs werden nicht mehr vom entfernten Server abgeholt.';
|
||||||
$lang['delete']['remove_alias_details'] = 'Benutzer werden keine Nachrichten mehr von dieser Adresse erhalten und versenden koennen!</b>';
|
$lang['delete']['remove_alias_details'] = 'Benutzer werden keine Nachrichten mehr von dieser Adresse erhalten und versenden koennen!</b>';
|
||||||
$lang['delete']['remove_button'] = 'Entfernen';
|
$lang['delete']['remove_button'] = 'Entfernen';
|
||||||
|
@ -284,7 +283,7 @@ $lang['edit']['username'] = 'Benutzername';
|
||||||
$lang['edit']['hostname'] = 'Servername';
|
$lang['edit']['hostname'] = 'Servername';
|
||||||
$lang['edit']['encryption'] = 'Verschlüsselungsmethode';
|
$lang['edit']['encryption'] = 'Verschlüsselungsmethode';
|
||||||
$lang['edit']['maxage'] = 'Maximales Alter in Tagen einer Nachricht, die kopiert werden soll</br ><small>(0 = alle Nachrichten kopieren)</small>';
|
$lang['edit']['maxage'] = 'Maximales Alter in Tagen einer Nachricht, die kopiert werden soll</br ><small>(0 = alle Nachrichten kopieren)</small>';
|
||||||
$lang['edit']['subfolder2'] = 'Ziel-Ordner<br /><small>(leer = kein Unterordner)</small>';
|
$lang['edit']['subfolder2'] = 'Ziel-Ordner<br><small>(leer = kein Unterordner)</small>';
|
||||||
$lang['edit']['mins_interval'] = 'Intervall (min)';
|
$lang['edit']['mins_interval'] = 'Intervall (min)';
|
||||||
$lang['edit']['exclude'] = 'Elemente ausschließen (Regex)';
|
$lang['edit']['exclude'] = 'Elemente ausschließen (Regex)';
|
||||||
$lang['edit']['archive'] = 'Archiv-Zugriff';
|
$lang['edit']['archive'] = 'Archiv-Zugriff';
|
||||||
|
@ -410,8 +409,8 @@ $lang['tfa']['otp'] = "Einmalpasswort";
|
||||||
$lang['tfa']['totp'] = "Time-based OTP (Google Authenticator etc.)";
|
$lang['tfa']['totp'] = "Time-based OTP (Google Authenticator etc.)";
|
||||||
$lang['tfa']['trash_login'] = "Login verwerfen";
|
$lang['tfa']['trash_login'] = "Login verwerfen";
|
||||||
$lang['tfa']['select'] = "Bitte auswählen";
|
$lang['tfa']['select'] = "Bitte auswählen";
|
||||||
$lang['tfa']['waiting_usb_auth'] = "<i>Warte auf USB-Gerät...</i><br /><br />Bitte jetzt den vorgesehenen Taster des U2F USB-Gerätes berühren.";
|
$lang['tfa']['waiting_usb_auth'] = "<i>Warte auf USB-Gerät...</i><br><br>Bitte jetzt den vorgesehenen Taster des U2F USB-Gerätes berühren.";
|
||||||
$lang['tfa']['waiting_usb_register'] = "<i>Warte auf USB-Gerät...</i><br /><br />Bitte zuerst das obere Passwortfeld ausfüllen und erst dann den vorgesehenen Taster des U2F USB-Gerätes berühren.";
|
$lang['tfa']['waiting_usb_register'] = "<i>Warte auf USB-Gerät...</i><br><br>Bitte zuerst das obere Passwortfeld ausfüllen und erst dann den vorgesehenen Taster des U2F USB-Gerätes berühren.";
|
||||||
$lang['tfa']['scan_qr_code'] = "Bitte scannen Sie jetzt den angezeigten QR-Code:.";
|
$lang['tfa']['scan_qr_code'] = "Bitte scannen Sie jetzt den angezeigten QR-Code:.";
|
||||||
$lang['tfa']['enter_qr_code'] = "Falls Sie den angezeigten QR-Code nicht scannen können, verwenden Sie bitte nachstehenden Sicherheitsschlüssel";
|
$lang['tfa']['enter_qr_code'] = "Falls Sie den angezeigten QR-Code nicht scannen können, verwenden Sie bitte nachstehenden Sicherheitsschlüssel";
|
||||||
$lang['tfa']['confirm_totp_token'] = "Bitte bestätigen Sie die Änderung durch Eingabe eines generierten Tokens";
|
$lang['tfa']['confirm_totp_token'] = "Bitte bestätigen Sie die Änderung durch Eingabe eines generierten Tokens";
|
||||||
|
@ -423,7 +422,7 @@ $lang['admin']['sr'] = 'Postfix Sender Restriktionen';
|
||||||
$lang['admin']['reset_defaults'] = 'Standard wiederherstellen';
|
$lang['admin']['reset_defaults'] = 'Standard wiederherstellen';
|
||||||
$lang['admin']['r_inactive'] = 'Inaktive Restriktionen';
|
$lang['admin']['r_inactive'] = 'Inaktive Restriktionen';
|
||||||
$lang['admin']['r_active'] = 'Aktive Restriktionen';
|
$lang['admin']['r_active'] = 'Aktive Restriktionen';
|
||||||
$lang['admin']['r_info'] = 'Ausgegraute/deaktivierte Elemente sind mailcow nicht bekannt und können nicht in die Liste inaktiver Elemente verschoben werden. Unbekannte Restriktionen werden trotzdem in Reihenfolge der Erscheinung gesetzt.<br />Sie können ein Element in der Datei <code>inc/vars.local.inc.php</code> als bekannt hinzufügen, um es zu bewegen.';
|
$lang['admin']['r_info'] = 'Ausgegraute/deaktivierte Elemente sind mailcow nicht bekannt und können nicht in die Liste inaktiver Elemente verschoben werden. Unbekannte Restriktionen werden trotzdem in Reihenfolge der Erscheinung gesetzt.<br>Sie können ein Element in der Datei <code>inc/vars.local.inc.php</code> als bekannt hinzufügen, um es zu bewegen.';
|
||||||
$lang['admin']['public_folders'] = 'Öffentliche Ordner';
|
$lang['admin']['public_folders'] = 'Öffentliche Ordner';
|
||||||
$lang['admin']['public_folders_text'] = 'Ein Namespace "Public" wird erstellt. Der untenstehende Ordnername betrifft den Namen der automatisch erstellten Mailbox in diesem Namespace.';
|
$lang['admin']['public_folders_text'] = 'Ein Namespace "Public" wird erstellt. Der untenstehende Ordnername betrifft den Namen der automatisch erstellten Mailbox in diesem Namespace.';
|
||||||
$lang['admin']['public_folder_name'] = 'Ordnername <small>(alphanumerisch)</small>';
|
$lang['admin']['public_folder_name'] = 'Ordnername <small>(alphanumerisch)</small>';
|
||||||
|
@ -487,4 +486,3 @@ $lang['admin']['add_forwarding_host'] = 'Weiterleitungs-Host hinzufügen';
|
||||||
$lang['delete']['remove_forwardinghost_warning'] = '<b>Warnung:</b> Sie entfernen den Weiterleitungs-Host <b>%s</b>!';
|
$lang['delete']['remove_forwardinghost_warning'] = '<b>Warnung:</b> Sie entfernen den Weiterleitungs-Host <b>%s</b>!';
|
||||||
$lang['success']['forwarding_host_removed'] = "Weiterleitungs-Host %s wurde entfernt";
|
$lang['success']['forwarding_host_removed'] = "Weiterleitungs-Host %s wurde entfernt";
|
||||||
$lang['success']['forwarding_host_added'] = "Weiterleitungs-Host %s wurde hinzugefügt";
|
$lang['success']['forwarding_host_added'] = "Weiterleitungs-Host %s wurde hinzugefügt";
|
||||||
?>
|
|
||||||
|
|
|
@ -1,14 +1,13 @@
|
||||||
<?php
|
<?php
|
||||||
/*
|
/*
|
||||||
//
|
* English language file
|
||||||
// English language file
|
*/
|
||||||
//
|
|
||||||
*/
|
|
||||||
$lang['footer']['loading'] = "Please wait...";
|
$lang['footer']['loading'] = "Please wait...";
|
||||||
$lang['header']['restart_sogo'] = 'Restart SOGo';
|
$lang['header']['restart_sogo'] = 'Restart SOGo';
|
||||||
$lang['footer']['restart_sogo'] = 'Restart SOGo';
|
$lang['footer']['restart_sogo'] = 'Restart SOGo';
|
||||||
$lang['footer']['restart_now'] = 'Restart now';
|
$lang['footer']['restart_now'] = 'Restart now';
|
||||||
$lang['footer']['restart_sogo_info'] = 'Some tasks, e.g. adding a domain, require you to restart SOGo to catch changes made in the mailcow UI.<br /><br /><b>Important:</b> A graceful restart may take a while to complete, please wait for it to finish.';
|
$lang['footer']['restart_sogo_info'] = 'Some tasks, e.g. adding a domain, require you to restart SOGo to catch changes made in the mailcow UI.<br><br><b>Important:</b> A graceful restart may take a while to complete, please wait for it to finish.';
|
||||||
|
|
||||||
$lang['footer']['confirm_delete'] = 'Confirm deletion';
|
$lang['footer']['confirm_delete'] = 'Confirm deletion';
|
||||||
$lang['footer']['delete_these_items'] = 'Are you sure you want to delete the following items?';
|
$lang['footer']['delete_these_items'] = 'Are you sure you want to delete the following items?';
|
||||||
|
@ -156,7 +155,7 @@ $lang['user']['spamfilter_default_score'] = 'Default values:';
|
||||||
$lang['user']['spamfilter_hint'] = 'The first value describes the "low spam score", the second represents the "high spam score".';
|
$lang['user']['spamfilter_hint'] = 'The first value describes the "low spam score", the second represents the "high spam score".';
|
||||||
$lang['user']['spamfilter_table_domain_policy'] = "n/a (domain policy)";
|
$lang['user']['spamfilter_table_domain_policy'] = "n/a (domain policy)";
|
||||||
|
|
||||||
$lang['user']['tls_policy_warning'] = '<strong>Warning:</strong> If you decide to enforce encrypted mail transfer, you may lose emails.<br />Messages to not satisfy the policy will be bounced with a hard fail by the mail system.<br />This option applies to your primary email address (login name), all addresses derived from alias domains as well as alias addresses <b>with only this single mailbox</b> as target.';
|
$lang['user']['tls_policy_warning'] = '<strong>Warning:</strong> If you decide to enforce encrypted mail transfer, you may lose emails.<br>Messages to not satisfy the policy will be bounced with a hard fail by the mail system.<br>This option applies to your primary email address (login name), all addresses derived from alias domains as well as alias addresses <b>with only this single mailbox</b> as target.';
|
||||||
$lang['user']['tls_policy'] = 'Encryption policy';
|
$lang['user']['tls_policy'] = 'Encryption policy';
|
||||||
$lang['user']['tls_enforce_in'] = 'Enforce TLS incoming';
|
$lang['user']['tls_enforce_in'] = 'Enforce TLS incoming';
|
||||||
$lang['user']['tls_enforce_out'] = 'Enforce TLS outgoing';
|
$lang['user']['tls_enforce_out'] = 'Enforce TLS outgoing';
|
||||||
|
@ -168,12 +167,12 @@ $lang['user']['misc_delete_profile'] = 'Other profile settings';
|
||||||
$lang['user']['tag_handling'] = 'Set handling for tagged mail';
|
$lang['user']['tag_handling'] = 'Set handling for tagged mail';
|
||||||
$lang['user']['tag_in_subfolder'] = 'In subfolder';
|
$lang['user']['tag_in_subfolder'] = 'In subfolder';
|
||||||
$lang['user']['tag_in_subject'] = 'In subject';
|
$lang['user']['tag_in_subject'] = 'In subject';
|
||||||
$lang['user']['tag_help_explain'] = 'In subfolder: a new subfolder named after the tag will be created below INBOX ("INBOX/Facebook").<br />
|
$lang['user']['tag_help_explain'] = 'In subfolder: a new subfolder named after the tag will be created below INBOX ("INBOX/Facebook").<br>
|
||||||
In subject: the tags name will be prepended to the mails subject, example: "[Facebook] Meine Neuigkeiten".';
|
In subject: the tags name will be prepended to the mails subject, example: "[Facebook] Meine Neuigkeiten".';
|
||||||
$lang['user']['tag_help_example'] = 'Example for a tagged email address: ich<b>+Facebook</b>@example.org';
|
$lang['user']['tag_help_example'] = 'Example for a tagged email address: ich<b>+Facebook</b>@example.org';
|
||||||
$lang['user']['eas_reset'] = 'Reset ActiveSync device cache';
|
$lang['user']['eas_reset'] = 'Reset ActiveSync device cache';
|
||||||
$lang['user']['eas_reset_now'] = 'Reset now';
|
$lang['user']['eas_reset_now'] = 'Reset now';
|
||||||
$lang['user']['eas_reset_help'] = 'In many cases a device cache reset will help to recover a broken ActiveSync profile.<br /><b>Attention:</b> All elements will be redownloaded!';
|
$lang['user']['eas_reset_help'] = 'In many cases a device cache reset will help to recover a broken ActiveSync profile.<br><b>Attention:</b> All elements will be redownloaded!';
|
||||||
|
|
||||||
$lang['user']['encryption'] = 'Encyrption';
|
$lang['user']['encryption'] = 'Encyrption';
|
||||||
$lang['user']['username'] = 'Username';
|
$lang['user']['username'] = 'Username';
|
||||||
|
@ -194,17 +193,17 @@ $lang['start']['start_sogo'] = 'Open SOGo';
|
||||||
$lang['start']['mailcow_apps_detail'] = 'Use a mailcow app to access your mails, calendar, contacts and more.';
|
$lang['start']['mailcow_apps_detail'] = 'Use a mailcow app to access your mails, calendar, contacts and more.';
|
||||||
$lang['start']['mailcow_panel'] = 'Start mailcow UI';
|
$lang['start']['mailcow_panel'] = 'Start mailcow UI';
|
||||||
$lang['start']['mailcow_panel_description'] = 'The mailcow UI is available for administrators and mailbox users.';
|
$lang['start']['mailcow_panel_description'] = 'The mailcow UI is available for administrators and mailbox users.';
|
||||||
$lang['start']['mailcow_panel_detail'] = '<b>Domain administrators</b> create, modify or delete mailboxes and aliases, change domains and read further information about their assigned domains.<br />
|
$lang['start']['mailcow_panel_detail'] = '<b>Domain administrators</b> create, modify or delete mailboxes and aliases, change domains and read further information about their assigned domains.<br>
|
||||||
<b>Mailbox users</b> are able to create time-limited aliases (spam aliases), change their password and spam filter settings.';
|
<b>Mailbox users</b> are able to create time-limited aliases (spam aliases), change their password and spam filter settings.';
|
||||||
$lang['start']['recommended_config'] = 'Recommended configuration (without ActiveSync)';
|
$lang['start']['recommended_config'] = 'Recommended configuration (without ActiveSync)';
|
||||||
$lang['start']['imap_smtp_server'] = 'IMAP- and SMTP server data';
|
$lang['start']['imap_smtp_server'] = 'IMAP- and SMTP server data';
|
||||||
$lang['start']['imap_smtp_server_description'] = 'For the best experience we recommend to use <a href="%s" target="_blank"><b>Mozilla Thunderbird</b></a>.';
|
$lang['start']['imap_smtp_server_description'] = 'For the best experience we recommend to use <a href="%s" target="_blank"><b>Mozilla Thunderbird</b></a>.';
|
||||||
$lang['start']['imap_smtp_server_badge'] = 'Read/Write emails';
|
$lang['start']['imap_smtp_server_badge'] = 'Read/Write emails';
|
||||||
$lang['start']['imap_smtp_server_auth_info'] = 'Please use your full email address and the PLAIN authentication mechanism.<br />
|
$lang['start']['imap_smtp_server_auth_info'] = 'Please use your full email address and the PLAIN authentication mechanism.<br>
|
||||||
Your login data will be encrypted by the server-side mandatory encryption.';
|
Your login data will be encrypted by the server-side mandatory encryption.';
|
||||||
$lang['start']['managesieve'] = 'ManageSieve';
|
$lang['start']['managesieve'] = 'ManageSieve';
|
||||||
$lang['start']['managesieve_badge'] = 'Email filter';
|
$lang['start']['managesieve_badge'] = 'Email filter';
|
||||||
$lang['start']['managesieve_description'] = 'Please use <b>Mozilla Thunderbird</b> with the <a style="text-decoration:none" target="_blank" href="%s"><b>nightly sieve extension</b></a>.<br />Start Thunderbird, open the add-on settings and drop the newly downloaded xpi file into the opened window.<br />The server name is <b>%s</b>, use port <b>4190</b> if you are asked for. The login data match your email login.';
|
$lang['start']['managesieve_description'] = 'Please use <b>Mozilla Thunderbird</b> with the <a style="text-decoration:none" target="_blank" href="%s"><b>nightly sieve extension</b></a>.<br>Start Thunderbird, open the add-on settings and drop the newly downloaded xpi file into the opened window.<br>The server name is <b>%s</b>, use port <b>4190</b> if you are asked for. The login data match your email login.';
|
||||||
$lang['start']['service'] = 'Service';
|
$lang['start']['service'] = 'Service';
|
||||||
$lang['start']['encryption'] = 'Encryption method';
|
$lang['start']['encryption'] = 'Encryption method';
|
||||||
$lang['start']['help'] = 'Show/Hide help panel';
|
$lang['start']['help'] = 'Show/Hide help panel';
|
||||||
|
@ -276,7 +275,7 @@ $lang['delete']['remove_mailbox_warning'] = '<b>Warning:</b> You are about to re
|
||||||
$lang['delete']['remove_mailbox_details'] = 'The mailbox will be <b>purged permanently</b>!';
|
$lang['delete']['remove_mailbox_details'] = 'The mailbox will be <b>purged permanently</b>!';
|
||||||
$lang['delete']['remove_resource_warning'] = '<b>Warning:</b> You are about to remove the resource <b>%s</b>!';
|
$lang['delete']['remove_resource_warning'] = '<b>Warning:</b> You are about to remove the resource <b>%s</b>!';
|
||||||
$lang['delete']['remove_resource_details'] = 'The resource will be <b>purged permanently</b>!';
|
$lang['delete']['remove_resource_details'] = 'The resource will be <b>purged permanently</b>!';
|
||||||
$lang['delete']['remove_domain_details'] = 'This also removes domain aliases.<br /><br /><b>A domain must be empty to be removed.</b>';
|
$lang['delete']['remove_domain_details'] = 'This also removes domain aliases.<br><br><b>A domain must be empty to be removed.</b>';
|
||||||
$lang['delete']['remove_syncjob_details'] = 'Objects from this sync job will not be pulled from the remote server anymore.';
|
$lang['delete']['remove_syncjob_details'] = 'Objects from this sync job will not be pulled from the remote server anymore.';
|
||||||
$lang['delete']['remove_alias_details'] = 'Users will no longer be able to receive mail for or send mail from this address.</b>';
|
$lang['delete']['remove_alias_details'] = 'Users will no longer be able to receive mail for or send mail from this address.</b>';
|
||||||
$lang['delete']['remove_button'] = 'Remove';
|
$lang['delete']['remove_button'] = 'Remove';
|
||||||
|
@ -287,8 +286,8 @@ $lang['edit']['save'] = 'Save changes';
|
||||||
$lang['edit']['username'] = 'Username';
|
$lang['edit']['username'] = 'Username';
|
||||||
$lang['edit']['hostname'] = 'Hostname';
|
$lang['edit']['hostname'] = 'Hostname';
|
||||||
$lang['edit']['encryption'] = 'Encryption';
|
$lang['edit']['encryption'] = 'Encryption';
|
||||||
$lang['edit']['maxage'] = 'Maximum age of messages in days that will be polled from remote<br /><small>(0 = ignore age)</small>';
|
$lang['edit']['maxage'] = 'Maximum age of messages in days that will be polled from remote<br><small>(0 = ignore age)</small>';
|
||||||
$lang['edit']['subfolder2'] = 'Sync into subfolder on destination<br /><small>(empty = do not use subfolder)</small>';
|
$lang['edit']['subfolder2'] = 'Sync into subfolder on destination<br><small>(empty = do not use subfolder)</small>';
|
||||||
$lang['edit']['mins_interval'] = 'Interval (min)';
|
$lang['edit']['mins_interval'] = 'Interval (min)';
|
||||||
$lang['edit']['exclude'] = 'Exclude objects (regex)';
|
$lang['edit']['exclude'] = 'Exclude objects (regex)';
|
||||||
$lang['edit']['save'] = 'Save changes';
|
$lang['edit']['save'] = 'Save changes';
|
||||||
|
@ -415,8 +414,8 @@ $lang['tfa']['otp'] = "One-time password";
|
||||||
$lang['tfa']['totp'] = "Time-based OTP (Google Authenticator etc.)";
|
$lang['tfa']['totp'] = "Time-based OTP (Google Authenticator etc.)";
|
||||||
$lang['tfa']['trash_login'] = "Trash login";
|
$lang['tfa']['trash_login'] = "Trash login";
|
||||||
$lang['tfa']['select'] = "Please select";
|
$lang['tfa']['select'] = "Please select";
|
||||||
$lang['tfa']['waiting_usb_auth'] = "<i>Waiting for USB device...</i><br /><br />Please tap the button on your U2F USB device now.";
|
$lang['tfa']['waiting_usb_auth'] = "<i>Waiting for USB device...</i><br><br>Please tap the button on your U2F USB device now.";
|
||||||
$lang['tfa']['waiting_usb_register'] = "<i>Waiting for USB device...</i><br /><br />Please enter your password above and confirm your U2F registration by tapping the button on your U2F USB device.";
|
$lang['tfa']['waiting_usb_register'] = "<i>Waiting for USB device...</i><br><br>Please enter your password above and confirm your U2F registration by tapping the button on your U2F USB device.";
|
||||||
$lang['tfa']['scan_qr_code'] = "Please scan the following code with your authenticator app or enter the code manually.";
|
$lang['tfa']['scan_qr_code'] = "Please scan the following code with your authenticator app or enter the code manually.";
|
||||||
$lang['tfa']['enter_qr_code'] = "Your TOTP code if your device cannot scan QR codes";
|
$lang['tfa']['enter_qr_code'] = "Your TOTP code if your device cannot scan QR codes";
|
||||||
$lang['tfa']['confirm_totp_token'] = "Please confirm your changes by entering the generated token";
|
$lang['tfa']['confirm_totp_token'] = "Please confirm your changes by entering the generated token";
|
||||||
|
@ -429,7 +428,7 @@ $lang['admin']['reset_defaults'] = 'Reset to defaults';
|
||||||
$lang['admin']['sr'] = 'Postfix Sender Restrictions';
|
$lang['admin']['sr'] = 'Postfix Sender Restrictions';
|
||||||
$lang['admin']['r_inactive'] = 'Inactive restrictions';
|
$lang['admin']['r_inactive'] = 'Inactive restrictions';
|
||||||
$lang['admin']['r_active'] = 'Active restrictions';
|
$lang['admin']['r_active'] = 'Active restrictions';
|
||||||
$lang['admin']['r_info'] = 'Greyed out/disabled elements on the list of active restrictions are not known as valid restrictions to mailcow and cannot be moved. Unknown restrictions will be set in order of appearance anyway. <br />You can add new elements in <code>inc/vars.local.inc.php</code> to be able to toggle them.';
|
$lang['admin']['r_info'] = 'Greyed out/disabled elements on the list of active restrictions are not known as valid restrictions to mailcow and cannot be moved. Unknown restrictions will be set in order of appearance anyway. <br>You can add new elements in <code>inc/vars.local.inc.php</code> to be able to toggle them.';
|
||||||
$lang['admin']['public_folders'] = 'Public Folders';
|
$lang['admin']['public_folders'] = 'Public Folders';
|
||||||
$lang['admin']['public_folders_text'] = 'A namespace "Public" is created. Below\'s public folder name indicates the name of the first auto-created mailbox within this namespace.';
|
$lang['admin']['public_folders_text'] = 'A namespace "Public" is created. Below\'s public folder name indicates the name of the first auto-created mailbox within this namespace.';
|
||||||
$lang['admin']['public_folder_name'] = 'Folder name <small>(alphanumeric)</small>';
|
$lang['admin']['public_folder_name'] = 'Folder name <small>(alphanumeric)</small>';
|
||||||
|
@ -499,4 +498,3 @@ $lang['admin']['add_forwarding_host'] = 'Add Forwarding Host';
|
||||||
$lang['delete']['remove_forwardinghost_warning'] = '<b>Warning:</b> You are about to remove the forwarding host <b>%s</b>!';
|
$lang['delete']['remove_forwardinghost_warning'] = '<b>Warning:</b> You are about to remove the forwarding host <b>%s</b>!';
|
||||||
$lang['success']['forwarding_host_removed'] = "Forwarding host %s has been removed";
|
$lang['success']['forwarding_host_removed'] = "Forwarding host %s has been removed";
|
||||||
$lang['success']['forwarding_host_added'] = "Forwarding host %s has been added";
|
$lang['success']['forwarding_host_added'] = "Forwarding host %s has been added";
|
||||||
?>
|
|
||||||
|
|
|
@ -1,14 +1,13 @@
|
||||||
<?php
|
<?php
|
||||||
/*
|
/*
|
||||||
//
|
* Spanish language file
|
||||||
// Spanish language file
|
*/
|
||||||
//
|
|
||||||
*/
|
|
||||||
$lang['footer']['loading'] = "Espere Por Favor...";
|
$lang['footer']['loading'] = "Espere Por Favor...";
|
||||||
$lang['header']['restart_sogo'] = 'Reiniciar SOGo';
|
$lang['header']['restart_sogo'] = 'Reiniciar SOGo';
|
||||||
$lang['footer']['restart_sogo'] = 'Reiniciar SOGo';
|
$lang['footer']['restart_sogo'] = 'Reiniciar SOGo';
|
||||||
$lang['footer']['restart_now'] = 'Reiniciar ahora';
|
$lang['footer']['restart_now'] = 'Reiniciar ahora';
|
||||||
$lang['footer']['restart_sogo_info'] = 'Algunas tareas, por ejemplo agregar un dominio, requieren que reinicies SOGo para detectar cambios hechos en la UI de mailcow.<br /><br /><b>Importante:</b> Un reinicio sencillo puede tardar un poco en completarse, por favor espere a que termine.';
|
$lang['footer']['restart_sogo_info'] = 'Algunas tareas, por ejemplo agregar un dominio, requieren que reinicies SOGo para detectar cambios hechos en la UI de mailcow.<br><br><b>Importante:</b> Un reinicio sencillo puede tardar un poco en completarse, por favor espere a que termine.';
|
||||||
$lang['dkim']['confirm'] = "¿Estás Seguro?";
|
$lang['dkim']['confirm'] = "¿Estás Seguro?";
|
||||||
$lang['danger']['dkim_not_found'] = "Registro DKIM no encontrado";
|
$lang['danger']['dkim_not_found'] = "Registro DKIM no encontrado";
|
||||||
$lang['danger']['dkim_remove_failed'] = "No se puede eliminar el registro DKIM seleccionado";
|
$lang['danger']['dkim_remove_failed'] = "No se puede eliminar el registro DKIM seleccionado";
|
||||||
|
@ -136,7 +135,7 @@ $lang['user']['spamfilter_red'] = 'Rojo: Este mensaje es spam y sera rechazado p
|
||||||
$lang['user']['spamfilter_default_score'] = 'Valores por defecto:';
|
$lang['user']['spamfilter_default_score'] = 'Valores por defecto:';
|
||||||
$lang['user']['spamfilter_hint'] = 'El primer valor representa la "calificación baja de spam", el segundo representa la "calificación alta de spam".';
|
$lang['user']['spamfilter_hint'] = 'El primer valor representa la "calificación baja de spam", el segundo representa la "calificación alta de spam".';
|
||||||
|
|
||||||
$lang['user']['tls_policy_warning'] = '<strong>Advertencia:</strong> Si decides forzar la transmisión de correo encriptado, puedes perder correos.<br />Mensajes que no satisfagan la política serán rebotados con una falla grave en el sistema de correos .';
|
$lang['user']['tls_policy_warning'] = '<strong>Advertencia:</strong> Si decides forzar la transmisión de correo encriptado, puedes perder correos.<br>Mensajes que no satisfagan la política serán rebotados con una falla grave en el sistema de correos .';
|
||||||
$lang['user']['tls_policy'] = 'Política de encriptación';
|
$lang['user']['tls_policy'] = 'Política de encriptación';
|
||||||
$lang['user']['tls_enforce_in'] = 'Aplicar TLS entrante';
|
$lang['user']['tls_enforce_in'] = 'Aplicar TLS entrante';
|
||||||
$lang['user']['tls_enforce_out'] = 'Aplicar TLS saliente';
|
$lang['user']['tls_enforce_out'] = 'Aplicar TLS saliente';
|
||||||
|
@ -148,7 +147,7 @@ $lang['user']['misc_delete_profile'] = 'Otras configuraciones de usuario';
|
||||||
$lang['user']['tag_handling'] = 'Establecer manejo para el correo etiquetado';
|
$lang['user']['tag_handling'] = 'Establecer manejo para el correo etiquetado';
|
||||||
$lang['user']['tag_in_subfolder'] = 'En subcarpeta';
|
$lang['user']['tag_in_subfolder'] = 'En subcarpeta';
|
||||||
$lang['user']['tag_in_subject'] = 'En asunto';
|
$lang['user']['tag_in_subject'] = 'En asunto';
|
||||||
$lang['user']['tag_help_explain'] = 'En subcarpeta: una nueva subcarpeta llamada como la etiqueta será creada debajo de INBOX ("INBOX/Facebook").<br />
|
$lang['user']['tag_help_explain'] = 'En subcarpeta: una nueva subcarpeta llamada como la etiqueta será creada debajo de INBOX ("INBOX/Facebook").<br>
|
||||||
En asunto: los nombres de las etiquetas serán añadidos al asunto de los correos, ejemplo: "[Facebook] Mis Noticias".';
|
En asunto: los nombres de las etiquetas serán añadidos al asunto de los correos, ejemplo: "[Facebook] Mis Noticias".';
|
||||||
$lang['user']['tag_help_example'] = 'Ejemplo de una dirección email etiquetada: mi<b>+Facebook</b>@ejemplo.org';
|
$lang['user']['tag_help_example'] = 'Ejemplo de una dirección email etiquetada: mi<b>+Facebook</b>@ejemplo.org';
|
||||||
|
|
||||||
|
@ -158,17 +157,17 @@ $lang['start']['start_sogo'] = 'Abrir SOGo';
|
||||||
$lang['start']['mailcow_apps_detail'] = 'Utiliza una aplicación de mailcow para acceder a tus correos, calendario, contactos y más.';
|
$lang['start']['mailcow_apps_detail'] = 'Utiliza una aplicación de mailcow para acceder a tus correos, calendario, contactos y más.';
|
||||||
$lang['start']['mailcow_panel'] = 'Iniciar mailcow UI';
|
$lang['start']['mailcow_panel'] = 'Iniciar mailcow UI';
|
||||||
$lang['start']['mailcow_panel_description'] = 'Mailcow UI está disponible para administradores y usuarios de buzón.';
|
$lang['start']['mailcow_panel_description'] = 'Mailcow UI está disponible para administradores y usuarios de buzón.';
|
||||||
$lang['start']['mailcow_panel_detail'] = '<b>Administradores del dominio</b> crean, modifican o eliminan buzones y alias, cambia dominios y lee información más detallada sobre sus dominios asignados<br />
|
$lang['start']['mailcow_panel_detail'] = '<b>Administradores del dominio</b> crean, modifican o eliminan buzones y alias, cambia dominios y lee información más detallada sobre sus dominios asignados<br>
|
||||||
<b>Usuarios de buzón</b> son capaces de crear alias de tiempo limitado (spam alias), cambiar su contraseña y la configuración del filtro de spam.';
|
<b>Usuarios de buzón</b> son capaces de crear alias de tiempo limitado (spam alias), cambiar su contraseña y la configuración del filtro de spam.';
|
||||||
$lang['start']['recommended_config'] = 'Configuración recomendada (sin ActiveSync)';
|
$lang['start']['recommended_config'] = 'Configuración recomendada (sin ActiveSync)';
|
||||||
$lang['start']['imap_smtp_server'] = 'IMAP- y SMTP datos del servidor';
|
$lang['start']['imap_smtp_server'] = 'IMAP- y SMTP datos del servidor';
|
||||||
$lang['start']['imap_smtp_server_description'] = 'Para la mejor experiencia recomendamos utilizar <a href="%s" target="_blank"><b>Mozilla Thunderbird</b></a>.';
|
$lang['start']['imap_smtp_server_description'] = 'Para la mejor experiencia recomendamos utilizar <a href="%s" target="_blank"><b>Mozilla Thunderbird</b></a>.';
|
||||||
$lang['start']['imap_smtp_server_badge'] = 'Leer/Escribir correos';
|
$lang['start']['imap_smtp_server_badge'] = 'Leer/Escribir correos';
|
||||||
$lang['start']['imap_smtp_server_auth_info'] = 'Por favor utiliza tu dirección de correo completa y el mecanismo de autenticación PLANO.<br />
|
$lang['start']['imap_smtp_server_auth_info'] = 'Por favor utiliza tu dirección de correo completa y el mecanismo de autenticación PLANO.<br>
|
||||||
Tus datos para iniciar sesión serán encriptados por la encriptación obligatoria del servidor';
|
Tus datos para iniciar sesión serán encriptados por la encriptación obligatoria del servidor';
|
||||||
$lang['start']['managesieve'] = 'ManageSieve';
|
$lang['start']['managesieve'] = 'ManageSieve';
|
||||||
$lang['start']['managesieve_badge'] = 'Filtro de correos';
|
$lang['start']['managesieve_badge'] = 'Filtro de correos';
|
||||||
$lang['start']['managesieve_description'] = 'Por favor utiliza <b>Mozilla Thunderbird</b> con la <a style="text-decoration:none" target="_blank" href="%s"><b>extensión nightly sieve</b></a>.<br />Inicia Thunderbird, abre la configuración de complementos y suelta el archivo xpi descargado en la ventana abierta.<br />El servidor es <b>%s</b>, utiliza el puerto <b>4190</b> si se te pregunta. Los datos para iniciar sesión coinciden con los datos de tu correo.';
|
$lang['start']['managesieve_description'] = 'Por favor utiliza <b>Mozilla Thunderbird</b> con la <a style="text-decoration:none" target="_blank" href="%s"><b>extensión nightly sieve</b></a>.<br>Inicia Thunderbird, abre la configuración de complementos y suelta el archivo xpi descargado en la ventana abierta.<br>El servidor es <b>%s</b>, utiliza el puerto <b>4190</b> si se te pregunta. Los datos para iniciar sesión coinciden con los datos de tu correo.';
|
||||||
$lang['start']['service'] = 'Servicio';
|
$lang['start']['service'] = 'Servicio';
|
||||||
$lang['start']['encryption'] = 'Método de encriptación';
|
$lang['start']['encryption'] = 'Método de encriptación';
|
||||||
$lang['start']['help'] = 'Mostrar/Ocultar panel de ayuda';
|
$lang['start']['help'] = 'Mostrar/Ocultar panel de ayuda';
|
||||||
|
@ -222,7 +221,7 @@ $lang['delete']['remove_domainadmin_warning'] = '<b>Advertencia:</b> ¡Estás a
|
||||||
$lang['delete']['remove_alias_warning'] = '<b>Advertencia:</b> ¡Estás a punto de eliminar la dirección alias <b>%s</b>!';
|
$lang['delete']['remove_alias_warning'] = '<b>Advertencia:</b> ¡Estás a punto de eliminar la dirección alias <b>%s</b>!';
|
||||||
$lang['delete']['remove_mailbox_warning'] = '<b>Advertencia:</b> ¡Estás a punto de eliminar el buzón <b>%s</b>!';
|
$lang['delete']['remove_mailbox_warning'] = '<b>Advertencia:</b> ¡Estás a punto de eliminar el buzón <b>%s</b>!';
|
||||||
$lang['delete']['remove_mailbox_details'] = 'El buzón será <b>purgado permanentemente</b>!';
|
$lang['delete']['remove_mailbox_details'] = 'El buzón será <b>purgado permanentemente</b>!';
|
||||||
$lang['delete']['remove_domain_details'] = 'Esto también eliminará alias de dominio.<br /><br /><b>Un dominio debe estar vacío para poder ser eliminado.</b>';
|
$lang['delete']['remove_domain_details'] = 'Esto también eliminará alias de dominio.<br><br><b>Un dominio debe estar vacío para poder ser eliminado.</b>';
|
||||||
$lang['delete']['remove_alias_details'] = 'Los usuarios ya no serán capaces de recibir correos o enviar correos desde esta dirección.</b>';
|
$lang['delete']['remove_alias_details'] = 'Los usuarios ya no serán capaces de recibir correos o enviar correos desde esta dirección.</b>';
|
||||||
$lang['delete']['remove_button'] = 'Eliminar';
|
$lang['delete']['remove_button'] = 'Eliminar';
|
||||||
$lang['delete']['previous'] = 'Página anterior';
|
$lang['delete']['previous'] = 'Página anterior';
|
||||||
|
@ -326,7 +325,7 @@ $lang['admin']['reset_defaults'] = 'Restablecer los valores predeterminados';
|
||||||
$lang['admin']['sr'] = 'Restricciones Postfix para remitentes';
|
$lang['admin']['sr'] = 'Restricciones Postfix para remitentes';
|
||||||
$lang['admin']['r_inactive'] = 'Restricciones inactivas';
|
$lang['admin']['r_inactive'] = 'Restricciones inactivas';
|
||||||
$lang['admin']['r_active'] = 'Restricciones activas';
|
$lang['admin']['r_active'] = 'Restricciones activas';
|
||||||
$lang['admin']['r_info'] = 'Elementos en gris/deshabilitados en la lista de restricciones activas no son reconocidas como restricciones válidas para mailcow y no pueden ser movidas. Restricciones desconocidas serán establecidas en el orden de aparicion de todas maneras. <br />Puedes agregar nuevos elementos en <code>inc/vars.local.inc.php</code> para ser capaz de habilitarlas.';
|
$lang['admin']['r_info'] = 'Elementos en gris/deshabilitados en la lista de restricciones activas no son reconocidas como restricciones válidas para mailcow y no pueden ser movidas. Restricciones desconocidas serán establecidas en el orden de aparicion de todas maneras. <br>Puedes agregar nuevos elementos en <code>inc/vars.local.inc.php</code> para ser capaz de habilitarlas.';
|
||||||
$lang['admin']['public_folders'] = 'Carpetas Públicas';
|
$lang['admin']['public_folders'] = 'Carpetas Públicas';
|
||||||
$lang['admin']['public_folders_text'] = 'Un espacio de nombres "Public" (Público) será creado. Debajo del nombre de la carpeta pública se indica el nombre del primer buzón creado automáticamente dentro de este espacio de nombres';
|
$lang['admin']['public_folders_text'] = 'Un espacio de nombres "Public" (Público) será creado. Debajo del nombre de la carpeta pública se indica el nombre del primer buzón creado automáticamente dentro de este espacio de nombres';
|
||||||
$lang['admin']['public_folder_name'] = 'Nombre de la carpeta <small>(alfanumérico)</small>';
|
$lang['admin']['public_folder_name'] = 'Nombre de la carpeta <small>(alfanumérico)</small>';
|
||||||
|
@ -375,4 +374,3 @@ $lang['admin']['site_not_found'] = 'No se puede localizar la configuración del
|
||||||
$lang['admin']['public_folder_empty'] = 'El nombre de la carpeta pública no debe estar vacío';
|
$lang['admin']['public_folder_empty'] = 'El nombre de la carpeta pública no debe estar vacío';
|
||||||
$lang['admin']['set_rr_failed'] = 'No se pueden establecer las restricciones de Postfix';
|
$lang['admin']['set_rr_failed'] = 'No se pueden establecer las restricciones de Postfix';
|
||||||
$lang['admin']['no_record'] = 'Sin registro';
|
$lang['admin']['no_record'] = 'Sin registro';
|
||||||
?>
|
|
||||||
|
|
|
@ -1,13 +1,13 @@
|
||||||
<?php
|
<?php
|
||||||
/*
|
/*
|
||||||
//
|
* Dutch language file
|
||||||
// Dutch language file
|
*/
|
||||||
*/
|
|
||||||
$lang['footer']['loading'] = "Even geduld a.u.b. ...";
|
$lang['footer']['loading'] = "Even geduld a.u.b. ...";
|
||||||
$lang['header']['restart_sogo'] = 'SOGo herstarten';
|
$lang['header']['restart_sogo'] = 'SOGo herstarten';
|
||||||
$lang['footer']['restart_sogo'] = 'SOGo herstarten';
|
$lang['footer']['restart_sogo'] = 'SOGo herstarten';
|
||||||
$lang['footer']['restart_now'] = 'Nu opnieuw starten';
|
$lang['footer']['restart_now'] = 'Nu opnieuw starten';
|
||||||
$lang['footer']['restart_sogo_info'] = 'Sommige taken, zoals het toevoegen van een domein, vereisen een herstart van SOGo om de veranderingen door te voeren.<br /><br /><b>Belangrijk:</b> Het opnieuw opstarten kan een poos duren, wacht a.u.b. totdat dit volledig voltooid is.';
|
$lang['footer']['restart_sogo_info'] = 'Sommige taken, zoals het toevoegen van een domein, vereisen een herstart van SOGo om de veranderingen door te voeren.<br><br><b>Belangrijk:</b> Het opnieuw opstarten kan een poos duren, wacht a.u.b. totdat dit volledig voltooid is.';
|
||||||
$lang['dkim']['confirm'] = "Weet u het zeker?";
|
$lang['dkim']['confirm'] = "Weet u het zeker?";
|
||||||
$lang['danger']['dkim_not_found'] = "DKIM record niet gevonden.";
|
$lang['danger']['dkim_not_found'] = "DKIM record niet gevonden.";
|
||||||
$lang['danger']['dkim_remove_failed'] = "Kan geselecteerde DKIM record niet verwijderen.";
|
$lang['danger']['dkim_remove_failed'] = "Kan geselecteerde DKIM record niet verwijderen.";
|
||||||
|
@ -131,7 +131,7 @@ $lang['user']['spamfilter_red'] = 'Rood: Dit bericht is spam en zal worden gewei
|
||||||
$lang['user']['spamfilter_default_score'] = 'Standaardwaarden:';
|
$lang['user']['spamfilter_default_score'] = 'Standaardwaarden:';
|
||||||
$lang['user']['spamfilter_hint'] = 'De eerste waarde omschrijft een "lage spam score", de tweede waarde een "hoge spam score".';
|
$lang['user']['spamfilter_hint'] = 'De eerste waarde omschrijft een "lage spam score", de tweede waarde een "hoge spam score".';
|
||||||
|
|
||||||
$lang['user']['tls_policy_warning'] = '<strong>Attentie:</strong> Door versleutelde e-mails te forceren, worden mogelijk niet alle e-mails afgeleverd.<br />Berichten die niet aan het ingestelde beleid voldoen worden resoluut geweigerd (bounced met hard-fail).';
|
$lang['user']['tls_policy_warning'] = '<strong>Attentie:</strong> Door versleutelde e-mails te forceren, worden mogelijk niet alle e-mails afgeleverd.<br>Berichten die niet aan het ingestelde beleid voldoen worden resoluut geweigerd (bounced met hard-fail).';
|
||||||
$lang['user']['tls_policy'] = 'Versleutelbeleid';
|
$lang['user']['tls_policy'] = 'Versleutelbeleid';
|
||||||
$lang['user']['tls_enforce_in'] = 'Forceer TLS-gebruik inkomend';
|
$lang['user']['tls_enforce_in'] = 'Forceer TLS-gebruik inkomend';
|
||||||
$lang['user']['tls_enforce_out'] = 'Forceer TLS-gebruik uitgaand';
|
$lang['user']['tls_enforce_out'] = 'Forceer TLS-gebruik uitgaand';
|
||||||
|
@ -142,7 +142,7 @@ $lang['user']['misc_delete_profile'] = 'Andere profielinstellingen';
|
||||||
$lang['user']['tag_handling'] = 'Omgaan met e-mail tags';
|
$lang['user']['tag_handling'] = 'Omgaan met e-mail tags';
|
||||||
$lang['user']['tag_in_subfolder'] = 'In onderliggende map';
|
$lang['user']['tag_in_subfolder'] = 'In onderliggende map';
|
||||||
$lang['user']['tag_in_subject'] = 'In onderwerp';
|
$lang['user']['tag_in_subject'] = 'In onderwerp';
|
||||||
$lang['user']['tag_help_explain'] = 'In onderliggende map: maakt onder INBOX een nieuwe map aan met de naam van de tag (bijv.: "INBOX/Facebook").<br />
|
$lang['user']['tag_help_explain'] = 'In onderliggende map: maakt onder INBOX een nieuwe map aan met de naam van de tag (bijv.: "INBOX/Facebook").<br>
|
||||||
In onderwerp: de tag wordt vóór het oorspronkelijke e-mail onderwerp geplaatst (bijv.: "[Facebook] Mijn nieuws").';
|
In onderwerp: de tag wordt vóór het oorspronkelijke e-mail onderwerp geplaatst (bijv.: "[Facebook] Mijn nieuws").';
|
||||||
$lang['user']['tag_help_example'] = 'Voorbeeld van een e-mailadres met tag: ik<b>+Facebook</b>@voorbeeld.org';
|
$lang['user']['tag_help_example'] = 'Voorbeeld van een e-mailadres met tag: ik<b>+Facebook</b>@voorbeeld.org';
|
||||||
$lang['start']['dashboard'] = '%s - startpagina';
|
$lang['start']['dashboard'] = '%s - startpagina';
|
||||||
|
@ -151,17 +151,17 @@ $lang['start']['start_sogo'] = 'Open SOGo';
|
||||||
$lang['start']['mailcow_apps_detail'] = 'Gebruik een mailcow app om toegang te hebben tot uw e-mails, kalender, contactpersonen en meer.';
|
$lang['start']['mailcow_apps_detail'] = 'Gebruik een mailcow app om toegang te hebben tot uw e-mails, kalender, contactpersonen en meer.';
|
||||||
$lang['start']['mailcow_panel'] = 'Start mailcow UI';
|
$lang['start']['mailcow_panel'] = 'Start mailcow UI';
|
||||||
$lang['start']['mailcow_panel_description'] = 'De mailcow UI is beschikbaar voor zowel beheerders als gebruikers.';
|
$lang['start']['mailcow_panel_description'] = 'De mailcow UI is beschikbaar voor zowel beheerders als gebruikers.';
|
||||||
$lang['start']['mailcow_panel_detail'] = '<b>Domeinbeheerders</b> kunnen postvakken en aliassen aanmaken, wijzigen of verwijderen, domeinen veranderen of informatie krijgen over hun domein.<br />
|
$lang['start']['mailcow_panel_detail'] = '<b>Domeinbeheerders</b> kunnen postvakken en aliassen aanmaken, wijzigen of verwijderen, domeinen veranderen of informatie krijgen over hun domein.<br>
|
||||||
<b>Gebruikers</b> kunnen tijdsgelimiteerde aliassen (spam-aliasses) aanmaken, hun wachtwoord wijzigen en spamfilterinstellingen wijzigen.';
|
<b>Gebruikers</b> kunnen tijdsgelimiteerde aliassen (spam-aliasses) aanmaken, hun wachtwoord wijzigen en spamfilterinstellingen wijzigen.';
|
||||||
$lang['start']['recommended_config'] = 'Aanbevoen instellingen (zonder ActiveSync)';
|
$lang['start']['recommended_config'] = 'Aanbevoen instellingen (zonder ActiveSync)';
|
||||||
$lang['start']['imap_smtp_server'] = 'IMAP- en SMTP-server gegevens';
|
$lang['start']['imap_smtp_server'] = 'IMAP- en SMTP-server gegevens';
|
||||||
$lang['start']['imap_smtp_server_description'] = 'Voor de best mogelijke ervaring bevelen wij <a href="%s" target="_blank"><b>Mozilla Thunderbird</b></a> aan.';
|
$lang['start']['imap_smtp_server_description'] = 'Voor de best mogelijke ervaring bevelen wij <a href="%s" target="_blank"><b>Mozilla Thunderbird</b></a> aan.';
|
||||||
$lang['start']['imap_smtp_server_badge'] = 'Lees/schrijf e-mails';
|
$lang['start']['imap_smtp_server_badge'] = 'Lees/schrijf e-mails';
|
||||||
$lang['start']['imap_smtp_server_auth_info'] = 'Gebruik uw volledige e-mailadres en de onversleutelde (PLAIN) verificatiemechanisme.<br />
|
$lang['start']['imap_smtp_server_auth_info'] = 'Gebruik uw volledige e-mailadres en de onversleutelde (PLAIN) verificatiemechanisme.<br>
|
||||||
De aanmeldgegevens zullen door de server worden versleuteld.';
|
De aanmeldgegevens zullen door de server worden versleuteld.';
|
||||||
$lang['start']['managesieve'] = 'ManageSieve';
|
$lang['start']['managesieve'] = 'ManageSieve';
|
||||||
$lang['start']['managesieve_badge'] = 'Emailfilter';
|
$lang['start']['managesieve_badge'] = 'Emailfilter';
|
||||||
$lang['start']['managesieve_description'] = 'Gebruik <b>Mozilla Thunderbird</b> met een <a style="text-decoration:none" target="_blank" href="%s"><b>nightly sieve addon</b></a>.<br />Start Thunderbird, open de add-on instellingen en sleep het gedownloadde xpi-bestand naar dit venster.<br />Servernaam <b>%s</b>, Poort <b>4190</b>. De aanmeldgegevens zijn gelijk aan de gegevens voor uw e-mail.';
|
$lang['start']['managesieve_description'] = 'Gebruik <b>Mozilla Thunderbird</b> met een <a style="text-decoration:none" target="_blank" href="%s"><b>nightly sieve addon</b></a>.<br>Start Thunderbird, open de add-on instellingen en sleep het gedownloadde xpi-bestand naar dit venster.<br>Servernaam <b>%s</b>, Poort <b>4190</b>. De aanmeldgegevens zijn gelijk aan de gegevens voor uw e-mail.';
|
||||||
$lang['start']['service'] = 'Service';
|
$lang['start']['service'] = 'Service';
|
||||||
$lang['start']['encryption'] = 'Versleutelmethode';
|
$lang['start']['encryption'] = 'Versleutelmethode';
|
||||||
$lang['start']['help'] = 'Toon/Verberg Hulppaneel';
|
$lang['start']['help'] = 'Toon/Verberg Hulppaneel';
|
||||||
|
@ -215,7 +215,7 @@ $lang['delete']['remove_domainadmin_warning'] = '<b>Let op:</b> U staat op het p
|
||||||
$lang['delete']['remove_alias_warning'] = '<b>Let op:</b> U staat op het punt alias <b>%s</b> te verwijderen!';
|
$lang['delete']['remove_alias_warning'] = '<b>Let op:</b> U staat op het punt alias <b>%s</b> te verwijderen!';
|
||||||
$lang['delete']['remove_mailbox_warning'] = '<b>Let op::</b> U staat op het punt postvak <b>%s</b> te verwijderen!';
|
$lang['delete']['remove_mailbox_warning'] = '<b>Let op::</b> U staat op het punt postvak <b>%s</b> te verwijderen!';
|
||||||
$lang['delete']['remove_mailbox_details'] = 'Het postvak zal <b>permanent</b> worden verwijderd!';
|
$lang['delete']['remove_mailbox_details'] = 'Het postvak zal <b>permanent</b> worden verwijderd!';
|
||||||
$lang['delete']['remove_domain_details'] = 'Dit verwijdert ook de domeinaliassen. <br /><br /><b>Een domein moet leeg zijn alvorens deze verwijderd kan worden.</b>';
|
$lang['delete']['remove_domain_details'] = 'Dit verwijdert ook de domeinaliassen. <br><br><b>Een domein moet leeg zijn alvorens deze verwijderd kan worden.</b>';
|
||||||
$lang['delete']['remove_alias_details'] = '<b>Gebruikers zullen niet meer in staat zijn e-mails te ontvangen op -of te versturen vanaf- dit adres.</b>';
|
$lang['delete']['remove_alias_details'] = '<b>Gebruikers zullen niet meer in staat zijn e-mails te ontvangen op -of te versturen vanaf- dit adres.</b>';
|
||||||
$lang['delete']['remove_button'] = 'Verwijder';
|
$lang['delete']['remove_button'] = 'Verwijder';
|
||||||
$lang['delete']['previous'] = 'Vorige pagina';
|
$lang['delete']['previous'] = 'Vorige pagina';
|
||||||
|
@ -318,7 +318,7 @@ $lang['admin']['sr'] = 'Postifx verzendersbeperkingen';
|
||||||
$lang['admin']['reset_defaults'] = 'Herstel standaardwaarden';
|
$lang['admin']['reset_defaults'] = 'Herstel standaardwaarden';
|
||||||
$lang['admin']['r_inactive'] = 'Inactieve beperkingen';
|
$lang['admin']['r_inactive'] = 'Inactieve beperkingen';
|
||||||
$lang['admin']['r_active'] = 'Actieve beperkignen';
|
$lang['admin']['r_active'] = 'Actieve beperkignen';
|
||||||
$lang['admin']['r_info'] = 'Grijze, uitgeschakelde, elementen in de lijst met actieve beperkingen zijn voor mailcow niet bekend als valide en kunnen daarom niet verplaatst worden.<br />U kunt nieuwe elementen toevoegen in <code>inc/vars.inc.php</code> om ze te (de)activeren.';
|
$lang['admin']['r_info'] = 'Grijze, uitgeschakelde, elementen in de lijst met actieve beperkingen zijn voor mailcow niet bekend als valide en kunnen daarom niet verplaatst worden.<br>U kunt nieuwe elementen toevoegen in <code>inc/vars.inc.php</code> om ze te (de)activeren.';
|
||||||
$lang['admin']['public_folders'] = 'Gemeenschappelijke mappen';
|
$lang['admin']['public_folders'] = 'Gemeenschappelijke mappen';
|
||||||
$lang['admin']['public_folders_text'] = 'Een namespace "Public" wordt aangemaakt. Onder deze map worden de automatisch aangemaakte postvakken in deze namespace weergegeven.';
|
$lang['admin']['public_folders_text'] = 'Een namespace "Public" wordt aangemaakt. Onder deze map worden de automatisch aangemaakte postvakken in deze namespace weergegeven.';
|
||||||
$lang['admin']['public_folder_name'] = 'Mapnaam <small>(alphanumeriek)</small>';
|
$lang['admin']['public_folder_name'] = 'Mapnaam <small>(alphanumeriek)</small>';
|
||||||
|
@ -367,4 +367,3 @@ $lang['admin']['site_not_found'] = 'Kan mailcow instellingenbeheer niet vinden';
|
||||||
$lang['admin']['public_folder_empty'] = 'Namen van gemeenschappelijke mappen mogen niet leeg blijven.';
|
$lang['admin']['public_folder_empty'] = 'Namen van gemeenschappelijke mappen mogen niet leeg blijven.';
|
||||||
$lang['admin']['set_rr_failed'] = 'Kan Postfix beperkingen niet opleggen.';
|
$lang['admin']['set_rr_failed'] = 'Kan Postfix beperkingen niet opleggen.';
|
||||||
$lang['admin']['no_record'] = 'Geen vermelding';
|
$lang['admin']['no_record'] = 'Geen vermelding';
|
||||||
?>
|
|
||||||
|
|
|
@ -1,9 +1,8 @@
|
||||||
<?php
|
<?php
|
||||||
/*
|
/*
|
||||||
//
|
* Portuguese (pt) language file - Português do Brasil (pt_BR) - ISO-8859-1
|
||||||
// Portuguese (pt) language file - Português do Brasil (pt_BR) - ISO-8859-1
|
*/
|
||||||
//
|
|
||||||
*/
|
|
||||||
$lang['footer']['loading'] = "Aguarde...";
|
$lang['footer']['loading'] = "Aguarde...";
|
||||||
$lang['getmail']['no_status'] = "Nenhum registro anterior encontrado";
|
$lang['getmail']['no_status'] = "Nenhum registro anterior encontrado";
|
||||||
$lang['dkim']['confirm'] = "Tem certeza?";
|
$lang['dkim']['confirm'] = "Tem certeza?";
|
||||||
|
@ -131,7 +130,7 @@ $lang['user']['spamfilter_yellow'] = 'Amarelo: essa mensagem <b>pode ser</b> spa
|
||||||
$lang['user']['spamfilter_red'] = 'Vermelho: essa mensagem <b>é mesmo spam</b> e será rejeitada definitivamente pelo servidor';
|
$lang['user']['spamfilter_red'] = 'Vermelho: essa mensagem <b>é mesmo spam</b> e será rejeitada definitivamente pelo servidor';
|
||||||
$lang['user']['spamfilter_default_score'] = 'Valores padrão:';
|
$lang['user']['spamfilter_default_score'] = 'Valores padrão:';
|
||||||
$lang['user']['spamfilter_hint'] = 'O primeiro espaço indica "baixo nível de spam", a segunda representa "alto nível de spam".';
|
$lang['user']['spamfilter_hint'] = 'O primeiro espaço indica "baixo nível de spam", a segunda representa "alto nível de spam".';
|
||||||
$lang['user']['tls_policy_warning'] = '<strong>Aviso:</strong> Se você selecionar para forçar o envio encryptado , alguns emails poderão ser rejeitados.<br />Mensages que não satisfizerem as politicas dos outros servidores serão rejeitadas definitivamente.';
|
$lang['user']['tls_policy_warning'] = '<strong>Aviso:</strong> Se você selecionar para forçar o envio encryptado , alguns emails poderão ser rejeitados.<br>Mensages que não satisfizerem as politicas dos outros servidores serão rejeitadas definitivamente.';
|
||||||
$lang['user']['tls_policy'] = 'Regras de Encryptação';
|
$lang['user']['tls_policy'] = 'Regras de Encryptação';
|
||||||
$lang['user']['tls_enforce_in'] = 'Forçar TLS na entrada';
|
$lang['user']['tls_enforce_in'] = 'Forçar TLS na entrada';
|
||||||
$lang['user']['tls_enforce_out'] = 'Forçar TLS na saída';
|
$lang['user']['tls_enforce_out'] = 'Forçar TLS na saída';
|
||||||
|
@ -144,17 +143,17 @@ $lang['start']['start_sogo'] = 'Abrir SOGo';
|
||||||
$lang['start']['mailcow_apps_detail'] = 'Use um mailcow app para acessar seus emails, calendário, contatos e outras informações.';
|
$lang['start']['mailcow_apps_detail'] = 'Use um mailcow app para acessar seus emails, calendário, contatos e outras informações.';
|
||||||
$lang['start']['mailcow_panel'] = 'Iniciar mailcow UI';
|
$lang['start']['mailcow_panel'] = 'Iniciar mailcow UI';
|
||||||
$lang['start']['mailcow_panel_description'] = 'O mailcow UI está disponível para Administradores e Usuários.';
|
$lang['start']['mailcow_panel_description'] = 'O mailcow UI está disponível para Administradores e Usuários.';
|
||||||
$lang['start']['mailcow_panel_detail'] = '<b>Administradores:</b> podem criar, alterar ou apagar contas e apelidos , alterar domínios e outras informações de seus domínios atribuídos.<br />
|
$lang['start']['mailcow_panel_detail'] = '<b>Administradores:</b> podem criar, alterar ou apagar contas e apelidos , alterar domínios e outras informações de seus domínios atribuídos.<br>
|
||||||
<b>Usuários:</b> podem criar apelidos por tempo determinado , alterar senha e configuração do nível do filtro de spam.';
|
<b>Usuários:</b> podem criar apelidos por tempo determinado , alterar senha e configuração do nível do filtro de spam.';
|
||||||
$lang['start']['recommended_config'] = 'Configuração recomendada (sem o ActiveSync)';
|
$lang['start']['recommended_config'] = 'Configuração recomendada (sem o ActiveSync)';
|
||||||
$lang['start']['imap_smtp_server'] = 'IMAP e SMTP server data';
|
$lang['start']['imap_smtp_server'] = 'IMAP e SMTP server data';
|
||||||
$lang['start']['imap_smtp_server_description'] = 'Para uma melhor utilização use o <a href="%s" target="_blank"><b>Mozilla Thunderbird</b></a>.';
|
$lang['start']['imap_smtp_server_description'] = 'Para uma melhor utilização use o <a href="%s" target="_blank"><b>Mozilla Thunderbird</b></a>.';
|
||||||
$lang['start']['imap_smtp_server_badge'] = 'Ler/Criar emails';
|
$lang['start']['imap_smtp_server_badge'] = 'Ler/Criar emails';
|
||||||
$lang['start']['imap_smtp_server_auth_info'] = 'Utilize o endereço de email completo com o método de autentucação PLAIN.<br />
|
$lang['start']['imap_smtp_server_auth_info'] = 'Utilize o endereço de email completo com o método de autentucação PLAIN.<br>
|
||||||
Os dados de login serão encryptados pelo servidor.';
|
Os dados de login serão encryptados pelo servidor.';
|
||||||
$lang['start']['managesieve'] = 'ManageSieve';
|
$lang['start']['managesieve'] = 'ManageSieve';
|
||||||
$lang['start']['managesieve_badge'] = 'Filtro de email';
|
$lang['start']['managesieve_badge'] = 'Filtro de email';
|
||||||
$lang['start']['managesieve_description'] = 'Utilize o <b>Mozilla Thunderbird</b> com a <a style="text-decoration:none" target="_blank" href="%s"><b>extensão para sieve</b></a>.<br />Inicie o Thunderbird, acesse os Complementos e solte o arquivo xpi que foi baixado, na janela aberta.<br />Preencha com o servidor <b>%s</b>, porta <b>4190</b> se for solicitado. Os dados de acesso são os mesmos da sua conta de email.';
|
$lang['start']['managesieve_description'] = 'Utilize o <b>Mozilla Thunderbird</b> com a <a style="text-decoration:none" target="_blank" href="%s"><b>extensão para sieve</b></a>.<br>Inicie o Thunderbird, acesse os Complementos e solte o arquivo xpi que foi baixado, na janela aberta.<br>Preencha com o servidor <b>%s</b>, porta <b>4190</b> se for solicitado. Os dados de acesso são os mesmos da sua conta de email.';
|
||||||
$lang['start']['service'] = 'Serviço';
|
$lang['start']['service'] = 'Serviço';
|
||||||
$lang['start']['encryption'] = 'Método de criptografia';
|
$lang['start']['encryption'] = 'Método de criptografia';
|
||||||
$lang['start']['help'] = 'Mostrar/Ocultar painel de ajuda';
|
$lang['start']['help'] = 'Mostrar/Ocultar painel de ajuda';
|
||||||
|
@ -206,7 +205,7 @@ $lang['delete']['remove_domainadmin_warning'] = '<b>Aviso:</b> Você está prest
|
||||||
$lang['delete']['remove_alias_warning'] = '<b>Aviso:</b> Você está prestes a remover o Apelido <b>%s</b>!';
|
$lang['delete']['remove_alias_warning'] = '<b>Aviso:</b> Você está prestes a remover o Apelido <b>%s</b>!';
|
||||||
$lang['delete']['remove_mailbox_warning'] = '<b>Aviso:</b> Você está prestes a remover a Conta <b>%s</b>!';
|
$lang['delete']['remove_mailbox_warning'] = '<b>Aviso:</b> Você está prestes a remover a Conta <b>%s</b>!';
|
||||||
$lang['delete']['remove_mailbox_details'] = 'A Conta será <b>excluída permanentemente</b>!';
|
$lang['delete']['remove_mailbox_details'] = 'A Conta será <b>excluída permanentemente</b>!';
|
||||||
$lang['delete']['remove_domain_details'] = 'Esse procedimento removerá o Encaminhamento de Domínio.<br /><br /><b>O Domínio deve estar sem nenhuma configuração para ser removido.</b>';
|
$lang['delete']['remove_domain_details'] = 'Esse procedimento removerá o Encaminhamento de Domínio.<br><br><b>O Domínio deve estar sem nenhuma configuração para ser removido.</b>';
|
||||||
$lang['delete']['remove_alias_details'] = 'Os usuários não poderão mais enviar ou receber emails através deste endereço.</b>';
|
$lang['delete']['remove_alias_details'] = 'Os usuários não poderão mais enviar ou receber emails através deste endereço.</b>';
|
||||||
$lang['delete']['remove_button'] = 'Remover';
|
$lang['delete']['remove_button'] = 'Remover';
|
||||||
$lang['delete']['previous'] = 'Voltar';
|
$lang['delete']['previous'] = 'Voltar';
|
||||||
|
@ -304,7 +303,7 @@ $lang['admin']['reset_defaults'] = 'Voltar configuração padrão';
|
||||||
$lang['admin']['sr'] = 'Postfix Sender Restrictions';
|
$lang['admin']['sr'] = 'Postfix Sender Restrictions';
|
||||||
$lang['admin']['r_inactive'] = 'Restrictions Inativos';
|
$lang['admin']['r_inactive'] = 'Restrictions Inativos';
|
||||||
$lang['admin']['r_active'] = 'Restrictions Ativos';
|
$lang['admin']['r_active'] = 'Restrictions Ativos';
|
||||||
$lang['admin']['r_info'] = 'Greyed out/disabled elements on the list of active restrictions are not known as valid restrictions to mailcow and cannot be moved. Unknown restrictions will be set in order of appearance anyway. <br />You can add new elements in <code>inc/vars.local.inc.php</code> to be able to toggle them.';
|
$lang['admin']['r_info'] = 'Greyed out/disabled elements on the list of active restrictions are not known as valid restrictions to mailcow and cannot be moved. Unknown restrictions will be set in order of appearance anyway. <br>You can add new elements in <code>inc/vars.local.inc.php</code> to be able to toggle them.';
|
||||||
$lang['admin']['public_folders'] = 'Pastas públicas';
|
$lang['admin']['public_folders'] = 'Pastas públicas';
|
||||||
$lang['admin']['public_folders_text'] = 'A pasta "Public" esta criada. Abaixo a pasta pública indica o nome da primeira pasta criada automaticamente na conta, com este nome.';
|
$lang['admin']['public_folders_text'] = 'A pasta "Public" esta criada. Abaixo a pasta pública indica o nome da primeira pasta criada automaticamente na conta, com este nome.';
|
||||||
$lang['admin']['public_folder_name'] = 'Nome da Pasta <small>(alfa numérico)</small>';
|
$lang['admin']['public_folder_name'] = 'Nome da Pasta <small>(alfa numérico)</small>';
|
||||||
|
@ -353,4 +352,3 @@ $lang['admin']['site_not_found'] = 'Não foi possível localizar as configuraç
|
||||||
$lang['admin']['public_folder_empty'] = 'O nome da Pasta Pública deve ser preenchido';
|
$lang['admin']['public_folder_empty'] = 'O nome da Pasta Pública deve ser preenchido';
|
||||||
$lang['admin']['set_rr_failed'] = 'Não foi possível alterar Postfix Restrictions';
|
$lang['admin']['set_rr_failed'] = 'Não foi possível alterar Postfix Restrictions';
|
||||||
$lang['admin']['no_record'] = 'Nenhum registro';
|
$lang['admin']['no_record'] = 'Nenhum registro';
|
||||||
?>
|
|
||||||
|
|
|
@ -1,14 +1,13 @@
|
||||||
<?php
|
<?php
|
||||||
/*
|
/*
|
||||||
//
|
* Russian language file
|
||||||
// Russian language file
|
*/
|
||||||
//
|
|
||||||
*/
|
|
||||||
$lang['footer']['loading'] = "Пожалуйста, подождите...";
|
$lang['footer']['loading'] = "Пожалуйста, подождите...";
|
||||||
$lang['header']['restart_sogo'] = "Перезагрузить SOGo";
|
$lang['header']['restart_sogo'] = "Перезагрузить SOGo";
|
||||||
$lang['footer']['restart_sogo'] = "Перезагрузить SOGo";
|
$lang['footer']['restart_sogo'] = "Перезагрузить SOGo";
|
||||||
$lang['footer']['restart_now'] = "Перезагрузить сейчас";
|
$lang['footer']['restart_now'] = "Перезагрузить сейчас";
|
||||||
$lang['footer']['restart_sogo_info'] = "Некоторые операции, например при добавлении домена, требуют перезагрузить SOGo, для вступления в силу внесенных изменений.<br /><br /><b>Важно:</b> Перезагрузка может занять некоторое время, дождитесь ее окончания.";
|
$lang['footer']['restart_sogo_info'] = "Некоторые операции, например при добавлении домена, требуют перезагрузить SOGo, для вступления в силу внесенных изменений.<br><br><b>Важно:</b> Перезагрузка может занять некоторое время, дождитесь ее окончания.";
|
||||||
$lang['dkim']['confirm'] = "Вы уверены?";
|
$lang['dkim']['confirm'] = "Вы уверены?";
|
||||||
$lang['danger']['dkim_not_found'] = "DKIM ключ не найден";
|
$lang['danger']['dkim_not_found'] = "DKIM ключ не найден";
|
||||||
$lang['danger']['dkim_remove_failed'] = "Не удается удалить выбранный DKIM ключ";
|
$lang['danger']['dkim_remove_failed'] = "Не удается удалить выбранный DKIM ключ";
|
||||||
|
@ -146,7 +145,7 @@ $lang['user']['spamfilter_red'] = "Красный: это сообщение я
|
||||||
$lang['user']['spamfilter_default_score'] = "Значения по умолчанию";
|
$lang['user']['spamfilter_default_score'] = "Значения по умолчанию";
|
||||||
$lang['user']['spamfilter_hint'] = 'The first value describes the "low spam score", the second represents the "high spam score".';
|
$lang['user']['spamfilter_hint'] = 'The first value describes the "low spam score", the second represents the "high spam score".';
|
||||||
$lang['user']['spamfilter_table_domain_policy'] = "n/a (domain policy)";
|
$lang['user']['spamfilter_table_domain_policy'] = "n/a (domain policy)";
|
||||||
$lang['user']['tls_policy_warning'] = '<strong>Warning:</strong> If you decide to enforce encrypted mail transfer, you may lose emails.<br />Messages to not satisfy the policy will be bounced with a hard fail by the mail system.';
|
$lang['user']['tls_policy_warning'] = '<strong>Warning:</strong> If you decide to enforce encrypted mail transfer, you may lose emails.<br>Messages to not satisfy the policy will be bounced with a hard fail by the mail system.';
|
||||||
$lang['user']['tls_policy'] = "Настройки TLS шифрования";
|
$lang['user']['tls_policy'] = "Настройки TLS шифрования";
|
||||||
$lang['user']['tls_enforce_in'] = "Принудительное TLS входящих";
|
$lang['user']['tls_enforce_in'] = "Принудительное TLS входящих";
|
||||||
$lang['user']['tls_enforce_out'] = "Принудительное TLS исходящих";
|
$lang['user']['tls_enforce_out'] = "Принудительное TLS исходящих";
|
||||||
|
@ -156,12 +155,12 @@ $lang['user']['misc_delete_profile'] = "Другие настройки проф
|
||||||
$lang['user']['tag_handling'] = 'Set handling for tagged mail';
|
$lang['user']['tag_handling'] = 'Set handling for tagged mail';
|
||||||
$lang['user']['tag_in_subfolder'] = "В подпапку";
|
$lang['user']['tag_in_subfolder'] = "В подпапку";
|
||||||
$lang['user']['tag_in_subject'] = "В теме";
|
$lang['user']['tag_in_subject'] = "В теме";
|
||||||
$lang['user']['tag_help_explain'] = 'In subfolder: a new subfolder named after the tag will be created below INBOX ("INBOX/Facebook").<br />
|
$lang['user']['tag_help_explain'] = 'In subfolder: a new subfolder named after the tag will be created below INBOX ("INBOX/Facebook").<br>
|
||||||
In subject: the tags name will be prepended to the mails subject, example: "[Facebook] Meine Neuigkeiten".';
|
In subject: the tags name will be prepended to the mails subject, example: "[Facebook] Meine Neuigkeiten".';
|
||||||
$lang['user']['tag_help_example'] = 'Example for a tagged email address: ich<b>+Facebook</b>@example.org';
|
$lang['user']['tag_help_example'] = 'Example for a tagged email address: ich<b>+Facebook</b>@example.org';
|
||||||
$lang['user']['eas_reset'] = "Сбросить кеш ActiveSync устройств";
|
$lang['user']['eas_reset'] = "Сбросить кеш ActiveSync устройств";
|
||||||
$lang['user']['eas_reset_now'] = "Сбросить сейчас";
|
$lang['user']['eas_reset_now'] = "Сбросить сейчас";
|
||||||
$lang['user']['eas_reset_help'] = 'In many cases a device cache reset will help to recover a broken ActiveSync profile.<br /><b>Attention:</b> All elements will be redownloaded!';
|
$lang['user']['eas_reset_help'] = 'In many cases a device cache reset will help to recover a broken ActiveSync profile.<br><b>Attention:</b> All elements will be redownloaded!';
|
||||||
$lang['user']['encryption'] = "Шифрование";
|
$lang['user']['encryption'] = "Шифрование";
|
||||||
$lang['user']['username'] = "Логин";
|
$lang['user']['username'] = "Логин";
|
||||||
$lang['user']['password'] = "Пароль";
|
$lang['user']['password'] = "Пароль";
|
||||||
|
@ -180,17 +179,17 @@ $lang['start']['start_sogo'] = "Открыть SOGo";
|
||||||
$lang['start']['mailcow_apps_detail'] = "Приложения для доступа к электронной почте, календарю, контактам и т.д.";
|
$lang['start']['mailcow_apps_detail'] = "Приложения для доступа к электронной почте, календарю, контактам и т.д.";
|
||||||
$lang['start']['mailcow_panel'] = 'Start mailcow UI';
|
$lang['start']['mailcow_panel'] = 'Start mailcow UI';
|
||||||
$lang['start']['mailcow_panel_description'] = "Пользовательский интерфейс mailcow доступен для администраторов и пользователей почтовых ящиков.";
|
$lang['start']['mailcow_panel_description'] = "Пользовательский интерфейс mailcow доступен для администраторов и пользователей почтовых ящиков.";
|
||||||
$lang['start']['mailcow_panel_detail'] = "<b>Администраторы</b> могут создавать, изменять или удалять почтовые ящики, псевдонимы и другие административные настройки.<br />
|
$lang['start']['mailcow_panel_detail'] = "<b>Администраторы</b> могут создавать, изменять или удалять почтовые ящики, псевдонимы и другие административные настройки.<br>
|
||||||
<b>Пользователи</b> могут изменять пароль, создавать временные псевдонимы (спам псевдонимы), фильтры спама и другие доступные настройки своего профиля.";
|
<b>Пользователи</b> могут изменять пароль, создавать временные псевдонимы (спам псевдонимы), фильтры спама и другие доступные настройки своего профиля.";
|
||||||
$lang['start']['recommended_config'] = "Рекомендуемые настройки (без ActiveSync)";
|
$lang['start']['recommended_config'] = "Рекомендуемые настройки (без ActiveSync)";
|
||||||
$lang['start']['imap_smtp_server'] = 'IMAP- and SMTP server data';
|
$lang['start']['imap_smtp_server'] = 'IMAP- and SMTP server data';
|
||||||
$lang['start']['imap_smtp_server_description'] = 'For the best experience we recommend to use <a href="%s" target="_blank"><b>Mozilla Thunderbird</b></a>.';
|
$lang['start']['imap_smtp_server_description'] = 'For the best experience we recommend to use <a href="%s" target="_blank"><b>Mozilla Thunderbird</b></a>.';
|
||||||
$lang['start']['imap_smtp_server_badge'] = 'Read/Write emails';
|
$lang['start']['imap_smtp_server_badge'] = 'Read/Write emails';
|
||||||
$lang['start']['imap_smtp_server_auth_info'] = 'Please use your full email address and the PLAIN authentication mechanism.<br />
|
$lang['start']['imap_smtp_server_auth_info'] = 'Please use your full email address and the PLAIN authentication mechanism.<br>
|
||||||
Your login data will be encrypted by the server-side mandatory encryption.';
|
Your login data will be encrypted by the server-side mandatory encryption.';
|
||||||
$lang['start']['managesieve'] = 'ManageSieve';
|
$lang['start']['managesieve'] = 'ManageSieve';
|
||||||
$lang['start']['managesieve_badge'] = "Фильтр почты";
|
$lang['start']['managesieve_badge'] = "Фильтр почты";
|
||||||
$lang['start']['managesieve_description'] = 'Please use <b>Mozilla Thunderbird</b> with the <a style="text-decoration:none" target="_blank" href="%s"><b>nightly sieve extension</b></a>.<br />Start Thunderbird, open the add-on settings and drop the newly downloaded xpi file into the opened window.<br />The server name is <b>%s</b>, use port <b>4190</b> if you are asked for. The login data match your email login.';
|
$lang['start']['managesieve_description'] = 'Please use <b>Mozilla Thunderbird</b> with the <a style="text-decoration:none" target="_blank" href="%s"><b>nightly sieve extension</b></a>.<br>Start Thunderbird, open the add-on settings and drop the newly downloaded xpi file into the opened window.<br>The server name is <b>%s</b>, use port <b>4190</b> if you are asked for. The login data match your email login.';
|
||||||
$lang['start']['service'] = "Сервисы";
|
$lang['start']['service'] = "Сервисы";
|
||||||
$lang['start']['encryption'] = "Метод шифрования";
|
$lang['start']['encryption'] = "Метод шифрования";
|
||||||
$lang['start']['help'] = "Справка";
|
$lang['start']['help'] = "Справка";
|
||||||
|
@ -255,7 +254,7 @@ $lang['delete']['remove_mailbox_warning'] = "<b>Внимание:</b> Вы со
|
||||||
$lang['delete']['remove_mailbox_details'] = "Почтовый ящик будет <b>очищен навсегда</b>!";
|
$lang['delete']['remove_mailbox_details'] = "Почтовый ящик будет <b>очищен навсегда</b>!";
|
||||||
$lang['delete']['remove_resource_warning'] = "<b>Внимание:</b> Вы собираетесь удалить ресурс <b>%s</b>!";
|
$lang['delete']['remove_resource_warning'] = "<b>Внимание:</b> Вы собираетесь удалить ресурс <b>%s</b>!";
|
||||||
$lang['delete']['remove_resource_details'] = "Ресурс будет <b>очищен навсегда</b>!";
|
$lang['delete']['remove_resource_details'] = "Ресурс будет <b>очищен навсегда</b>!";
|
||||||
$lang['delete']['remove_domain_details'] = "Это также удаляет псевдонимы доменов.<br /><br /><b>Домен должен быть пустым для удаления.</b>";
|
$lang['delete']['remove_domain_details'] = "Это также удаляет псевдонимы доменов.<br><br><b>Домен должен быть пустым для удаления.</b>";
|
||||||
$lang['delete']['remove_syncjob_details'] = "Объекты из этого задания синхронизации больше не будут извлекаться с удаленного сервера.";
|
$lang['delete']['remove_syncjob_details'] = "Объекты из этого задания синхронизации больше не будут извлекаться с удаленного сервера.";
|
||||||
$lang['delete']['remove_alias_details'] = "Пользователи больше не смогут получать почту или отправлять почту с этого адреса.</b>";
|
$lang['delete']['remove_alias_details'] = "Пользователи больше не смогут получать почту или отправлять почту с этого адреса.</b>";
|
||||||
$lang['delete']['remove_button'] = "Удалить";
|
$lang['delete']['remove_button'] = "Удалить";
|
||||||
|
@ -265,8 +264,8 @@ $lang['edit']['save'] = "Сохранить";
|
||||||
$lang['edit']['username'] = "Логин";
|
$lang['edit']['username'] = "Логин";
|
||||||
$lang['edit']['hostname'] = "Имя хоста";
|
$lang['edit']['hostname'] = "Имя хоста";
|
||||||
$lang['edit']['encryption'] = "Шифрование";
|
$lang['edit']['encryption'] = "Шифрование";
|
||||||
$lang['edit']['maxage'] = 'Maximum age of messages in days that will be polled from remote<br /><small>(0 = ignore age)</small>';
|
$lang['edit']['maxage'] = 'Maximum age of messages in days that will be polled from remote<br><small>(0 = ignore age)</small>';
|
||||||
$lang['edit']['subfolder2'] = 'Sync into subfolder on destination<br /><small>(empty = do not use subfolder)</small>';
|
$lang['edit']['subfolder2'] = 'Sync into subfolder on destination<br><small>(empty = do not use subfolder)</small>';
|
||||||
$lang['edit']['mins_interval'] = "Интервал (минуты)";
|
$lang['edit']['mins_interval'] = "Интервал (минуты)";
|
||||||
$lang['edit']['exclude'] = 'Exclude objects (regex)';
|
$lang['edit']['exclude'] = 'Exclude objects (regex)';
|
||||||
$lang['edit']['save'] = "Сохранить";
|
$lang['edit']['save'] = "Сохранить";
|
||||||
|
@ -385,8 +384,8 @@ $lang['tfa']['confirm'] = "Подтвердить";
|
||||||
$lang['tfa']['otp'] = "Одноразовый пароль";
|
$lang['tfa']['otp'] = "Одноразовый пароль";
|
||||||
$lang['tfa']['trash_login'] = "Некорректный логин";
|
$lang['tfa']['trash_login'] = "Некорректный логин";
|
||||||
$lang['tfa']['select'] = "Пожалуйста выберите";
|
$lang['tfa']['select'] = "Пожалуйста выберите";
|
||||||
$lang['tfa']['waiting_usb_auth'] = "<i>Ждем USB-устройства...</i><br /><br />Пожалуйста, нажмите кнопку на USB-устройстве U2F.";
|
$lang['tfa']['waiting_usb_auth'] = "<i>Ждем USB-устройства...</i><br><br>Пожалуйста, нажмите кнопку на USB-устройстве U2F.";
|
||||||
$lang['tfa']['waiting_usb_register'] = "<i>Ждем USB-устройства...</i><br /><br />Пожалуйста, введите свой пароль выше и подтвердите регистрацию U2F, нажав кнопку на USB-устройстве U2F.";
|
$lang['tfa']['waiting_usb_register'] = "<i>Ждем USB-устройства...</i><br><br>Пожалуйста, введите свой пароль выше и подтвердите регистрацию U2F, нажав кнопку на USB-устройстве U2F.";
|
||||||
$lang['admin']['search_domain_da'] = "Поиск домена";
|
$lang['admin']['search_domain_da'] = "Поиск домена";
|
||||||
$lang['admin']['restrictions'] = "Настройки Postfix";
|
$lang['admin']['restrictions'] = "Настройки Postfix";
|
||||||
$lang['admin']['rr'] = "Настройки получателя";
|
$lang['admin']['rr'] = "Настройки получателя";
|
||||||
|
@ -395,7 +394,7 @@ $lang['admin']['reset_defaults'] = "Сброс по умолчанию";
|
||||||
$lang['admin']['sr'] = "Настройки отправителя";
|
$lang['admin']['sr'] = "Настройки отправителя";
|
||||||
$lang['admin']['r_inactive'] = "Неактивные элементы";
|
$lang['admin']['r_inactive'] = "Неактивные элементы";
|
||||||
$lang['admin']['r_active'] = "Активные элементы";
|
$lang['admin']['r_active'] = "Активные элементы";
|
||||||
$lang['admin']['r_info'] = "Выделенные серым цветом элементы в списке активных элементов заблокированы от перемещения в список неактивных элементов, так как их отключение может непредсказуемо повлиять на работу mailcow. Unknown restrictions will be set in order of appearance anyway. <br />Вы можете добавить новые элементы в <code>inc/vars.local.inc.php</code>, что бы иметь возможно переключать их.";
|
$lang['admin']['r_info'] = "Выделенные серым цветом элементы в списке активных элементов заблокированы от перемещения в список неактивных элементов, так как их отключение может непредсказуемо повлиять на работу mailcow. Unknown restrictions will be set in order of appearance anyway. <br>Вы можете добавить новые элементы в <code>inc/vars.local.inc.php</code>, что бы иметь возможно переключать их.";
|
||||||
$lang['admin']['public_folders'] = "Общие папки";
|
$lang['admin']['public_folders'] = "Общие папки";
|
||||||
$lang['admin']['public_folders_text'] = 'A namespace "Public" is created. Below\'s public folder name indicates the name of the first auto-created mailbox within this namespace.';
|
$lang['admin']['public_folders_text'] = 'A namespace "Public" is created. Below\'s public folder name indicates the name of the first auto-created mailbox within this namespace.';
|
||||||
$lang['admin']['public_folder_name'] = "Имя папки";
|
$lang['admin']['public_folder_name'] = "Имя папки";
|
||||||
|
@ -448,4 +447,3 @@ $lang['admin']['site_not_found'] = "Не удается найти конфиг
|
||||||
$lang['admin']['public_folder_empty'] = "Имя общей папки не может быть пустым";
|
$lang['admin']['public_folder_empty'] = "Имя общей папки не может быть пустым";
|
||||||
$lang['admin']['set_rr_failed'] = "Не установить настройки Postfix";
|
$lang['admin']['set_rr_failed'] = "Не установить настройки Postfix";
|
||||||
$lang['admin']['no_record'] = "Нет записей";
|
$lang['admin']['no_record'] = "Нет записей";
|
||||||
?>
|
|
||||||
|
|
|
@ -152,7 +152,7 @@ $_SESSION['return_to'] = $_SERVER['REQUEST_URI'];
|
||||||
<a class="btn btn-sm btn-default" id="toggle_multi_select_all" data-id="alias" href="#"><span class="glyphicon glyphicon-check" aria-hidden="true"></span> <?=$lang['mailbox']['toggle_all'];?></a>
|
<a class="btn btn-sm btn-default" id="toggle_multi_select_all" data-id="alias" href="#"><span class="glyphicon glyphicon-check" aria-hidden="true"></span> <?=$lang['mailbox']['toggle_all'];?></a>
|
||||||
<a class="btn btn-sm btn-default dropdown-toggle" data-toggle="dropdown" href="#"><?=$lang['mailbox']['quick_actions'];?> <span class="caret"></span></a>
|
<a class="btn btn-sm btn-default dropdown-toggle" data-toggle="dropdown" href="#"><?=$lang['mailbox']['quick_actions'];?> <span class="caret"></span></a>
|
||||||
<ul class="dropdown-menu">
|
<ul class="dropdown-menu">
|
||||||
<li><a id="edit_selected" data-id="alias" data-api-url='edit/alias' data-api-attr='{"active":"1","active1":"12"}' href="#"><?=$lang['mailbox']['activate'];?></a></li>
|
<li><a id="edit_selected" data-id="alias" data-api-url='edit/alias' data-api-attr='{"active":"1"}' href="#"><?=$lang['mailbox']['activate'];?></a></li>
|
||||||
<li><a id="edit_selected" data-id="alias" data-api-url='edit/alias' data-api-attr='{"active":"0"}' href="#"><?=$lang['mailbox']['deactivate'];?></a></li>
|
<li><a id="edit_selected" data-id="alias" data-api-url='edit/alias' data-api-attr='{"active":"0"}' href="#"><?=$lang['mailbox']['deactivate'];?></a></li>
|
||||||
<li role="separator" class="divider"></li>
|
<li role="separator" class="divider"></li>
|
||||||
<li><a id="delete_selected" data-id="alias" data-api-url='delete/alias' href="#"><?=$lang['mailbox']['remove'];?></a></li>
|
<li><a id="delete_selected" data-id="alias" data-api-url='delete/alias' href="#"><?=$lang['mailbox']['remove'];?></a></li>
|
||||||
|
|
|
@ -408,71 +408,21 @@ elseif (isset($_SESSION['mailcow_cc_role']) && $_SESSION['mailcow_cc_role'] == '
|
||||||
</div>
|
</div>
|
||||||
<div role="tabpanel" class="tab-pane" id="Syncjobs">
|
<div role="tabpanel" class="tab-pane" id="Syncjobs">
|
||||||
<div class="table-responsive">
|
<div class="table-responsive">
|
||||||
<table class="table table-striped" id="timelimitedaliases">
|
<table class="table table-striped" id="sync_job_table"></table>
|
||||||
<thead>
|
|
||||||
<tr>
|
|
||||||
<th class="sort-table" style="min-width: 96px;">Server:Port</th>
|
|
||||||
<th class="sort-table" style="min-width: 96px;"><?=$lang['user']['encryption'];?></th>
|
|
||||||
<th class="sort-table" style="min-width: 96px;"><?=$lang['user']['username'];?></th>
|
|
||||||
<th class="sort-table" style="min-width: 96px;"><?=$lang['user']['excludes'];?></th>
|
|
||||||
<th class="sort-table" style="min-width: 35px;"><?=$lang['user']['interval'];?></th>
|
|
||||||
<th class="sort-table" style="min-width: 35px;"><?=$lang['user']['last_run'];?></th>
|
|
||||||
<th class="sort-table" style="min-width: 35px;">Log</th>
|
|
||||||
<th class="sort-table" style="max-width: 95px;"><?=$lang['user']['active'];?></th>
|
|
||||||
<th style="text-align: right; min-width: 200px;"><?=$lang['user']['action'];?></th>
|
|
||||||
</tr>
|
|
||||||
</thead>
|
|
||||||
<tbody>
|
|
||||||
<?php
|
|
||||||
$get_syncjobs = get_syncjobs($username);
|
|
||||||
if (!empty($get_syncjobs)):
|
|
||||||
foreach ($get_syncjobs as $row):
|
|
||||||
?>
|
|
||||||
<tr id="data">
|
|
||||||
<td><?=htmlspecialchars($row['host1'] . ':' . $row['port1']);?></td>
|
|
||||||
<td><?=htmlspecialchars($row['enc1']);?></td>
|
|
||||||
<td><?=htmlspecialchars($row['user1']);?></td>
|
|
||||||
<td><?=($row['exclude'] == '') ? '✘' : '<code>' . $row['exclude'] . '</code>';?></td>
|
|
||||||
<td><?=htmlspecialchars($row['mins_interval']);?> min</td>
|
|
||||||
<td><?=(empty($row['last_run'])) ? '✘' : htmlspecialchars(date($lang['user']['syncjob_full_date'], strtotime($row['last_run'])));?></td>
|
|
||||||
<td>
|
|
||||||
<?php
|
|
||||||
if (empty($row['returned_text'])) {
|
|
||||||
echo '✘';
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
?>
|
|
||||||
<a href="#logModal" data-toggle="modal" data-log-text="<?=htmlspecialchars($row['returned_text']);?>">Open logs</a>
|
|
||||||
<?php
|
|
||||||
}
|
|
||||||
?>
|
|
||||||
</td>
|
|
||||||
<td><?=($row['active'] == '1') ? '✔' : '✘';?></td>
|
|
||||||
<td style="text-align: right;">
|
|
||||||
<div class="btn-group">
|
|
||||||
<a href="/edit.php?syncjob=<?=urlencode($row['id']);?>" class="btn btn-xs btn-default"><span class="glyphicon glyphicon-pencil"></span> <?=$lang['user']['edit'];?></a>
|
|
||||||
<a href="/delete.php?syncjob=<?=urlencode($row['id']);?>" class="btn btn-xs btn-danger"><span class="glyphicon glyphicon-trash"></span> <?=$lang['user']['remove'];?></a>
|
|
||||||
</div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<?php
|
|
||||||
endforeach;
|
|
||||||
else:
|
|
||||||
?>
|
|
||||||
<tr id="no-data"><td colspan="9" style="text-align: center; font-style: italic;"><?=$lang['user']['no_record'];?></td></tr>
|
|
||||||
<?php
|
|
||||||
endif;
|
|
||||||
?>
|
|
||||||
</tbody>
|
|
||||||
<tfoot>
|
|
||||||
<tr id="no-data">
|
|
||||||
<td colspan="9" style="text-align: center; font-style: normal; border-top: 1px solid #e7e7e7;">
|
|
||||||
<a href="/add.php?syncjob"><?=$lang['user']['create_syncjob'];?></a>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</tfoot>
|
|
||||||
</table>
|
|
||||||
</div>
|
</div>
|
||||||
|
<div class="mass-actions-user">
|
||||||
|
<div class="btn-group">
|
||||||
|
<a class="btn btn-sm btn-default" id="toggle_multi_select_all" data-id="syncjob" href="#"><span class="glyphicon glyphicon-check" aria-hidden="true"></span> <?=$lang['mailbox']['toggle_all'];?></a>
|
||||||
|
<a class="btn btn-sm btn-default dropdown-toggle" data-toggle="dropdown" href="#"><?=$lang['mailbox']['quick_actions'];?> <span class="caret"></span></a>
|
||||||
|
<ul class="dropdown-menu">
|
||||||
|
<li><a id="edit_selected" data-id="syncjob" data-api-url='edit/syncjob' data-api-attr='{"active":"1"}' href="#"><?=$lang['mailbox']['activate'];?></a></li>
|
||||||
|
<li><a id="edit_selected" data-id="syncjob" data-api-url='edit/syncjob' data-api-attr='{"active":"0"}' href="#"><?=$lang['mailbox']['deactivate'];?></a></li>
|
||||||
|
<li role="separator" class="divider"></li>
|
||||||
|
<li><a id="delete_selected" data-id="syncjob" data-api-url='delete/syncjob' href="#"><?=$lang['mailbox']['remove'];?></a></li>
|
||||||
|
</ul>
|
||||||
|
<a class="btn btn-sm btn-success" href="/add.php?syncjob"><?=$lang['user']['create_syncjob'];?></a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -533,7 +483,15 @@ if (isset($_SESSION['mailcow_cc_role']) && ($_SESSION['mailcow_cc_role'] == "use
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div> <!-- /container -->
|
</div> <!-- /container -->
|
||||||
<script src="js/sorttable.js"></script>
|
<script type='text/javascript'>
|
||||||
|
<?php
|
||||||
|
$lang_user = json_encode($lang['user']);
|
||||||
|
echo "var lang = ". $lang_user . ";\n";
|
||||||
|
echo "var csrf_token = '". $_SESSION['CSRF']['TOKEN'] . "';\n";
|
||||||
|
echo "var pagination_size = '". $PAGINATION_SIZE . "';\n";
|
||||||
|
?>
|
||||||
|
</script>
|
||||||
|
<script src="js/footable.min.js"></script>
|
||||||
<script src="js/user.js"></script>
|
<script src="js/user.js"></script>
|
||||||
<?php
|
<?php
|
||||||
require_once("inc/footer.inc.php");
|
require_once("inc/footer.inc.php");
|
||||||
|
|
Loading…
Reference in New Issue