django-codenerix-email 4.0.42__py2.py3-none-any.whl → 4.0.43__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.
- codenerix_email/__init__.py +1 -1
- codenerix_email/__pycache__/__init__.cpython-310.pyc +0 -0
- codenerix_email/__pycache__/__init__.cpython-311.pyc +0 -0
- codenerix_email/management/commands/emails_recv.py +23 -11
- {django_codenerix_email-4.0.42.dist-info → django_codenerix_email-4.0.43.dist-info}/METADATA +1 -1
- {django_codenerix_email-4.0.42.dist-info → django_codenerix_email-4.0.43.dist-info}/RECORD +9 -9
- {django_codenerix_email-4.0.42.dist-info → django_codenerix_email-4.0.43.dist-info}/LICENSE +0 -0
- {django_codenerix_email-4.0.42.dist-info → django_codenerix_email-4.0.43.dist-info}/WHEEL +0 -0
- {django_codenerix_email-4.0.42.dist-info → django_codenerix_email-4.0.43.dist-info}/top_level.txt +0 -0
codenerix_email/__init__.py
CHANGED
|
Binary file
|
|
Binary file
|
|
@@ -591,7 +591,7 @@ class Command(BaseCommand):
|
|
|
591
591
|
"""
|
|
592
592
|
|
|
593
593
|
# Method 1: Search in main headers (for direct replies)
|
|
594
|
-
tracking_id = msg.get("X-Codenerix-Tracking-ID", None
|
|
594
|
+
tracking_id = str(msg.get("X-Codenerix-Tracking-ID", "")) or None
|
|
595
595
|
|
|
596
596
|
# Method 2: Search in attached parts (for bounces and forwards)
|
|
597
597
|
if not tracking_id:
|
|
@@ -614,8 +614,13 @@ class Command(BaseCommand):
|
|
|
614
614
|
):
|
|
615
615
|
original_msg = original_msg_payload[0]
|
|
616
616
|
if isinstance(original_msg, Message):
|
|
617
|
-
tracking_id =
|
|
618
|
-
|
|
617
|
+
tracking_id = (
|
|
618
|
+
str(
|
|
619
|
+
original_msg.get(
|
|
620
|
+
"X-Codenerix-Tracking-ID", ""
|
|
621
|
+
)
|
|
622
|
+
)
|
|
623
|
+
or None
|
|
619
624
|
)
|
|
620
625
|
|
|
621
626
|
elif content_type == "text/rfc822-headers":
|
|
@@ -632,8 +637,13 @@ class Command(BaseCommand):
|
|
|
632
637
|
|
|
633
638
|
# Parse headers text into a Message object
|
|
634
639
|
headers_msg = HeaderParser().parsestr(headers_text)
|
|
635
|
-
tracking_id =
|
|
636
|
-
|
|
640
|
+
tracking_id = (
|
|
641
|
+
str(
|
|
642
|
+
headers_msg.get(
|
|
643
|
+
"X-Codenerix-Tracking-ID", ""
|
|
644
|
+
)
|
|
645
|
+
)
|
|
646
|
+
or None
|
|
637
647
|
)
|
|
638
648
|
|
|
639
649
|
# Method 3: Search in the body text (fallback)
|
|
@@ -716,8 +726,10 @@ class Command(BaseCommand):
|
|
|
716
726
|
status_headers = payload[0]
|
|
717
727
|
if isinstance(status_headers, Message):
|
|
718
728
|
# Extract Action and Status headers
|
|
719
|
-
action =
|
|
720
|
-
|
|
729
|
+
action = str(
|
|
730
|
+
status_headers.get("Action", "")
|
|
731
|
+
).lower()
|
|
732
|
+
status_code = str(status_headers.get("Status", ""))
|
|
721
733
|
|
|
722
734
|
# Check if action indicates failure
|
|
723
735
|
if action == "failed":
|
|
@@ -747,13 +759,13 @@ class Command(BaseCommand):
|
|
|
747
759
|
|
|
748
760
|
else:
|
|
749
761
|
# Check for Auto-Submitted header
|
|
750
|
-
if msg.get("Auto-Submitted", "").lower() in (
|
|
762
|
+
if str(msg.get("Auto-Submitted", "")).lower() in (
|
|
751
763
|
"auto-replied",
|
|
752
764
|
"auto-generated",
|
|
753
765
|
):
|
|
754
766
|
# It could be a bounce, but also an "Out of Office",
|
|
755
767
|
# so we combine it with a keyword search.
|
|
756
|
-
subject = msg.get("Subject", "").lower()
|
|
768
|
+
subject = str(msg.get("Subject", "")).lower()
|
|
757
769
|
bounce_keywords = [
|
|
758
770
|
"undeliverable",
|
|
759
771
|
"delivery failed",
|
|
@@ -770,8 +782,8 @@ class Command(BaseCommand):
|
|
|
770
782
|
if not bounce_type:
|
|
771
783
|
# We look for common bounce keywords in the From or Subject headers
|
|
772
784
|
# We avoid false positives by requiring specific keywords.
|
|
773
|
-
from_header = msg.get("From", "").lower()
|
|
774
|
-
subject_header = msg.get("Subject", "").lower()
|
|
785
|
+
from_header = str(msg.get("From", "")).lower()
|
|
786
|
+
subject_header = str(msg.get("Subject", "")).lower()
|
|
775
787
|
|
|
776
788
|
if "mailer-daemon@" in from_header or "postmaster@" in from_header:
|
|
777
789
|
# Common bounce sender addresses
|
{django_codenerix_email-4.0.42.dist-info → django_codenerix_email-4.0.43.dist-info}/METADATA
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: django-codenerix-email
|
|
3
|
-
Version: 4.0.
|
|
3
|
+
Version: 4.0.43
|
|
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,4 +1,4 @@
|
|
|
1
|
-
codenerix_email/__init__.py,sha256=
|
|
1
|
+
codenerix_email/__init__.py,sha256=efAjcy3K16vkCTUwTZBXZJCKyPWRTdktfA2rHlSSY5A,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=P5w-ebxLR1V10RFDqO_R5vvZV-vY6SLTzVb1OLdFZE0,5710
|
|
@@ -827,8 +827,8 @@ 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=
|
|
831
|
-
codenerix_email/__pycache__/__init__.cpython-311.pyc,sha256=
|
|
830
|
+
codenerix_email/__pycache__/__init__.cpython-310.pyc,sha256=UfkLIR72bavcAAq4Nvzaw3MNV8AZ_TOygeWPiF1bEEA,313
|
|
831
|
+
codenerix_email/__pycache__/__init__.cpython-311.pyc,sha256=6VfDHH5eKl_yjjxj0W72_x8VOOCPxsaQW2ESOP9yHxU,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
|
|
@@ -868,7 +868,7 @@ codenerix_email/management/__pycache__/__init__.cpython-35.pyc,sha256=sBoEWs6zdI
|
|
|
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
870
|
codenerix_email/management/commands/email_test.py,sha256=SPsiq0s48sEX_G3piNHq-c1gDOH800H2zTvM19ei2LY,5605
|
|
871
|
-
codenerix_email/management/commands/emails_recv.py,sha256=
|
|
871
|
+
codenerix_email/management/commands/emails_recv.py,sha256=DlKa4pRoCM2IrDPd2j8BY7I2ufl-rHRvavad3f66muc,37875
|
|
872
872
|
codenerix_email/management/commands/emails_send.py,sha256=scCFklro4WVMYm-1ataSjUMsPT-Ie5u_DdA55CQcTCQ,7944
|
|
873
873
|
codenerix_email/management/commands/recv_emails.py,sha256=aXmhdXlamiNxRpMIDSKBXUBhkOcwi5l_Pme7jSQUCME,273
|
|
874
874
|
codenerix_email/management/commands/send_emails.py,sha256=a1MnpvZKAEFdXNfmI5oFUkVxy4PZ1AjaJS6GH90zeD0,273
|
|
@@ -1689,8 +1689,8 @@ codenerix_email/migrations/__pycache__/__init__.cpython-35.pyc,sha256=2g70xiMW6o
|
|
|
1689
1689
|
codenerix_email/migrations/__pycache__/__init__.cpython-39.pyc,sha256=qNj2NH0YvoWPnCKxkVZPsEFsbM05y7t1njMskNISdVQ,168
|
|
1690
1690
|
codenerix_email/static/codenerix_email/emailmessages_rows.html,sha256=cA2ru5ti9WnPhhvFNEpI2tTR7gZzUYXWdzngRKU6a7k,2196
|
|
1691
1691
|
codenerix_email/static/codenerix_email/emailreceiveds_rows.html,sha256=u9DXVdzKhx9WlJgcK_cT2DfGp9bGIKTBn3LDQplB4g4,2032
|
|
1692
|
-
django_codenerix_email-4.0.
|
|
1693
|
-
django_codenerix_email-4.0.
|
|
1694
|
-
django_codenerix_email-4.0.
|
|
1695
|
-
django_codenerix_email-4.0.
|
|
1696
|
-
django_codenerix_email-4.0.
|
|
1692
|
+
django_codenerix_email-4.0.43.dist-info/LICENSE,sha256=IXMIpi75XsrJt1Sznt4EftT9c_4X0C9eqK4tHhH8H48,11339
|
|
1693
|
+
django_codenerix_email-4.0.43.dist-info/METADATA,sha256=_KErLKnL64iEgVwy1H97rBswYHI3lpxGzCZTaORjb28,2676
|
|
1694
|
+
django_codenerix_email-4.0.43.dist-info/WHEEL,sha256=z9j0xAa_JmUKMpmz72K0ZGALSM_n-wQVmGbleXx2VHg,110
|
|
1695
|
+
django_codenerix_email-4.0.43.dist-info/top_level.txt,sha256=lljSA0iKE_UBEM5gIrGQwioC_i8Jjnp-aR1LFElENgw,16
|
|
1696
|
+
django_codenerix_email-4.0.43.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
{django_codenerix_email-4.0.42.dist-info → django_codenerix_email-4.0.43.dist-info}/top_level.txt
RENAMED
|
File without changes
|