modoboa 2.4.10__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 (331) hide show
  1. modoboa/admin/api/v1/serializers.py +1 -0
  2. modoboa/admin/api/v2/serializers.py +15 -1
  3. modoboa/admin/api/v2/tests.py +11 -1
  4. modoboa/admin/lib.py +1 -1
  5. modoboa/admin/models/mailbox.py +15 -13
  6. modoboa/admin/models/mxrecord.py +4 -0
  7. modoboa/admin/tests/test_import_.py +11 -11
  8. modoboa/amavis/__init__.py +3 -0
  9. modoboa/amavis/app_settings.py +276 -0
  10. modoboa/amavis/apps.py +18 -0
  11. modoboa/amavis/checks/__init__.py +2 -0
  12. modoboa/amavis/checks/settings_checks.py +59 -0
  13. modoboa/amavis/dbrouter.py +35 -0
  14. modoboa/amavis/factories.py +164 -0
  15. modoboa/amavis/handlers.py +146 -0
  16. modoboa/amavis/lib.py +381 -0
  17. modoboa/amavis/management/__init__.py +0 -0
  18. modoboa/amavis/management/commands/__init__.py +0 -0
  19. modoboa/amavis/management/commands/amnotify.py +99 -0
  20. modoboa/amavis/management/commands/qcleanup.py +84 -0
  21. modoboa/amavis/migrations/0001_initial.py +340 -0
  22. modoboa/amavis/migrations/__init__.py +0 -0
  23. modoboa/amavis/models.py +226 -0
  24. modoboa/amavis/serializers.py +139 -0
  25. modoboa/amavis/sql_connector.py +240 -0
  26. modoboa/amavis/sql_email.py +66 -0
  27. modoboa/amavis/tasks.py +33 -0
  28. modoboa/amavis/templates/amavis/notifications/pending_requests.html +16 -0
  29. modoboa/amavis/tests/__init__.py +0 -0
  30. modoboa/amavis/tests/sa-learn +3 -0
  31. modoboa/amavis/tests/sample_messages/quarantined-input.txt +80 -0
  32. modoboa/amavis/tests/sample_messages/quarantined-output-plain_nolinks.txt +17 -0
  33. modoboa/amavis/tests/spamc +3 -0
  34. modoboa/amavis/tests/test_checks.py +25 -0
  35. modoboa/amavis/tests/test_handlers.py +214 -0
  36. modoboa/amavis/tests/test_lib.py +90 -0
  37. modoboa/amavis/tests/test_management_commands.py +45 -0
  38. modoboa/amavis/tests/test_sql_email.py +67 -0
  39. modoboa/amavis/tests/test_utils.py +19 -0
  40. modoboa/amavis/tests/test_viewsets.py +319 -0
  41. modoboa/amavis/urls.py +11 -0
  42. modoboa/amavis/utils.py +105 -0
  43. modoboa/amavis/viewsets.py +265 -0
  44. modoboa/core/api/v1/serializers.py +7 -5
  45. modoboa/core/api/v2/serializers.py +13 -2
  46. modoboa/core/api/v2/tests.py +34 -4
  47. modoboa/core/api/v2/urls.py +10 -5
  48. modoboa/core/api/v2/views.py +23 -2
  49. modoboa/core/api/v2/viewsets.py +24 -3
  50. modoboa/core/app_settings.py +11 -0
  51. modoboa/core/fido2_auth.py +1 -2
  52. modoboa/core/handlers.py +6 -2
  53. modoboa/core/management/commands/add_allowed_hosts.py +33 -0
  54. modoboa/core/management/commands/cleanlogs.py +9 -0
  55. modoboa/core/management/commands/load_initial_data.py +10 -0
  56. modoboa/core/migrations/0025_rename_user_email_is_active_core_user_email_c0c03f_idx.py +23 -5
  57. modoboa/core/tests/test_core.py +29 -0
  58. modoboa/core/utils.py +6 -0
  59. modoboa/dnstools/api/v2/serializers.py +9 -11
  60. modoboa/frontend_dist/assets/AccountAliasForm-BuSy_1n9.js +1 -0
  61. modoboa/frontend_dist/assets/AccountEditView-qdJmLM_e.js +1 -0
  62. modoboa/frontend_dist/assets/AccountLayout-DrN7vHsX.js +1 -0
  63. modoboa/frontend_dist/assets/AccountPasswordSubForm-DZGt_Xgq.js +1 -0
  64. modoboa/frontend_dist/assets/AccountView-CO65y0vZ.js +1 -0
  65. modoboa/frontend_dist/assets/AddressBook-BZNUlhek.js +1 -0
  66. modoboa/frontend_dist/assets/AdminLayout-CTNhuwTw.js +1 -0
  67. modoboa/frontend_dist/assets/AlarmsView-9yKGbmkC.css +1 -0
  68. modoboa/frontend_dist/assets/AlarmsView-DN_JIw9g.js +1 -0
  69. modoboa/frontend_dist/assets/AliasEditView-DjpPUTp9.js +1 -0
  70. modoboa/frontend_dist/assets/{AliasRecipientForm-DVZXWaUX.js → AliasRecipientForm-B1Y8wFdP.js} +1 -1
  71. modoboa/frontend_dist/assets/AliasView-GOJ5lyQH.js +1 -0
  72. modoboa/frontend_dist/assets/AuditTrailView-fbXmq70e.js +1 -0
  73. modoboa/frontend_dist/assets/CalendarView-LlQQNEPL.js +1 -0
  74. modoboa/frontend_dist/assets/{ChoiceField-7eU7c_rI.js → ChoiceField-B3ReQHVe.js} +1 -1
  75. modoboa/frontend_dist/assets/ComposeEmailForm-Bs1fZXAL.js +1 -0
  76. modoboa/frontend_dist/assets/ComposeEmailView-s3LMl3pO.js +1 -0
  77. modoboa/frontend_dist/assets/ConfirmDialog-DY_kUHLG.js +1 -0
  78. modoboa/frontend_dist/assets/{ConnectedLayout-BaJZ3BeR.css → ConnectedLayout-Bxh21hcH.css} +1 -1
  79. modoboa/frontend_dist/assets/ConnectedLayout-UWjiYBNw.js +1 -0
  80. modoboa/frontend_dist/assets/CreationForm-ORg3fazt.js +1 -0
  81. modoboa/frontend_dist/assets/DashboardView-Dplk9itS.js +1 -0
  82. modoboa/frontend_dist/assets/{DashboardView-BLlMi6Qb.css → DashboardView-gwwVAPvt.css} +1 -1
  83. modoboa/frontend_dist/assets/DomainAdminList-DVn9x0rB.js +1 -0
  84. modoboa/frontend_dist/assets/DomainEditView-nAoL64D_.js +1 -0
  85. modoboa/frontend_dist/assets/{DomainTransportForm-DPnPGBOp.js → DomainTransportForm-CA-DNUxX.js} +1 -1
  86. modoboa/frontend_dist/assets/{DomainView-BDKoBFYr.css → DomainView-CCLYXPHx.css} +1 -1
  87. modoboa/frontend_dist/assets/DomainView-CdXPpwJG.js +5 -0
  88. modoboa/frontend_dist/assets/DomainsView-B_59gowf.js +1 -0
  89. modoboa/frontend_dist/assets/DomainsView-DZ-ss9bI.css +1 -0
  90. modoboa/frontend_dist/assets/EmailField-CwcwI5xW.js +1 -0
  91. modoboa/frontend_dist/assets/EmailView-BshxcfAK.js +1 -0
  92. modoboa/frontend_dist/assets/EmptyLayout-DFfhnhLi.js +1 -0
  93. modoboa/frontend_dist/assets/FiltersView-Cf20MSTK.js +1 -0
  94. modoboa/frontend_dist/assets/ForwardEmailView-CZG062os.js +1 -0
  95. modoboa/frontend_dist/assets/{HtmlEditor-uM4AtIGi.js → HtmlEditor-Bh4c689R.js} +1 -1
  96. modoboa/frontend_dist/assets/IdentitiesView-BXAuU1YX.js +1 -0
  97. modoboa/frontend_dist/assets/{IdentitiesView-jmuItyMZ.css → IdentitiesView-DPrrRMS5.css} +1 -1
  98. modoboa/frontend_dist/assets/InformationView-C9vvvQhJ.css +1 -0
  99. modoboa/frontend_dist/assets/InformationView-Cn5FZW7H.js +1 -0
  100. modoboa/frontend_dist/assets/{LoadingData-CVD2Aen8.js → LoadingData-CdVvm4FI.js} +1 -1
  101. modoboa/frontend_dist/assets/{LoginCallbackView-sWzBke1g.js → LoginCallbackView-B9hAH4MI.js} +1 -1
  102. modoboa/frontend_dist/assets/{LoginView-wmN73W0f.js → LoginView-tHIR4Adc.js} +1 -1
  103. modoboa/frontend_dist/assets/MailboxView-Bugu2vhg.js +1 -0
  104. modoboa/frontend_dist/assets/MenuItems-PXjiG-fs.js +1 -0
  105. modoboa/frontend_dist/assets/MessageView-Cy4STShm.js +1 -0
  106. modoboa/frontend_dist/assets/MessagesView-DdkuEgfX.js +1 -0
  107. modoboa/frontend_dist/assets/MigrationsView-CidSEjCF.js +1 -0
  108. modoboa/frontend_dist/assets/{ParametersForm-BCeQljir.js → ParametersForm-CAv4SH-E.js} +1 -1
  109. modoboa/frontend_dist/assets/ParametersView-CX7Ffemw.js +1 -0
  110. modoboa/frontend_dist/assets/ParametersView-CrbNcmV3.js +1 -0
  111. modoboa/frontend_dist/assets/ProviderEditView-CrltAQXl.js +1 -0
  112. modoboa/frontend_dist/assets/ProviderGeneralForm-BYAzVnXM.js +1 -0
  113. modoboa/frontend_dist/assets/ProvidersView-osjIY4Ex.js +1 -0
  114. modoboa/frontend_dist/assets/QuarantineLayout-B8EcU9vS.js +1 -0
  115. modoboa/frontend_dist/assets/QuarantineView-D4gOE4EQ.css +1 -0
  116. modoboa/frontend_dist/assets/QuarantineView-D8Qg0MXA.js +1 -0
  117. modoboa/frontend_dist/assets/ReplyEmailView-BABPqWhd.js +1 -0
  118. modoboa/frontend_dist/assets/ResourcesForm-OaqdRYVs.js +1 -0
  119. modoboa/frontend_dist/assets/SelfServiceLayout-d277YTGR.js +1 -0
  120. modoboa/frontend_dist/assets/SettingsView-9iNcDhkI.js +6 -0
  121. modoboa/frontend_dist/assets/StatisticsView-cHsPyGkL.js +1 -0
  122. modoboa/frontend_dist/assets/TimeSerieChart--V83dcJ9.js +1 -0
  123. modoboa/frontend_dist/assets/UserLayout-B3sBiTcZ.js +1 -0
  124. modoboa/frontend_dist/assets/VAlert-BuaaYN2h.js +1 -0
  125. modoboa/frontend_dist/assets/VApp-CKP-6zGP.js +1 -0
  126. modoboa/frontend_dist/assets/VAutocomplete-Dwv6_Rzq.js +1 -0
  127. modoboa/frontend_dist/assets/VAvatar-Cmga0vj6.js +1 -0
  128. modoboa/frontend_dist/assets/VBadge-BQrRJ9S0.css +1 -0
  129. modoboa/frontend_dist/assets/VBadge-CixeK87a.js +1 -0
  130. modoboa/frontend_dist/assets/VCard-CxH9DWoK.js +1 -0
  131. modoboa/frontend_dist/assets/VCheckbox-62GOpvvP.js +1 -0
  132. modoboa/frontend_dist/assets/{VCheckboxBtn-j7di4leN.js → VCheckboxBtn-DMoNtKT8.js} +1 -1
  133. modoboa/frontend_dist/assets/VChip-D_styETR.js +1 -0
  134. modoboa/frontend_dist/assets/VColorPicker-BHscBGQV.js +1 -0
  135. modoboa/frontend_dist/assets/VContainer-B46caNs1.js +1 -0
  136. modoboa/frontend_dist/assets/VDataTable-Bh8NbVSx.js +1 -0
  137. modoboa/frontend_dist/assets/VDataTableServer-BDR5hOmo.js +1 -0
  138. modoboa/frontend_dist/assets/VDataTableVirtual-BOQlNtIG.js +1 -0
  139. modoboa/frontend_dist/assets/{VDialog-CZqM2Ofu.js → VDialog-BcTg7w6P.js} +1 -1
  140. modoboa/frontend_dist/assets/VExpansionPanels-BmH5Jl2Z.js +1 -0
  141. modoboa/frontend_dist/assets/VFileInput-BC4yAygd.js +1 -0
  142. modoboa/frontend_dist/assets/VForm-D5iPGkde.js +1 -0
  143. modoboa/frontend_dist/assets/VInput-CcxkaOXT.css +1 -0
  144. modoboa/frontend_dist/assets/VInput-CoDJzvaW.js +1 -0
  145. modoboa/frontend_dist/assets/VMenu-gUG70-zD.js +1 -0
  146. modoboa/frontend_dist/assets/VPicker-BXuKT3zB.js +1 -0
  147. modoboa/frontend_dist/assets/VProgressCircular-BtOPiGCg.js +1 -0
  148. modoboa/frontend_dist/assets/VRadioGroup-DIFZKSn-.js +1 -0
  149. modoboa/frontend_dist/assets/{VRow-C_Ydf6yr.js → VRow-ozg66L7j.js} +1 -1
  150. modoboa/frontend_dist/assets/VSelect-C3RjAa45.js +1 -0
  151. modoboa/frontend_dist/assets/VSelectionControl-zyz-fJvC.js +1 -0
  152. modoboa/frontend_dist/assets/VSheet-BNx2X4Mk.js +1 -0
  153. modoboa/frontend_dist/assets/VSpacer-DinPiXs9.js +1 -0
  154. modoboa/frontend_dist/assets/VSwitch-DwxdeAEq.js +1 -0
  155. modoboa/frontend_dist/assets/VTable-DaLxa4FO.js +1 -0
  156. modoboa/frontend_dist/assets/VTabs-BP0Hgsgm.js +1 -0
  157. modoboa/frontend_dist/assets/VTextField-BzBVKKob.css +1 -0
  158. modoboa/frontend_dist/assets/VTextField-XoGTj1KG.js +1 -0
  159. modoboa/frontend_dist/assets/VTextarea-wBlRMIv_.js +1 -0
  160. modoboa/frontend_dist/assets/VToolbar-CFZfqeOr.js +1 -0
  161. modoboa/frontend_dist/assets/VWindowItem-BB7ETW3b.js +1 -0
  162. modoboa/frontend_dist/assets/WebmailLayout-_Hk1XhVq.js +1 -0
  163. modoboa/frontend_dist/assets/accounts-DUzbx6k8.js +1 -0
  164. modoboa/frontend_dist/assets/admin-DewTk2H8.js +1 -0
  165. modoboa/frontend_dist/assets/{aliases-c3n-dCV_.js → aliases-4sXmjwXp.js} +1 -1
  166. modoboa/frontend_dist/assets/amavis-CC0li7_T.js +1 -0
  167. modoboa/frontend_dist/assets/amavis-DK8SHE6o.js +1 -0
  168. modoboa/frontend_dist/assets/{contacts-Bqckz8sr.js → contacts-BjghrPqZ.js} +1 -1
  169. modoboa/frontend_dist/assets/{domains-nBMR-fRf.js → domains-BSawReeu.js} +1 -1
  170. modoboa/frontend_dist/assets/{domains.store-ChZgLcqP.js → domains.store-D-vWCEIK.js} +1 -1
  171. modoboa/frontend_dist/assets/{filter-D7NrAf6a.js → filter-C82FUCw_.js} +1 -1
  172. modoboa/frontend_dist/assets/forwardRefs-cvcnlhoK.js +1 -0
  173. modoboa/frontend_dist/assets/global.store-DbkcI5o2.js +1 -0
  174. modoboa/frontend_dist/assets/{importExport-Dn9vYw7T.js → importExport-DzoL4Mvc.js} +1 -1
  175. modoboa/frontend_dist/assets/index-BImkz5Jx.js +984 -0
  176. modoboa/frontend_dist/assets/index-DuzUMVLM.js +1 -0
  177. modoboa/frontend_dist/assets/layout-C5FyYCHK.js +1 -0
  178. modoboa/frontend_dist/assets/{layout.store-BxBoBlgf.js → layout.store-NXWtFIwL.js} +1 -1
  179. modoboa/frontend_dist/assets/logos-BswdveCV.js +1 -0
  180. modoboa/frontend_dist/assets/{logs-DrTzylW7.js → logs-6CbtfaZS.js} +1 -1
  181. modoboa/frontend_dist/assets/{parameters-Lgiqp7aw.js → parameters-aSQiR7kN.js} +1 -1
  182. modoboa/frontend_dist/assets/{parameters.store-C9k9DuTj.js → parameters.store-CzQqVatx.js} +1 -1
  183. modoboa/frontend_dist/assets/permissions-DNoefz-n.js +1 -0
  184. modoboa/frontend_dist/assets/{ssrBoot-BsxW6uW4.js → ssrBoot-CKUX4kcb.js} +1 -1
  185. modoboa/frontend_dist/assets/{tag-CFK9dzMJ.js → tag-B_yWNNJD.js} +1 -1
  186. modoboa/frontend_dist/assets/transports-BDNB9wR5.js +1 -0
  187. modoboa/frontend_dist/assets/{webmail-KrD8ZhNM.js → webmail-CdU6CD9b.js} +1 -1
  188. modoboa/frontend_dist/index.html +1 -1
  189. modoboa/lib/email_utils.py +2 -2
  190. modoboa/lib/permissions.py +7 -0
  191. modoboa/lib/redis.py +1 -5
  192. modoboa/lib/test_runners.py +29 -0
  193. modoboa/lib/tests/__init__.py +5 -1
  194. modoboa/locale/br/LC_MESSAGES/django.po +87 -75
  195. modoboa/locale/cs/LC_MESSAGES/django.po +82 -74
  196. modoboa/locale/cs_CZ/LC_MESSAGES/django.po +145 -121
  197. modoboa/locale/de/LC_MESSAGES/django.mo +0 -0
  198. modoboa/locale/de/LC_MESSAGES/django.po +339 -651
  199. modoboa/locale/de_DE/LC_MESSAGES/django.po +87 -75
  200. modoboa/locale/el_GR/LC_MESSAGES/django.po +160 -135
  201. modoboa/locale/en/LC_MESSAGES/django.po +82 -74
  202. modoboa/locale/es/LC_MESSAGES/django.po +158 -131
  203. modoboa/locale/es_MX/LC_MESSAGES/django.po +82 -74
  204. modoboa/locale/fi/LC_MESSAGES/django.po +87 -75
  205. modoboa/locale/fr/LC_MESSAGES/django.mo +0 -0
  206. modoboa/locale/fr/LC_MESSAGES/django.po +469 -201
  207. modoboa/locale/hu/LC_MESSAGES/django.po +82 -74
  208. modoboa/locale/it/LC_MESSAGES/django.mo +0 -0
  209. modoboa/locale/it/LC_MESSAGES/django.po +148 -122
  210. modoboa/locale/ja_JP/LC_MESSAGES/django.mo +0 -0
  211. modoboa/locale/ja_JP/LC_MESSAGES/django.po +201 -334
  212. modoboa/locale/ka/LC_MESSAGES/django.po +82 -74
  213. modoboa/locale/nl_NL/LC_MESSAGES/django.po +160 -132
  214. modoboa/locale/no/LC_MESSAGES/django.po +82 -74
  215. modoboa/locale/pl_PL/LC_MESSAGES/django.mo +0 -0
  216. modoboa/locale/pl_PL/LC_MESSAGES/django.po +172 -149
  217. modoboa/locale/pt_BR/LC_MESSAGES/django.mo +0 -0
  218. modoboa/locale/pt_BR/LC_MESSAGES/django.po +172 -144
  219. modoboa/locale/pt_PT/LC_MESSAGES/django.po +135 -112
  220. modoboa/locale/ro_RO/LC_MESSAGES/django.po +87 -75
  221. modoboa/locale/ru/LC_MESSAGES/django.po +142 -118
  222. modoboa/locale/si/LC_MESSAGES/django.po +82 -74
  223. modoboa/locale/sk/LC_MESSAGES/django.po +82 -74
  224. modoboa/locale/sk_SK/LC_MESSAGES/django.po +84 -76
  225. modoboa/locale/sl_SI/LC_MESSAGES/django.po +90 -76
  226. modoboa/locale/sv/LC_MESSAGES/django.mo +0 -0
  227. modoboa/locale/sv/LC_MESSAGES/django.po +172 -139
  228. modoboa/locale/tr/LC_MESSAGES/django.po +87 -75
  229. modoboa/locale/tr_TR/LC_MESSAGES/django.po +84 -74
  230. modoboa/locale/uk/LC_MESSAGES/django.po +82 -74
  231. modoboa/locale/zh/LC_MESSAGES/django.po +82 -74
  232. modoboa/locale/zh_CN/LC_MESSAGES/django.po +82 -74
  233. modoboa/locale/zh_TW/LC_MESSAGES/django.po +87 -75
  234. modoboa/parameters/api/v2/tests.py +2 -2
  235. modoboa/parameters/api/v2/viewsets.py +2 -0
  236. modoboa/policyd/tests.py +2 -0
  237. modoboa/urls_api_v2.py +6 -0
  238. {modoboa-2.4.10.dist-info → modoboa-2.5.0.dist-info}/METADATA +6 -4
  239. {modoboa-2.4.10.dist-info → modoboa-2.5.0.dist-info}/RECORD +244 -193
  240. modoboa/frontend_dist/assets/AccountAliasForm-DVXatAhB.js +0 -1
  241. modoboa/frontend_dist/assets/AccountEditView-DmvQjxpx.js +0 -1
  242. modoboa/frontend_dist/assets/AccountLayout-OGtZvlHR.js +0 -1
  243. modoboa/frontend_dist/assets/AccountPasswordSubForm-g3IEGrgM.js +0 -1
  244. modoboa/frontend_dist/assets/AccountView-DsxYqr3k.js +0 -1
  245. modoboa/frontend_dist/assets/AddressBook-3RoKiKon.js +0 -1
  246. modoboa/frontend_dist/assets/AdminLayout-CWfn8zaQ.js +0 -1
  247. modoboa/frontend_dist/assets/AlarmsView-Bheey-gp.css +0 -1
  248. modoboa/frontend_dist/assets/AlarmsView-D3Mh8ntf.js +0 -1
  249. modoboa/frontend_dist/assets/AliasEditView-C15eUZ11.js +0 -1
  250. modoboa/frontend_dist/assets/AliasView-Cyvc5vMb.js +0 -1
  251. modoboa/frontend_dist/assets/AuditTrailView-LI2XuLLn.js +0 -1
  252. modoboa/frontend_dist/assets/CalendarView-BpOlPh3f.js +0 -1
  253. modoboa/frontend_dist/assets/ComposeEmailForm-CNfI7ept.js +0 -1
  254. modoboa/frontend_dist/assets/ComposeEmailView-B866Xsrc.js +0 -1
  255. modoboa/frontend_dist/assets/ConfirmDialog-BvqxQsD1.js +0 -1
  256. modoboa/frontend_dist/assets/ConnectedLayout-BQ3ug6Jh.js +0 -1
  257. modoboa/frontend_dist/assets/CreationForm-C9Kh05ax.js +0 -1
  258. modoboa/frontend_dist/assets/DashboardView-Cw-gIcuB.js +0 -1
  259. modoboa/frontend_dist/assets/DomainAdminList-CsWUNKVk.js +0 -1
  260. modoboa/frontend_dist/assets/DomainEditView-DocxeOeW.js +0 -1
  261. modoboa/frontend_dist/assets/DomainView-Djc_0PsF.js +0 -5
  262. modoboa/frontend_dist/assets/DomainsView-B-Lxru7P.js +0 -1
  263. modoboa/frontend_dist/assets/DomainsView-DasJ0NdZ.css +0 -1
  264. modoboa/frontend_dist/assets/EmailField-BEKxuYni.js +0 -1
  265. modoboa/frontend_dist/assets/EmailView-BsR1Wes5.js +0 -1
  266. modoboa/frontend_dist/assets/EmptyLayout-BzPFOeLU.js +0 -1
  267. modoboa/frontend_dist/assets/FiltersView-5rmpC5cC.js +0 -1
  268. modoboa/frontend_dist/assets/ForwardEmailView-D7MbetcT.js +0 -1
  269. modoboa/frontend_dist/assets/IdentitiesView-BqjD9Lue.js +0 -1
  270. modoboa/frontend_dist/assets/InformationView-CghcvPn2.js +0 -1
  271. modoboa/frontend_dist/assets/InformationView-U5Ww-Sx1.css +0 -1
  272. modoboa/frontend_dist/assets/MailboxView-T_p-_ZtJ.js +0 -1
  273. modoboa/frontend_dist/assets/MenuItems-kHCMzR5E.js +0 -1
  274. modoboa/frontend_dist/assets/MessagesView-Cerv3xsy.js +0 -1
  275. modoboa/frontend_dist/assets/MigrationsView-7kjqPyYU.js +0 -1
  276. modoboa/frontend_dist/assets/ParametersView-DspBxVMV.js +0 -1
  277. modoboa/frontend_dist/assets/ParametersView-Dy0H5ep1.js +0 -1
  278. modoboa/frontend_dist/assets/ProviderEditView-DDLMOylC.js +0 -1
  279. modoboa/frontend_dist/assets/ProviderGeneralForm-BwOSKNHK.js +0 -1
  280. modoboa/frontend_dist/assets/ProvidersView-C99UD0WB.js +0 -1
  281. modoboa/frontend_dist/assets/ReplyEmailView-DAPBHldd.js +0 -1
  282. modoboa/frontend_dist/assets/ResourcesForm-D87PHeH0.js +0 -1
  283. modoboa/frontend_dist/assets/SettingsView-OxDo9wNd.js +0 -6
  284. modoboa/frontend_dist/assets/StatisticsView-CM__Eqku.js +0 -1
  285. modoboa/frontend_dist/assets/TimeSerieChart-C6j0uYR_.js +0 -1
  286. modoboa/frontend_dist/assets/UserLayout-CckCGnPS.js +0 -1
  287. modoboa/frontend_dist/assets/VAlert-B7mzOJIO.js +0 -1
  288. modoboa/frontend_dist/assets/VApp-BKxnjOoi.js +0 -1
  289. modoboa/frontend_dist/assets/VAutocomplete-Cc4_tcl1.js +0 -1
  290. modoboa/frontend_dist/assets/VAvatar-BAgTUIvX.js +0 -1
  291. modoboa/frontend_dist/assets/VCard-DFWiFORP.js +0 -1
  292. modoboa/frontend_dist/assets/VCheckbox-CKsH_vq3.js +0 -1
  293. modoboa/frontend_dist/assets/VChip-nZ0uhY7t.js +0 -1
  294. modoboa/frontend_dist/assets/VColorPicker-Os2aeP6J.js +0 -1
  295. modoboa/frontend_dist/assets/VContainer-Btam4lk2.js +0 -1
  296. modoboa/frontend_dist/assets/VDataTable-D_0_xJTl.js +0 -1
  297. modoboa/frontend_dist/assets/VDataTableServer-BWTt4Mzi.js +0 -1
  298. modoboa/frontend_dist/assets/VDataTableVirtual-BwVmkt4u.js +0 -1
  299. modoboa/frontend_dist/assets/VExpansionPanels-B5D6GOa3.js +0 -1
  300. modoboa/frontend_dist/assets/VFileInput-Cv9DIPki.js +0 -1
  301. modoboa/frontend_dist/assets/VForm-CpoZf60D.js +0 -1
  302. modoboa/frontend_dist/assets/VMenu-B_dVqOmo.js +0 -1
  303. modoboa/frontend_dist/assets/VPicker-CXkIGEze.js +0 -1
  304. modoboa/frontend_dist/assets/VProgressCircular-CrEXxs7k.js +0 -1
  305. modoboa/frontend_dist/assets/VRadioGroup-D8ypjYOO.js +0 -1
  306. modoboa/frontend_dist/assets/VSelect-CS51PDEt.js +0 -1
  307. modoboa/frontend_dist/assets/VSelectionControl-DiOqtY38.js +0 -1
  308. modoboa/frontend_dist/assets/VSheet-5VVWtHvs.js +0 -1
  309. modoboa/frontend_dist/assets/VSpacer-C6PZ3X24.js +0 -1
  310. modoboa/frontend_dist/assets/VSwitch-Chg5o-Cp.js +0 -1
  311. modoboa/frontend_dist/assets/VTable-KsiZ3cBz.js +0 -1
  312. modoboa/frontend_dist/assets/VTabs-tNrJIYO0.js +0 -1
  313. modoboa/frontend_dist/assets/VTextField-C-J20yj_.css +0 -1
  314. modoboa/frontend_dist/assets/VTextField-CLwRV0Cb.js +0 -1
  315. modoboa/frontend_dist/assets/VTextarea-Di8jbl8m.js +0 -1
  316. modoboa/frontend_dist/assets/VToolbar-CGwhgdmI.js +0 -1
  317. modoboa/frontend_dist/assets/VWindowItem-wWSFAGI-.js +0 -1
  318. modoboa/frontend_dist/assets/WebmailLayout-DsYThBrz.js +0 -1
  319. modoboa/frontend_dist/assets/admin-CJVLMHh9.js +0 -1
  320. modoboa/frontend_dist/assets/forwardRefs-Cpc3YYl6.js +0 -1
  321. modoboa/frontend_dist/assets/global.store-DUP26-A5.js +0 -1
  322. modoboa/frontend_dist/assets/index-DV9Li2cg.js +0 -852
  323. modoboa/frontend_dist/assets/index-DzL89N4E.js +0 -1
  324. modoboa/frontend_dist/assets/layout-CHO37cA6.js +0 -1
  325. modoboa/frontend_dist/assets/permissions-mL5hLHcW.js +0 -1
  326. modoboa/frontend_dist/assets/transports-TO08iTXJ.js +0 -1
  327. {modoboa-2.4.10.data → modoboa-2.5.0.data}/scripts/modoboa-admin.py +0 -0
  328. {modoboa-2.4.10.dist-info → modoboa-2.5.0.dist-info}/WHEEL +0 -0
  329. {modoboa-2.4.10.dist-info → modoboa-2.5.0.dist-info}/entry_points.txt +0 -0
  330. {modoboa-2.4.10.dist-info → modoboa-2.5.0.dist-info}/licenses/LICENSE +0 -0
  331. {modoboa-2.4.10.dist-info → modoboa-2.5.0.dist-info}/top_level.txt +0 -0
