modoboa 2.6.5__py3-none-any.whl → 2.7.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (359) hide show
  1. modoboa/admin/api/v2/serializers.py +1 -0
  2. modoboa/admin/app_settings.py +12 -0
  3. modoboa/admin/{management/commands/subcommands/_mx.py → dns_checker.py} +41 -111
  4. modoboa/admin/jobs.py +86 -0
  5. modoboa/admin/management/commands/modo.py +0 -2
  6. modoboa/admin/tests/test_mailbox_operations.py +4 -4
  7. modoboa/admin/tests/test_mx.py +68 -56
  8. modoboa/amavis/jobs.py +11 -0
  9. modoboa/amavis/tests/test_jobs.py +18 -0
  10. modoboa/amavis/tests/test_viewsets.py +2 -3
  11. modoboa/autoconfig/templates/autoconfig/autoconfig.xml +2 -2
  12. modoboa/autoconfig/templates/autoconfig/autodiscover.xml +14 -0
  13. modoboa/autoconfig/tests.py +2 -1
  14. modoboa/autoconfig/views.py +11 -3
  15. modoboa/calendars/backends/caldav_.py +17 -13
  16. modoboa/calendars/jobs.py +7 -0
  17. modoboa/calendars/mocks.py +4 -1
  18. modoboa/calendars/serializers.py +14 -9
  19. modoboa/calendars/tests.py +10 -9
  20. modoboa/calendars/viewsets.py +3 -1
  21. modoboa/contacts/migrations/0008_addressbook_syncing.py +18 -0
  22. modoboa/contacts/models.py +1 -0
  23. modoboa/contacts/serializers.py +5 -2
  24. modoboa/contacts/tasks.py +9 -3
  25. modoboa/contacts/tests.py +32 -6
  26. modoboa/contacts/viewsets.py +7 -1
  27. modoboa/core/api/v2/serializers.py +0 -7
  28. modoboa/core/api/v2/tests.py +0 -10
  29. modoboa/core/app_settings.py +0 -22
  30. modoboa/core/commands/deploy.py +13 -0
  31. modoboa/core/commands/templates/cron_config.py.tpl +33 -0
  32. modoboa/core/commands/templates/settings.py.tpl +21 -0
  33. modoboa/core/jobs.py +34 -0
  34. modoboa/core/management/commands/load_initial_data.py +1 -1
  35. modoboa/core/password_hashers/base.py +4 -1
  36. modoboa/core/tests/test_core.py +0 -14
  37. modoboa/core/tests/test_jobs.py +40 -0
  38. modoboa/frontend_dist/assets/{AccountAliasForm-B-hTKSFr.js → AccountAliasForm-DO6DwfjE.js} +1 -1
  39. modoboa/frontend_dist/assets/{AccountEditView-LkP_qhf_.js → AccountEditView-CCuN9mGB.js} +1 -1
  40. modoboa/frontend_dist/assets/AccountLayout-Ge7fzuZg.js +1 -0
  41. modoboa/frontend_dist/assets/AccountPasswordSubForm-PkFPblkR.js +1 -0
  42. modoboa/frontend_dist/assets/AccountView-dgseekZ8.js +1 -0
  43. modoboa/frontend_dist/assets/AddressBook-DZWOHOJj.js +1 -0
  44. modoboa/frontend_dist/assets/AdminLayout-itB_mmH_.js +1 -0
  45. modoboa/frontend_dist/assets/AlarmsView-King6zb6.js +1 -0
  46. modoboa/frontend_dist/assets/{AliasEditView-BVjNJekt.js → AliasEditView-CTjrXYPf.js} +1 -1
  47. modoboa/frontend_dist/assets/AliasRecipientForm-CI7bXqVp.js +1 -0
  48. modoboa/frontend_dist/assets/{AliasView-DvvI6cV9.js → AliasView-BN13MNN_.js} +1 -1
  49. modoboa/frontend_dist/assets/AuditTrailView-C1jQwgoo.js +1 -0
  50. modoboa/frontend_dist/assets/CalendarView-juHVIHU5.css +1 -0
  51. modoboa/frontend_dist/assets/CalendarView-rRSzqxrH.js +1 -0
  52. modoboa/frontend_dist/assets/ChoiceField-DCr12shR.js +1 -0
  53. modoboa/frontend_dist/assets/ComposeEmailForm-BmtKwFb1.js +2 -0
  54. modoboa/frontend_dist/assets/ComposeEmailForm-CVNDl-Mq.css +1 -0
  55. modoboa/frontend_dist/assets/ComposeEmailView-JW22Phrb.js +1 -0
  56. modoboa/frontend_dist/assets/ConfirmDialog-CWpdwSQ6.js +1 -0
  57. modoboa/frontend_dist/assets/ConnectedLayout-BP8pO27H.js +1 -0
  58. modoboa/frontend_dist/assets/{ConnectedLayout-C6HNXWkp.css → ConnectedLayout-Ddpb_6yT.css} +1 -1
  59. modoboa/frontend_dist/assets/CreationForm-CzelJsVQ.js +1 -0
  60. modoboa/frontend_dist/assets/DashboardView-BBkBodVj.js +1 -0
  61. modoboa/frontend_dist/assets/{DomainAdminList-BO8_4Cwt.js → DomainAdminList-DD7p3i6F.js} +1 -1
  62. modoboa/frontend_dist/assets/{DomainEditView-BXylM4aB.js → DomainEditView-DoIoNYC4.js} +1 -1
  63. modoboa/frontend_dist/assets/{DomainTransportForm-Ccw5BXyM.js → DomainTransportForm-CbiJF9z5.js} +1 -1
  64. modoboa/frontend_dist/assets/{DomainView-Bd5XQI-1.js → DomainView-BXvznFYz.js} +3 -3
  65. modoboa/frontend_dist/assets/DomainsView-ffYjiffp.js +1 -0
  66. modoboa/frontend_dist/assets/EmailField-KhhJYA4D.js +1 -0
  67. modoboa/frontend_dist/assets/EmailSchedulingForm-CQL5Vfdr.js +1 -0
  68. modoboa/frontend_dist/assets/EmailView-Bq2bHZBO.js +1 -0
  69. modoboa/frontend_dist/assets/EmptyLayout-NrTftp18.js +1 -0
  70. modoboa/frontend_dist/assets/FiltersView-SOQy0U_3.js +1 -0
  71. modoboa/frontend_dist/assets/ForwardEmailView-kEPDjWUw.js +1 -0
  72. modoboa/frontend_dist/assets/{HtmlEditor-DNn3CY-w.js → HtmlEditor-CyBl5wj2.js} +15 -15
  73. modoboa/frontend_dist/assets/IdentitiesView-CZFf4oR9.js +1 -0
  74. modoboa/frontend_dist/assets/InformationView-CAtneAqM.js +1 -0
  75. modoboa/frontend_dist/assets/{LoadingData-CnQ_aVqa.js → LoadingData-C2txD49L.js} +1 -1
  76. modoboa/frontend_dist/assets/{LoginCallbackView-Nh_gmh8e.js → LoginCallbackView-DAvty3CI.js} +1 -1
  77. modoboa/frontend_dist/assets/{LoginView-BtC9BHuJ.js → LoginView-DHYITkn4.js} +1 -1
  78. modoboa/frontend_dist/assets/MailboxView-BNg2v7mi.css +1 -0
  79. modoboa/frontend_dist/assets/MailboxView-DHg5A78D.js +5 -0
  80. modoboa/frontend_dist/assets/MenuItems-C9p70bSC.js +1 -0
  81. modoboa/frontend_dist/assets/{MessageView-C1Goz-hY.js → MessageView-CrrEJpNI.js} +1 -1
  82. modoboa/frontend_dist/assets/MessagesView-CyecRd4I.js +1 -0
  83. modoboa/frontend_dist/assets/MigrationsView-DXGKKz2h.js +1 -0
  84. modoboa/frontend_dist/assets/{ParametersForm-BegEnkQM.js → ParametersForm-DFKYkPAs.js} +1 -1
  85. modoboa/frontend_dist/assets/ParametersView-B1wT5oyt.js +1 -0
  86. modoboa/frontend_dist/assets/ParametersView-CfvVzKea.js +1 -0
  87. modoboa/frontend_dist/assets/ProviderEditView-De-8ggBp.js +1 -0
  88. modoboa/frontend_dist/assets/{ProviderGeneralForm-BAELnXh6.js → ProviderGeneralForm-DO-IpJMQ.js} +1 -1
  89. modoboa/frontend_dist/assets/ProvidersView-Bhk7sCz4.js +1 -0
  90. modoboa/frontend_dist/assets/QuarantineLayout-C1YszNmP.js +1 -0
  91. modoboa/frontend_dist/assets/QuarantineView-cElD_rS-.js +1 -0
  92. modoboa/frontend_dist/assets/ReplyEmailView-BvuOZdLl.js +1 -0
  93. modoboa/frontend_dist/assets/ResourcesForm-FWxrmVwo.js +1 -0
  94. modoboa/frontend_dist/assets/SelfServiceLayout-JHRvfvQf.js +1 -0
  95. modoboa/frontend_dist/assets/SettingsView-SIsKAXtQ.css +1 -0
  96. modoboa/frontend_dist/assets/SettingsView-s2l2Xl1L.js +6 -0
  97. modoboa/frontend_dist/assets/StatisticsView-FiidWvad.js +1 -0
  98. modoboa/frontend_dist/assets/TimeSerieChart-CdqUHiO_.js +1 -0
  99. modoboa/frontend_dist/assets/TimeSerieChart-nLIFGI0y.css +1 -0
  100. modoboa/frontend_dist/assets/UserLayout-DyvI8duf.js +1 -0
  101. modoboa/frontend_dist/assets/{VAlert-Buv8Z5G4.js → VAlert-MDbeolOo.js} +1 -1
  102. modoboa/frontend_dist/assets/VApp-DM1KLQfQ.js +1 -0
  103. modoboa/frontend_dist/assets/VAutocomplete-C9NL5_uo.css +1 -0
  104. modoboa/frontend_dist/assets/VAutocomplete-CQsWYWNX.js +1 -0
  105. modoboa/frontend_dist/assets/VAvatar-CXV_FqpP.js +1 -0
  106. modoboa/frontend_dist/assets/VBadge-7tDx7aI3.js +1 -0
  107. modoboa/frontend_dist/assets/{VCard-D7AwBs4w.js → VCard-CBtX8JF-.js} +1 -1
  108. modoboa/frontend_dist/assets/VCheckbox-zY1MApOy.js +1 -0
  109. modoboa/frontend_dist/assets/{VCheckboxBtn-B5evxN9K.js → VCheckboxBtn-B0mIT3E0.js} +1 -1
  110. modoboa/frontend_dist/assets/VColorPicker-BbCHvk6K.js +1 -0
  111. modoboa/frontend_dist/assets/{VColorPicker-B_lVDaYR.css → VColorPicker-C9m8L-6U.css} +1 -1
  112. modoboa/frontend_dist/assets/{VContainer-DY9021j4.js → VContainer-Cn-vKB3s.js} +1 -1
  113. modoboa/frontend_dist/assets/VDataTable-CNT9KOSp.js +1 -0
  114. modoboa/frontend_dist/assets/VDataTableServer-_yn4Ry6U.js +1 -0
  115. modoboa/frontend_dist/assets/VDataTableVirtual-Csxh3Gp6.js +1 -0
  116. modoboa/frontend_dist/assets/VDatePicker-_OUDqShN.css +1 -0
  117. modoboa/frontend_dist/assets/VDatePicker-iFu13xIP.js +2 -0
  118. modoboa/frontend_dist/assets/VDialog-lKtBdqnp.js +1 -0
  119. modoboa/frontend_dist/assets/VExpansionPanels-CaIvk9iF.js +1 -0
  120. modoboa/frontend_dist/assets/VFileInput-C7J_qVmk.js +1 -0
  121. modoboa/frontend_dist/assets/VForm-fdQ5d-CH.js +1 -0
  122. modoboa/frontend_dist/assets/VInput-BwHvhzAe.js +1 -0
  123. modoboa/frontend_dist/assets/VMenu-BpmJf4X2.js +1 -0
  124. modoboa/frontend_dist/assets/VMenu-C5A_5Hs5.css +1 -0
  125. modoboa/frontend_dist/assets/VPicker-B7cB3kJg.css +1 -0
  126. modoboa/frontend_dist/assets/VPicker-BZho70wU.js +1 -0
  127. modoboa/frontend_dist/assets/VProgressCircular-DRw_-iNj.js +1 -0
  128. modoboa/frontend_dist/assets/VRadioGroup--eiP5xtJ.js +1 -0
  129. modoboa/frontend_dist/assets/{VRow-DyK_Mj7R.js → VRow-83Qnr5iB.js} +1 -1
  130. modoboa/frontend_dist/assets/VSelect-BcmGFGif.js +1 -0
  131. modoboa/frontend_dist/assets/{VSelectionControl-Dkms9_P5.js → VSelectionControl-Cqi1xt-q.js} +1 -1
  132. modoboa/frontend_dist/assets/VSheet-C3MaHhtw.js +1 -0
  133. modoboa/frontend_dist/assets/VSpacer-CuSkdJZL.js +1 -0
  134. modoboa/frontend_dist/assets/VSwitch-XumUl685.js +1 -0
  135. modoboa/frontend_dist/assets/{VTable-D8ZwwC_B.js → VTable-f7wcr2AZ.js} +1 -1
  136. modoboa/frontend_dist/assets/VTabs-CDfdejXj.css +1 -0
  137. modoboa/frontend_dist/assets/VTabs-y4wNP4im.js +1 -0
  138. modoboa/frontend_dist/assets/VTextField-BPIvtrn4.js +1 -0
  139. modoboa/frontend_dist/assets/VTextField-DjbYGlzs.css +1 -0
  140. modoboa/frontend_dist/assets/VTextarea-B6bGYcC3.js +1 -0
  141. modoboa/frontend_dist/assets/VTextarea-f6vTjzFy.css +1 -0
  142. modoboa/frontend_dist/assets/VToolbar-BYDPtwf0.css +1 -0
  143. modoboa/frontend_dist/assets/VToolbar-CB6wwtYc.js +1 -0
  144. modoboa/frontend_dist/assets/VWindowItem-CDtLLEkg.js +1 -0
  145. modoboa/frontend_dist/assets/WebmailLayout-CQQAolnl.css +1 -0
  146. modoboa/frontend_dist/assets/WebmailLayout-tosQSHLS.js +1 -0
  147. modoboa/frontend_dist/assets/{accounts-BZBqbAmd.js → accounts-KUsk6LHW.js} +1 -1
  148. modoboa/frontend_dist/assets/{admin-uCrKjpln.js → admin-BW9cZW0P.js} +1 -1
  149. modoboa/frontend_dist/assets/{aliases-CFwFkX45.js → aliases-Ge0hjIsH.js} +1 -1
  150. modoboa/frontend_dist/assets/{amavis-DCy0U0TD.js → amavis-BbFeFfsk.js} +1 -1
  151. modoboa/frontend_dist/assets/{amavis-B4ScfQsG.js → amavis-DtuzP_CS.js} +1 -1
  152. modoboa/frontend_dist/assets/{contacts-DKmh2q-4.js → contacts-DMJlQTe0.js} +1 -1
  153. modoboa/frontend_dist/assets/{domains-CDE4_LDF.js → domains-Du64lcXT.js} +1 -1
  154. modoboa/frontend_dist/assets/{domains.store-a9Y5UlDV.js → domains.store-1U61jeCV.js} +1 -1
  155. modoboa/frontend_dist/assets/events-BM3in65C.js +1 -0
  156. modoboa/frontend_dist/assets/filter-Dihm6o59.js +1 -0
  157. modoboa/frontend_dist/assets/importExport-HGcNGWOm.js +1 -0
  158. modoboa/frontend_dist/assets/{index-B9q1vO3K.css → index-B1EK3MQe.css} +1 -1
  159. modoboa/frontend_dist/assets/{index-Dwg6jPTX.js → index-Dv00bmw9.js} +1 -1
  160. modoboa/frontend_dist/assets/{index-BjibLozh.js → index-jui3edpn.js} +47 -41
  161. modoboa/frontend_dist/assets/{language.store-DGuI8jG0.js → language.store-OcfdXL_-.js} +1 -1
  162. modoboa/frontend_dist/assets/languages-CF8hxo7x.js +1 -0
  163. modoboa/frontend_dist/assets/{layout-5PvsmkGR.js → layout-DOO7TRTJ.js} +1 -1
  164. modoboa/frontend_dist/assets/{layout.store-DJVcXtxk.js → layout.store-C0g-piJn.js} +1 -1
  165. modoboa/frontend_dist/assets/{logos-CMmd0hOG.js → logos-Dz2Gzei-.js} +1 -1
  166. modoboa/frontend_dist/assets/{logs-D2GOydPZ.js → logs-CLm32Weu.js} +1 -1
  167. modoboa/frontend_dist/assets/{parameters-DJdlq9sh.js → parameters-DMIAQ7cd.js} +1 -1
  168. modoboa/frontend_dist/assets/{parameters.store-DH3pPlaT.js → parameters.store-DLnFzCwV.js} +1 -1
  169. modoboa/frontend_dist/assets/{permissions-CgFJFhCp.js → permissions-CrpE0b4w.js} +1 -1
  170. modoboa/frontend_dist/assets/{ssrBoot-ChTB-PYP.js → ssrBoot-B7cr7q9U.js} +1 -1
  171. modoboa/frontend_dist/assets/{tag-CvrHE14f.js → tag-WF93n81Q.js} +1 -1
  172. modoboa/frontend_dist/assets/{theme-DFzlhSh5.js → theme-_0oOYChG.js} +1 -1
  173. modoboa/frontend_dist/assets/transports-CS61syt-.js +1 -0
  174. modoboa/frontend_dist/assets/webmail-CYDXU0DS.js +1 -0
  175. modoboa/frontend_dist/assets/webmail.store-BvHCQSjM.js +1 -0
  176. modoboa/frontend_dist/index.html +2 -2
  177. modoboa/imap_migration/models.py +3 -3
  178. modoboa/imap_migration/templates/imap_migration/offlineimap.conf +2 -2
  179. modoboa/imap_migration/tests.py +21 -0
  180. modoboa/lib/cryptutils.py +2 -2
  181. modoboa/lib/sysutils.py +1 -1
  182. modoboa/lib/tests/__init__.py +0 -1
  183. modoboa/locale/br/LC_MESSAGES/django.mo +0 -0
  184. modoboa/locale/br/LC_MESSAGES/django.po +301 -273
  185. modoboa/locale/cs/LC_MESSAGES/django.po +286 -269
  186. modoboa/locale/cs_CZ/LC_MESSAGES/django.mo +0 -0
  187. modoboa/locale/cs_CZ/LC_MESSAGES/django.po +303 -275
  188. modoboa/locale/de/LC_MESSAGES/django.mo +0 -0
  189. modoboa/locale/de/LC_MESSAGES/django.po +297 -269
  190. modoboa/locale/de_DE/LC_MESSAGES/django.mo +0 -0
  191. modoboa/locale/de_DE/LC_MESSAGES/django.po +303 -275
  192. modoboa/locale/el_GR/LC_MESSAGES/django.mo +0 -0
  193. modoboa/locale/el_GR/LC_MESSAGES/django.po +303 -275
  194. modoboa/locale/en/LC_MESSAGES/django.po +286 -269
  195. modoboa/locale/es/LC_MESSAGES/django.mo +0 -0
  196. modoboa/locale/es/LC_MESSAGES/django.po +302 -274
  197. modoboa/locale/es_MX/LC_MESSAGES/django.po +286 -269
  198. modoboa/locale/fi/LC_MESSAGES/django.mo +0 -0
  199. modoboa/locale/fi/LC_MESSAGES/django.po +299 -271
  200. modoboa/locale/fr/LC_MESSAGES/django.mo +0 -0
  201. modoboa/locale/fr/LC_MESSAGES/django.po +288 -271
  202. modoboa/locale/hu/LC_MESSAGES/django.po +286 -269
  203. modoboa/locale/it/LC_MESSAGES/django.mo +0 -0
  204. modoboa/locale/it/LC_MESSAGES/django.po +303 -275
  205. modoboa/locale/ja_JP/LC_MESSAGES/django.mo +0 -0
  206. modoboa/locale/ja_JP/LC_MESSAGES/django.po +390 -413
  207. modoboa/locale/ka/LC_MESSAGES/django.po +286 -269
  208. modoboa/locale/nl_NL/LC_MESSAGES/django.mo +0 -0
  209. modoboa/locale/nl_NL/LC_MESSAGES/django.po +299 -271
  210. modoboa/locale/no/LC_MESSAGES/django.po +286 -269
  211. modoboa/locale/pl_PL/LC_MESSAGES/django.mo +0 -0
  212. modoboa/locale/pl_PL/LC_MESSAGES/django.po +297 -269
  213. modoboa/locale/pt_BR/LC_MESSAGES/django.mo +0 -0
  214. modoboa/locale/pt_BR/LC_MESSAGES/django.po +298 -270
  215. modoboa/locale/pt_PT/LC_MESSAGES/django.mo +0 -0
  216. modoboa/locale/pt_PT/LC_MESSAGES/django.po +303 -275
  217. modoboa/locale/ro_RO/LC_MESSAGES/django.mo +0 -0
  218. modoboa/locale/ro_RO/LC_MESSAGES/django.po +299 -271
  219. modoboa/locale/ru/LC_MESSAGES/django.mo +0 -0
  220. modoboa/locale/ru/LC_MESSAGES/django.po +993 -1096
  221. modoboa/locale/si/LC_MESSAGES/django.po +286 -269
  222. modoboa/locale/sk/LC_MESSAGES/django.po +286 -269
  223. modoboa/locale/sk_SK/LC_MESSAGES/django.po +286 -269
  224. modoboa/locale/sl_SI/LC_MESSAGES/django.po +288 -269
  225. modoboa/locale/sv/LC_MESSAGES/django.mo +0 -0
  226. modoboa/locale/sv/LC_MESSAGES/django.po +297 -269
  227. modoboa/locale/tr/LC_MESSAGES/django.mo +0 -0
  228. modoboa/locale/tr/LC_MESSAGES/django.po +301 -272
  229. modoboa/locale/tr_TR/LC_MESSAGES/django.mo +0 -0
  230. modoboa/locale/tr_TR/LC_MESSAGES/django.po +291 -269
  231. modoboa/locale/uk/LC_MESSAGES/django.po +286 -269
  232. modoboa/locale/zh/LC_MESSAGES/django.po +286 -269
  233. modoboa/locale/zh_CN/LC_MESSAGES/django.po +286 -269
  234. modoboa/locale/zh_TW/LC_MESSAGES/django.mo +0 -0
  235. modoboa/locale/zh_TW/LC_MESSAGES/django.po +295 -273
  236. modoboa/maillog/jobs.py +11 -0
  237. modoboa/maillog/tests/test_views.py +5 -4
  238. modoboa/parameters/api/v2/tests.py +1 -1
  239. modoboa/policyd/management/commands/policy_daemon.py +5 -1
  240. modoboa/policyd/tests.py +4 -2
  241. modoboa/rspamd/tests.py +20 -0
  242. modoboa/templates/registration/twofactor_code_verify.html +1 -1
  243. modoboa/webmail/app_settings.py +37 -0
  244. modoboa/webmail/constants.py +21 -1
  245. modoboa/webmail/factories.py +19 -0
  246. modoboa/webmail/jobs.py +27 -0
  247. modoboa/webmail/lib/__init__.py +0 -2
  248. modoboa/webmail/lib/imapemail.py +9 -11
  249. modoboa/webmail/lib/imapheader.py +25 -13
  250. modoboa/webmail/lib/imaputils.py +51 -13
  251. modoboa/webmail/lib/sendmail.py +88 -105
  252. modoboa/webmail/lib/utils.py +109 -0
  253. modoboa/webmail/migrations/0001_initial.py +90 -0
  254. modoboa/webmail/migrations/__init__.py +0 -0
  255. modoboa/webmail/mocks.py +12 -3
  256. modoboa/webmail/models.py +102 -0
  257. modoboa/webmail/serializers.py +84 -4
  258. modoboa/webmail/tests/data.py +21 -0
  259. modoboa/webmail/tests/test_lib_imaputils.py +33 -0
  260. modoboa/webmail/tests/test_viewsets.py +108 -0
  261. modoboa/webmail/urls.py +5 -0
  262. modoboa/webmail/viewsets.py +39 -9
  263. {modoboa-2.6.5.dist-info → modoboa-2.7.0.dist-info}/METADATA +16 -13
  264. {modoboa-2.6.5.dist-info → modoboa-2.7.0.dist-info}/RECORD +269 -252
  265. {modoboa-2.6.5.dist-info → modoboa-2.7.0.dist-info}/WHEEL +1 -1
  266. modoboa/admin/management/commands/handle_mailbox_operations.py +0 -103
  267. modoboa/core/management/commands/cleanlogs.py +0 -53
  268. modoboa/frontend_dist/assets/AccountLayout-APeC9bsN.js +0 -1
  269. modoboa/frontend_dist/assets/AccountPasswordSubForm-D4vB2yQK.js +0 -1
  270. modoboa/frontend_dist/assets/AccountView-CloBP1BY.js +0 -1
  271. modoboa/frontend_dist/assets/AddressBook-C03MXg3y.js +0 -1
  272. modoboa/frontend_dist/assets/AdminLayout-DFmyKOo6.js +0 -1
  273. modoboa/frontend_dist/assets/AlarmsView-CFhH0I5d.js +0 -1
  274. modoboa/frontend_dist/assets/AliasRecipientForm-CZ_SvjtG.js +0 -1
  275. modoboa/frontend_dist/assets/AuditTrailView-Cyq25Jle.js +0 -1
  276. modoboa/frontend_dist/assets/CalendarView-C_dSXRp9.js +0 -1
  277. modoboa/frontend_dist/assets/ChoiceField-BPhUvoyr.js +0 -1
  278. modoboa/frontend_dist/assets/ComposeEmailForm-D3yUbBJX.css +0 -1
  279. modoboa/frontend_dist/assets/ComposeEmailForm-Ns5SYs4J.js +0 -1
  280. modoboa/frontend_dist/assets/ComposeEmailView-DgUfiWEH.js +0 -1
  281. modoboa/frontend_dist/assets/ConfirmDialog-BMIg94-U.js +0 -1
  282. modoboa/frontend_dist/assets/ConnectedLayout-CSXdVJtV.js +0 -1
  283. modoboa/frontend_dist/assets/CreationForm-CaAZYATm.js +0 -1
  284. modoboa/frontend_dist/assets/DashboardView-DErmyUoy.js +0 -1
  285. modoboa/frontend_dist/assets/DomainsView-CC1EwRId.js +0 -1
  286. modoboa/frontend_dist/assets/EmailField-BFgga4zp.js +0 -1
  287. modoboa/frontend_dist/assets/EmailView-DPWTch_6.js +0 -1
  288. modoboa/frontend_dist/assets/EmptyLayout-DAw7fAab.js +0 -1
  289. modoboa/frontend_dist/assets/FiltersView-Cg9lkLw0.js +0 -1
  290. modoboa/frontend_dist/assets/ForwardEmailView-Dd1sxgaP.js +0 -1
  291. modoboa/frontend_dist/assets/IdentitiesView-CiHIQ9Qt.js +0 -1
  292. modoboa/frontend_dist/assets/InformationView-Cc0aBA5j.js +0 -1
  293. modoboa/frontend_dist/assets/MailboxView-DIVABvk5.css +0 -1
  294. modoboa/frontend_dist/assets/MailboxView-DplC0IXR.js +0 -5
  295. modoboa/frontend_dist/assets/MenuItems-efx2rqwT.js +0 -1
  296. modoboa/frontend_dist/assets/MessagesView-CesYYZ9f.js +0 -1
  297. modoboa/frontend_dist/assets/MigrationsView-DSBk8T0y.js +0 -1
  298. modoboa/frontend_dist/assets/ParametersView-B8W_PAiz.js +0 -1
  299. modoboa/frontend_dist/assets/ParametersView-Dsx2M_g9.js +0 -1
  300. modoboa/frontend_dist/assets/ProviderEditView-PEAr7MA1.js +0 -1
  301. modoboa/frontend_dist/assets/ProvidersView-CHvQf3Vv.js +0 -1
  302. modoboa/frontend_dist/assets/QuarantineLayout-BWEaBK48.js +0 -1
  303. modoboa/frontend_dist/assets/QuarantineView-BzjeDhTm.js +0 -1
  304. modoboa/frontend_dist/assets/ReplyEmailView-CwQ9jsce.js +0 -1
  305. modoboa/frontend_dist/assets/ResourcesForm-noC3AXd9.js +0 -1
  306. modoboa/frontend_dist/assets/SelfServiceLayout-DQgRMu0L.js +0 -1
  307. modoboa/frontend_dist/assets/SettingsView-DJTdIeRK.css +0 -1
  308. modoboa/frontend_dist/assets/SettingsView-Dgwpfd8O.js +0 -6
  309. modoboa/frontend_dist/assets/StatisticsView-BZkVSh5o.js +0 -1
  310. modoboa/frontend_dist/assets/TimeSerieChart-BXJwhTMO.js +0 -1
  311. modoboa/frontend_dist/assets/TimeSerieChart-C3XHmlRd.css +0 -1
  312. modoboa/frontend_dist/assets/UserLayout-CWK9ICfE.js +0 -1
  313. modoboa/frontend_dist/assets/VApp-CiIBWB_Q.js +0 -1
  314. modoboa/frontend_dist/assets/VAutocomplete-DcNqTIie.js +0 -1
  315. modoboa/frontend_dist/assets/VAutocomplete-hzGuLlUI.css +0 -1
  316. modoboa/frontend_dist/assets/VAvatar-BsHplcRP.js +0 -1
  317. modoboa/frontend_dist/assets/VBadge-CavP_E2g.js +0 -1
  318. modoboa/frontend_dist/assets/VCheckbox-CKW9lz5i.js +0 -1
  319. modoboa/frontend_dist/assets/VColorPicker-Bsrz8yif.js +0 -1
  320. modoboa/frontend_dist/assets/VDataTable-ocZo8ju0.js +0 -1
  321. modoboa/frontend_dist/assets/VDataTableServer-CJfpYXQW.js +0 -1
  322. modoboa/frontend_dist/assets/VDataTableVirtual-Cr8yw49k.js +0 -1
  323. modoboa/frontend_dist/assets/VDialog-CUMh3paI.js +0 -1
  324. modoboa/frontend_dist/assets/VExpansionPanels-CkwHiKsA.js +0 -1
  325. modoboa/frontend_dist/assets/VFileInput-D5qlksIG.js +0 -1
  326. modoboa/frontend_dist/assets/VForm-ClJU5x_v.js +0 -1
  327. modoboa/frontend_dist/assets/VInput-DhzSMFXh.js +0 -1
  328. modoboa/frontend_dist/assets/VMenu-B53a3gm6.js +0 -1
  329. modoboa/frontend_dist/assets/VMenu-BEipA1lw.css +0 -1
  330. modoboa/frontend_dist/assets/VPicker-B928ZVJQ.js +0 -1
  331. modoboa/frontend_dist/assets/VPicker-ClSXs6kv.css +0 -1
  332. modoboa/frontend_dist/assets/VProgressCircular-viI3jDXe.js +0 -1
  333. modoboa/frontend_dist/assets/VRadioGroup-C0bqFrYg.js +0 -1
  334. modoboa/frontend_dist/assets/VSelect-y0E5_vPn.js +0 -1
  335. modoboa/frontend_dist/assets/VSheet-DQkh_hsX.js +0 -1
  336. modoboa/frontend_dist/assets/VSpacer-CBqB9uSt.js +0 -1
  337. modoboa/frontend_dist/assets/VSwitch-D4xdR9jz.js +0 -1
  338. modoboa/frontend_dist/assets/VTabs-D2c0KeF2.js +0 -1
  339. modoboa/frontend_dist/assets/VTabs-NzpINroH.css +0 -1
  340. modoboa/frontend_dist/assets/VTextField-Cow3HZvI.css +0 -1
  341. modoboa/frontend_dist/assets/VTextField-DvvH1ciR.js +0 -1
  342. modoboa/frontend_dist/assets/VTextarea-DHtXtzqP.js +0 -1
  343. modoboa/frontend_dist/assets/VTextarea-DyGjqrlm.css +0 -1
  344. modoboa/frontend_dist/assets/VToolbar-CB2GrZpA.css +0 -1
  345. modoboa/frontend_dist/assets/VToolbar-pvLQtmbU.js +0 -1
  346. modoboa/frontend_dist/assets/VWindowItem-DErNPSH8.js +0 -1
  347. modoboa/frontend_dist/assets/WebmailLayout-BzW0LWYp.css +0 -1
  348. modoboa/frontend_dist/assets/WebmailLayout-D7J-QJ-0.js +0 -1
  349. modoboa/frontend_dist/assets/filter-BVvMTmPG.js +0 -1
  350. modoboa/frontend_dist/assets/global.store-Bha4Z76j.js +0 -1
  351. modoboa/frontend_dist/assets/importExport-EgijWlC1.js +0 -1
  352. modoboa/frontend_dist/assets/languages-Cge6pECg.js +0 -1
  353. modoboa/frontend_dist/assets/transports-BUSYxSF4.js +0 -1
  354. modoboa/frontend_dist/assets/webmail-HVg3ZHC0.js +0 -1
  355. modoboa/frontend_dist/assets/webmail.store-D-d88s4w.js +0 -1
  356. {modoboa-2.6.5.data → modoboa-2.7.0.data}/scripts/modoboa-admin.py +0 -0
  357. {modoboa-2.6.5.dist-info → modoboa-2.7.0.dist-info}/entry_points.txt +0 -0
  358. {modoboa-2.6.5.dist-info → modoboa-2.7.0.dist-info}/licenses/LICENSE +0 -0
  359. {modoboa-2.6.5.dist-info → modoboa-2.7.0.dist-info}/top_level.txt +0 -0
