mirror of
https://github.com/mailcow/mailcow-dockerized.git
synced 2024-12-21 01:49:22 +02:00
add temporary email description
This commit is contained in:
parent
ed2837edd8
commit
60ca25026d
@ -48,6 +48,7 @@ function mailbox($_action, $_type, $_data = null, $_extra = null) {
|
||||
$_data["validity"] = 8760;
|
||||
}
|
||||
$domain = $_data['domain'];
|
||||
$description = $_data['description'];
|
||||
$valid_domains[] = mailbox('get', 'mailbox_details', $username)['domain'];
|
||||
$valid_alias_domains = user_get_alias_details($username)['alias_domains'];
|
||||
if (!empty($valid_alias_domains)) {
|
||||
@ -62,10 +63,11 @@ function mailbox($_action, $_type, $_data = null, $_extra = null) {
|
||||
return false;
|
||||
}
|
||||
$validity = strtotime("+" . $_data["validity"] . " hour");
|
||||
$stmt = $pdo->prepare("INSERT INTO `spamalias` (`address`, `goto`, `validity`) VALUES
|
||||
(:address, :goto, :validity)");
|
||||
$stmt = $pdo->prepare("INSERT INTO `spamalias` (`address`, `description`, `goto`, `validity`) VALUES
|
||||
(:address, :description, :goto, :validity)");
|
||||
$stmt->execute(array(
|
||||
':address' => readable_random_string(rand(rand(3, 9), rand(3, 9))) . '.' . readable_random_string(rand(rand(3, 9), rand(3, 9))) . '@' . $domain,
|
||||
':description' => $description,
|
||||
':goto' => $username,
|
||||
':validity' => $validity
|
||||
));
|
||||
@ -4201,6 +4203,7 @@ function mailbox($_action, $_type, $_data = null, $_extra = null) {
|
||||
}
|
||||
$stmt = $pdo->prepare("SELECT `address`,
|
||||
`goto`,
|
||||
`description`,
|
||||
`validity`,
|
||||
`created`,
|
||||
`modified`
|
||||
|
@ -527,6 +527,7 @@ function init_db_schema() {
|
||||
"cols" => array(
|
||||
"address" => "VARCHAR(255) NOT NULL",
|
||||
"goto" => "TEXT NOT NULL",
|
||||
"description" => "TEXT NOT NULL",
|
||||
"created" => "DATETIME(0) NOT NULL DEFAULT NOW(0)",
|
||||
"modified" => "DATETIME ON UPDATE CURRENT_TIMESTAMP",
|
||||
"validity" => "INT(11)"
|
||||
|
@ -202,6 +202,11 @@ jQuery(function($){
|
||||
data: 'address',
|
||||
defaultContent: ''
|
||||
},
|
||||
{
|
||||
title: lang.description,
|
||||
data: 'description',
|
||||
defaultContent: ''
|
||||
},
|
||||
{
|
||||
title: lang.alias_valid_until,
|
||||
data: 'validity',
|
||||
|
@ -493,6 +493,7 @@
|
||||
"client_configuration": "Guies de configuració per als clients de correu més habituals",
|
||||
"create_syncjob": "Afegir treball de sincronitzaió",
|
||||
"day": "Dia",
|
||||
"description": "Descripció",
|
||||
"direct_aliases": "Adreces àlies directes",
|
||||
"direct_aliases_desc": "Els àlies directes sí que es veuen afectat per la configuració de l'usuari",
|
||||
"eas_reset": "Fer un reset de la cache d'ActiveSync del dispositiu",
|
||||
@ -558,4 +559,4 @@
|
||||
"week": "Setmana",
|
||||
"weeks": "Setmanes"
|
||||
}
|
||||
}
|
||||
}
|
@ -1164,6 +1164,7 @@
|
||||
"created_on": "Vytvoreno",
|
||||
"daily": "Každý den",
|
||||
"day": "den",
|
||||
"description": "Popis",
|
||||
"delete_ays": "Potvrďte odstranění.",
|
||||
"direct_aliases": "Přímé aliasy",
|
||||
"direct_aliases_desc": "Na přímé aliasy se uplatňuje filtr spamu a nastavení pravidel TLS",
|
||||
@ -1309,4 +1310,4 @@
|
||||
"session_token": "Token formuláře není platný: Token mismatch",
|
||||
"session_ua": "Token formuláře není platný: User-Agent validation error"
|
||||
}
|
||||
}
|
||||
}
|
@ -971,6 +971,7 @@
|
||||
"create_syncjob": "Opret nyt sync job",
|
||||
"daily": "Dagligt",
|
||||
"day": "dag",
|
||||
"description": "Beskrivelse",
|
||||
"delete_ays": "Bekræft venligst ønsket om sletning.",
|
||||
"direct_aliases": "Direkte alias addresser",
|
||||
"direct_aliases_desc": "Direkte alias-adresser påvirkes af spamfilter og TLS-politiske indstillinger.",
|
||||
@ -1091,4 +1092,4 @@
|
||||
"first": "Først"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -1185,6 +1185,7 @@
|
||||
"created_on": "Erstellt am",
|
||||
"daily": "Täglich",
|
||||
"day": "Tag",
|
||||
"description": "Beschreibung",
|
||||
"delete_ays": "Soll der Löschvorgang wirklich ausgeführt werden?",
|
||||
"direct_aliases": "Direkte Alias-Adressen",
|
||||
"direct_aliases_desc": "Nur direkte Alias-Adressen werden für benutzerdefinierte Einstellungen berücksichtigt.",
|
||||
@ -1338,4 +1339,4 @@
|
||||
"hour": "Nachrichten / Stunde",
|
||||
"day": "Nachrichten / Tag"
|
||||
}
|
||||
}
|
||||
}
|
@ -1192,6 +1192,7 @@
|
||||
"created_on": "Created on",
|
||||
"daily": "Daily",
|
||||
"day": "day",
|
||||
"description": "Description",
|
||||
"delete_ays": "Please confirm the deletion process.",
|
||||
"direct_aliases": "Direct alias addresses",
|
||||
"direct_aliases_desc": "Direct alias addresses are affected by spam filter and TLS policy settings.",
|
||||
@ -1338,4 +1339,4 @@
|
||||
"session_token": "Form token invalid: Token mismatch",
|
||||
"session_ua": "Form token invalid: User-Agent validation error"
|
||||
}
|
||||
}
|
||||
}
|
@ -709,6 +709,7 @@
|
||||
"create_syncjob": "Crear nuevo trabajo de sincronización",
|
||||
"daily": "Cada día",
|
||||
"day": "Día",
|
||||
"description": "Descripción",
|
||||
"direct_aliases": "Alias directos",
|
||||
"direct_aliases_desc": "Los alias directos se ven afectadas por el filtro de correo no deseado y la configuración de la política TLS del usuario.",
|
||||
"eas_reset": "Resetear el caché ActiveSync",
|
||||
@ -778,4 +779,4 @@
|
||||
"fuzzy_learn_error": "Error aprendiendo hash: %s",
|
||||
"ip_invalid": "IP inválida omitida: %s"
|
||||
}
|
||||
}
|
||||
}
|
@ -810,6 +810,7 @@
|
||||
"create_syncjob": "Luo uusi synkronointi työ",
|
||||
"daily": "Päivittäin",
|
||||
"day": "Päivä",
|
||||
"description": "Kuvaus",
|
||||
"direct_aliases": "Suorat alias osoitteet",
|
||||
"direct_aliases_desc": "Roska posti suodatus-ja TLS-käytäntö asetukset vaikuttavat suora aliaksen osoitteisiin.",
|
||||
"eas_reset": "Tyhjennä ActiveSync-laitteen väli muisti",
|
||||
@ -908,4 +909,4 @@
|
||||
"last": "Edellinen"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -1101,6 +1101,7 @@
|
||||
"create_syncjob": "Créer une tâche de synchronisation",
|
||||
"daily": "Quotidien",
|
||||
"day": "jour",
|
||||
"description": "Description",
|
||||
"delete_ays": "Veuillez confirmer le processus de suppression.",
|
||||
"direct_aliases": "Adresses alias directes",
|
||||
"direct_aliases_desc": "Les adresses d’alias directes sont affectées par le filtre anti-spam et les paramètres de politique TLS.",
|
||||
@ -1267,4 +1268,4 @@
|
||||
"ratelimit": {
|
||||
"disabled": "Désactivé"
|
||||
}
|
||||
}
|
||||
}
|
@ -406,6 +406,7 @@
|
||||
"create_syncjob": "Új szinkronizációs művelet létrehozása",
|
||||
"daily": "Napi",
|
||||
"day": "nap",
|
||||
"description": "Leírás",
|
||||
"delete_ays": "Erősítse meg a törlést.",
|
||||
"direct_aliases": "Közvetlen alias címek",
|
||||
"eas_reset": "ActiveSync eszköz gyorsítótár ürítése",
|
||||
@ -591,4 +592,4 @@
|
||||
"app_name": "Alkalmazás neve",
|
||||
"app_passwd_protocols": "Engedélyezett protokollok az alkalmazás jelszavához"
|
||||
}
|
||||
}
|
||||
}
|
@ -1126,6 +1126,7 @@
|
||||
"created_on": "Creato il",
|
||||
"daily": "Giornaliero",
|
||||
"day": "giorno",
|
||||
"description": "Descrizione",
|
||||
"delete_ays": "Please confirm the deletion process.",
|
||||
"direct_aliases": "Direct alias addresses",
|
||||
"direct_aliases_desc": "Direct alias addresses are affected by spam filter and TLS policy settings.",
|
||||
@ -1308,4 +1309,4 @@
|
||||
},
|
||||
"decimal": "."
|
||||
}
|
||||
}
|
||||
}
|
@ -911,6 +911,7 @@
|
||||
"create_syncjob": "새 동기화 작업 생성",
|
||||
"daily": "매일",
|
||||
"day": "일",
|
||||
"description": "Description",
|
||||
"delete_ays": "진짜 삭제하겠습니까?",
|
||||
"direct_aliases": "Direct alias addresses",
|
||||
"direct_aliases_desc": "Direct alias addresses are affected by spam filter and TLS policy settings.",
|
||||
@ -1020,4 +1021,4 @@
|
||||
"session_token": "Form token invalid: Token mismatch",
|
||||
"session_ua": "Form token invalid: User-Agent validation error"
|
||||
}
|
||||
}
|
||||
}
|
@ -551,6 +551,7 @@
|
||||
"client_configuration": "Parādīt konfigurācijas norādes e-pasta klientiem un tālruņiem",
|
||||
"create_syncjob": "Izveidot jaunu sinhronizācijas darbu",
|
||||
"day": "Dienas",
|
||||
"description": "Apraksts",
|
||||
"direct_aliases": "Tiešas aizstājadreses",
|
||||
"direct_aliases_desc": "Tiešās aizstājadreses ir surogātpasta atlasīšanas un TLS nosacījumu iestatījumu ietekmētas.",
|
||||
"eas_reset": "Atiestatīt ActiveSync ierīces kešatmiņu",
|
||||
@ -659,4 +660,4 @@
|
||||
"fido2": {
|
||||
"fido2_auth": "Pieteikties ar FIDO2"
|
||||
}
|
||||
}
|
||||
}
|
@ -1028,6 +1028,7 @@
|
||||
"create_syncjob": "Voeg sync job toe",
|
||||
"daily": "Dagelijks",
|
||||
"day": "dag",
|
||||
"description": "Beschrijving",
|
||||
"delete_ays": "Bevestig de verwijdering.",
|
||||
"direct_aliases": "Directe aliasadressen",
|
||||
"direct_aliases_desc": "Directe aliasadressen worden beïnvloed door spamfilters en het versleutelingsbeleid.",
|
||||
@ -1167,4 +1168,4 @@
|
||||
"search": "Zoeken:",
|
||||
"zeroRecords": "Geen overeenkomsten gevonden"
|
||||
}
|
||||
}
|
||||
}
|
@ -363,6 +363,7 @@
|
||||
"create_syncjob": "Utwórz nowe polecenie synchronizacji",
|
||||
"daily": "Co dzień",
|
||||
"day": "Dzień",
|
||||
"description": "Opis",
|
||||
"direct_aliases": "Aliasy bezpośrednie",
|
||||
"direct_aliases_desc": "Na aliasy bezpośrednie wpływają filtry spamu i ustawienia TLS.",
|
||||
"eas_reset": "Zresetuj pamięć podręczną urządzenia ActiveSync",
|
||||
@ -431,4 +432,4 @@
|
||||
"weekly": "Co tydzień",
|
||||
"weeks": "Tygodnie"
|
||||
}
|
||||
}
|
||||
}
|
@ -1186,6 +1186,7 @@
|
||||
"created_on": "Criado em",
|
||||
"daily": "Diariamente",
|
||||
"day": "dia",
|
||||
"description": "Descrição",
|
||||
"delete_ays": "Confirme o processo de exclusão.",
|
||||
"direct_aliases": "Endereços de alias diretos",
|
||||
"direct_aliases_desc": "Os endereços de alias diretos são afetados pelo filtro de spam e pelas configurações da política TLS.",
|
||||
@ -1332,4 +1333,4 @@
|
||||
"session_token": "Token de formulário inválido: incompatibilidade de token",
|
||||
"session_ua": "Token de formulário inválido: erro de validação do agente de usuário"
|
||||
}
|
||||
}
|
||||
}
|
@ -236,6 +236,7 @@
|
||||
"aliases_send_as_all": "Não verificar remetente para os domínios",
|
||||
"change_password": "Alterar senha",
|
||||
"day": "Dia",
|
||||
"description": "Descrição",
|
||||
"edit": "Editar",
|
||||
"hour": "Hora",
|
||||
"hours": "Horas",
|
||||
@ -272,4 +273,4 @@
|
||||
"week": "Semana",
|
||||
"weeks": "Semanas"
|
||||
}
|
||||
}
|
||||
}
|
@ -1064,6 +1064,7 @@
|
||||
"created_on": "Creat în",
|
||||
"daily": "Zilnic",
|
||||
"day": "zi",
|
||||
"description": "Descriere",
|
||||
"delete_ays": "Vă rugăm să confirmați stergerea.",
|
||||
"direct_aliases": "Adrese alias directe",
|
||||
"direct_aliases_desc": "Adresele alias directe sunt afectate de setările filtrului de spam și ale politicii TLS.",
|
||||
@ -1210,4 +1211,4 @@
|
||||
"expand_all": "Expandează tot",
|
||||
"decimal": ","
|
||||
}
|
||||
}
|
||||
}
|
@ -1192,6 +1192,7 @@
|
||||
"created_on": "Дата создания",
|
||||
"daily": "Раз в день",
|
||||
"day": "день",
|
||||
"description": "Описание",
|
||||
"delete_ays": "Пожалуйста, подтвердите удаление",
|
||||
"direct_aliases": "Личные псевдонимы",
|
||||
"direct_aliases_desc": "На личные псевдонимы распространяются фильтры нежелательной почты и параметры политики TLS.",
|
||||
@ -1338,4 +1339,4 @@
|
||||
"session_token": "Неверный токен формы: несоответствие токена",
|
||||
"session_ua": "Неверный токен формы: ошибка проверки User-Agent"
|
||||
}
|
||||
}
|
||||
}
|
@ -1116,6 +1116,7 @@
|
||||
"created_on": "Vytvorené",
|
||||
"daily": "Denne",
|
||||
"day": "deň",
|
||||
"description": "Popis",
|
||||
"delete_ays": "Potvrďte zmazanie.",
|
||||
"direct_aliases": "Priame alias adresy",
|
||||
"direct_aliases_desc": "Priame aliasy sú ovplyvnené spam filtrom a nastavením TLS pravidiel.",
|
||||
@ -1258,4 +1259,4 @@
|
||||
"session_token": "Formulárový token neplatný: Tokenová nezhoda",
|
||||
"session_ua": "Formulárový token neplatný: User-Agent validation error"
|
||||
}
|
||||
}
|
||||
}
|
@ -993,6 +993,7 @@
|
||||
"created_on": "Skapad vid",
|
||||
"daily": "Dagligen",
|
||||
"day": "dag",
|
||||
"description": "Beskrivning",
|
||||
"delete_ays": "Är du säker att du vill ta bort det här objektet?",
|
||||
"direct_aliases": "Direkta aliasadresser",
|
||||
"direct_aliases_desc": "Endast direkta aliasadresser påverkas av spamfilter och TLS-policyföreskrifter.",
|
||||
@ -1112,4 +1113,4 @@
|
||||
"session_token": "Formulär-nyckeln är ogiltig: Nyckeln matchar inte",
|
||||
"session_ua": "Formulär-nyckeln är ogiltig: User-Agenten kunde inte valideras"
|
||||
}
|
||||
}
|
||||
}
|
@ -1207,6 +1207,7 @@
|
||||
"created_on": "Oluşturulma tarihi",
|
||||
"daily": "Günlük",
|
||||
"day": "Gün",
|
||||
"description": "Açıklama",
|
||||
"delete_ays": "Lütfen silme işlemini onaylayın.",
|
||||
"direct_aliases": "Doğrudan takma ad adresleri",
|
||||
"eas_reset_help": "Birçok durumda cihaz önbelleğini sıfırlama, bozuk bir ActiveSync profilini kurtarmaya yardımcı olur.<br><b>Dikkat:</b> Tüm öğeler yeniden indirilecek!",
|
||||
@ -1313,4 +1314,4 @@
|
||||
"q_reject": "Reddedildi",
|
||||
"week": "Hafta"
|
||||
}
|
||||
}
|
||||
}
|
@ -1135,6 +1135,7 @@
|
||||
"created_on": "Дата створення",
|
||||
"daily": "Раз на день",
|
||||
"day": "день",
|
||||
"description": "Опис",
|
||||
"delete_ays": "Будь ласка, підтвердіть видалення.",
|
||||
"eas_reset": "Скинути кеш ActiveSync пристроїв",
|
||||
"eas_reset_help": "У багатьох випадках скидання кешу пристроїв допомагає відновити пошкоджений профіль ActiveSync.<br><b>Увага:</b> всі листи, календарі та контакти будуть завантажені заново на всі ваші пристрої!",
|
||||
@ -1311,4 +1312,4 @@
|
||||
},
|
||||
"collapse_all": "Згорнути все"
|
||||
}
|
||||
}
|
||||
}
|
@ -1164,6 +1164,7 @@
|
||||
"created_on": "添加于",
|
||||
"daily": "每日",
|
||||
"day": "日",
|
||||
"description": "描述",
|
||||
"delete_ays": "请确认删除。",
|
||||
"direct_aliases": "直接别名",
|
||||
"direct_aliases_desc": "垃圾邮件过滤和 TLS 策略会作用于直接别名。",
|
||||
@ -1336,4 +1337,4 @@
|
||||
"loadingRecords": "加载中...",
|
||||
"zeroRecords": "未找到符合条件的记录"
|
||||
}
|
||||
}
|
||||
}
|
@ -1140,6 +1140,7 @@
|
||||
"created_on": "建立於",
|
||||
"daily": "每日",
|
||||
"day": "日",
|
||||
"description": "描述",
|
||||
"delete_ays": "請確認刪除。",
|
||||
"direct_aliases": "直接別名",
|
||||
"direct_aliases_desc": "直接別名會受到垃圾郵件過濾器和 TLS 規則限制。",
|
||||
@ -1328,4 +1329,4 @@
|
||||
"hold_mail": "保留",
|
||||
"unhold_mail": "取消保留"
|
||||
}
|
||||
}
|
||||
}
|
@ -340,31 +340,22 @@
|
||||
<div class="modal fade" id="tempAliasModal" tabindex="-1" role="dialog" aria-labelledby="tempAliasModalLabel">
|
||||
<div class="modal-dialog modal-lg" role="document">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h3 class="modal-title">{{ lang.user.alias_create_random }}</h3>
|
||||
<button type="button" class="btn-close" data-bs-dismiss="modal"></button>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<form class="form-horizontal" data-cached-form="false" data-id="pwchange" role="form" method="post" autocomplete="off">
|
||||
<div class="row">
|
||||
<label class="control-label col-sm-3" for="user_new_pass">{{ lang.user.new_password }} (<a href="#" class="generate_password">{{ lang.user.generate }}</a>)</label>
|
||||
<form class="form-horizontal" data-cached-form="false" data-id="tempaliascreate" role="form" method="post" autocomplete="off">
|
||||
<div class="row mb-4">
|
||||
<label class="control-label col-sm-3" for="description">{{ lang.user.description }}</label>
|
||||
<div class="col-sm-5">
|
||||
<input type="password" data-pwgen-field="true" data-hibp="true" class="form-control" name="user_new_pass" autocomplete="new-password" required>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<label class="control-label col-sm-3" for="user_new_pass2">{{ lang.user.new_password_repeat }}</label>
|
||||
<div class="col-sm-5">
|
||||
<input type="password" data-pwgen-field="true" class="form-control" name="user_new_pass2" autocomplete="new-password" required>
|
||||
<p class="text-muted">{{ lang.user.new_password_description }}</p>
|
||||
</div>
|
||||
</div>
|
||||
<hr>
|
||||
<div class="row">
|
||||
<label class="control-label col-sm-3" for="user_old_pass">{{ lang.user.password_now }}</label>
|
||||
<div class="col-sm-5">
|
||||
<input type="password" class="form-control" name="user_old_pass" autocomplete="off" required>
|
||||
<input type="hidden" id="temp_alias_domain" name="domain">
|
||||
<input type="description" id="temp_alias_description" class="form-control" name="description" autocomplete="off">
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="offset-sm-3 col-sm-9">
|
||||
<button class="btn btn-xs-lg d-block d-sm-inline btn-success" data-action="edit_selected" data-id="pwchange" data-item="null" data-api-url='edit/self' data-api-attr='{}' href="#">{{ lang.user.change_password }}</button>
|
||||
<button class="btn btn-xs-lg d-block d-sm-inline btn-success" data-action="add_item" data-id="tempaliascreate" data-item="null" data-api-url='add/time_limited_alias' data-api-attr='' href="#">{{ lang.admin.add }}</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
|
@ -33,7 +33,7 @@
|
||||
<ul class="dropdown-menu">
|
||||
{% for domain in user_domains %}
|
||||
<li>
|
||||
<a class="dropdown-item" data-action="add_item" data-api-url='add/time_limited_alias' data-api-attr='{"domain":"{{ domain }}"}' href="#">
|
||||
<a class="dropdown-item" data-bs-toggle="modal" data-bs-target="#tempAliasModal" onclick='$("#tempAliasModal #temp_alias_domain").val("{{ domain }}")' href="#">
|
||||
@ {{ domain }}
|
||||
</a>
|
||||
</li>
|
||||
|
Loading…
Reference in New Issue
Block a user