@@ -8,7 +8,7 @@ msgid ""
8
8
  msgstr ""
9
9
  "Project-Id-Version: Modoboa\n"
10
10
  "Report-Msgid-Bugs-To: \n"
11
- "POT-Creation-Date: 2025-07-27 10:50+0200\n"
11
+ "POT-Creation-Date: 2025-08-28 09:41+0200\n"
12
12
  "PO-Revision-Date: 2021-12-24 20:48+0000\n"
13
13
  "Last-Translator: Mustafa OYMAK\n"
14
14
  "Language-Team: Turkish (http://www.transifex.com/tonio/modoboa/language/"
@@ -29,75 +29,76 @@ msgstr ""
29
29
  msgid "Default quota in MB applied to mailboxes. A value of 0 means no quota."
30
30
  msgstr ""
31
31
 
32
- #: admin/api/v1/serializers.py:88
32
+ #: admin/api/v1/serializers.py:94
33
33
  #, fuzzy
34
34
  #| msgid "Enter a valid email address."
35
35
  msgid "domain alias with this name already exists"
36
36
  msgstr "Geçerli bir e-posta adresi girin."
37
37
 
38
- #: admin/api/v1/serializers.py:98
38
+ #: admin/api/v1/serializers.py:104
39
39
  msgid "No authorized MX record found for this domain"
