django-codenerix-email 4.0.31__py2.py3-none-any.whl → 4.0.33__py2.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.
@@ -1,4 +1,4 @@
1
- __version__ = "4.0.31"
1
+ __version__ = "4.0.33"
2
2
 
3
3
  __authors__ = [
4
4
  "Juan Miguel Taboada Godoy <juanmi@juanmitaboada.com>",
@@ -57,7 +57,8 @@ class Command(BaseCommand):
57
57
 
58
58
  def handle(self, *args, **options):
59
59
  # Get configuration
60
- self.verbose = not options["silent"]
60
+ self.silent = options["silent"]
61
+ self.verbose = not self.silent
61
62
  self.imap_id = options.get("imap_id")
62
63
  self.message_id = options.get("message_id")
63
64
  self.tracking_id = options.get("tracking_id")
@@ -70,45 +71,52 @@ class Command(BaseCommand):
70
71
  self.style.SUCCESS("Starting IMAP email synchronization...")
71
72
  )
72
73
 
74
+ # Get configuration from settings
75
+ host = getattr(settings, "IMAP_EMAIL_HOST", None)
76
+ port = getattr(settings, "IMAP_EMAIL_PORT", 993)
77
+ user = getattr(settings, "IMAP_EMAIL_USER", None)
78
+ password = getattr(settings, "IMAP_EMAIL_PASSWORD", None)
79
+ ssl = getattr(settings, "IMAP_EMAIL_SSL", True)
80
+ folder = getattr(settings, "IMAP_EMAIL_INBOX_FOLDER", "INBOX")
81
+
73
82
  # Verify that IMAP settings are configured
74
- if settings.IMAP_EMAIL_HOST and settings.IMAP_EMAIL_PORT:
83
+ if host is not None and port:
84
+ # Validate configuration
85
+ if user is None or password is None:
86
+ if self.silent:
87
+ return
88
+ else:
89
+ raise CommandError(
90
+ "IMAP user or password not configured. Please set "
91
+ "IMAP_EMAIL_USER and IMAP_EMAIL_PASSWORD in settings."
92
+ )
93
+
75
94
  try:
76
95
  # Connect to the IMAP server
77
- server = IMAPClient(
78
- settings.IMAP_EMAIL_HOST,
79
- port=settings.IMAP_EMAIL_PORT,
80
- ssl=settings.IMAP_EMAIL_SSL,
81
- )
96
+ server = IMAPClient(host, port=port, ssl=ssl)
82
97
  except Exception as e:
83
98
  raise CommandError(
84
99
  f"Failed to connect to IMAP server ("
85
- f"host={settings.IMAP_EMAIL_HOST}, "
86
- f"port={settings.IMAP_EMAIL_PORT}, "
87
- f"ssl={settings.IMAP_EMAIL_SSL and 'yes' or 'no'}"
100
+ f"{host=}, "
101
+ f"{port=}, "
102
+ f"ssl={ssl and 'yes' or 'no'}"
88
103
  f"): {e}"
89
104
  ) from e
90
105
 
91
106
  try:
92
107
  # Login and select the inbox
93
108
  try:
94
- server.login(
95
- settings.IMAP_EMAIL_USER, settings.IMAP_EMAIL_PASSWORD
96
- )
109
+ server.login(user, password)
97
110
  except LoginError as e:
98
111
  raise CommandError(
99
- f"Failed to login to IMAP server with user "
100
- f"'{settings.IMAP_EMAIL_USER}': {e}"
112
+ f"Failed to login to IMAP server with {user=}: {e}"
101
113
  ) from e
102
114
 
103
- try:
104
- server.select_folder(
105
- settings.IMAP_EMAIL_INBOX_FOLDER, readonly=False
106
- )
107
- except imaplib.IMAP4.error:
108
- raise CommandError(
109
- f"Failed to select inbox folder "
110
- f"'{settings.IMAP_EMAIL_INBOX_FOLDER}'"
111
- )
115
+ if folder:
116
+ try:
117
+ server.select_folder(folder, readonly=False)
118
+ except imaplib.IMAP4.error:
119
+ raise CommandError(f"Failed to select inbox {folder=}")
112
120
 
113
121
  # Process emails
114
122
  (created_count, overwritten_count) = self.process(server)
@@ -139,7 +147,7 @@ class Command(BaseCommand):
139
147
  except Exception:
140
148
  pass
141
149
 