@@ -10,7 +10,7 @@ msgid ""
10
10
  msgstr ""
11
11
  "Project-Id-Version: Modoboa\n"
12
12
  "Report-Msgid-Bugs-To: \n"
13
- "POT-Creation-Date: 2025-12-02 16:07+0100\n"
13
+ "POT-Creation-Date: 2026-02-04 09:30+0100\n"
14
14
  "PO-Revision-Date: 2011-07-01 08:15+0000\n"
15
15
  "Last-Translator: bdaniel93, 2023\n"
16
16
  "Language-Team: German (Germany) (http://www.transifex.com/tonio/modoboa/"
@@ -46,16 +46,16 @@ msgid "Cannot be greater than domain quota"
46
46
  msgstr ""
47
47
 
48
48
  #: admin/api/v1/serializers.py:168 admin/api/v1/serializers.py:364
49
- #: admin/api/v2/serializers.py:570 admin/models/alias.py:45
49
+ #: admin/api/v2/serializers.py:571 admin/models/alias.py:45
50
50
  #, fuzzy
51
51
  #| msgid "Permission denied"
52
52
  msgid "Permission denied."
53
53
  msgstr "Zugriff verweigert"
54
54
 
55
55
  #: admin/api/v1/serializers.py:231 admin/api/v2/serializers.py:90