40
40
  msgstr ""
41
41
 
42
- #: admin/api/v1/serializers.py:116
42
+ #: admin/api/v1/serializers.py:122
43
43
  msgid "Cannot be greater than domain quota"
44
44
  msgstr ""
45
45
 
46
- #: admin/api/v1/serializers.py:162 admin/api/v1/serializers.py:357
47
- #: admin/api/v2/serializers.py:548 admin/models/alias.py:44
46
+ #: admin/api/v1/serializers.py:168 admin/api/v1/serializers.py:364
47
+ #: admin/api/v2/serializers.py:564 admin/models/alias.py:44
48
48
  #, fuzzy
49
49
  #| msgid "Permission denied"
50
50
  msgid "Permission denied."
51
51
  msgstr "İzin reddedildi"
52
52
 
53
- #: admin/api/v1/serializers.py:224 admin/api/v2/serializers.py:88
54
- #: admin/api/v2/serializers.py:470 core/api/v2/serializers.py:235
55
- #: core/api/v2/serializers.py:237 core/api/v2/serializers.py:246
53
+ #: admin/api/v1/serializers.py:231 admin/api/v2/serializers.py:90
54
+ #: admin/api/v2/serializers.py:486 core/api/v2/serializers.py:255
55
+ #: core/api/v2/serializers.py:257 core/api/v2/serializers.py:266
56
56
  #: transport/backends.py:40
