modoboa 2.4.11__py3-none-any.whl → 2.5.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 (314) hide show
  1. modoboa/admin/api/v2/serializers.py +14 -0
  2. modoboa/amavis/__init__.py +3 -0
  3. modoboa/amavis/app_settings.py +276 -0
  4. modoboa/amavis/apps.py +18 -0
  5. modoboa/amavis/checks/__init__.py +2 -0
  6. modoboa/amavis/checks/settings_checks.py +59 -0
  7. modoboa/amavis/dbrouter.py +35 -0
  8. modoboa/amavis/factories.py +164 -0
  9. modoboa/amavis/handlers.py +146 -0
  10. modoboa/amavis/lib.py +381 -0
  11. modoboa/amavis/management/__init__.py +0 -0
  12. modoboa/amavis/management/commands/__init__.py +0 -0
  13. modoboa/amavis/management/commands/amnotify.py +99 -0
  14. modoboa/amavis/management/commands/qcleanup.py +84 -0
  15. modoboa/amavis/migrations/0001_initial.py +340 -0
  16. modoboa/amavis/migrations/__init__.py +0 -0
  17. modoboa/amavis/models.py +226 -0
  18. modoboa/amavis/serializers.py +139 -0
  19. modoboa/amavis/sql_connector.py +240 -0
  20. modoboa/amavis/sql_email.py +66 -0
  21. modoboa/amavis/tasks.py +33 -0
  22. modoboa/amavis/templates/amavis/notifications/pending_requests.html +16 -0
  23. modoboa/amavis/tests/__init__.py +0 -0
  24. modoboa/amavis/tests/sa-learn +3 -0
  25. modoboa/amavis/tests/sample_messages/quarantined-input.txt +80 -0
  26. modoboa/amavis/tests/sample_messages/quarantined-output-plain_nolinks.txt +17 -0
  27. modoboa/amavis/tests/spamc +3 -0
  28. modoboa/amavis/tests/test_checks.py +25 -0
  29. modoboa/amavis/tests/test_handlers.py +214 -0
  30. modoboa/amavis/tests/test_lib.py +90 -0
  31. modoboa/amavis/tests/test_management_commands.py +45 -0
  32. modoboa/amavis/tests/test_sql_email.py +67 -0
  33. modoboa/amavis/tests/test_utils.py +19 -0
  34. modoboa/amavis/tests/test_viewsets.py +319 -0
  35. modoboa/amavis/urls.py +11 -0
  36. modoboa/amavis/utils.py +105 -0
  37. modoboa/amavis/viewsets.py +265 -0
  38. modoboa/core/api/v1/serializers.py +7 -5
  39. modoboa/core/api/v2/serializers.py +4 -2
  40. modoboa/core/api/v2/tests.py +16 -4
  41. modoboa/core/api/v2/urls.py +5 -5
  42. modoboa/core/api/v2/views.py +3 -1
  43. modoboa/core/api/v2/viewsets.py +24 -3
  44. modoboa/core/handlers.py +6 -2
  45. modoboa/core/management/commands/add_allowed_hosts.py +33 -0
  46. modoboa/core/management/commands/load_initial_data.py +10 -0
  47. modoboa/core/migrations/0025_rename_user_email_is_active_core_user_email_c0c03f_idx.py +23 -5
  48. modoboa/core/tests/test_core.py +24 -0
  49. modoboa/core/utils.py +3 -0
  50. modoboa/frontend_dist/assets/AccountAliasForm-BuSy_1n9.js +1 -0
  51. modoboa/frontend_dist/assets/AccountEditView-qdJmLM_e.js +1 -0
  52. modoboa/frontend_dist/assets/AccountLayout-DrN7vHsX.js +1 -0
  53. modoboa/frontend_dist/assets/AccountPasswordSubForm-DZGt_Xgq.js +1 -0
  54. modoboa/frontend_dist/assets/AccountView-CO65y0vZ.js +1 -0
  55. modoboa/frontend_dist/assets/AddressBook-BZNUlhek.js +1 -0
  56. modoboa/frontend_dist/assets/AdminLayout-CTNhuwTw.js +1 -0
  57. modoboa/frontend_dist/assets/AlarmsView-9yKGbmkC.css +1 -0
  58. modoboa/frontend_dist/assets/AlarmsView-DN_JIw9g.js +1 -0
  59. modoboa/frontend_dist/assets/AliasEditView-DjpPUTp9.js +1 -0
  60. modoboa/frontend_dist/assets/{AliasRecipientForm-IOae6sjF.js → AliasRecipientForm-B1Y8wFdP.js} +1 -1
  61. modoboa/frontend_dist/assets/AliasView-GOJ5lyQH.js +1 -0
  62. modoboa/frontend_dist/assets/AuditTrailView-fbXmq70e.js +1 -0
  63. modoboa/frontend_dist/assets/CalendarView-LlQQNEPL.js +1 -0
  64. modoboa/frontend_dist/assets/{ChoiceField-DJ_c78Cm.js → ChoiceField-B3ReQHVe.js} +1 -1
  65. modoboa/frontend_dist/assets/ComposeEmailForm-Bs1fZXAL.js +1 -0
  66. modoboa/frontend_dist/assets/ComposeEmailView-s3LMl3pO.js +1 -0
  67. modoboa/frontend_dist/assets/ConfirmDialog-DY_kUHLG.js +1 -0
  68. modoboa/frontend_dist/assets/{ConnectedLayout-Dvwmicnc.css → ConnectedLayout-Bxh21hcH.css} +1 -1
  69. modoboa/frontend_dist/assets/ConnectedLayout-UWjiYBNw.js +1 -0
  70. modoboa/frontend_dist/assets/CreationForm-ORg3fazt.js +1 -0
  71. modoboa/frontend_dist/assets/DashboardView-Dplk9itS.js +1 -0
  72. modoboa/frontend_dist/assets/DomainAdminList-DVn9x0rB.js +1 -0
  73. modoboa/frontend_dist/assets/DomainEditView-nAoL64D_.js +1 -0
  74. modoboa/frontend_dist/assets/{DomainTransportForm-C2xo0Yd7.js → DomainTransportForm-CA-DNUxX.js} +1 -1
  75. modoboa/frontend_dist/assets/{DomainView-BDKoBFYr.css → DomainView-CCLYXPHx.css} +1 -1
  76. modoboa/frontend_dist/assets/DomainView-CdXPpwJG.js +5 -0
  77. modoboa/frontend_dist/assets/DomainsView-B_59gowf.js +1 -0
  78. modoboa/frontend_dist/assets/DomainsView-DZ-ss9bI.css +1 -0
  79. modoboa/frontend_dist/assets/EmailField-CwcwI5xW.js +1 -0
  80. modoboa/frontend_dist/assets/EmailView-BshxcfAK.js +1 -0
  81. modoboa/frontend_dist/assets/EmptyLayout-DFfhnhLi.js +1 -0
  82. modoboa/frontend_dist/assets/FiltersView-Cf20MSTK.js +1 -0
  83. modoboa/frontend_dist/assets/ForwardEmailView-CZG062os.js +1 -0
  84. modoboa/frontend_dist/assets/{HtmlEditor-CJ9umKeO.js → HtmlEditor-Bh4c689R.js} +1 -1
  85. modoboa/frontend_dist/assets/IdentitiesView-BXAuU1YX.js +1 -0
  86. modoboa/frontend_dist/assets/{IdentitiesView-0ziuQ5s-.css → IdentitiesView-DPrrRMS5.css} +1 -1
  87. modoboa/frontend_dist/assets/InformationView-C9vvvQhJ.css +1 -0
  88. modoboa/frontend_dist/assets/InformationView-Cn5FZW7H.js +1 -0
  89. modoboa/frontend_dist/assets/{LoadingData-CYwX3Jpn.js → LoadingData-CdVvm4FI.js} +1 -1
  90. modoboa/frontend_dist/assets/{LoginCallbackView-E01qkKn0.js → LoginCallbackView-B9hAH4MI.js} +1 -1
  91. modoboa/frontend_dist/assets/{LoginView-Cy4uFV9h.js → LoginView-tHIR4Adc.js} +1 -1
  92. modoboa/frontend_dist/assets/MailboxView-Bugu2vhg.js +1 -0
  93. modoboa/frontend_dist/assets/MenuItems-PXjiG-fs.js +1 -0
  94. modoboa/frontend_dist/assets/MessageView-Cy4STShm.js +1 -0
  95. modoboa/frontend_dist/assets/MessagesView-DdkuEgfX.js +1 -0
  96. modoboa/frontend_dist/assets/MigrationsView-CidSEjCF.js +1 -0
  97. modoboa/frontend_dist/assets/{ParametersForm-BZM0QSvg.js → ParametersForm-CAv4SH-E.js} +1 -1
  98. modoboa/frontend_dist/assets/ParametersView-CX7Ffemw.js +1 -0
  99. modoboa/frontend_dist/assets/ParametersView-CrbNcmV3.js +1 -0
  100. modoboa/frontend_dist/assets/ProviderEditView-CrltAQXl.js +1 -0
  101. modoboa/frontend_dist/assets/ProviderGeneralForm-BYAzVnXM.js +1 -0
  102. modoboa/frontend_dist/assets/ProvidersView-osjIY4Ex.js +1 -0
  103. modoboa/frontend_dist/assets/QuarantineLayout-B8EcU9vS.js +1 -0
  104. modoboa/frontend_dist/assets/QuarantineView-D4gOE4EQ.css +1 -0
  105. modoboa/frontend_dist/assets/QuarantineView-D8Qg0MXA.js +1 -0
  106. modoboa/frontend_dist/assets/ReplyEmailView-BABPqWhd.js +1 -0
  107. modoboa/frontend_dist/assets/ResourcesForm-OaqdRYVs.js +1 -0
  108. modoboa/frontend_dist/assets/SelfServiceLayout-d277YTGR.js +1 -0
  109. modoboa/frontend_dist/assets/{SettingsView-BxLJBFY0.js → SettingsView-9iNcDhkI.js} +2 -2
  110. modoboa/frontend_dist/assets/StatisticsView-cHsPyGkL.js +1 -0
  111. modoboa/frontend_dist/assets/TimeSerieChart--V83dcJ9.js +1 -0
  112. modoboa/frontend_dist/assets/UserLayout-B3sBiTcZ.js +1 -0
  113. modoboa/frontend_dist/assets/VAlert-BuaaYN2h.js +1 -0
  114. modoboa/frontend_dist/assets/VApp-CKP-6zGP.js +1 -0
  115. modoboa/frontend_dist/assets/VAutocomplete-Dwv6_Rzq.js +1 -0
  116. modoboa/frontend_dist/assets/VAvatar-Cmga0vj6.js +1 -0
  117. modoboa/frontend_dist/assets/VBadge-BQrRJ9S0.css +1 -0
  118. modoboa/frontend_dist/assets/VBadge-CixeK87a.js +1 -0
  119. modoboa/frontend_dist/assets/VCard-CxH9DWoK.js +1 -0
  120. modoboa/frontend_dist/assets/VCheckbox-62GOpvvP.js +1 -0
  121. modoboa/frontend_dist/assets/{VCheckboxBtn-Dt810gWf.js → VCheckboxBtn-DMoNtKT8.js} +1 -1
  122. modoboa/frontend_dist/assets/VChip-D_styETR.js +1 -0
  123. modoboa/frontend_dist/assets/VColorPicker-BHscBGQV.js +1 -0
  124. modoboa/frontend_dist/assets/{VContainer-DvTbsotR.js → VContainer-B46caNs1.js} +1 -1
  125. modoboa/frontend_dist/assets/VDataTable-Bh8NbVSx.js +1 -0
  126. modoboa/frontend_dist/assets/VDataTableServer-BDR5hOmo.js +1 -0
  127. modoboa/frontend_dist/assets/VDataTableVirtual-BOQlNtIG.js +1 -0
  128. modoboa/frontend_dist/assets/{VDialog-Bk6EWNhz.js → VDialog-BcTg7w6P.js} +1 -1
  129. modoboa/frontend_dist/assets/VExpansionPanels-BmH5Jl2Z.js +1 -0
  130. modoboa/frontend_dist/assets/VFileInput-BC4yAygd.js +1 -0
  131. modoboa/frontend_dist/assets/VForm-D5iPGkde.js +1 -0
  132. modoboa/frontend_dist/assets/VInput-CcxkaOXT.css +1 -0
  133. modoboa/frontend_dist/assets/VInput-CoDJzvaW.js +1 -0
  134. modoboa/frontend_dist/assets/VMenu-gUG70-zD.js +1 -0
  135. modoboa/frontend_dist/assets/VPicker-BXuKT3zB.js +1 -0
  136. modoboa/frontend_dist/assets/VProgressCircular-BtOPiGCg.js +1 -0
  137. modoboa/frontend_dist/assets/VRadioGroup-DIFZKSn-.js +1 -0
  138. modoboa/frontend_dist/assets/{VRow-BF35mT1S.js → VRow-ozg66L7j.js} +1 -1
  139. modoboa/frontend_dist/assets/VSelect-C3RjAa45.js +1 -0
  140. modoboa/frontend_dist/assets/VSelectionControl-zyz-fJvC.js +1 -0
  141. modoboa/frontend_dist/assets/VSheet-BNx2X4Mk.js +1 -0
  142. modoboa/frontend_dist/assets/VSpacer-DinPiXs9.js +1 -0
  143. modoboa/frontend_dist/assets/VSwitch-DwxdeAEq.js +1 -0
  144. modoboa/frontend_dist/assets/VTable-DaLxa4FO.js +1 -0
  145. modoboa/frontend_dist/assets/VTabs-BP0Hgsgm.js +1 -0
  146. modoboa/frontend_dist/assets/VTextField-BzBVKKob.css +1 -0
  147. modoboa/frontend_dist/assets/VTextField-XoGTj1KG.js +1 -0
  148. modoboa/frontend_dist/assets/VTextarea-wBlRMIv_.js +1 -0
  149. modoboa/frontend_dist/assets/VToolbar-CFZfqeOr.js +1 -0
  150. modoboa/frontend_dist/assets/VWindowItem-BB7ETW3b.js +1 -0
  151. modoboa/frontend_dist/assets/WebmailLayout-_Hk1XhVq.js +1 -0
  152. modoboa/frontend_dist/assets/accounts-DUzbx6k8.js +1 -0
  153. modoboa/frontend_dist/assets/{admin-o-HRGnmT.js → admin-DewTk2H8.js} +1 -1
  154. modoboa/frontend_dist/assets/{aliases-DDVeehyg.js → aliases-4sXmjwXp.js} +1 -1
  155. modoboa/frontend_dist/assets/amavis-CC0li7_T.js +1 -0
  156. modoboa/frontend_dist/assets/amavis-DK8SHE6o.js +1 -0
  157. modoboa/frontend_dist/assets/{contacts-C84DY-Q1.js → contacts-BjghrPqZ.js} +1 -1
  158. modoboa/frontend_dist/assets/{domains-Bgn4ixHL.js → domains-BSawReeu.js} +1 -1
  159. modoboa/frontend_dist/assets/{domains.store-DTE-V7Y1.js → domains.store-D-vWCEIK.js} +1 -1
  160. modoboa/frontend_dist/assets/{filter-CnffiQAW.js → filter-C82FUCw_.js} +1 -1
  161. modoboa/frontend_dist/assets/forwardRefs-cvcnlhoK.js +1 -0
  162. modoboa/frontend_dist/assets/global.store-DbkcI5o2.js +1 -0
  163. modoboa/frontend_dist/assets/{importExport-BlQYb0NO.js → importExport-DzoL4Mvc.js} +1 -1
  164. modoboa/frontend_dist/assets/index-BImkz5Jx.js +984 -0
  165. modoboa/frontend_dist/assets/layout-C5FyYCHK.js +1 -0
  166. modoboa/frontend_dist/assets/{layout.store-DkjrAoXt.js → layout.store-NXWtFIwL.js} +1 -1
  167. modoboa/frontend_dist/assets/{logos-q8SEyAa4.js → logos-BswdveCV.js} +1 -1
  168. modoboa/frontend_dist/assets/{logs-B7IJ7LBa.js → logs-6CbtfaZS.js} +1 -1
  169. modoboa/frontend_dist/assets/{parameters-A6iBEYQq.js → parameters-aSQiR7kN.js} +1 -1
  170. modoboa/frontend_dist/assets/{parameters.store-BiXS4_6w.js → parameters.store-CzQqVatx.js} +1 -1
  171. modoboa/frontend_dist/assets/permissions-DNoefz-n.js +1 -0
  172. modoboa/frontend_dist/assets/{ssrBoot-AzTdjPjk.js → ssrBoot-CKUX4kcb.js} +1 -1
  173. modoboa/frontend_dist/assets/{tag-BnSYRTcD.js → tag-B_yWNNJD.js} +1 -1
  174. modoboa/frontend_dist/assets/transports-BDNB9wR5.js +1 -0
  175. modoboa/frontend_dist/assets/{webmail-CSH_3l6R.js → webmail-CdU6CD9b.js} +1 -1
  176. modoboa/frontend_dist/index.html +1 -1
  177. modoboa/lib/email_utils.py +2 -2
  178. modoboa/lib/permissions.py +7 -0
  179. modoboa/lib/test_runners.py +29 -0
  180. modoboa/lib/tests/__init__.py +5 -1
  181. modoboa/locale/br/LC_MESSAGES/django.po +87 -75
  182. modoboa/locale/cs/LC_MESSAGES/django.po +82 -74
  183. modoboa/locale/cs_CZ/LC_MESSAGES/django.po +145 -121
  184. modoboa/locale/de/LC_MESSAGES/django.mo +0 -0
  185. modoboa/locale/de/LC_MESSAGES/django.po +339 -651
  186. modoboa/locale/de_DE/LC_MESSAGES/django.po +87 -75
  187. modoboa/locale/el_GR/LC_MESSAGES/django.po +160 -135
  188. modoboa/locale/en/LC_MESSAGES/django.po +82 -74
  189. modoboa/locale/es/LC_MESSAGES/django.po +158 -131
  190. modoboa/locale/es_MX/LC_MESSAGES/django.po +82 -74
  191. modoboa/locale/fi/LC_MESSAGES/django.po +87 -75
  192. modoboa/locale/fr/LC_MESSAGES/django.mo +0 -0
  193. modoboa/locale/fr/LC_MESSAGES/django.po +469 -201
  194. modoboa/locale/hu/LC_MESSAGES/django.po +82 -74
  195. modoboa/locale/it/LC_MESSAGES/django.mo +0 -0
  196. modoboa/locale/it/LC_MESSAGES/django.po +148 -122
  197. modoboa/locale/ja_JP/LC_MESSAGES/django.mo +0 -0
  198. modoboa/locale/ja_JP/LC_MESSAGES/django.po +80 -72
  199. modoboa/locale/ka/LC_MESSAGES/django.po +82 -74
  200. modoboa/locale/nl_NL/LC_MESSAGES/django.po +160 -132
  201. modoboa/locale/no/LC_MESSAGES/django.po +82 -74
  202. modoboa/locale/pl_PL/LC_MESSAGES/django.mo +0 -0
  203. modoboa/locale/pl_PL/LC_MESSAGES/django.po +172 -149
  204. modoboa/locale/pt_BR/LC_MESSAGES/django.mo +0 -0
  205. modoboa/locale/pt_BR/LC_MESSAGES/django.po +172 -144
  206. modoboa/locale/pt_PT/LC_MESSAGES/django.po +135 -112
  207. modoboa/locale/ro_RO/LC_MESSAGES/django.po +87 -75
  208. modoboa/locale/ru/LC_MESSAGES/django.po +142 -118
  209. modoboa/locale/si/LC_MESSAGES/django.po +82 -74
  210. modoboa/locale/sk/LC_MESSAGES/django.po +82 -74
  211. modoboa/locale/sk_SK/LC_MESSAGES/django.po +84 -76
  212. modoboa/locale/sl_SI/LC_MESSAGES/django.po +90 -76
  213. modoboa/locale/sv/LC_MESSAGES/django.mo +0 -0
  214. modoboa/locale/sv/LC_MESSAGES/django.po +172 -139
  215. modoboa/locale/tr/LC_MESSAGES/django.po +87 -75
  216. modoboa/locale/tr_TR/LC_MESSAGES/django.po +84 -74
  217. modoboa/locale/uk/LC_MESSAGES/django.po +82 -74
  218. modoboa/locale/zh/LC_MESSAGES/django.po +82 -74
  219. modoboa/locale/zh_CN/LC_MESSAGES/django.po +82 -74
  220. modoboa/locale/zh_TW/LC_MESSAGES/django.po +87 -75
  221. modoboa/parameters/api/v2/tests.py +2 -2
  222. modoboa/parameters/api/v2/viewsets.py +2 -0
  223. modoboa/policyd/tests.py +2 -0
  224. modoboa/urls_api_v2.py +6 -0
  225. {modoboa-2.4.11.dist-info → modoboa-2.5.0.dist-info}/METADATA +6 -4
  226. {modoboa-2.4.11.dist-info → modoboa-2.5.0.dist-info}/RECORD +231 -181
  227. modoboa/frontend_dist/assets/AccountAliasForm-BV6KvTu6.js +0 -1
  228. modoboa/frontend_dist/assets/AccountEditView-DDOFyfBD.js +0 -1
  229. modoboa/frontend_dist/assets/AccountLayout-rX51xgxT.js +0 -1
  230. modoboa/frontend_dist/assets/AccountPasswordSubForm-D9S6LaeH.js +0 -1
  231. modoboa/frontend_dist/assets/AccountView-cmvaZNq3.js +0 -1
  232. modoboa/frontend_dist/assets/AddressBook-DCJxL8SU.js +0 -1
  233. modoboa/frontend_dist/assets/AdminLayout-r0wfG2lO.js +0 -1
  234. modoboa/frontend_dist/assets/AlarmsView-Bheey-gp.css +0 -1
  235. modoboa/frontend_dist/assets/AlarmsView-C0bqC4PA.js +0 -1
  236. modoboa/frontend_dist/assets/AliasEditView-DVoWoCGY.js +0 -1
  237. modoboa/frontend_dist/assets/AliasView-DrONZXOh.js +0 -1
  238. modoboa/frontend_dist/assets/AuditTrailView-OTkoZaMU.js +0 -1
  239. modoboa/frontend_dist/assets/CalendarView-CqF4_Ui9.js +0 -1
  240. modoboa/frontend_dist/assets/ComposeEmailForm-DO5_GB3e.js +0 -1
  241. modoboa/frontend_dist/assets/ComposeEmailView-A91HCBsN.js +0 -1
  242. modoboa/frontend_dist/assets/ConfirmDialog-BBcgdAnO.js +0 -1
  243. modoboa/frontend_dist/assets/ConnectedLayout-1oRW-Rql.js +0 -1
  244. modoboa/frontend_dist/assets/CreationForm-71YJbjsA.js +0 -1
  245. modoboa/frontend_dist/assets/DashboardView-CdLpSfUl.js +0 -1
  246. modoboa/frontend_dist/assets/DomainAdminList-BjC4KsqI.js +0 -1
  247. modoboa/frontend_dist/assets/DomainEditView-CQjKwYxl.js +0 -1
  248. modoboa/frontend_dist/assets/DomainView-BhhuZI_N.js +0 -5
  249. modoboa/frontend_dist/assets/DomainsView-Cft4BP8Z.js +0 -1
  250. modoboa/frontend_dist/assets/DomainsView-DasJ0NdZ.css +0 -1
  251. modoboa/frontend_dist/assets/EmailField-C8umy0EU.js +0 -1
  252. modoboa/frontend_dist/assets/EmailView-ki7uEQPD.js +0 -1
  253. modoboa/frontend_dist/assets/EmptyLayout-DaA1XH9n.js +0 -1
  254. modoboa/frontend_dist/assets/FiltersView-FYFZxG4B.js +0 -1
  255. modoboa/frontend_dist/assets/ForwardEmailView-cUbnSYCF.js +0 -1
  256. modoboa/frontend_dist/assets/IdentitiesView-njNo8N5n.js +0 -1
  257. modoboa/frontend_dist/assets/InformationView-D1h38POt.js +0 -1
  258. modoboa/frontend_dist/assets/InformationView-U5Ww-Sx1.css +0 -1
  259. modoboa/frontend_dist/assets/MailboxView-IlrLWm_H.js +0 -1
  260. modoboa/frontend_dist/assets/MenuItems-BAtHWzAE.js +0 -1
  261. modoboa/frontend_dist/assets/MessagesView-OSpjixFq.js +0 -1
  262. modoboa/frontend_dist/assets/MigrationsView-DKNOsVzF.js +0 -1
  263. modoboa/frontend_dist/assets/ParametersView-C4bXASiq.js +0 -1
  264. modoboa/frontend_dist/assets/ParametersView-CYXgNmc1.js +0 -1
  265. modoboa/frontend_dist/assets/ProviderEditView-CyxCWTST.js +0 -1
  266. modoboa/frontend_dist/assets/ProviderGeneralForm-BYPjNHqB.js +0 -1
  267. modoboa/frontend_dist/assets/ProvidersView-CxrMkRyk.js +0 -1
  268. modoboa/frontend_dist/assets/ReplyEmailView-Dkw9-N26.js +0 -1
  269. modoboa/frontend_dist/assets/ResourcesForm-CuUvrOdY.js +0 -1
  270. modoboa/frontend_dist/assets/StatisticsView-BN7QsZMT.js +0 -1
  271. modoboa/frontend_dist/assets/TimeSerieChart-BMN8BeFZ.js +0 -1
  272. modoboa/frontend_dist/assets/UserLayout-B6-JQg4F.js +0 -1
  273. modoboa/frontend_dist/assets/VAlert-DIQTrRif.js +0 -1
  274. modoboa/frontend_dist/assets/VApp-CpkYA7js.js +0 -1
  275. modoboa/frontend_dist/assets/VAutocomplete-C4IpXyl8.js +0 -1
  276. modoboa/frontend_dist/assets/VAvatar-Lpb-Dion.js +0 -1
  277. modoboa/frontend_dist/assets/VCard-er_isjE_.js +0 -1
  278. modoboa/frontend_dist/assets/VCheckbox-D-u8JXP1.js +0 -1
  279. modoboa/frontend_dist/assets/VChip-B4iSpj8_.js +0 -1
  280. modoboa/frontend_dist/assets/VColorPicker-BAjGDsXv.js +0 -1
  281. modoboa/frontend_dist/assets/VDataTable-4JRjbtgF.js +0 -1
  282. modoboa/frontend_dist/assets/VDataTableServer-tIDT1m3-.js +0 -1
  283. modoboa/frontend_dist/assets/VDataTableVirtual-BlnO18u_.js +0 -1
  284. modoboa/frontend_dist/assets/VExpansionPanels-CwGtXDhr.js +0 -1
  285. modoboa/frontend_dist/assets/VFileInput-D1_7ZkO_.js +0 -1
  286. modoboa/frontend_dist/assets/VForm-DAkW4nfy.js +0 -1
  287. modoboa/frontend_dist/assets/VMenu-BPFJwj2f.js +0 -1
  288. modoboa/frontend_dist/assets/VPicker-CfT82M8N.js +0 -1
  289. modoboa/frontend_dist/assets/VProgressCircular-w75-3ogi.js +0 -1
  290. modoboa/frontend_dist/assets/VRadioGroup-0j6DNC_k.js +0 -1
  291. modoboa/frontend_dist/assets/VSelect-Cs4ARbAS.js +0 -1
  292. modoboa/frontend_dist/assets/VSelectionControl-Dg-XyRRS.js +0 -1
  293. modoboa/frontend_dist/assets/VSheet-Btq_Mu4s.js +0 -1
  294. modoboa/frontend_dist/assets/VSpacer-C7xukQmu.js +0 -1
  295. modoboa/frontend_dist/assets/VSwitch-Cs1NQrmk.js +0 -1
  296. modoboa/frontend_dist/assets/VTable-CNz2SGk4.js +0 -1
  297. modoboa/frontend_dist/assets/VTabs-B1fyVn4M.js +0 -1
  298. modoboa/frontend_dist/assets/VTextField-BdyvgvkG.js +0 -1
  299. modoboa/frontend_dist/assets/VTextField-C-J20yj_.css +0 -1
  300. modoboa/frontend_dist/assets/VTextarea-DnOMpe0Q.js +0 -1
  301. modoboa/frontend_dist/assets/VToolbar-BiCiBxBJ.js +0 -1
  302. modoboa/frontend_dist/assets/VWindowItem-ChWm_kz3.js +0 -1
  303. modoboa/frontend_dist/assets/WebmailLayout-o4uEkp9e.js +0 -1
  304. modoboa/frontend_dist/assets/forwardRefs-Dvjn_Xq4.js +0 -1
  305. modoboa/frontend_dist/assets/global.store-BaiD63EN.js +0 -1
  306. modoboa/frontend_dist/assets/index-I1VDlN4g.js +0 -984
  307. modoboa/frontend_dist/assets/layout-D8ZJPiJ_.js +0 -1
  308. modoboa/frontend_dist/assets/permissions-CITHLHVg.js +0 -1
  309. modoboa/frontend_dist/assets/transports-Dz7c6kIy.js +0 -1
  310. {modoboa-2.4.11.data → modoboa-2.5.0.data}/scripts/modoboa-admin.py +0 -0
  311. {modoboa-2.4.11.dist-info → modoboa-2.5.0.dist-info}/WHEEL +0 -0
  312. {modoboa-2.4.11.dist-info → modoboa-2.5.0.dist-info}/entry_points.txt +0 -0
  313. {modoboa-2.4.11.dist-info → modoboa-2.5.0.dist-info}/licenses/LICENSE +0 -0
  314. {modoboa-2.4.11.dist-info → modoboa-2.5.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-07-27 10:50+0200\n"
13
+ "POT-Creation-Date: 2025-08-28 09:41+0200\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/"
@@ -31,75 +31,76 @@ msgstr ""
31
31
  msgid "Default quota in MB applied to mailboxes. A value of 0 means no quota."
32
32
  msgstr ""
33
33
 
34
- #: admin/api/v1/serializers.py:88
34
+ #: admin/api/v1/serializers.py:94
35
35
  #, fuzzy
36
36
  #| msgid "Enter a valid email address."
37
37
  msgid "domain alias with this name already exists"
38
38
  msgstr "Geben Sie eine gültige E-Mail-Adresse ein."
39
39
 
40
- #: admin/api/v1/serializers.py:98
40
+ #: admin/api/v1/serializers.py:104
41
41
  msgid "No authorized MX record found for this domain"
42
42
  msgstr ""
43
43
 
44
- #: admin/api/v1/serializers.py:116
44
+ #: admin/api/v1/serializers.py:122
45
45
  msgid "Cannot be greater than domain quota"
46
46
  msgstr ""
47
47
 
48
- #: admin/api/v1/serializers.py:162 admin/api/v1/serializers.py:357
49
- #: admin/api/v2/serializers.py:548 admin/models/alias.py:44
48
+ #: admin/api/v1/serializers.py:168 admin/api/v1/serializers.py:364
49
+ #: admin/api/v2/serializers.py:564 admin/models/alias.py:44
50
50
  #, fuzzy
51
51
  #| msgid "Permission denied"
52
52
  msgid "Permission denied."
53
53
  msgstr "Zugriff verweigert"
54
54
 
55
- #: admin/api/v1/serializers.py:224 admin/api/v2/serializers.py:88
56
- #: admin/api/v2/serializers.py:470 core/api/v2/serializers.py:235
57
- #: core/api/v2/serializers.py:237 core/api/v2/serializers.py:246
55
+ #: admin/api/v1/serializers.py:231 admin/api/v2/serializers.py:90
56
+ #: admin/api/v2/serializers.py:486 core/api/v2/serializers.py:255
57
+ #: core/api/v2/serializers.py:257 core/api/v2/serializers.py:266
58
58
  #: transport/backends.py:40
59
59
  msgid "This field is required"
60
60
  msgstr "Dieses Feld ist erforderlich"
61
61
 
62
- #: admin/api/v1/serializers.py:236
62
+ #: admin/api/v1/serializers.py:243
63
63
  #, fuzzy
64
64
  #| msgid "Hide features widget for resellers and domain administrators"
65
65
  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:330 admin/api/v2/serializers.py:530
69
+ #: admin/api/v1/serializers.py:337 admin/api/v2/serializers.py:546
70
70
  msgid "Not allowed for this role."
71
71
  msgstr ""
72
72
 
73
- #: admin/api/v1/serializers.py:348
73
+ #: admin/api/v1/serializers.py:355
74
74
  msgid "Must be equal to mailbox full_address"
75
75
  msgstr ""
76
76
 
77
- #: admin/api/v1/serializers.py:390 admin/api/v2/serializers.py:582
77
+ #: admin/api/v1/serializers.py:397 admin/api/v2/serializers.py:598
78
78
  #: calendars/serializers.py:175 calendars/serializers.py:177
79
+ #: pdfcredentials/api/v2/serializers.py:91
79
80
  #, fuzzy
80
81
  #| msgid "This field is required"
81
82
  msgid "This field is required."
82
83
  msgstr "Dieses Feld ist erforderlich"
83
84
 
84
- #: admin/api/v1/serializers.py:402 admin/api/v2/serializers.py:599
85
+ #: admin/api/v1/serializers.py:409 admin/api/v2/serializers.py:615
85
86
  msgid "Local domain {} does not exist"
86
87
  msgstr ""
87
88
 
88
- #: admin/api/v1/serializers.py:492
89
+ #: admin/api/v1/serializers.py:499
89
90
  msgid "A list of recipient"
90
91
  msgstr ""
91
92
 
92
- #: admin/api/v1/serializers.py:508 admin/api/v2/viewsets.py:286
93
+ #: admin/api/v1/serializers.py:515 admin/api/v2/viewsets.py:286
93
94
  #, fuzzy
94
95
  #| msgid "Enter a valid email address."
95
96
  msgid "This alias already exists"
96
97
  msgstr "Geben Sie eine gültige E-Mail-Adresse ein."
97
98
 
98
- #: admin/api/v1/serializers.py:544
99
+ #: admin/api/v1/serializers.py:551
99
100
  msgid "You don't have access to this domain."
100
101
  msgstr ""
101
102
 
102
- #: admin/api/v1/serializers.py:553
103
+ #: admin/api/v1/serializers.py:560
103
104
  msgid "You don't have access to this mailbox."
104
105
  msgstr ""
105
106
 
@@ -107,56 +108,56 @@ msgstr ""
107
108
  msgid "Here is your new Modoboa password: {}"
108
109
  msgstr ""
109
110
 
110
- #: admin/api/v2/serializers.py:80
111
+ #: admin/api/v2/serializers.py:82
111
112
  msgid "DKIM keys storage directory not configured"
112
113
  msgstr ""
113
114
 
114
- #: admin/api/v2/serializers.py:92
115
+ #: admin/api/v2/serializers.py:94
115
116
  msgid "This field is valid when type is relaydomain"
116
117
  msgstr ""
117
118
 
118
- #: admin/api/v2/serializers.py:99
119
+ #: admin/api/v2/serializers.py:101
119
120
  msgid "You can't define an unlimited quota."
120
121
  msgstr ""
121
122
 
122
- #: admin/api/v2/serializers.py:133
123
+ #: admin/api/v2/serializers.py:135
123
124
  #, python-format
124
125
  msgid "User '%s' already exists"
125
126
  msgstr ""
126
127
 
127
- #: admin/api/v2/serializers.py:248 admin/api/v2/serializers.py:254
128
+ #: admin/api/v2/serializers.py:250 admin/api/v2/serializers.py:256
128
129
  msgid "Must be a positive integer"
129
130
  msgstr ""
130
131
 
131
- #: admin/api/v2/serializers.py:263
132
+ #: admin/api/v2/serializers.py:265
132
133
  msgid "openssl not found, please make sure it is installed."
133
134
  msgstr ""
134
135
 
135
- #: admin/api/v2/serializers.py:266 pdfcredentials/api/v2/serializers.py:79
136
+ #: admin/api/v2/serializers.py:268 pdfcredentials/api/v2/serializers.py:84
136
137
  msgid "Directory not found."
137
138
  msgstr ""
138
139
 
139
- #: admin/api/v2/serializers.py:277
140
+ #: admin/api/v2/serializers.py:279
140
141
  msgid "This field only allows valid IP addresses (or networks)"
141
142
  msgstr ""
142
143
 
143
- #: admin/api/v2/serializers.py:290
144
+ #: admin/api/v2/serializers.py:292
144
145
  msgid "Please disable imap migration before disabling this option."
145
146
  msgstr ""
146
147
 
147
- #: admin/api/v2/serializers.py:303
148
+ #: admin/api/v2/serializers.py:305
148
149
  msgid "Define at least one authorized network / address"
149
150
  msgstr ""
150
151
 
151
- #: admin/api/v2/serializers.py:565
152
+ #: admin/api/v2/serializers.py:581
152
153
  msgid "The left part of an email address can't be more than 64 characters."
153
154
  msgstr ""
154
155
 
155
- #: admin/api/v2/serializers.py:587
156
+ #: admin/api/v2/serializers.py:603
156
157
  msgid "A mailbox is required to create aliases."
157
158
  msgstr ""
158
159
 
159
- #: admin/api/v2/serializers.py:751
160
+ #: admin/api/v2/serializers.py:772
160
161
  #, fuzzy
161
162
  #| msgid "Unknown tag {}"
162
163
  msgid "Unknown status"
@@ -172,14 +173,6 @@ msgstr ""
172
173
  msgid "You can't delete your own domain"
173
174
  msgstr "Sie können Ihr eigenes Konto nicht löschen"
174
175
 
175
- #: admin/api/v2/viewsets.py:407
176
- msgid "No alarm ID provided"
177
- msgstr ""
178
-
179
- #: admin/api/v2/viewsets.py:411
180
- msgid "Received invalid alarm id(s)"
181
- msgstr ""
182
-
183
176
  #: admin/app_settings.py:19 limits/app_settings.py:38 limits/constants.py:13
184
177
  msgid "Domains"
185
178
  msgstr ""
@@ -384,7 +377,7 @@ msgstr ""
384
377
  msgid "Create an alias using the old address when a mailbox is renamed."
385
378
  msgstr ""
386
379
 
387
- #: admin/app_settings.py:287 core/api/v2/viewsets.py:162
380
+ #: admin/app_settings.py:287 core/api/v2/viewsets.py:174
388
381
  #, fuzzy
389
382
  #| msgid "Administrator groups"
390
383
  msgid "Administration"
@@ -419,7 +412,7 @@ msgstr ""
419
412
  msgid "Account import failed (%s): domain does not exist"
420
413
  msgstr ""
421
414
 
422
- #: admin/handlers.py:242 admin/models/mailbox.py:340
415
+ #: admin/handlers.py:242 admin/models/mailbox.py:342
423
416
  msgid "Mailbox {} already exists"
424
417
  msgstr ""
425
418
 
@@ -701,7 +694,7 @@ msgstr "Dieses Feld ist erforderlich"
701
694
  msgid "{}: domain quota exceeded"
702
695
  msgstr ""
703
696
 
704
- #: admin/models/mailbox.py:308
697
+ #: admin/models/mailbox.py:310
705
698
  msgid "Domain does not exist"
706
699
  msgstr ""
707
700
 
@@ -868,7 +861,7 @@ msgid ""
868
861
  "Maximum size in bytes of imported ICS files (or KB, MB, GB if specified)"
869
862
  msgstr ""
870
863
 
871
- #: calendars/app_settings.py:89 core/api/v2/viewsets.py:172
864
+ #: calendars/app_settings.py:89 core/api/v2/viewsets.py:195
872
865
  msgid "Calendars"
873
866
  msgstr ""
874
867
 
@@ -906,7 +899,7 @@ msgstr "LDAP-Synchronisationseinstellungen"
906
899
  msgid "Interval in seconds between 2 synchronization requests"
907
900
  msgstr ""
908
901
 
909
- #: contacts/app_settings.py:51 core/api/v2/viewsets.py:179
902
+ #: contacts/app_settings.py:51 core/api/v2/viewsets.py:185
910
903
  msgid "Contacts"
911
904
  msgstr ""
912
905
 
@@ -956,12 +949,12 @@ msgstr "Ungültiger PIN-Code"
956
949
  msgid "2FA is already enabled"
957
950
  msgstr "2FA ist bereits aktiviert"
958
951
 
959
- #: core/api/v1/serializers.py:87
952
+ #: core/api/v1/serializers.py:86
960
953
  #, python-format
961
- msgid "Failed TFA settings editing attempt from '%s' as user '%s'"
954
+ msgid "Failed TFA settings editing attempt from '%(addr)s' as user '%(user)s'"
962
955
  msgstr ""
963
956
 
964
- #: core/api/v1/serializers.py:91 core/api/v2/serializers.py:425
957
+ #: core/api/v1/serializers.py:91 core/api/v2/serializers.py:445
965
958
  #, fuzzy
966
959
  #| msgid "Old password"
967
960
  msgid "Invalid password"
@@ -975,46 +968,46 @@ msgstr "2FA ist nicht aktiviert"
975
968
  msgid "Local"
976
969
  msgstr "Lokal"
977
970
 
978
- #: core/api/v2/serializers.py:175 core/app_settings.py:17
971
+ #: core/api/v2/serializers.py:194 core/app_settings.py:17
979
972
  msgid "User profile"
980
973
  msgstr "Benutzerprofil"
981
974
 
982
- #: core/api/v2/serializers.py:194 core/api/v2/serializers.py:201
983
- #: core/api/v2/serializers.py:208
975
+ #: core/api/v2/serializers.py:213 core/api/v2/serializers.py:221
976
+ #: core/api/v2/serializers.py:228
984
977
  msgid "Invalid syntax"
985
978
  msgstr "Ungültige Syntax"
986
979
 
987
- #: core/api/v2/serializers.py:213
980
+ #: core/api/v2/serializers.py:233
988
981
  msgid "Invalid rounds number"
989
982
  msgstr "Ungültige Anzahl Runden"
990
983
 
991
- #: core/api/v2/serializers.py:413 core/forms.py:81
984
+ #: core/api/v2/serializers.py:433 core/forms.py:81
992
985
  msgid "This code is invalid"
993
986
  msgstr "Dieser Code ist ungültig"
994
987
 
995
- #: core/api/v2/serializers.py:483 core/views/auth.py:194 core/views/auth.py:247
988
+ #: core/api/v2/serializers.py:503 core/views/auth.py:194 core/views/auth.py:247
996
989
  msgid "Please use the following code to recover your Modoboa password: {}"
997
990
  msgstr ""
998
991
  "Bitte verwenden Sie den folgenden Code, um Ihr Modoboa-Passwort "
999
992
  "wiederherzustellen: {}"
1000
993
 
1001
- #: core/api/v2/viewsets.py:164
994
+ #: core/api/v2/viewsets.py:176
1002
995
  #, fuzzy
1003
996
  #| msgid "Administrator groups"
1004
997
  msgid "Administration console"
1005
998
  msgstr "Administratorgruppen"
1006
999
 
1007
- #: core/api/v2/viewsets.py:174
1008
- msgid "Calendar"
1009
- msgstr ""
1010
-
1011
- #: core/api/v2/viewsets.py:181
1000
+ #: core/api/v2/viewsets.py:187
1012
1001
  #, fuzzy
1013
1002
  #| msgid "From address"
1014
1003
  msgid "Address book"
1015
1004
  msgstr "Absender-Adresse"
1016
1005
 
1017
- #: core/api/v2/viewsets.py:186 core/api/v2/viewsets.py:188
1006
+ #: core/api/v2/viewsets.py:197
1007
+ msgid "Calendar"
1008
+ msgstr ""
1009
+
1010
+ #: core/api/v2/viewsets.py:205 core/api/v2/viewsets.py:207
1018
1011
  #: webmail/app_settings.py:258 webmail/app_settings.py:265
1019
1012
  msgid "Webmail"
1020
1013
  msgstr ""
@@ -1574,19 +1567,27 @@ msgstr "Maximales Alter eines Log-Eintrags"
1574
1567
  msgid "The maximum age in days of a log record"
1575
1568
  msgstr "Das maximale Alter eines Protokollsatzes in Tagen"
1576
1569
 
1577
- #: core/app_settings.py:726
1570
+ #: core/app_settings.py:727
1571
+ msgid "Retention time in message history"
1572
+ msgstr ""
1573
+
1574
+ #: core/app_settings.py:730
1575
+ msgid "Retention time (in days) of a message in the message history section"
1576
+ msgstr ""
1577
+
1578
+ #: core/app_settings.py:737
1578
1579
  msgid "Items per page"
1579
1580
  msgstr "Einträge pro Seite"
1580
1581
 
1581
- #: core/app_settings.py:728
1582
+ #: core/app_settings.py:739
1582
1583
  msgid "Number of displayed items per page"
1583
1584
  msgstr "Anzahl der angezeigten Einträge pro Seite"
1584
1585
 
1585
- #: core/app_settings.py:735
1586
+ #: core/app_settings.py:746
1586
1587
  msgid "Default top redirection"
1587
1588
  msgstr "Standardumleitung"
1588
1589
 
1589
- #: core/app_settings.py:737
1590
+ #: core/app_settings.py:748
1590
1591
  msgid "The default redirection used when no application is specified"
1591
1592
  msgstr ""
1592
1593
  "Die Standardumleitung, die verwendet wird, wenn keine Anwendung angegeben "
@@ -1624,8 +1625,8 @@ msgstr ""
1624
1625
 
1625
1626
  #: core/checks.py:34
1626
1627
  msgid ""
1627
- "Visit : https://modoboa.readthedocs.io/en/latest/manual_installation/dovecot."
1628
- "html#dovecot-oauth2"
1628
+ "Visit : https://modoboa.readthedocs.io/en/latest/manual_installation/"
1629
+ "dovecot.html#dovecot-oauth2"
1629
1630
  msgstr ""
1630
1631
 
1631
1632
  #: core/checks.py:41
@@ -2132,8 +2133,8 @@ msgstr ""
2132
2133
  #: imap_migration/app_settings.py:76
2133
2134
  msgid ""
2134
2135
  "A comma seperated list of folders to explicitly include in sync even if "
2135
- "filtered by the Folder Filter Exclusions. Example: debian.user, debian."
2136
- "personal "
2136
+ "filtered by the Folder Filter Exclusions. Example: debian.user, "
2137
+ "debian.personal "
2137
2138
  msgstr ""
2138
2139
 
2139
2140
  #: imap_migration/apps.py:20
@@ -2142,11 +2143,6 @@ msgstr ""
2142
2143
  msgid "IMAP Migration"
2143
2144
  msgstr "Automatische Konfiguration"
2144
2145
 
2145
- #: imap_migration/auth_backends.py:49 webmail/lib/imaputils.py:240
2146
- #, python-brace-format
2147
- msgid "Connection to IMAP server failed: {error}"
2148
- msgstr ""
2149
-
2150
2146
  #: imap_migration/checks.py:12
2151
2147
  msgid ""
2152
2148
  "Automatic domain/mailbox creation is disabled which means IMAP "
@@ -2476,13 +2472,13 @@ msgstr "Konten"
2476
2472
  msgid "Personal account information"
2477
2473
  msgstr "Aktualisieren Sie Ihre persönlichen Daten"
2478
2474
 
2479
- #: pdfcredentials/api/v2/serializers.py:81
2475
+ #: pdfcredentials/api/v2/serializers.py:86
2480
2476
  #, fuzzy
2481
2477
  #| msgid "Directory to store RRD files"
2482
2478
  msgid "Directory is not writable"
2483
2479
  msgstr "Ablageverzeichnis für RRD-Dateien"
2484
2480
 
2485
- #: pdfcredentials/api/v2/serializers.py:102
2481
+ #: pdfcredentials/api/v2/serializers.py:114
2486
2482
  msgid "No document available for this user"
2487
2483
  msgstr ""
2488
2484
 
@@ -3308,16 +3304,32 @@ msgstr ""
3308
3304
  msgid "User defined email signature"
3309
3305
  msgstr ""
3310
3306
 
3307
+ #: webmail/exceptions.py:18
3308
+ #, fuzzy
3309
+ #| msgid "Server address"
3310
+ msgid "Server response"
3311
+ msgstr "Serveradresse"
3312
+
3311
3313
  #: webmail/lib/attachments.py:112
3312
3314
  #, fuzzy
3313
3315
  #| msgid "Failed to create LDAP account: {}"
3314
3316
  msgid "Failed to remove attachment: "
3315
3317
  msgstr "LDAP-Konto konnte nicht erstellt werden: {}"
3316
3318
 
3319
+ #: webmail/lib/imapemail.py:272
3320
+ msgid "wrote:"
3321
+ msgstr ""
3322
+
3317
3323
  #: webmail/lib/imapemail.py:306
3318
3324
  msgid "Date"
3319
3325
  msgstr "Datum"
3320
3326
 
3327
+ #: webmail/lib/imapemail.py:322 webmail/lib/imapemail.py:325
3328
+ #, fuzzy
3329
+ #| msgid "sent messages"
3330
+ msgid "Original message"
3331
+ msgstr "Gesendete Nachrichten"
3332
+
3321
3333
  #: webmail/lib/imaputils.py:221
3322
3334
  msgid "Failed to retrieve hierarchy delimiter"
3323
3335
  msgstr ""