56
- #: admin/api/v2/serializers.py:491 amavis/serializers.py:39
57
- #: core/api/v2/serializers.py:255 core/api/v2/serializers.py:257
58
- #: core/api/v2/serializers.py:266 transport/backends.py:40
56
+ #: admin/api/v2/serializers.py:492 amavis/serializers.py:39
57
+ #: core/api/v2/serializers.py:248 core/api/v2/serializers.py:250
58
+ #: core/api/v2/serializers.py:259 transport/backends.py:40
59
59
  msgid "This field is required"
60
60
  msgstr "Dieses Feld ist erforderlich"
61
61
 
@@ -66,7 +66,7 @@ msgid ""
66
66
  "List of administered domains (resellers and domain administrators only)."
67
67
  msgstr "Funktionen-Widget für Reseller und Domain-Administratoren ausblenden"
68
68
 
69
- #: admin/api/v1/serializers.py:337 admin/api/v2/serializers.py:552
69
+ #: admin/api/v1/serializers.py:337 admin/api/v2/serializers.py:553
70
70
  msgid "Not allowed for this role."
71
71
  msgstr ""
72
72
 
@@ -74,15 +74,14 @@ msgstr ""
74
74
  msgid "Must be equal to mailbox full_address"
75
75
  msgstr ""
76
76
 
77
- #: admin/api/v1/serializers.py:397 admin/api/v2/serializers.py:604
78
- #: calendars/serializers.py:175 calendars/serializers.py:177
79
- #: pdfcredentials/api/v2/serializers.py:91
77
+ #: admin/api/v1/serializers.py:397 admin/api/v2/serializers.py:605
78
+ #: calendars/serializers.py:182 pdfcredentials/api/v2/serializers.py:91
80
79
  #, fuzzy
81
80
  #| msgid "This field is required"
82
81
  msgid "This field is required."
83
82
  msgstr "Dieses Feld ist erforderlich"
84
83
 
85
- #: admin/api/v1/serializers.py:409 admin/api/v2/serializers.py:621
84
+ #: admin/api/v1/serializers.py:409 admin/api/v2/serializers.py:622
86
85
  msgid "Local domain {} does not exist"
87
86
  msgstr ""
88
87
 
@@ -125,39 +124,39 @@ msgstr ""
125
124
  msgid "User '%s' already exists"
126
125
  msgstr ""
127
126
 
128
- #: admin/api/v2/serializers.py:255 admin/api/v2/serializers.py:261
127
+ #: admin/api/v2/serializers.py:256 admin/api/v2/serializers.py:262
129
128
  msgid "Must be a positive integer"
130
129
  msgstr ""
131
130
 
132
- #: admin/api/v2/serializers.py:270
131
+ #: admin/api/v2/serializers.py:271
133
132
  msgid "openssl not found, please make sure it is installed."
134
133
  msgstr ""
135
134
 
136
- #: admin/api/v2/serializers.py:273 pdfcredentials/api/v2/serializers.py:84
135
+ #: admin/api/v2/serializers.py:274 pdfcredentials/api/v2/serializers.py:84
137
136
  msgid "Directory not found."
138
137
  msgstr ""
139
138
 
140
- #: admin/api/v2/serializers.py:284
139
+ #: admin/api/v2/serializers.py:285
141
140
  msgid "This field only allows valid IP addresses (or networks)"
142
141
  msgstr ""
143
142
 
144
- #: admin/api/v2/serializers.py:297
143
+ #: admin/api/v2/serializers.py:298
145
144
  msgid "Please disable imap migration before disabling this option."