57
57
  msgid "This field is required"
58
58
  msgstr "Bu alan gerekli"
59
59
 
60
- #: admin/api/v1/serializers.py:236
60
+ #: admin/api/v1/serializers.py:243
61
61
  #, fuzzy
62
62
  #| msgid "Hide features widget for resellers and domain administrators"
63
63
  msgid ""
64
64
  "List of administered domains (resellers and domain administrators only)."
65
65
  msgstr "Bayiler ve alan adı yöneticileri için Özellikler Aracı'nı gizle."
66
66
 
67
- #: admin/api/v1/serializers.py:330 admin/api/v2/serializers.py:530
67
+ #: admin/api/v1/serializers.py:337 admin/api/v2/serializers.py:546
68
68
  msgid "Not allowed for this role."
69
69
  msgstr ""
70
70
 
71
- #: admin/api/v1/serializers.py:348
71
+ #: admin/api/v1/serializers.py:355
72
72
  msgid "Must be equal to mailbox full_address"
73
73
  msgstr ""
74
74
 
75
- #: admin/api/v1/serializers.py:390 admin/api/v2/serializers.py:582
75
+ #: admin/api/v1/serializers.py:397 admin/api/v2/serializers.py:598
76
76
  #: calendars/serializers.py:175 calendars/serializers.py:177