142
- else:
150
+ elif self.verbose:
143
151
  raise CommandError(
144
152
  "IMAP settings not configured. Please set IMAP_EMAIL_HOST "
145
153
  "and IMAP_EMAIL_PORT in settings."
codenerix_email/urls.py CHANGED
@@ -33,8 +33,10 @@ from codenerix_email.views import (
33
33
  EmailMessageUpdateModal,
34
34
  EmailMessageDelete,
35
35
  EmailMessageDetails,
36
+ EmailMessageDetailsModal,
36
37
  EmailReceivedList,
37
38
  EmailReceivedDetails,
39
+ EmailReceivedDetailsModal,
38
40
  EmailReceivedSubList,
39
41
  )
40
42
 
@@ -90,6 +92,11 @@ urlpatterns = [
90
92
  EmailMessageDetails.as_view(),
91
93
  name="CDNX_emails_emailmessages_details",
92
94
  ),
95
+ re_path(
96
+ r"^emailmessages/(?P<cpk>\w+)/sublist/(?P<pk>\w+)/modal$",
97
+ EmailMessageDetailsModal.as_view(),
98
+ name="CDNX_emails_emailmessages_sublist_details_modal",
99
+ ),
93
100
  re_path(
94
101
  r"^emailmessages/(?P<pk>\w+)/edit$",
95
102
  EmailMessageUpdate.as_view(),
@@ -120,4 +127,9 @@ urlpatterns = [
120
127
  EmailReceivedSubList.as_view(),
121
128
  name="CDNX_emails_emailreceiveds_sublist",
122
129
  ),
130
+ re_path(
131
+ r"^emailreceiveds/(?P<cpk>\w+)/sublist/(?P<pk>\w+)/modal$",
132
+ EmailReceivedDetailsModal.as_view(),
133
+ name="CDNX_emails_emailreceiveds_sublist_details_modal",
134
+ ),
123
135
  ]
codenerix_email/views.py CHANGED
@@ -39,6 +39,7 @@ from codenerix.views import ( # type: ignore
39
39
  GenUpdateModal,
40
40
  GenDelete,
41
41
  GenDetail,
42
+ GenDetailModal,
42
43
  SearchFilters,
43
44
  )
44
45
  from codenerix_email.models import (
@@ -294,6 +295,10 @@ class EmailMessageDetails(GenDetail):
294
295
  ]
295
296
 
296
297
 
298
+ class EmailMessageDetailsModal(EmailMessageDetails, GenDetailModal):
299
+ pass
300
+
301
+
297
302
  class EmailMessageUpdate(GenUpdate):
298
303
  model = EmailMessage
299
304
  form_class = EmailMessageForm
@@ -336,6 +341,10 @@ class EmailReceivedDetails(GenDetail):
336
341
  readonly = True
337
342
 
338
343
 
344
+ class EmailReceivedDetailsModal(EmailReceivedDetails, GenDetailModal):
345
+ pass
346
+
347
+
339
348
  class EmailReceivedSubList(EmailReceivedList):
340
349
  def __limitQ__(self, info): # noqa: N802
341
350
  limit = {}
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: django-codenerix-email
3
- Version: 4.0.31
3
+ Version: 4.0.33
4
4
  Summary: Codenerix Email is a module that enables CODENERIX to set send emails in a general manner.
5
5
  Home-page: https://github.com/codenerix/django-codenerix-email
6
6
  Author: Juan Miguel Taboada Godoy <juanmi@juanmitaboada.com>, Juan Soler Ruiz <soleronline@gmail.com>
@@ -1,13 +1,13 @@
1
- codenerix_email/__init__.py,sha256=EqeMr68ERag8uWtWIdB2aMduwM-EMWgXeJ-aMXYGqyQ,149
1
+ codenerix_email/__init__.py,sha256=efT-_ExRVTqX5c5ord_Rrraf_MVxiHK_E4uLKa0XePU,149
2
2
  codenerix_email/admin.py,sha256=w259UKFk_opGEl6PJjYHXWAHQ_8emgqmiixKT5Rid4A,1180
3
3
  codenerix_email/apps.py,sha256=WXqu1XQibDDyCvvQYt2JbTK4GIpW8BNv5DCbRJS2mmk,149
4
4
  codenerix_email/forms.py,sha256=38byLGxg1MOLAY1kAYChxYZj64tSgyfRvDcSbIOdV0I,5521
5
5
  codenerix_email/models.py,sha256=zLJRm_lM6VV7eo8SBZ2rfHI3tnhNkKaogdEHBaz_ZYI,25731
6
6
  codenerix_email/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
7
7
  codenerix_email/test_settings.py,sha256=A9WT-2MMuqvW5Mrd3lkmjrf0xJZmJl3McOEeyJug1Xc,633
8
- codenerix_email/urls.py,sha256=hPTfmR-tFfwJVf0ViSaDTN-3-w9ZbCPaMCQmTZ3j6vo,3542
8
+ codenerix_email/urls.py,sha256=M760qDSVV3EoY9aIPdnk8DtUv5tyWO-FQWdody4KTeM,3996
9
9
  codenerix_email/urls_frontend.py,sha256=DG5WS_fGQJC9sezNebPwG-E_WtUWy3Kwz4VUxh82xuc,873
10
- codenerix_email/views.py,sha256=SticzueMBGbz9s5yzDJ1NeXp4f5KmooK94lsySpkC-A,9896
10
+ codenerix_email/views.py,sha256=9HXoWbO9ZMhmpIqTWAr9P65HJTluh-NPsl24JgQcgcA,10078
11
11
  codenerix_email/.mypy_cache/.gitignore,sha256=amnaZw0RUw038PDP3HvtMLeOpkNOJPenMgi5guKdMiw,34
12
12
  codenerix_email/.mypy_cache/CACHEDIR.TAG,sha256=8cE6_FVTWMkDOw8fMKqhd_6IvaQPS4okWYQA1UeHatw,190
13
13
  codenerix_email/.mypy_cache/3.10/@plugins_snapshot.json,sha256=RBNvo1WzZ4oRRq0W9-hknpT7T8If536DEMBg9hyq_4o,2
@@ -827,35 +827,35 @@ codenerix_email/.mypy_cache/3.10/zoneinfo/_common.data.json,sha256=e4xbNKL_yQ5h5
827
827
  codenerix_email/.mypy_cache/3.10/zoneinfo/_common.meta.json,sha256=5K19XWobpSjKwiv7bZFZRcxsEfoh7b-FhYcmqB-2Iic,1737
828
828
  codenerix_email/.mypy_cache/3.10/zoneinfo/_tzpath.data.json,sha256=CFx7Q1XfUhhuNX69prkxyirG8rfvEDCNgEHWQigKC_A,5632
829
829
  codenerix_email/.mypy_cache/3.10/zoneinfo/_tzpath.meta.json,sha256=d1HJ_xFBI1orlZSVhH0gHWLI-dJG3zY-ZOlctOl62yU,1765
830
- codenerix_email/__pycache__/__init__.cpython-310.pyc,sha256=hXIazoT_cLbYycfDdPhK3nHV-Y21PUGHUcJqXaQD7qg,313
831
- codenerix_email/__pycache__/__init__.cpython-311.pyc,sha256=8TAtfF0VBi8x3yWa3oBgjbXo7_1jzCzJg9laqs2-8E4,337
830
+ codenerix_email/__pycache__/__init__.cpython-310.pyc,sha256=qUx7FEPtva35adO2dEbUcJlv0KgtVDnba-xtYCKLv3w,313
831
+ codenerix_email/__pycache__/__init__.cpython-311.pyc,sha256=abYKnHbw9MY4XNAbEG4VVwG-UJObTZRjcuu0EXp2EqU,337
832
832
  codenerix_email/__pycache__/__init__.cpython-35.pyc,sha256=dl9lYAgrokJptUj3JAhiqTlX7d_CbncOxZeTc1USc88,308
833
833
  codenerix_email/__pycache__/__init__.cpython-37.pyc,sha256=5d1CeFU5DrfnwrRpvSw1bHvLN9hoHXjUA3ln3rXCDo8,306
834
834
  codenerix_email/__pycache__/__init__.cpython-39.pyc,sha256=0c6KWU_eOTlF5l9fNWv8l41b0LcfVQNUsqDvJTv2YyU,300
835
835
  codenerix_email/__pycache__/admin.cpython-310.pyc,sha256=wV1sxGeDBJLUBF41DrQDV2ZwaG-LEljTMz_L8ACkIpo,652
836
- codenerix_email/__pycache__/admin.cpython-311.pyc,sha256=rg4auQcXkaQ0rvEqzzMus-SMpbrURhzCrvf9Af8M-Qk,1231
836
+ codenerix_email/__pycache__/admin.cpython-311.pyc,sha256=Kc4pkNQfNp_EkZ8T5nZEZmJB5SigSOsHEBdfIJnXb84,1078
837
837
  codenerix_email/__pycache__/admin.cpython-35.pyc,sha256=BbRIOsO-1YSDxYItAh14506-SynkDDrLrIs_sRz3rts,705
838
838
  codenerix_email/__pycache__/admin.cpython-39.pyc,sha256=cBKcPpZGnYH0nfu4MPYp3_vn8LZXn-Ad14vUOLY0_xI,659
839
839
  codenerix_email/__pycache__/apps.cpython-310.pyc,sha256=PzDChfGmY_KnNkDrqSdEAQblKU2GQNJYA5uOiE_ruhc,424
840
840
  codenerix_email/__pycache__/apps.cpython-311.pyc,sha256=U51a_9uWzb1nkGnGLqZL5X4d-LBMi83MiPMlUtBYobo,560
841
841
  codenerix_email/__pycache__/apps.cpython-39.pyc,sha256=d5Hd-YMSDmSzyxDmQ_nwXjcEcHASDm6MxFblb1TATf4,439
842
842
  codenerix_email/__pycache__/forms.cpython-310.pyc,sha256=-oq5NlQGH7VkMUUMB4lXmBoUhkTVO14AOIZetrpgqck,4004
843
- codenerix_email/__pycache__/forms.cpython-311.pyc,sha256=Dqp33Y-67Th9kocI6VePDpDQIDVTg5TyCq4nbF9_J0g,5805
843
+ codenerix_email/__pycache__/forms.cpython-311.pyc,sha256=zNvq_Xc_bdUsG59tq9OWUiy5hoyZ035z4E5fEovr4NE,5854
844
844
  codenerix_email/__pycache__/forms.cpython-35.pyc,sha256=z1aCJ2d8yyKJMuf5aVz0mGE6Nqi9bjU7HyDZPKxpUWc,3233
845
845
  codenerix_email/__pycache__/forms.cpython-39.pyc,sha256=NORLA0i3bmWx-mUn3wh3JtObuR7UYKZemSU6Cl5gHM8,2988
846
846
  codenerix_email/__pycache__/models.cpython-310.pyc,sha256=gQkwHkfPuR8Y7hDMi_6Z9a8Gq1xtJrU4UJeMVnYCDvk,18261
847
- codenerix_email/__pycache__/models.cpython-311.pyc,sha256=4lDv7Dpvu-h8o8jdVhzdLCOcs4ftmGtSFH581mftXkE,37158
847
+ codenerix_email/__pycache__/models.cpython-311.pyc,sha256=OJ_N_j_HTbU_apGRLDExJvjVmnH1E8cXbqFnRmMq5OM,37075
848
848
  codenerix_email/__pycache__/models.cpython-35.pyc,sha256=oGheSKlh8Ttc6bB-qZ1JY5_6RySM9M6GY5-GCATxfes,9481
849
849
  codenerix_email/__pycache__/models.cpython-39.pyc,sha256=ugyNNDG3k6rqsunwlcUIWADaLNvJ8snCgQwMZu9Ahac,8849
850
850
  codenerix_email/__pycache__/test_settings.cpython-310.pyc,sha256=HH5CsPxLlq7_jW4ZCGBc1KzcV4HNQcI6YTh0wcz_F0w,715
851
851
  codenerix_email/__pycache__/urls.cpython-310.pyc,sha256=GXAEM0idrSPxpSinTk2Mt3NZxXgMKwHUtE9P-19YtLc,2226
852
- codenerix_email/__pycache__/urls.cpython-311.pyc,sha256=cehQ_JU4_iBl_wFeD4ffD4y5-zl0nbfoZyqu3ZeLIc8,3581
852
+ codenerix_email/__pycache__/urls.cpython-311.pyc,sha256=lFyav_edsXHsWvkauLP9VnqowPCaC6bn1vSuaBAnBlE,4014
853
853
  codenerix_email/__pycache__/urls.cpython-35.pyc,sha256=s3kjvbFQHd8-3prLg1gRR3VZQe-L1l9slIZ6p9Klejo,1855
854
854
  codenerix_email/__pycache__/urls.cpython-39.pyc,sha256=EZTAIjMTQLfB4lVdxaQrspy93yxI-stUTLwKE8L2fxc,1739
855
855
  codenerix_email/__pycache__/urls_frontend.cpython-310.pyc,sha256=byQ8k-Hcfft-DzwWVvO5CEt_DBazuNPK_lNXkDV8HhY,381
856
- codenerix_email/__pycache__/urls_frontend.cpython-311.pyc,sha256=1FyV5ippwMjAY3FIK9W68OqaaaOBz73i0BYGxjr11Os,497
856
+ codenerix_email/__pycache__/urls_frontend.cpython-311.pyc,sha256=GmCqHFwOVkzllal3pnLe5BYg1Rj5SAm5WTGKQrfzVGk,498
857
857
  codenerix_email/__pycache__/views.cpython-310.pyc,sha256=vB2BqnTPYMYxiihKQAr6DZZ1-7SoGfC7dE41JHp-jPI,8707
858
- codenerix_email/__pycache__/views.cpython-311.pyc,sha256=b7T3JaifWucCwXBaiFsGlIgh6gSJFhtGicOdDyb483M,15335
858
+ codenerix_email/__pycache__/views.cpython-311.pyc,sha256=Z8OEWBF0DIzhN8vtyNKk2gXhg5uukALDpHCxaDbjMGA,15763
859
859
  codenerix_email/__pycache__/views.cpython-35.pyc,sha256=ZiDircDZ5B_MEFZu2H4ca7OZop10EyZF2PRR6JRgUGc,3988
860
860
  codenerix_email/__pycache__/views.cpython-39.pyc,sha256=SV_-RTnh7w_7oMUkD0mUWhSs5lqMuw-HUGU40hV56YY,3657
861
861
  codenerix_email/locale/en/LC_MESSAGES/django.po,sha256=NzL-kG6Z7lVnp_YDsUOMz-HAKqC37J-2elkU_Ce1zL8,7198
@@ -867,7 +867,7 @@ codenerix_email/management/__pycache__/__init__.cpython-311.pyc,sha256=OtPcxwWjt
867
867
  codenerix_email/management/__pycache__/__init__.cpython-35.pyc,sha256=sBoEWs6zdI0al-7t1deW9SE_Ln2RNDl2LyIiOO9gfRA,160
868
868
  codenerix_email/management/__pycache__/__init__.cpython-39.pyc,sha256=uPXklfliVd3b8pLOJQT9ZeKcqmJMrGychvt68BsPulY,168
869
869
  codenerix_email/management/commands/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
870
- codenerix_email/management/commands/recv_emails.py,sha256=MzCmos2cC6j3w1o7o0_ZIKRUDF5ehDFSlVY2oomv5h8,24568
870
+ codenerix_email/management/commands/recv_emails.py,sha256=RsUfv5s0XMReQ1Y0LjfLp-LJ4F7nFX2z_T1-QAAWcYY,24897
871
871
  codenerix_email/management/commands/send_emails.py,sha256=hotzGEkuDILwKgZgHFOaSCeAZDIyoPcM7VDs3Z-5Vvg,7950
872
872
  codenerix_email/management/commands/test_email.py,sha256=1WtVkSuq9Doy8W2uyCTevdSrVrAdztvwWjcNJhCsIlE,5612
873
873
  codenerix_email/management/commands/.mypy_cache/.gitignore,sha256=amnaZw0RUw038PDP3HvtMLeOpkNOJPenMgi5guKdMiw,34
@@ -1610,6 +1610,7 @@ codenerix_email/management/commands/.mypy_cache/3.10/zoneinfo/_tzpath.meta.json,
1610
1610
  codenerix_email/management/commands/__pycache__/__init__.cpython-310.pyc,sha256=3-VfdLuaiBIg4KTIy7GETYTt2-AbfCU0vlH6fFZx7_M,189
1611
1611
  codenerix_email/management/commands/__pycache__/__init__.cpython-311.pyc,sha256=yiqmtIhQMYXWx7g7XT-mvQNgGu_X2ymasWvVxIqPsBE,211
1612
1612
  codenerix_email/management/commands/__pycache__/recv_emails.cpython-310.pyc,sha256=qzj8puxw6pRAz_ptltybySs2mybOwdoZ8LB7Fw8YMGc,9897
1613
+ codenerix_email/management/commands/__pycache__/recv_emails.cpython-311.pyc,sha256=LBMH_iYJ9A60KPpUpDzfW_RZgRRdm-aklGpdDPp36TI,20952
1613
1614
  codenerix_email/management/commands/__pycache__/send_emails.cpython-311.pyc,sha256=xh2ontFVtLWHZOoVf1YJrNbBNPtIyV2KQEk5Bf6mY_c,6884
1614
1615
  codenerix_email/management/commands/__pycache__/test_email.cpython-310.pyc,sha256=5X7qBWFWs7AsNgTo1DyQE0zi5gtLxiFIcwdnboZIUSg,3154
1615
1616
  codenerix_email/migrations/0001_initial.py,sha256=bu1RU_FLeGKBjAXvOPHLUj2Ej9Ibns9PvE1CTVJf6qU,5816
@@ -1628,7 +1629,7 @@ codenerix_email/migrations/0013_emailmessage_headers.py,sha256=1T0lryajjfXhnMgU-
1628
1629
  codenerix_email/migrations/0014_emailreceived.py,sha256=U--Zhb9JkihuL3w-lNnhCfWT1dkVbgEWBHE3RHXtAnA,3406
1629
1630
  codenerix_email/migrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1630
1631
  codenerix_email/migrations/__pycache__/0001_initial.cpython-310.pyc,sha256=Sm54OKfGHUMvSVgbXiFAe9E2d85HqlLoMEaBEBP53mE,2005
1631
- codenerix_email/migrations/__pycache__/0001_initial.cpython-311.pyc,sha256=mOTNcz_iff63bExW7wNyR_HXU-e8ON-Au03YpCL_cCw,3682
1632
+ codenerix_email/migrations/__pycache__/0001_initial.cpython-311.pyc,sha256=KsQcRgyLOFbYfAHj9C5i7uQNWt9_wMJg2MOwpOa1B10,3852
1632
1633
  codenerix_email/migrations/__pycache__/0001_initial.cpython-35.pyc,sha256=o1rDga25c1uGi8Lwkc1_cxhPLANeqXCRzt7LlQcA9q0,2373
1633
1634
  codenerix_email/migrations/__pycache__/0001_initial.cpython-39.pyc,sha256=mQWff6-hcg9Z9K81-Nzrs_1YSOhbjM9kE0YrFbV6RIs,2020
1634
1635
  codenerix_email/migrations/__pycache__/0002_auto_20170502_1043.cpython-310.pyc,sha256=WAPjfkNFQmN3-XkDyD14MSAN9BO81TJ1WtkaBShkt9Y,1500
@@ -1679,8 +1680,8 @@ codenerix_email/migrations/__pycache__/__init__.cpython-35.pyc,sha256=2g70xiMW6o
1679
1680
  codenerix_email/migrations/__pycache__/__init__.cpython-39.pyc,sha256=qNj2NH0YvoWPnCKxkVZPsEFsbM05y7t1njMskNISdVQ,168
1680
1681
  codenerix_email/static/codenerix_email/emailmessages_rows.html,sha256=NyZpKPSHAAIywJX2ncS0H2bkqOVtMUwAdbYmkC4dKmk,2202
1681
1682
  codenerix_email/static/codenerix_email/emailreceiveds_rows.html,sha256=k7-Qe7Y9mrKRJXl69aVe5hHUvGdyrLbMoh9gkpyCG2U,1976
1682
- django_codenerix_email-4.0.31.dist-info/LICENSE,sha256=IXMIpi75XsrJt1Sznt4EftT9c_4X0C9eqK4tHhH8H48,11339
1683
- django_codenerix_email-4.0.31.dist-info/METADATA,sha256=UE9qclj8FbpzUv9wYAsDvcRST7kr_D3vFcUtacNXmcE,2676
1684
- django_codenerix_email-4.0.31.dist-info/WHEEL,sha256=z9j0xAa_JmUKMpmz72K0ZGALSM_n-wQVmGbleXx2VHg,110
1685
- django_codenerix_email-4.0.31.dist-info/top_level.txt,sha256=lljSA0iKE_UBEM5gIrGQwioC_i8Jjnp-aR1LFElENgw,16
1686
- django_codenerix_email-4.0.31.dist-info/RECORD,,
1683
+ django_codenerix_email-4.0.33.dist-info/LICENSE,sha256=IXMIpi75XsrJt1Sznt4EftT9c_4X0C9eqK4tHhH8H48,11339
1684
+ django_codenerix_email-4.0.33.dist-info/METADATA,sha256=mb4xG1x-rNvd_9FtAFXnLwuH076dl0dUo8W-fQgKf6k,2676
1685
+ django_codenerix_email-4.0.33.dist-info/WHEEL,sha256=z9j0xAa_JmUKMpmz72K0ZGALSM_n-wQVmGbleXx2VHg,110
1686
+ django_codenerix_email-4.0.33.dist-info/top_level.txt,sha256=lljSA0iKE_UBEM5gIrGQwioC_i8Jjnp-aR1LFElENgw,16
1687
+ django_codenerix_email-4.0.33.dist-info/RECORD,,