146
145
  msgstr ""
147
146
 
148
- #: admin/api/v2/serializers.py:310
147
+ #: admin/api/v2/serializers.py:311
149
148
  msgid "Define at least one authorized network / address"
150
149
  msgstr ""
151
150
 
152
- #: admin/api/v2/serializers.py:587
151
+ #: admin/api/v2/serializers.py:588
153
152
  msgid "The left part of an email address can't be more than 64 characters."
154
153
  msgstr ""
155
154
 
156
- #: admin/api/v2/serializers.py:609
155
+ #: admin/api/v2/serializers.py:610
157
156
  msgid "A mailbox is required to create aliases."
158
157
  msgstr ""
159
158
 
160
- #: admin/api/v2/serializers.py:782
159
+ #: admin/api/v2/serializers.py:783
161
160
  #, fuzzy
162
161
  #| msgid "Unknown tag {}"
163
162
  msgid "Unknown status"
@@ -267,145 +266,155 @@ msgstr "API-Zugriff aktivieren"
267
266
  msgid "Check every domain against major DNSBL providers"
268
267
  msgstr ""
269
268
 
270
- #: admin/app_settings.py:116
269
+ #: admin/app_settings.py:117
270
+ msgid "Notify domain admins about DNS issues"
271
+ msgstr ""
272
+
273
+ #: admin/app_settings.py:120
274
+ msgid ""
275
+ "Send a notification by email to domain administrators when DNS issues are "
276
+ "encountered"
277
+ msgstr ""
278
+
279
+ #: admin/app_settings.py:128
271
280
  #, fuzzy
272
281
  #| msgid "Custom RSS feed"
273
282
  msgid "Custom DNS server"
274
283
  msgstr "Benutzerdefinierter RSS-Feed"
275
284
 
276
- #: admin/app_settings.py:118
285
+ #: admin/app_settings.py:130
277
286
  msgid "Use a custom DNS server instead of local server configuration"
278
287
  msgstr ""
279
288
 
280
- #: admin/app_settings.py:126
289
+ #: admin/app_settings.py:138
281
290
  msgid "DKIM keys storage directory"
282
291
  msgstr ""
283
292
 
284
- #: admin/app_settings.py:128
293
+ #: admin/app_settings.py:140
285
294
  msgid ""
286
295
  "Absolute path of the directory where DKIM private keys will be stored. Make "
287
296
  "sure this directory belongs to root user and is not readable by the outside "
288
297
  "world."
289
298
  msgstr ""
290
299
 
291
- #: admin/app_settings.py:137
300
+ #: admin/app_settings.py:149
292
301
  msgid "Default DKIM key length"
293
302
  msgstr ""
294
303
 
295
- #: admin/app_settings.py:139
304
+ #: admin/app_settings.py:151
296
305
  msgid "Default length in bits for newly generated DKIM keys."
297
306
  msgstr ""
298
307
 
299
- #: admin/app_settings.py:146
308
+ #: admin/app_settings.py:158
300
309
  msgid "Default domain quota"
301
310
  msgstr ""
302
311
 
303
- #: admin/app_settings.py:148
312
+ #: admin/app_settings.py:160
304
313
  msgid ""
305
314
  "Default quota (in MB) applied to freshly created domains with no value "
306
315
  "specified. A value of 0 means no quota."
307
316
  msgstr ""
308
317
 
309
- #: admin/app_settings.py:156
318
+ #: admin/app_settings.py:168
310
319
  msgid "Default domain sending limit"
311
320
  msgstr ""
312
321
 
313
- #: admin/app_settings.py:158
322
+ #: admin/app_settings.py:170
314
323
  msgid ""
315
324
  "Number of messages freshly created domains will be allowed to send per day. "
316
325
  "Leave empty for no limit."
317
326
  msgstr ""
318
327
 
319
- #: admin/app_settings.py:170 limits/app_settings.py:61
328
+ #: admin/app_settings.py:182 limits/app_settings.py:61
320
329
  #: limits/app_settings.py:135 limits/constants.py:31 limits/constants.py:84
321
330
  msgid "Mailboxes"
322
331
  msgstr ""
323
332
 
324
- #: admin/app_settings.py:176
333
+ #: admin/app_settings.py:188
325
334
  msgid "Handle mailboxes on filesystem"
326
335
  msgstr ""
327
336
 
328
- #: admin/app_settings.py:178
337
+ #: admin/app_settings.py:190
329
338
  msgid ""
330
339
  "Rename or remove mailboxes on the filesystem when they get renamed or "
331
340
  "removed within Modoboa"
332
341
  msgstr ""
333
342
 
334
- #: admin/app_settings.py:186 admin/models/domain.py:36
343
+ #: admin/app_settings.py:198 admin/models/domain.py:36
335
344
  msgid "Default mailbox quota"
336
345
  msgstr ""
337
346
 
338
- #: admin/app_settings.py:188
347
+ #: admin/app_settings.py:200
339
348
  msgid ""
340
349
  "Default mailbox quota (in MB) applied to freshly created domains with no "
341
350
  "value specified. A value of 0 means no quota."
342
351
  msgstr ""
343
352
 
344
- #: admin/app_settings.py:197
353
+ #: admin/app_settings.py:209
345
354
  msgid "Default mailbox sending limit"
346
355
  msgstr ""
347
356
 
348
- #: admin/app_settings.py:199
357
+ #: admin/app_settings.py:211
349
358
  msgid ""
350
359
  "Number of messages freshly created mailboxes will be allowed to send per "
351
360
  "day. Leave empty for no limit."
352
361
  msgstr ""
353
362
 
354
- #: admin/app_settings.py:207
363
+ #: admin/app_settings.py:219
355
364
  #, fuzzy
356
365
  #| msgid "Inactive account threshold"
357
366
  msgid "Automatic account removal"
358
367
  msgstr "Schwellwert für inaktive Konten"
359
368
 
360
- #: admin/app_settings.py:209
369
+ #: admin/app_settings.py:221
361
370
  msgid "When a mailbox is removed, also remove the associated account"
362
371
  msgstr ""
363
372
 
364
- #: admin/app_settings.py:218
373
+ #: admin/app_settings.py:230
365
374
  msgid "Automatic domain/mailbox creation"
366
375
  msgstr ""
367
376
 
368
- #: admin/app_settings.py:221
377
+ #: admin/app_settings.py:233
369
378
  msgid "Create a domain and a mailbox when an account is automatically created."
370
379
  msgstr ""
371
380
 
372
- #: admin/app_settings.py:230
381
+ #: admin/app_settings.py:242
373
382
  msgid "Create an alias when a mailbox is renamed"
374
383
  msgstr ""
375
384
 
376
- #: admin/app_settings.py:233
385
+ #: admin/app_settings.py:245
377
386
  msgid "Create an alias using the old address when a mailbox is renamed."
378
387
  msgstr ""
379
388
 
380
- #: admin/app_settings.py:245
389
+ #: admin/app_settings.py:257
381
390
  msgid "Aliases"
382
391
  msgstr ""
383
392
 
384
- #: admin/app_settings.py:251
393
+ #: admin/app_settings.py:263
385
394
  msgid "Alias can target any domain"
386
395
  msgstr ""
387
396
 
388
- #: admin/app_settings.py:253
397
+ #: admin/app_settings.py:265
389
398
  msgid "Allow aliases to target any domain, not just the local domains."
390
399
  msgstr ""
391
400
 
392
- #: admin/app_settings.py:260
401
+ #: admin/app_settings.py:272
393
402
  msgid "Alias target block list"
394
403
  msgstr ""
395
404
 
396
- #: admin/app_settings.py:262
405
+ #: admin/app_settings.py:274
397
406
  msgid "A list of domains that aliases cannot target (comma separated)."
398
407
  msgstr ""
399
408
 
400
- #: admin/app_settings.py:270
409
+ #: admin/app_settings.py:282
401
410
  msgid "Alias target allow list"
402
411
  msgstr ""
403
412
 
404
- #: admin/app_settings.py:272
413
+ #: admin/app_settings.py:284
405
414
  msgid "A list of domains that aliases can target (comma separated)."
406
415
  msgstr ""
407
416
 
408
- #: admin/app_settings.py:326 core/api/v2/viewsets.py:174
417
+ #: admin/app_settings.py:338 core/api/v2/viewsets.py:174
409
418
  #, fuzzy
410
419
  #| msgid "Administrator groups"
411
420
  msgid "Administration"
@@ -431,6 +440,39 @@ msgstr ""
431
440
  msgid "Closed"
432
441
  msgstr "Schließen"
433
442
 
443
+ #: admin/dns_checker.py:96
444
+ msgid "MX {} listed by DNSBL provider {}"
445
+ msgstr ""
446
+
447
+ #: admin/dns_checker.py:138
448
+ #, fuzzy
449
+ #| msgid "Not an SPF record"
450
+ msgid "Domain has no MX record"
451
+ msgstr "Kein SPF-Eintrag"
452
+
453
+ #: admin/dns_checker.py:141
454
+ msgid "Domain {} has no MX record"
455
+ msgstr ""
456
+
457
+ #: admin/dns_checker.py:159
458
+ #, fuzzy
459
+ #| msgid "Invalid code"
460
+ msgid "Invalid MX record: {}"
461
+ msgstr "Ungültiger Code"
462
+
463
+ #: admin/dns_checker.py:166
464
+ #, python-brace-format
465
+ msgid "MX record for domain {0} is invalid: {1}"
466
+ msgstr ""
467
+
468
+ #: admin/dns_checker.py:177
469
+ msgid "[modoboa] MX issue(s) for domain {}"
470
+ msgstr ""
471
+
472
+ #: admin/dns_checker.py:224
473
+ msgid "[modoboa] DNSBL issue(s) for domain {}"
474
+ msgstr ""
475
+
434
476
  #: admin/handlers.py:179
435
477
  msgid "domain alias"
436
478
  msgstr ""
@@ -453,8 +495,8 @@ msgstr ""
453
495
  msgid "You are not allowed to import domain aliases."
454
496
  msgstr ""
455
497
 
456
- #: admin/lib.py:227 admin/tests/test_mx.py:153 admin/tests/test_mx.py:166
457
- #: admin/tests/test_mx.py:171
498
+ #: admin/lib.py:227 admin/tests/test_mx.py:139 admin/tests/test_mx.py:152
499
+ #: admin/tests/test_mx.py:157
458
500
  #, python-format
459
501
  msgid "No DNS record found for %s"
460
502
  msgstr ""
@@ -464,11 +506,11 @@ msgstr ""
464
506
  msgid "No %(type)s record for %(name)s"
465
507
  msgstr ""
466
508
 
467
- #: admin/lib.py:234 admin/tests/test_mx.py:156
509
+ #: admin/lib.py:234 admin/tests/test_mx.py:142
468
510
  msgid "No working name servers found"
469
511
  msgstr ""
470
512
 
471
- #: admin/lib.py:237 admin/tests/test_mx.py:160
513
+ #: admin/lib.py:237 admin/tests/test_mx.py:146
472
514
  #, python-format
473
515
  msgid "DNS resolution timeout, unable to query %s at the moment"
474
516
  msgstr ""
@@ -523,39 +565,6 @@ msgstr ""
523
565
  msgid "Failed to generate DKIM public key"
524
566
  msgstr "Aktivieren Sie die Kommunikation mit der öffentlichen API von Modoboa"
525
567
 
526
- #: admin/management/commands/subcommands/_mx.py:133
527
- msgid "MX {} listed by DNSBL provider {}"
528
- msgstr ""
529
-
530
- #: admin/management/commands/subcommands/_mx.py:174
531
- #, fuzzy
532
- #| msgid "Not an SPF record"
533
- msgid "Domain has no MX record"
534
- msgstr "Kein SPF-Eintrag"
535
-
536
- #: admin/management/commands/subcommands/_mx.py:177
537
- msgid "Domain {} has no MX record"
538
- msgstr ""
539
-
540
- #: admin/management/commands/subcommands/_mx.py:195
541
- #, fuzzy
542
- #| msgid "Invalid code"
543
- msgid "Invalid MX record: {}"
544
- msgstr "Ungültiger Code"
545
-
546
- #: admin/management/commands/subcommands/_mx.py:202
547
- #, python-brace-format
548
- msgid "MX record for domain {0} is invalid: {1}"
549
- msgstr ""
550
-
551
- #: admin/management/commands/subcommands/_mx.py:213
552
- msgid "[modoboa] MX issue(s) for domain {}"
553
- msgstr ""
554
-
555
- #: admin/management/commands/subcommands/_mx.py:269
556
- msgid "[modoboa] DNSBL issue(s) for domain {}"
557
- msgstr ""
558
-
559
568
  #: admin/models/alias.py:43
560
569
  msgid "Domain not found."
561
570
  msgstr ""
@@ -751,17 +760,17 @@ msgstr ""
751
760
  msgid "Modoboa detected that domain %(domain)s has no valid MX record:"
752
761
  msgstr ""
753
762
 