77
+ #: pdfcredentials/api/v2/serializers.py:91
77
78
  #, fuzzy
78
79
  #| msgid "This field is required"
79
80
  msgid "This field is required."
80
81
  msgstr "Bu alan gerekli"
81
82
 
82
- #: admin/api/v1/serializers.py:402 admin/api/v2/serializers.py:599
83
+ #: admin/api/v1/serializers.py:409 admin/api/v2/serializers.py:615
83
84
  msgid "Local domain {} does not exist"
84
85
  msgstr ""
85
86
 
86
- #: admin/api/v1/serializers.py:492
87
+ #: admin/api/v1/serializers.py:499
87
88
  msgid "A list of recipient"
88
89
  msgstr ""
89
90
 
90
- #: admin/api/v1/serializers.py:508 admin/api/v2/viewsets.py:286
91
+ #: admin/api/v1/serializers.py:515 admin/api/v2/viewsets.py:286
91
92
  #, fuzzy
92
93
  #| msgid "Enter a valid email address."
93
94
  msgid "This alias already exists"
94
95
  msgstr "Geçerli bir e-posta adresi girin."
95
96
 
96
- #: admin/api/v1/serializers.py:544
97
+ #: admin/api/v1/serializers.py:551
97
98
  msgid "You don't have access to this domain."
98
99
  msgstr ""
99
100
 
100
- #: admin/api/v1/serializers.py:553
101
+ #: admin/api/v1/serializers.py:560
101
102
  msgid "You don't have access to this mailbox."
102
103
  msgstr ""
103
104
 
@@ -105,56 +106,56 @@ msgstr ""
105
106
  msgid "Here is your new Modoboa password: {}"
106
107
  msgstr ""
107
108
 
108
- #: admin/api/v2/serializers.py:80
109
+ #: admin/api/v2/serializers.py:82
109
110
  msgid "DKIM keys storage directory not configured"
110
111
  msgstr ""
111
112
 
112
- #: admin/api/v2/serializers.py:92
113
+ #: admin/api/v2/serializers.py:94
113
114
  msgid "This field is valid when type is relaydomain"
114
115
  msgstr ""
115
116
 
116
- #: admin/api/v2/serializers.py:99
117
+ #: admin/api/v2/serializers.py:101
117
118
  msgid "You can't define an unlimited quota."
118
119
  msgstr ""
119
120
 
120
- #: admin/api/v2/serializers.py:133
121
+ #: admin/api/v2/serializers.py:135
121
122
  #, python-format
122
123
  msgid "User '%s' already exists"
123
124
  msgstr ""
124
125
 
125
- #: admin/api/v2/serializers.py:248 admin/api/v2/serializers.py:254
126
+ #: admin/api/v2/serializers.py:250 admin/api/v2/serializers.py:256
126
127
  msgid "Must be a positive integer"
127
128
  msgstr ""
128
129
 
129
- #: admin/api/v2/serializers.py:263
130
+ #: admin/api/v2/serializers.py:265
130
131
  msgid "openssl not found, please make sure it is installed."
131
132
  msgstr ""
132
133
 
133
- #: admin/api/v2/serializers.py:266 pdfcredentials/api/v2/serializers.py:79
134
+ #: admin/api/v2/serializers.py:268 pdfcredentials/api/v2/serializers.py:84
134
135
  msgid "Directory not found."
135
136
  msgstr ""
136
137
 
137
- #: admin/api/v2/serializers.py:277
138
+ #: admin/api/v2/serializers.py:279
138
139
  msgid "This field only allows valid IP addresses (or networks)"