754
- #: admin/tests/test_mx.py:155
763
+ #: admin/tests/test_mx.py:141
755
764
  #, python-format
756
765
  msgid "No MX record for %s"
757
766
  msgstr ""
758
767
 
759
- #: admin/tests/test_mx.py:176 admin/tests/test_mx.py:182
768
+ #: admin/tests/test_mx.py:162 admin/tests/test_mx.py:168
760
769
  #, python-format
761
770
  msgid "Invalid IP address format for %(domain)s; %(addr)s"
762
771
  msgstr ""
763
772
 
764
- #: admin/tests/test_mx.py:199
773
+ #: admin/tests/test_mx.py:185
765
774
  #, fuzzy, python-format
766
775
  #| msgid "No mechanism found"
767
776
  msgid "No AAAA record for %s"
@@ -965,11 +974,11 @@ msgid ""
965
974
  "database)"
966
975
  msgstr ""
967
976
 
968
- #: amavis/app_settings.py:236 webmail/app_settings.py:118
977
+ #: amavis/app_settings.py:236 webmail/app_settings.py:155
969
978
  msgid "Display"
970
979
  msgstr ""
971
980
 
972
- #: amavis/app_settings.py:243 webmail/app_settings.py:144
981
+ #: amavis/app_settings.py:243 webmail/app_settings.py:181
973
982
  #, fuzzy
974
983
  #| msgid "Number of displayed items per page"
975
984
  msgid "Number of displayed emails per page"
@@ -1246,7 +1255,7 @@ msgstr "Domain-Administrator"
1246
1255
  msgid "Allow domain administrators to manage user calendars (read and write)"
1247
1256
  msgstr "Gewähren Sie diesem Administrator Zugriff auf Benutzerpostfächer"
1248
1257
 
1249
- #: calendars/app_settings.py:60 core/app_settings.py:676
1258
+ #: calendars/app_settings.py:60 core/app_settings.py:664
1250
1259
  #: rspamd/app_settings.py:45
1251
1260
  msgid "Miscellaneous"
1252
1261
  msgstr "Verschiedenes"
@@ -1264,11 +1273,11 @@ msgstr ""
1264
1273
  msgid "Calendars"
1265
1274
  msgstr ""
1266
1275
 
1267
- #: calendars/models.py:48 calendars/models.py:65 contacts/models.py:38
1276
+ #: calendars/models.py:48 calendars/models.py:65 contacts/models.py:39
1268
1277
  msgid "Server location is not set, please fix it."
1269
1278
  msgstr ""
1270
1279
 
1271
- #: calendars/viewsets.py:197
1280
+ #: calendars/viewsets.py:199
1272
1281
  msgid "Uploaded file is too big (max: {} bytes)"
1273
1282
  msgstr ""
1274
1283
 
@@ -1353,7 +1362,7 @@ msgstr "2FA ist bereits aktiviert"
1353
1362
  msgid "Failed TFA settings editing attempt from '%(addr)s' as user '%(user)s'"
1354
1363
  msgstr ""
1355
1364
 
1356
- #: core/api/v1/serializers.py:93 core/api/v2/serializers.py:445
1365
+ #: core/api/v1/serializers.py:93 core/api/v2/serializers.py:438
1357
1366
  #, fuzzy
1358
1367
  #| msgid "Old password"
1359
1368
  msgid "Invalid password"
@@ -1367,24 +1376,20 @@ msgstr "2FA ist nicht aktiviert"
1367
1376
  msgid "Local"
1368
1377
  msgstr "Lokal"
1369
1378
 
1370
- #: core/api/v2/serializers.py:194 core/app_settings.py:17
1371
- msgid "User profile"
1372
- msgstr "Benutzerprofil"
1373
-
1374
- #: core/api/v2/serializers.py:213 core/api/v2/serializers.py:221
1375
- #: core/api/v2/serializers.py:228
1379
+ #: core/api/v2/serializers.py:206 core/api/v2/serializers.py:214
1380
+ #: core/api/v2/serializers.py:221
1376
1381
  msgid "Invalid syntax"
1377
1382
  msgstr "Ungültige Syntax"
1378
1383
 
1379
- #: core/api/v2/serializers.py:233
1384
+ #: core/api/v2/serializers.py:226
1380
1385
  msgid "Invalid rounds number"
1381
1386
  msgstr "Ungültige Anzahl Runden"
1382
1387
 
1383
- #: core/api/v2/serializers.py:433 core/forms.py:81
1388
+ #: core/api/v2/serializers.py:426 core/forms.py:81
1384
1389
  msgid "This code is invalid"
1385
1390
  msgstr "Dieser Code ist ungültig"
1386
1391
 
1387
- #: core/api/v2/serializers.py:503 core/views/auth.py:213 core/views/auth.py:266
1392
+ #: core/api/v2/serializers.py:496 core/views/auth.py:213 core/views/auth.py:266
1388
1393
  msgid "Please use the following code to recover your Modoboa password: {}"
1389
1394
  msgstr ""
1390
1395
  "Bitte verwenden Sie den folgenden Code, um Ihr Modoboa-Passwort "
@@ -1415,35 +1420,35 @@ msgid "Calendar"
1415
1420
  msgstr ""
1416
1421
 
1417
1422
  #: core/api/v2/viewsets.py:215 core/api/v2/viewsets.py:217
1418
- #: webmail/app_settings.py:258 webmail/app_settings.py:265
1423
+ #: webmail/app_settings.py:295 webmail/app_settings.py:302
1419
1424
  msgid "Webmail"
1420
1425
  msgstr ""
1421
1426
 
1422
- #: core/app_settings.py:37
1427
+ #: core/app_settings.py:25
1423
1428
  msgid "Authentication"
1424
1429
  msgstr "Authentifizierung"
1425
1430
 
1426
- #: core/app_settings.py:43
1431
+ #: core/app_settings.py:31
1427
1432
  msgid "Authentication type"
1428
1433
  msgstr "Authentifizierungstyp"
1429
1434
 
1430
- #: core/app_settings.py:45
1435
+ #: core/app_settings.py:33
1431
1436
  msgid "The backend used for authentication"
1432
1437
  msgstr "Das Backend für Authentifizierung"
1433
1438
 
1434
- #: core/app_settings.py:52
1439
+ #: core/app_settings.py:40
1435
1440
  msgid "Default password scheme"
1436
1441
  msgstr "Voreingestelltes Passwort-Schema"
1437
1442
 
1438
- #: core/app_settings.py:54
1443
+ #: core/app_settings.py:42
1439
1444
  msgid "Scheme used to crypt mailbox passwords"
1440
1445
  msgstr "Schema zur Verschlüsselung von Postfach-Passwörtern"
1441
1446
 
1442
- #: core/app_settings.py:61
1447
+ #: core/app_settings.py:49
1443
1448
  msgid "Rounds"
1444
1449
  msgstr "Runden"
1445
1450
 
1446
- #: core/app_settings.py:63
1451
+ #: core/app_settings.py:51
1447
1452
  msgid ""
1448
1453
  "Number of rounds to use (only used by sha256crypt and sha512crypt). Must be "
1449
1454
  "between 1000 and 999999999, inclusive."
@@ -1451,47 +1456,47 @@ msgstr ""
1451
1456
  "Anzahl an Runden (nur von sha256crypt und sha512crypt genutzt). Muss "
1452
1457
  "zwischen 1000 und 999999999 liegen, inklusive."
1453
1458
 
1454
- #: core/app_settings.py:73
1459
+ #: core/app_settings.py:61
1455
1460
  msgid "Update password scheme at login"
1456
1461
  msgstr "Passwort-Schema beim Login updaten"
1457
1462
 
1458
- #: core/app_settings.py:76
1463
+ #: core/app_settings.py:64
1459
1464
  msgid "Update user password at login to use the default password scheme"
1460
1465
  msgstr ""
1461
1466
  "Aktualisiere das Benutzerkennwort bei der Anmeldung, um das "
1462
1467
  "Standardkennwortschema zu verwenden"
1463
1468
 
1464
- #: core/app_settings.py:84
1469
+ #: core/app_settings.py:72
1465
1470
  msgid "Default password"
1466
1471
  msgstr "Standardpasswort"
1467
1472
 
1468
- #: core/app_settings.py:86
1473
+ #: core/app_settings.py:74
1469
1474
  msgid "Default password for automatically created accounts."
1470
1475
  msgstr "Standardpasswort für automatisch kreierte Konten"
1471
1476
 
1472
- #: core/app_settings.py:93
1477
+ #: core/app_settings.py:81
1473
1478
  msgid "Random password length"
1474
1479
  msgstr "Zufällige Passwortlänge"
1475
1480
 
1476
- #: core/app_settings.py:95
1481
+ #: core/app_settings.py:83
1477
1482
  msgid "Length of randomly generated passwords."
1478
1483
  msgstr "Länge der zufällig generierten Passwörter."
1479
1484
 
1480
- #: core/app_settings.py:103
1485
+ #: core/app_settings.py:91
1481
1486
  msgid "Allow special characters for random password"
1482
1487
  msgstr ""
1483
1488
 
1484
- #: core/app_settings.py:106
1489
+ #: core/app_settings.py:94
1485
1490
  #, fuzzy
1486
1491
  #| msgid "Length of randomly generated passwords."
1487
1492
  msgid "Enable special characters in randomly generated passwords."
1488
1493
  msgstr "Länge der zufällig generierten Passwörter."
1489
1494
 
1490
- #: core/app_settings.py:114
1495
+ #: core/app_settings.py:102
1491
1496
  msgid "Update password service URL"
1492
1497
  msgstr "URL des Kennwortdienstes aktualisieren"
1493
1498
 
1494
- #: core/app_settings.py:116
1499
+ #: core/app_settings.py:104
1495
1500
  msgid ""
1496
1501
  "The URL of an external page where users will be able to update their "
1497
1502
  "password. It applies only to non local users, ie. those automatically "
@@ -1501,109 +1506,109 @@ msgstr ""
1501
1506
  "können. Betrifft nur nicht lokale Benutzer, die nach einer erfolgreichen "
1502
1507
  "externen Authentifizierung (LDAP, SMTP) automatisch erstellt wurden."
1503
1508
 
1504
- #: core/app_settings.py:126
1509
+ #: core/app_settings.py:114
1505
1510
  msgid "Password recovery announcement"
1506
1511
  msgstr "Ankündigung zur Passwortwiederherstellung"
1507
1512
 
1508
- #: core/app_settings.py:128
1513
+ #: core/app_settings.py:116
1509
1514
  msgid "A temporary message that will be displayed on the reset password page."
1510
1515
  msgstr ""
1511
1516
  "Eine temporäre Nachricht, die auf der Passwort-Wiederherstellungsseite "
1512
1517
  "angezeigt wird."
1513
1518
 
1514
- #: core/app_settings.py:137
1519
+ #: core/app_settings.py:125
1515
1520
  msgid "Enable password recovery by SMS"
1516
1521
  msgstr "Passwortwiederherstellung per SMS aktivieren"
1517
1522
 
1518
- #: core/app_settings.py:140
1523
+ #: core/app_settings.py:128
1519
1524
  msgid "Enable password recovery by SMS for users who filled a phone number."
1520
1525
  msgstr ""
1521
1526
  "Aktiviere die Kennwortwiederherstellung per SMS für Benutzer, die eine "
1522
1527
  "Telefonnummer angegeben haben."
1523
1528
 
1524
- #: core/app_settings.py:148
1529
+ #: core/app_settings.py:136
1525
1530
  msgid "SMS provider"
1526
1531
  msgstr "SMS-Anbieter"
1527
1532
 
1528
- #: core/app_settings.py:151
1533
+ #: core/app_settings.py:139
1529
1534
  msgid "Choose a provider to send password recovery SMS"
1530
1535
  msgstr ""
1531
1536
  "Wählen Sie einen Anbieter für den Versand von SMS zur "
1532
1537
  "Kennwortwiederherstellung"
1533
1538
 
1534
- #: core/app_settings.py:163
1539
+ #: core/app_settings.py:151
1535
1540
  msgid "LDAP"
1536
1541
  msgstr ""
1537
1542
 
1538
- #: core/app_settings.py:169 sievefilters/app_settings.py:18
1543
+ #: core/app_settings.py:157 sievefilters/app_settings.py:18
1539
1544
  #: sievefilters/app_settings.py:51 webmail/app_settings.py:36
1540
- #: webmail/app_settings.py:73
1545
+ #: webmail/app_settings.py:73 webmail/app_settings.py:119
1541
1546
  msgid "Server address"
1542
1547
  msgstr "Serveradresse"
1543
1548
 
1544
- #: core/app_settings.py:171
1549
+ #: core/app_settings.py:159
1545
1550
  msgid "The IP address or the DNS name of the LDAP server"
1546
1551
  msgstr "IP-Adresse oder Hostname des LDAP-Servers"
1547
1552
 
1548
- #: core/app_settings.py:178 sievefilters/app_settings.py:25
1553
+ #: core/app_settings.py:166 sievefilters/app_settings.py:25
1549
1554
  #: sievefilters/app_settings.py:67 webmail/app_settings.py:54