139
140
  msgstr ""
140
141
 
141
- #: admin/api/v2/serializers.py:290
142
+ #: admin/api/v2/serializers.py:292
142
143
  msgid "Please disable imap migration before disabling this option."
143
144
  msgstr ""
144
145
 
145
- #: admin/api/v2/serializers.py:303
146
+ #: admin/api/v2/serializers.py:305
146
147
  msgid "Define at least one authorized network / address"
147
148
  msgstr ""
148
149
 
149
- #: admin/api/v2/serializers.py:565
150
+ #: admin/api/v2/serializers.py:581
150
151
  msgid "The left part of an email address can't be more than 64 characters."
151
152
  msgstr ""
152
153
 
153
- #: admin/api/v2/serializers.py:587
154
+ #: admin/api/v2/serializers.py:603
154
155
  msgid "A mailbox is required to create aliases."
155
156
  msgstr ""
156
157
 
157
- #: admin/api/v2/serializers.py:751
158
+ #: admin/api/v2/serializers.py:772
158
159
  #, fuzzy
159
160
  #| msgid "Unknown"
160
161
  msgid "Unknown status"
@@ -170,14 +171,6 @@ msgstr ""
170
171
  msgid "You can't delete your own domain"
171
172
  msgstr "Kendi hesabınızı silemezsiniz"
172
173
 
173
- #: admin/api/v2/viewsets.py:407
174
- msgid "No alarm ID provided"
175
- msgstr ""
176
-
177
- #: admin/api/v2/viewsets.py:411
178
- msgid "Received invalid alarm id(s)"
179
- msgstr ""
180
-
181
174
  #: admin/app_settings.py:19 limits/app_settings.py:38 limits/constants.py:13
182
175
  msgid "Domains"
183
176
  msgstr ""
@@ -380,7 +373,7 @@ msgstr ""
380
373
  msgid "Create an alias using the old address when a mailbox is renamed."
381
374
  msgstr ""
382
375
 
383
- #: admin/app_settings.py:287 core/api/v2/viewsets.py:162
376
+ #: admin/app_settings.py:287 core/api/v2/viewsets.py:174
384
377
  #, fuzzy
385
378
  #| msgid "Administrator groups"
386
379
  msgid "Administration"
@@ -413,7 +406,7 @@ msgstr ""
413
406
  msgid "Account import failed (%s): domain does not exist"
414
407
  msgstr ""
415
408
 
416
- #: admin/handlers.py:242 admin/models/mailbox.py:340
409
+ #: admin/handlers.py:242 admin/models/mailbox.py:342
417
410
  msgid "Mailbox {} already exists"
418
411
  msgstr ""
419
412
 
@@ -692,7 +685,7 @@ msgstr "Bu alan gerekli"
692
685
  msgid "{}: domain quota exceeded"
693
686
  msgstr ""
694
687
 
695
- #: admin/models/mailbox.py:308
688
+ #: admin/models/mailbox.py:310
696
689
  msgid "Domain does not exist"
697
690
  msgstr ""
698
691
 
@@ -859,7 +852,7 @@ msgid ""
859
852
  "Maximum size in bytes of imported ICS files (or KB, MB, GB if specified)"
860
853
  msgstr ""
861
854
 
862
- #: calendars/app_settings.py:89 core/api/v2/viewsets.py:172
855
+ #: calendars/app_settings.py:89 core/api/v2/viewsets.py:195
863
856
  msgid "Calendars"
864
857
  msgstr ""
865
858
 
@@ -897,7 +890,7 @@ msgstr "LDAP eşitleme ayarları"
897
890
  msgid "Interval in seconds between 2 synchronization requests"
898
891
  msgstr ""
899
892
 
900
- #: contacts/app_settings.py:51 core/api/v2/viewsets.py:179
893
+ #: contacts/app_settings.py:51 core/api/v2/viewsets.py:185
901
894
  msgid "Contacts"
902
895
  msgstr ""
903
896
 
@@ -947,12 +940,12 @@ msgstr "Geçersiz PIN kodu"
947
940
  msgid "2FA is already enabled"
948
941
  msgstr "2FA zaten etkin"
949
942
 
950
- #: core/api/v1/serializers.py:87
943
+ #: core/api/v1/serializers.py:86
951
944
  #, python-format
952
- msgid "Failed TFA settings editing attempt from '%s' as user '%s'"
945
+ msgid "Failed TFA settings editing attempt from '%(addr)s' as user '%(user)s'"
953
946
  msgstr ""
954
947
 
955
- #: core/api/v1/serializers.py:91 core/api/v2/serializers.py:425
948
+ #: core/api/v1/serializers.py:91 core/api/v2/serializers.py:445
956
949
  #, fuzzy
957
950
  #| msgid "Old password"
958
951
  msgid "Invalid password"
@@ -966,44 +959,44 @@ msgstr "2FA etkin değil"
966
959
  msgid "Local"
967
960
  msgstr "Yerel"
968
961
 
969
- #: core/api/v2/serializers.py:175 core/app_settings.py:17
962
+ #: core/api/v2/serializers.py:194 core/app_settings.py:17
970
963
  msgid "User profile"
971
964
  msgstr "Kullanıcı profili"
972
965
 
973
- #: core/api/v2/serializers.py:194 core/api/v2/serializers.py:201
974
- #: core/api/v2/serializers.py:208
966
+ #: core/api/v2/serializers.py:213 core/api/v2/serializers.py:221
967
+ #: core/api/v2/serializers.py:228
975
968
  msgid "Invalid syntax"
976
969
  msgstr "Geçersiz sözdizimi"
977
970
 
978
- #: core/api/v2/serializers.py:213
971
+ #: core/api/v2/serializers.py:233
979
972
  msgid "Invalid rounds number"
980
973
  msgstr "Geçersiz tur sayısı"
981
974
 
982
- #: core/api/v2/serializers.py:413 core/forms.py:81
975
+ #: core/api/v2/serializers.py:433 core/forms.py:81
983
976
  msgid "This code is invalid"
984
977
  msgstr "Bu kod geçersiz"
985
978
 
986
- #: core/api/v2/serializers.py:483 core/views/auth.py:194 core/views/auth.py:247
979
+ #: core/api/v2/serializers.py:503 core/views/auth.py:194 core/views/auth.py:247
987
980
  msgid "Please use the following code to recover your Modoboa password: {}"
988
981
  msgstr "Modoboa şifrenizi kurtarmak için lütfen aşağıdaki kodu kullanın: {}"