1550
- #: webmail/app_settings.py:91
1555
+ #: webmail/app_settings.py:91 webmail/app_settings.py:137
1551
1556
  msgid "Server port"
1552
1557
  msgstr "Server Port"
1553
1558
 
1554
- #: core/app_settings.py:180
1559
+ #: core/app_settings.py:168
1555
1560
  msgid "The TCP port number used by the LDAP server"
1556
1561
  msgstr "Der TCP Port des LDAP-Servers"
1557
1562
 
1558
- #: core/app_settings.py:188
1563
+ #: core/app_settings.py:176
1559
1564
  msgid "Enable secondary server (fallback)"
1560
1565
  msgstr "Aktiviere Ausfallserver (Fallback)"
1561
1566
 
1562
- #: core/app_settings.py:191
1567
+ #: core/app_settings.py:179
1563
1568
  msgid ""
1564
1569
  "Enable a secondary LDAP server which will be used if the primary one fails"
1565
1570
  msgstr ""
1566
1571
  "Aktiviere einen zweiten LDAP-Server, welcher verwendet wird, wenn der erste "
1567
1572
  "nicht erreichbar ist"
1568
1573
 
1569
- #: core/app_settings.py:199
1574
+ #: core/app_settings.py:187
1570
1575
  msgid "Secondary server address"
1571
1576
  msgstr "Ausfallserver-Adresse"
1572
1577
 
1573
- #: core/app_settings.py:202
1578
+ #: core/app_settings.py:190
1574
1579
  msgid "The IP address or the DNS name of the seondary LDAP server"
1575
1580
  msgstr "IP-Adresse oder Hostname des zweiten LDAP-Servers"
1576
1581
 
1577
- #: core/app_settings.py:209
1582
+ #: core/app_settings.py:197
1578
1583
  msgid "Secondary server port"
1579
1584
  msgstr "Ausfallserver-Port"
1580
1585
 
1581
- #: core/app_settings.py:212
1586
+ #: core/app_settings.py:200
1582
1587
  msgid "The TCP port number used by the LDAP secondary server"
1583
1588
  msgstr "Der TCP Port des zweiten LDAP-Servers"
1584
1589
 
1585
- #: core/app_settings.py:219 sievefilters/app_settings.py:58
1590
+ #: core/app_settings.py:207 sievefilters/app_settings.py:58
1586
1591
  #: webmail/app_settings.py:45
1587
1592
  msgid "Use a secured connection"
1588
1593
  msgstr "Verwende eine gesicherte Verbindung"
1589
1594
 
1590
- #: core/app_settings.py:221
1595
+ #: core/app_settings.py:209
1591
1596
  msgid "Use an SSL/STARTTLS connection to access the LDAP server"
1592
1597
  msgstr "SSL/TLS-Verbindung für Zugriff auf LDAP-Server verwenden"
1593
1598
 
1594
- #: core/app_settings.py:228
1599
+ #: core/app_settings.py:216
1595
1600
  msgid "Active Directory"
1596
1601
  msgstr "Active Directory"
1597
1602
 
1598
- #: core/app_settings.py:230
1603
+ #: core/app_settings.py:218
1599
1604
  msgid "Tell if the LDAP server is an Active Directory one"
1600
1605
  msgstr "Auswählen, wenn der LDAP-Server ein Active Directory ist."
1601
1606
 
1602
- #: core/app_settings.py:237
1607
+ #: core/app_settings.py:225
1603
1608
  msgid "Administrator groups"
1604
1609
  msgstr "Administratorgruppen"
1605
1610
 
1606
- #: core/app_settings.py:239
1611
+ #: core/app_settings.py:227
1607
1612
  msgid ""
1608
1613
  "Members of those LDAP Posix groups will be created as domain administrators. "
1609
1614
  "Use ';' characters to separate groups."
@@ -1611,49 +1616,49 @@ msgstr ""
1611
1616
  "Mitglieder dieser LDAP-POSIX-Gruppen werden als Domänenadministratoren "
1612
1617
  "erstellt. Nutze ';' um Gruppen zu trennen."
1613
1618
 
1614
- #: core/app_settings.py:248
1619
+ #: core/app_settings.py:236
1615
1620
  msgid "Group type"
1616
1621
  msgstr "Gruppentyp"
1617
1622
 
1618
- #: core/app_settings.py:250
1623
+ #: core/app_settings.py:238
1619
1624
  msgid "The LDAP group type to use with your directory."
1620
1625
  msgstr "Der LDAP-Gruppentyp, der mit Ihrem Verzeichnis verwendet werden soll."
1621
1626
 
1622
- #: core/app_settings.py:257
1627
+ #: core/app_settings.py:245
1623
1628
  msgid "Groups search base"
1624
1629
  msgstr "Suchbasis für Gruppen"
1625
1630
 
1626
- #: core/app_settings.py:259
1631
+ #: core/app_settings.py:247
1627
1632
  msgid "The distinguished name of the search base used to find groups"
1628
1633
  msgstr ""
1629
1634
  "Der Distinguished Name der Suchbasis, die zum Suchen von Gruppen verwendet "
1630
1635
  "wird"
1631
1636
 
1632
- #: core/app_settings.py:267
1637
+ #: core/app_settings.py:255
1633
1638
  msgid "Password attribute"
1634
1639
  msgstr "Kennwortattribut"
1635
1640
 
1636
- #: core/app_settings.py:269
1641
+ #: core/app_settings.py:257
1637
1642
  msgid "The attribute used to store user passwords"
1638
1643
  msgstr "Das Attribut, das zum Speichern von Benutzerpasswörtern verwendet wird"
1639
1644
 
1640
- #: core/app_settings.py:276
1645
+ #: core/app_settings.py:264
1641
1646
  msgid "LDAP authentication settings"
1642
1647
  msgstr "LDAP-Authentifizierungseinstellungen"
1643
1648
 
1644
- #: core/app_settings.py:284
1649
+ #: core/app_settings.py:272
1645
1650
  msgid "Authentication method"
1646
1651
  msgstr "Authentifizierungsmethode"
1647
1652
 
1648
- #: core/app_settings.py:287
1653
+ #: core/app_settings.py:275
1649
1654
  msgid "Choose the authentication method to use"
1650
1655
  msgstr "Wählen Sie die Authentifizierungsmethode"
1651
1656
 
1652
- #: core/app_settings.py:294 core/app_settings.py:357
1657
+ #: core/app_settings.py:282 core/app_settings.py:345
1653
1658
  msgid "Bind DN"
1654
1659
  msgstr "Bind DN"
1655
1660
 
1656
- #: core/app_settings.py:296 core/app_settings.py:359
1661
+ #: core/app_settings.py:284 core/app_settings.py:347
1657
1662
  msgid ""
1658
1663
  "The distinguished name to use when binding to the LDAP server. Leave empty "
1659
1664
  "for an anonymous bind"
@@ -1661,31 +1666,31 @@ msgstr ""
1661
1666
  "Der Distinguished Name, der beim Binden an den LDAP-Server verwendet werden "
1662
1667
  "soll. Für eine anonyme Bindung leer lassen"
1663
1668
 
1664
- #: core/app_settings.py:305 core/app_settings.py:367
1669
+ #: core/app_settings.py:293 core/app_settings.py:355
1665
1670
  msgid "Bind password"
1666
1671
  msgstr "Bind Passwort"
1667
1672
 
1668
- #: core/app_settings.py:307 core/app_settings.py:369
1673
+ #: core/app_settings.py:295 core/app_settings.py:357
1669
1674
  msgid "The password to use when binding to the LDAP server (with 'Bind DN')"
1670
1675
  msgstr ""
1671
1676
  "Das Kennwort, das beim Binden an den LDAP-Server verwendet werden soll (mit "
1672
1677
  "'Bind DN')"
1673
1678
 
1674
- #: core/app_settings.py:317 core/app_settings.py:422
1679
+ #: core/app_settings.py:305 core/app_settings.py:410
1675
1680
  msgid "Users search base"
1676
1681
  msgstr "Suchbasis für Benutzer"
1677
1682
 
1678
- #: core/app_settings.py:319 core/app_settings.py:424
1683
+ #: core/app_settings.py:307 core/app_settings.py:412
1679
1684
  msgid "The distinguished name of the search base used to find users"
1680
1685
  msgstr ""
1681
1686
  "Der Distinguished Name der Suchbasis, die zum Suchen von Benutzern verwendet "
1682
1687
  "wird"
1683
1688
 
1684
- #: core/app_settings.py:328 core/app_settings.py:433
1689
+ #: core/app_settings.py:316 core/app_settings.py:421
1685
1690
  msgid "Search filter"
1686
1691
  msgstr "Suchfilter"
1687
1692
 
1688
- #: core/app_settings.py:330 core/app_settings.py:435
1693
+ #: core/app_settings.py:318 core/app_settings.py:423
1689
1694
  msgid ""
1690
1695
  "An optional filter string (e.g. '(objectClass=person)'). In order to be "
1691
1696
  "valid, it must be enclosed in parentheses."
@@ -1693,11 +1698,11 @@ msgstr ""
1693
1698
  "Ein optionaler Filter (z.B. '(objectClass=person)'). Der Filter muss "
1694
1699
  "entsprechend der LDAP-Konvention in Klammern gesetzt werden."
1695
1700
 
1696
- #: core/app_settings.py:339
1701
+ #: core/app_settings.py:327
1697
1702
  msgid "User DN template"
1698
1703
  msgstr "Benutzer-DN-Vorlage"
1699
1704
 
1700
- #: core/app_settings.py:341
1705
+ #: core/app_settings.py:329
1701
1706
  #, python-format
1702
1707
  msgid ""
1703
1708
  "The template used to construct a user's DN. It should contain one "
@@ -1706,26 +1711,26 @@ msgstr ""
1706
1711
  "Die Vorlage, die verwendet wird, um den DN eines Benutzers zu erstellen. Es "
1707
1712
  "sollte einen Platzhalter enthalten (z. B. %(user)s)"
1708
1713
 
1709
- #: core/app_settings.py:350
1714
+ #: core/app_settings.py:338
1710
1715
  msgid "LDAP synchronization settings"
1711
1716
  msgstr "LDAP-Synchronisationseinstellungen"
1712
1717
 
1713
- #: core/app_settings.py:378
1718
+ #: core/app_settings.py:366
1714
1719
  msgid "Enable export to LDAP"
1715
1720
  msgstr "Export zu LDAP aktivieren"
1716
1721
 
1717
- #: core/app_settings.py:380
1722
+ #: core/app_settings.py:368
1718
1723
  msgid ""
1719
1724
  "Enable automatic synchronization between local database and LDAP directory"
1720
1725
  msgstr ""
1721
1726
  "Automatische Synchronisierung zwischen lokaler Datenbank und LDAP-"
1722
1727
  "Verzeichnis aktivieren"
1723
1728
 
1724
- #: core/app_settings.py:389
1729
+ #: core/app_settings.py:377
1725
1730
  msgid "Delete remote LDAP account when local account is deleted"
1726
1731
  msgstr "Remote-LDAP-Konto löschen, wenn lokales Konto gelöscht wird"
1727
1732
 
1728
- #: core/app_settings.py:392
1733
+ #: core/app_settings.py:380
1729
1734
  msgid ""
1730
1735
  "Delete remote LDAP account when local account is deleted, otherwise it will "
1731
1736
  "be disabled."
@@ -1733,11 +1738,11 @@ msgstr ""
1733
1738
  "Remote-LDAP-Konto löschen, wenn lokales Konto gelöscht wird, ansonsten wird "
1734
1739
  "es deaktiviert."
1735
1740
 
1736
- #: core/app_settings.py:401
1741
+ #: core/app_settings.py:389
1737
1742
  msgid "Account DN template"
1738
1743
  msgstr "Konto-DN-Vorlage"
1739
1744
 
1740
- #: core/app_settings.py:403
1745
+ #: core/app_settings.py:391
1741
1746
  #, python-format
1742
1747
  msgid ""
1743
1748
  "The template used to construct an account's DN. It should contain one "
@@ -1746,54 +1751,54 @@ msgstr ""
1746
1751
  "Die Vorlage, die verwendet wird, um den DN eines Kontos zu erstellen. Es "
1747
1752
  "sollte einen Platzhalter enthalten (z. B. %(user)s)"
1748
1753
 
1749
- #: core/app_settings.py:412
1754
+ #: core/app_settings.py:400
1750
1755
  msgid "Enable import from LDAP"
1751
1756
  msgstr "Import von LDAP aktivieren"
1752
1757
 
1753
- #: core/app_settings.py:414
1758
+ #: core/app_settings.py:402
1754
1759
  msgid "Enable account synchronization from LDAP directory to local database"
1755
1760
  msgstr ""
1756
1761
  "Kontosynchronisierung vom LDAP-Verzeichnis zur lokalen Datenbank aktivieren"
1757
1762
 
1758
- #: core/app_settings.py:444
1763
+ #: core/app_settings.py:432
1759
1764
  msgid "Username attribute"
1760
1765
  msgstr "Benutzername-Attribut"
1761
1766
 
1762
- #: core/app_settings.py:446
1767
+ #: core/app_settings.py:434
1763
1768
  msgid "The name of the LDAP attribute where the username can be found."
1764
1769
  msgstr "Das LDAP-Attribut, in dem der Benutzername gefunden werden kann."
1765
1770
 
1766
- #: core/app_settings.py:455
1771
+ #: core/app_settings.py:443
1767
1772
  msgid "Enable Dovecot LDAP sync"
1768
1773
  msgstr "Dovecot LDAP-Synchronisation aktivieren"
1769
1774
 
1770
- #: core/app_settings.py:457
1775
+ #: core/app_settings.py:445
1771
1776
  msgid "LDAP authentication settings will be applied to Dovecot configuration."
1772
1777
  msgstr ""
1773
1778
  "LDAP-Authentifizierungseinstellungen werden auf die Dovecot-Konfiguration "
1774
1779
  "angewendet."
1775
1780
 
1776
- #: core/app_settings.py:465
1781
+ #: core/app_settings.py:453
1777
1782
  msgid "Dovecot LDAP config file"
1778
1783
  msgstr "Dovecot LDAP-Konfigurationsdatei"
1779
1784
 
1780
- #: core/app_settings.py:467
1785
+ #: core/app_settings.py:455
1781
1786
  msgid ""
1782
1787
  "Location of the configuration file which contains Dovecot LDAP settings."
1783
1788
  msgstr ""
1784
1789
  "Speicherort der Konfigurationsdatei, die Dovecot-LDAP-Einstellungen enthält."
1785
1790
 
1786
- #: core/app_settings.py:480
1791
+ #: core/app_settings.py:468
1787
1792
  msgid "Dashboard"
1788
1793
  msgstr "Dashboard"
1789
1794
 
1790
- #: core/app_settings.py:486
1795
+ #: core/app_settings.py:474
1791
1796
  #, fuzzy
1792
1797
  #| msgid "spam messages"
1793
1798
  msgid "Custom welcome message"
1794
1799
  msgstr "Spam E-Mails"
1795
1800
 
1796
- #: core/app_settings.py:488
1801
+ #: core/app_settings.py:476
1797
1802
  #, fuzzy
1798
1803
  #| msgid ""
1799
1804
  #| "A temporary message that will be displayed on the reset password page."
@@ -1802,155 +1807,155 @@ msgstr ""
1802
1807
  "Eine temporäre Nachricht, die auf der Passwort-Wiederherstellungsseite "
1803
1808
  "angezeigt wird."
1804
1809
 
1805
- #: core/app_settings.py:495
1810
+ #: core/app_settings.py:483
1806
1811
  msgid "Custom RSS feed"
1807
1812
  msgstr "Benutzerdefinierter RSS-Feed"
1808
1813
 
1809
- #: core/app_settings.py:497
1814
+ #: core/app_settings.py:485
1810
1815
  msgid "Display custom RSS feed to resellers and domain administrators"
1811
1816
  msgstr ""
1812
1817
  "Anzeige benutzerdefinierter RSS-Feeds für Reseller und Domain-Administratoren"
1813
1818
 
1814
- #: core/app_settings.py:506
1819
+ #: core/app_settings.py:494
1815
1820
  #, fuzzy
1816
1821
  #| msgid "Display custom RSS feed to resellers and domain administrators"
1817
1822
  msgid "Display custom RSS feed to super admins"
1818
1823
  msgstr ""
1819
1824
  "Anzeige benutzerdefinierter RSS-Feeds für Reseller und Domain-Administratoren"
1820
1825
 
1821
- #: core/app_settings.py:509
1826
+ #: core/app_settings.py:497
1822
1827
  #, fuzzy
1823
1828
  #| msgid "Display custom RSS feed to resellers and domain administrators"
1824
1829
  msgid "Display custom RSS feed also to super administrators"
1825
1830
  msgstr ""
1826
1831
  "Anzeige benutzerdefinierter RSS-Feeds für Reseller und Domain-Administratoren"
1827
1832
 
1828
- #: core/app_settings.py:517
1833
+ #: core/app_settings.py:505
1829
1834
  msgid "Hide features widget"
1830
1835
  msgstr "Funktionen-Widget ausblenden"
1831
1836
 
1832
- #: core/app_settings.py:519
1837
+ #: core/app_settings.py:507
1833
1838
  msgid "Hide features widget for resellers and domain administrators"
1834
1839
  msgstr "Funktionen-Widget für Reseller und Domain-Administratoren ausblenden"
1835
1840
 
1836
- #: core/app_settings.py:531
1841
+ #: core/app_settings.py:519
1837
1842
  msgid "Theme"
1838
1843
  msgstr ""
1839
1844
 
1840
- #: core/app_settings.py:537
1845
+ #: core/app_settings.py:525
1841
1846
  msgid "Primary theme color"
1842
1847
  msgstr ""
1843
1848
 
1844
- #: core/app_settings.py:539
1849
+ #: core/app_settings.py:527
1845
1850
  msgid ""
1846
1851
  "Primary color of the theme (hexadecimal code), used as the background color "
1847
1852
  "of the left menu for example"
1848
1853
  msgstr ""
1849
1854
 
1850
- #: core/app_settings.py:548
1855
+ #: core/app_settings.py:536
1851
1856
  msgid "Primary theme color (lighter version)"
1852
1857
  msgstr ""
1853
1858
 
1854
- #: core/app_settings.py:551 core/app_settings.py:563
1859
+ #: core/app_settings.py:539 core/app_settings.py:551
1855
1860
  msgid "Primary color of the theme (hexadecimal code)"
1856
1861
  msgstr ""
1857
1862
 
1858
- #: core/app_settings.py:560
1863
+ #: core/app_settings.py:548
1859
1864
  msgid "Primary theme color (darker version)"
1860
1865
  msgstr ""
1861
1866
 
1862
- #: core/app_settings.py:571
1867
+ #: core/app_settings.py:559
1863
1868
  #, fuzzy
1864
1869
  #| msgid "Secondary email"
1865
1870
  msgid "Secondary theme color"
1866
1871
  msgstr "Sekundäre E-Mail-Adresse"
1867
1872
 
1868
- #: core/app_settings.py:573
1873
+ #: core/app_settings.py:561
1869
1874
  msgid ""
1870
1875
  "Secondary color of the theme (hexadecimal code), used as the background "
1871
1876
  "color of some buttons for example"
1872
1877
  msgstr ""
1873
1878
 
1874
- #: core/app_settings.py:581
1879
+ #: core/app_settings.py:569
1875
1880
  msgid "Labels theme color"
1876
1881
  msgstr ""
1877
1882
 
1878
- #: core/app_settings.py:583
1883
+ #: core/app_settings.py:571
1879
1884
  msgid "Theme color for labels (hexadecimal code)"
1880
1885
  msgstr ""
1881
1886
 
1882
- #: core/app_settings.py:595
1887
+ #: core/app_settings.py:583
1883
1888
  msgid "Notifications"
1884
1889
  msgstr "Benachrichtigungen"
1885
1890
 
1886
- #: core/app_settings.py:601
1891
+ #: core/app_settings.py:589
1887
1892
  msgid "Sender address"
1888
1893
  msgstr "Absenderadresse"
1889
1894
 
1890
- #: core/app_settings.py:603
1895
+ #: core/app_settings.py:591
1891
1896
  msgid "Email address used to send notifications."
1892
1897
  msgstr "E-Mail-Adresse, die zum Senden von Benachrichtigungen verwendet wird."
1893
1898
 
1894
- #: core/app_settings.py:614
1899
+ #: core/app_settings.py:602
1895
1900
  msgid "Public API"
1896
1901
  msgstr "Öffentliche API"
1897
1902
 
1898
- #: core/app_settings.py:620
1903
+ #: core/app_settings.py:608
1899
1904
  msgid "Enable communication"
1900
1905
  msgstr "Verbindung aktivieren"
1901
1906
 
1902
- #: core/app_settings.py:622 core/app_settings.py:632
1907
+ #: core/app_settings.py:610 core/app_settings.py:620
1903
1908
  msgid "Automatically checks if a newer version is available"
1904
1909
  msgstr "Prüft automatisch, ob eine neuere Version verfügbar ist"
1905
1910
 
1906
- #: core/app_settings.py:629
1911
+ #: core/app_settings.py:617
1907
1912
  msgid "Check new versions"
1908
1913
  msgstr "Prüfe auf neue Versionen"
1909
1914
 
1910
- #: core/app_settings.py:640
1915
+ #: core/app_settings.py:628
1911
1916
  msgid "Send an email when new versions are found"
1912
1917
  msgstr "Sende eine E-Mail, wenn eine neue Version gefunden wurde"
1913
1918
 
1914
- #: core/app_settings.py:644
1919
+ #: core/app_settings.py:632
1915
1920
  msgid "Send an email to notify admins about new versions"
1916
1921
  msgstr ""
1917
1922
  "Sendet eine E-Mail, um Administratoren über neue Versionen zu benachrichtigen"
1918
1923
 
1919
- #: core/app_settings.py:651 sievefilters/constants.py:25
1924
+ #: core/app_settings.py:639 sievefilters/constants.py:25
1920
1925
  msgid "Recipient"
1921
1926
  msgstr "Empfänger"
1922
1927
 
1923
- #: core/app_settings.py:654
1928
+ #: core/app_settings.py:642
1924
1929
  msgid "Recipient of new versions notification emails."
1925
1930
  msgstr "Empfänger von Benachrichtigungs-E-Mails über neue Version."
1926
1931
 
1927
- #: core/app_settings.py:661
1932
+ #: core/app_settings.py:649
1928
1933
  msgid "Send statistics"
1929
1934
  msgstr "Sende Statistiken"
1930
1935
 
1931
- #: core/app_settings.py:664
1936
+ #: core/app_settings.py:652
1932
1937
  msgid "Send statistics to Modoboa public API (counters and used extensions)"
1933
1938
  msgstr ""
1934
1939
  "Sendet Statistiken an die öffentliche API von Modoboa (Zähler und verwendete "
1935
1940
  "Erweiterungen)"
1936
1941
 
1937
- #: core/app_settings.py:683
1942
+ #: core/app_settings.py:671
1938
1943
  #, fuzzy
1939
1944
  #| msgid "Inactive account threshold"
1940
1945
  msgid "Enable inactive account tracking"
1941
1946
  msgstr "Schwellwert für inaktive Konten"
1942
1947
 
1943
- #: core/app_settings.py:686
1948
+ #: core/app_settings.py:674
1944
1949
  msgid ""
1945
1950
  "Allow the administrator to set a threshold (in days) beyond which an account "
1946
1951
  "is considered inactive if the user hasn't logged in"
1947
1952
  msgstr ""
1948
1953
 
1949
- #: core/app_settings.py:695
1954
+ #: core/app_settings.py:683
1950
1955
  msgid "Inactive account threshold"
1951
1956
  msgstr "Schwellwert für inaktive Konten"
1952
1957
 
1953
- #: core/app_settings.py:698
1958
+ #: core/app_settings.py:686
1954
1959
  msgid ""
1955
1960
  "An account with a last login date greater than this threshold (in days) will "
1956
1961
  "be considered as inactive"
@@ -1958,48 +1963,38 @@ msgstr ""
1958
1963
  "Ein Konto mit einem letzten Login-Datum über diesem Schwellenwert (in Tagen) "
1959
1964
  "wird als inaktiv betrachtet"
1960
1965
 
1961
- #: core/app_settings.py:707
1966
+ #: core/app_settings.py:695
1962
1967
  msgid "Top notifications check interval"
1963
1968
  msgstr "Prüfintervall für Benachrichtigungen"
1964
1969
 
1965
- #: core/app_settings.py:710
1970
+ #: core/app_settings.py:698
1966
1971
  msgid "Interval between two top notification checks (in seconds)"
1967
1972
  msgstr "Intervall zwischen zwei Benachrichtigungsprüfungen (in Sekunden)"
1968
1973
 
1969
- #: core/app_settings.py:717
1974
+ #: core/app_settings.py:705
1970
1975
  msgid "Maximum log record age"
1971
1976
  msgstr "Maximales Alter eines Log-Eintrags"
1972
1977
 
1973
- #: core/app_settings.py:719
1978
+ #: core/app_settings.py:707
1974
1979
  msgid "The maximum age in days of a log record"
1975
1980
  msgstr "Das maximale Alter eines Protokollsatzes in Tagen"
1976
1981
 
1977
- #: core/app_settings.py:727
1982
+ #: core/app_settings.py:715
1978
1983
  msgid "Retention time in message history"
1979
1984
  msgstr ""
1980
1985
 
1981
- #: core/app_settings.py:730
1986
+ #: core/app_settings.py:718
1982
1987
  msgid "Retention time (in days) of a message in the message history section"
1983
1988
  msgstr ""
1984
1989
 
1985
- #: core/app_settings.py:737
1990
+ #: core/app_settings.py:725
1986
1991
  msgid "Items per page"
1987
1992
  msgstr "Einträge pro Seite"