989
982
 
990
- #: core/api/v2/viewsets.py:164
983
+ #: core/api/v2/viewsets.py:176
991
984
  #, fuzzy
992
985
  #| msgid "Administrator groups"
993
986
  msgid "Administration console"
994
987
  msgstr "Yönetici grupları"
995
988
 
996
- #: core/api/v2/viewsets.py:174
997
- msgid "Calendar"
998
- msgstr ""
999
-
1000
- #: core/api/v2/viewsets.py:181
989
+ #: core/api/v2/viewsets.py:187
1001
990
  #, fuzzy
1002
991
  #| msgid "From address"
1003
992
  msgid "Address book"
1004
993
  msgstr "Adresinden"
1005
994
 
1006
- #: core/api/v2/viewsets.py:186 core/api/v2/viewsets.py:188
995
+ #: core/api/v2/viewsets.py:197
996
+ msgid "Calendar"
997
+ msgstr ""
998
+
999
+ #: core/api/v2/viewsets.py:205 core/api/v2/viewsets.py:207
1007
1000
  #: webmail/app_settings.py:258 webmail/app_settings.py:265
1008
1001
  msgid "Webmail"
1009
1002
  msgstr ""
@@ -1542,19 +1535,27 @@ msgstr "Maksimum günlük kaydı yaşı"
1542
1535
  msgid "The maximum age in days of a log record"
1543
1536
  msgstr "Günlük kaydının gün cinsinden maksimum yaşı"
1544
1537
 
1545
- #: core/app_settings.py:726
1538
+ #: core/app_settings.py:727
1539
+ msgid "Retention time in message history"
1540
+ msgstr ""
1541
+
1542
+ #: core/app_settings.py:730
1543
+ msgid "Retention time (in days) of a message in the message history section"
1544
+ msgstr ""
1545
+
1546
+ #: core/app_settings.py:737
1546
1547
  msgid "Items per page"
1547
1548
  msgstr "Sayfa başına öğe"
1548
1549
 
1549
- #: core/app_settings.py:728
1550
+ #: core/app_settings.py:739
1550
1551
  msgid "Number of displayed items per page"
1551
1552
  msgstr "Sayfa başına görüntülenen öğe sayısı"
1552
1553
 
1553
- #: core/app_settings.py:735
1554
+ #: core/app_settings.py:746
1554
1555
  msgid "Default top redirection"
1555
1556
  msgstr "Varsayılan üst yönlendirme"
1556
1557
 
1557
- #: core/app_settings.py:737
1558
+ #: core/app_settings.py:748
1558
1559
  msgid "The default redirection used when no application is specified"
1559
1560
  msgstr ""
1560
1561
  "Hiçbir uygulama belirtilmediğinde kullanılan varsayılan yeniden yönlendirme"
@@ -1591,8 +1592,8 @@ msgstr ""
1591
1592
 
1592
1593
  #: core/checks.py:34
1593
1594
  msgid ""
1594
- "Visit : https://modoboa.readthedocs.io/en/latest/manual_installation/dovecot."
1595
- "html#dovecot-oauth2"
1595
+ "Visit : https://modoboa.readthedocs.io/en/latest/manual_installation/"
1596
+ "dovecot.html#dovecot-oauth2"
1596
1597
  msgstr ""
1597
1598
 
1598
1599
  #: core/checks.py:41
@@ -2102,19 +2103,14 @@ msgstr ""
2102
2103
  #: imap_migration/app_settings.py:76
2103
2104
  msgid ""
2104
2105
  "A comma seperated list of folders to explicitly include in sync even if "
2105
- "filtered by the Folder Filter Exclusions. Example: debian.user, debian."
2106
- "personal "
2106
+ "filtered by the Folder Filter Exclusions. Example: debian.user, "
2107
+ "debian.personal "
2107
2108
  msgstr ""
2108
2109
 
2109
2110
  #: imap_migration/apps.py:20
2110
2111
  msgid "IMAP Migration"
2111
2112
  msgstr ""
2112
2113
 
2113
- #: imap_migration/auth_backends.py:49 webmail/lib/imaputils.py:240
2114
- #, python-brace-format
2115
- msgid "Connection to IMAP server failed: {error}"
2116
- msgstr ""
2117
-
2118
2114
  #: imap_migration/checks.py:12
2119
2115
  msgid ""
2120
2116
  "Automatic domain/mailbox creation is disabled which means IMAP "
@@ -2461,11 +2457,11 @@ msgstr "Hesap"
2461
2457
  msgid "Personal account information"
2462
2458
  msgstr "Kişisel bilgilerinizi güncelleyin"
2463
2459
 
2464
- #: pdfcredentials/api/v2/serializers.py:81
2460
+ #: pdfcredentials/api/v2/serializers.py:86
2465
2461
  msgid "Directory is not writable"
2466
2462
  msgstr ""
2467
2463
 
2468
- #: pdfcredentials/api/v2/serializers.py:102
2464
+ #: pdfcredentials/api/v2/serializers.py:114
2469
2465
  msgid "No document available for this user"
2470
2466
  msgstr ""
2471
2467
 
@@ -3262,16 +3258,32 @@ msgstr ""
3262
3258
  msgid "User defined email signature"
3263
3259
  msgstr ""
3264
3260
 
3261
+ #: webmail/exceptions.py:18
3262
+ #, fuzzy
3263
+ #| msgid "Server address"
3264
+ msgid "Server response"
3265
+ msgstr "Sunucu adresi"
3266
+
3265
3267
  #: webmail/lib/attachments.py:112
3266
3268
  #, fuzzy
3267
3269
  #| msgid "Failed to update password: {}"
3268
3270
  msgid "Failed to remove attachment: "
3269
3271
  msgstr "{} Parola güncelleme başarısız"
3270
3272
 
3273
+ #: webmail/lib/imapemail.py:272
3274
+ msgid "wrote:"
3275
+ msgstr ""
3276
+
3271
3277
  #: webmail/lib/imapemail.py:306
3272
3278
  msgid "Date"
3273
3279
  msgstr "Tarih"
3274
3280
 
3281
+ #: webmail/lib/imapemail.py:322 webmail/lib/imapemail.py:325
3282
+ #, fuzzy
3283
+ #| msgid "Message"
3284
+ msgid "Original message"
3285
+ msgstr "İleti"
3286
+
3275
3287
  #: webmail/lib/imaputils.py:221
3276
3288
  msgid "Failed to retrieve hierarchy delimiter"
3277
3289
  msgstr ""