1988
1993
 
1989
- #: core/app_settings.py:739
1994
+ #: core/app_settings.py:727
1990
1995
  msgid "Number of displayed items per page"
1991
1996
  msgstr "Anzahl der angezeigten Einträge pro Seite"
1992
1997
 
1993
- #: core/app_settings.py:746
1994
- msgid "Default top redirection"
1995
- msgstr "Standardumleitung"
1996
-
1997
- #: core/app_settings.py:748
1998
- msgid "The default redirection used when no application is specified"
1999
- msgstr ""
2000
- "Die Standardumleitung, die verwendet wird, wenn keine Anwendung angegeben "
2001
- "wurde"
2002
-
2003
1998
  #: core/checks.py:15
2004
1999
  msgid ""
2005
2000
  "You have USE_TZ set to False, this may result in issues during transitions "
@@ -2343,7 +2338,7 @@ msgid "Not resolved"
2343
2338
  msgstr ""
2344
2339
 
2345
2340
  #: dmarc/models.py:10 dmarc/models.py:16 pdfcredentials/constants.py:7
2346
- #: webmail/constants.py:18
2341
+ #: webmail/constants.py:38
2347
2342
  msgid "None"
2348
2343
  msgstr ""
2349
2344
 
@@ -3296,7 +3291,7 @@ msgstr ""
3296
3291
  msgid "is not"
3297
3292
  msgstr ""
3298
3293
 
3299
- #: sievefilters/constants.py:23 webmail/lib/imapemail.py:304
3294
+ #: sievefilters/constants.py:23 webmail/lib/imapemail.py:302
3300
3295
  msgid "Subject"
3301
3296
  msgstr "Betreff"
3302
3297
 
@@ -3559,25 +3554,25 @@ msgstr ""
3559
3554
  msgid "SMTP settings"
3560
3555
  msgstr "LDAP-Einstellungen"
3561
3556
 
3562
- #: webmail/app_settings.py:75
3557
+ #: webmail/app_settings.py:75 webmail/app_settings.py:121
3563
3558
  #, fuzzy
3564
3559
  #| msgid "IP address of your Modoboa server"
3565
3560
  msgid "Address of your SMTP server"
3566
3561
  msgstr "IP-Adresse Ihres Modoboa-Servers"
3567
3562
 
3568
- #: webmail/app_settings.py:82
3563
+ #: webmail/app_settings.py:82 webmail/app_settings.py:128
3569
3564
  #, fuzzy
3570
3565
  #| msgid "Use a secured connection"
3571
3566
  msgid "Secured connection mode"
3572
3567
  msgstr "Verwende eine gesicherte Verbindung"
3573
3568
 
3574
- #: webmail/app_settings.py:84
3569
+ #: webmail/app_settings.py:84 webmail/app_settings.py:130
3575
3570
  #, fuzzy
3576
3571
  #| msgid "Use an SSL/STARTTLS connection to access the LDAP server"
3577
3572
  msgid "Use a secured connection to access SMTP server"
3578
3573
  msgstr "SSL/TLS-Verbindung für Zugriff auf LDAP-Server verwenden"
3579
3574
 
3580
- #: webmail/app_settings.py:93
3575
+ #: webmail/app_settings.py:93 webmail/app_settings.py:139
3581
3576
  #, fuzzy
3582
3577
  #| msgid "IP address of your Modoboa server"
3583
3578
  msgid "Listening port of your SMTP server"
@@ -3595,11 +3590,17 @@ msgstr "Authentifizierungsmethode"
3595
3590
  msgid "Server needs authentication"
3596
3591
  msgstr "LDAP-Authentifizierungseinstellungen"
3597
3592
 
3598
- #: webmail/app_settings.py:124
3593
+ #: webmail/app_settings.py:113
3594
+ #, fuzzy
3595
+ #| msgid "LDAP settings"
3596
+ msgid "Scheduling settings"
3597
+ msgstr "LDAP-Einstellungen"
3598
+
3599
+ #: webmail/app_settings.py:161
3599
3600
  msgid "Default message display mode"
3600
3601
  msgstr ""
3601
3602
 
3602
- #: webmail/app_settings.py:126
3603
+ #: webmail/app_settings.py:163
3603
3604
  #, fuzzy
3604
3605
  #| msgid "The default redirection used when no application is specified"
3605
3606
  msgid "The default mode used when displaying a message"
@@ -3607,87 +3608,87 @@ msgstr ""
3607
3608
  "Die Standardumleitung, die verwendet wird, wenn keine Anwendung angegeben "
3608
3609
  "wurde"
3609
3610
 
3610
- #: webmail/app_settings.py:133
3611
+ #: webmail/app_settings.py:170
3611
3612
  msgid "Enable HTML links display"
3612
3613
  msgstr ""
3613
3614
 
3614
- #: webmail/app_settings.py:136
3615
+ #: webmail/app_settings.py:173
3615
3616
  msgid "Enable/Disable HTML links display"
3616
3617
  msgstr ""
3617
3618
 
3618
- #: webmail/app_settings.py:147
3619
+ #: webmail/app_settings.py:184
3619
3620
  msgid "Sets the maximum number of messages displayed in a page"
3620
3621
  msgstr ""
3621
3622
 
3622
- #: webmail/app_settings.py:154
3623
+ #: webmail/app_settings.py:191
3623
3624
  msgid "Listing refresh rate"
3624
3625
  msgstr ""
3625
3626
 
3626
- #: webmail/app_settings.py:156
3627
+ #: webmail/app_settings.py:193
3627
3628
  msgid "Automatic listing refresh rate (in secconds)"
3628
3629
  msgstr ""
3629
3630
 
3630
- #: webmail/app_settings.py:163
3631
+ #: webmail/app_settings.py:200
3631
3632
  msgid "Folder container's width"
3632
3633
  msgstr ""
3633
3634
 
3634
- #: webmail/app_settings.py:165
3635
+ #: webmail/app_settings.py:202
3635
3636
  msgid "The width of the folder list container"
3636
3637
  msgstr ""
3637
3638
 
3638
- #: webmail/app_settings.py:176
3639
+ #: webmail/app_settings.py:213
3639
3640
  msgid "Folders"
3640
3641
  msgstr ""
3641
3642
 
3642
- #: webmail/app_settings.py:182
3643
+ #: webmail/app_settings.py:219
3643
3644
  msgid "Trash folder"
3644
3645
  msgstr ""
3645
3646
 
3646
- #: webmail/app_settings.py:184
3647
+ #: webmail/app_settings.py:221
3647
3648
  #, fuzzy
3648
3649
  #| msgid "rejected messages"
3649
3650
  msgid "Folder where deleted messages go"
3650
3651
  msgstr "Abgewiesene Nachrichten"
3651
3652
 
3652
- #: webmail/app_settings.py:191
3653
+ #: webmail/app_settings.py:228
3653
3654
  msgid "Sent folder"
3654
3655
  msgstr ""
3655
3656
 
3656
- #: webmail/app_settings.py:193
3657
+ #: webmail/app_settings.py:230
3657
3658
  msgid "Folder where copies of sent messages go"
3658
3659
  msgstr ""
3659
3660
 
3660
- #: webmail/app_settings.py:200
3661
+ #: webmail/app_settings.py:237
3661
3662
  msgid "Drafts folder"
3662
3663
  msgstr ""
3663
3664
 
3664
- #: webmail/app_settings.py:201
3665
+ #: webmail/app_settings.py:238
3665
3666
  msgid "Folder where drafts go"
3666
3667
  msgstr ""
3667
3668
 
3668
- #: webmail/app_settings.py:207
3669
+ #: webmail/app_settings.py:244
3669
3670
  msgid "Junk folder"
3670
3671
  msgstr ""
3671
3672
 
3672
- #: webmail/app_settings.py:209
3673
+ #: webmail/app_settings.py:246
3673
3674
  #, fuzzy
3674
3675
  #| msgid "rejected messages"
3675
3676
  msgid "Folder where junk messages should go"
3676
3677
  msgstr "Abgewiesene Nachrichten"
3677
3678
 
3678
- #: webmail/app_settings.py:220
3679
+ #: webmail/app_settings.py:257
3679
3680
  #, fuzzy
3680
3681
  #| msgid "sent messages"
3681
3682
  msgid "Composing messages"
3682
3683
  msgstr "Gesendete Nachrichten"
3683
3684
 
3684
- #: webmail/app_settings.py:226
3685
+ #: webmail/app_settings.py:263
3685
3686
  #, fuzzy
3686
3687
  #| msgid "Default top redirection"
3687
3688
  msgid "Default editor"
3688
3689
  msgstr "Standardumleitung"
3689
3690
 
3690
- #: webmail/app_settings.py:228
3691
+ #: webmail/app_settings.py:265
3691
3692
  #, fuzzy
3692
3693
  #| msgid "The default redirection used when no application is specified"
3693
3694
  msgid "The default editor to use when composing a message"
@@ -3695,11 +3696,11 @@ msgstr ""
3695
3696
  "Die Standardumleitung, die verwendet wird, wenn keine Anwendung angegeben "
3696
3697
  "wurde"
3697
3698
 
3698
- #: webmail/app_settings.py:235
3699
+ #: webmail/app_settings.py:272
3699
3700
  msgid "Signature text"
3700
3701
  msgstr ""
3701
3702
 
3702
- #: webmail/app_settings.py:237
3703
+ #: webmail/app_settings.py:274
3703
3704
  msgid "User defined email signature"
3704
3705
  msgstr ""
3705
3706
 
@@ -3715,45 +3716,72 @@ msgstr "Serveradresse"
3715
3716
  msgid "Failed to remove attachment: "
3716
3717
  msgstr "LDAP-Konto konnte nicht erstellt werden: {}"
3717
3718
 
3718
- #: webmail/lib/imapemail.py:272
3719
+ #: webmail/lib/imapemail.py:270
3719
3720
  msgid "wrote:"
3720
3721
  msgstr ""
3721
3722
 
3722
- #: webmail/lib/imapemail.py:306
3723
+ #: webmail/lib/imapemail.py:304
3723
3724
  msgid "Date"
3724
3725
  msgstr "Datum"
3725
3726
 
3726
- #: webmail/lib/imapemail.py:322 webmail/lib/imapemail.py:325
3727
+ #: webmail/lib/imapemail.py:320 webmail/lib/imapemail.py:323
3727
3728
  #, fuzzy
3728
3729
  #| msgid "sent messages"
3729
3730
  msgid "Original message"
3730
3731
  msgstr "Gesendete Nachrichten"
3731
3732
 
3732
- #: webmail/lib/imaputils.py:221
3733
+ #: webmail/lib/imaputils.py:222
3733
3734
  msgid "Failed to retrieve hierarchy delimiter"
3734
3735
  msgstr ""
3735
3736
 
3736
- #: webmail/lib/imaputils.py:472
3737
+ #: webmail/lib/imaputils.py:478
3737
3738
  msgid "Inbox"
3738
3739
  msgstr ""
3739
3740
 
3740
- #: webmail/lib/imaputils.py:476
3741
+ #: webmail/lib/imaputils.py:482
3741
3742
  msgid "Drafts"
3742
3743
  msgstr ""
3743
3744
 
3744
- #: webmail/lib/imaputils.py:481
3745
+ #: webmail/lib/imaputils.py:487
3745
3746
  msgid "Junk"
3746
3747
  msgstr ""
3747
3748
 
3748
- #: webmail/lib/imaputils.py:486
3749
+ #: webmail/lib/imaputils.py:492
3749
3750
  msgid "Sent"
3750
3751
  msgstr ""
3751
3752
 
3752
- #: webmail/lib/imaputils.py:491
3753
+ #: webmail/lib/imaputils.py:500
3754
+ msgid "Scheduled"
3755
+ msgstr ""
3756
+
3757
+ #: webmail/lib/imaputils.py:507
3753
3758
  msgid "Trash"
3754
3759
  msgstr ""
3755
3760
 
3756
- #: webmail/viewsets.py:357
3761
+ #: webmail/serializers.py:220
3762
+ msgid "Moving scheduled messages is forbidden"
3763
+ msgstr ""
3764
+
3765
+ #: webmail/serializers.py:253
3766
+ msgid "Only datetime in the future is allowed"
3767
+ msgstr ""
3768
+
3769
+ #: webmail/serializers.py:258
3770
+ msgid "Provived datetime must be one minute in the future at least"
3771
+ msgstr ""
3772
+
3773
+ #: webmail/viewsets.py:359
3757
3774
  #, python-format
3758
3775
  msgid "Attachment is too big (limit: %s)"
3759
3776
  msgstr ""
3777
+
3778
+ #~ msgid "User profile"
3779
+ #~ msgstr "Benutzerprofil"
3780
+
3781
+ #~ msgid "Default top redirection"
3782
+ #~ msgstr "Standardumleitung"
3783
+
3784
+ #~ msgid "The default redirection used when no application is specified"
3785
+ #~ msgstr ""
3786
+ #~ "Die Standardumleitung, die verwendet wird, wenn keine Anwendung angegeben "
3787
+ #~ "wurde"