From e5542372e962e85dbebe961200c9b51b2238b5cc Mon Sep 17 00:00:00 2001 From: "Pavel \"LEdoian\" Turinsky" Date: Tue, 25 May 2021 19:58:56 +0200 Subject: [PATCH 1/9] =?UTF-8?q?Monkeypatch=20mailov=C3=A9ho=20backendu?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- various/mail_prefixer.py | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 various/mail_prefixer.py diff --git a/various/mail_prefixer.py b/various/mail_prefixer.py new file mode 100644 index 00000000..b4597ac9 --- /dev/null +++ b/various/mail_prefixer.py @@ -0,0 +1,16 @@ +"""A simple email backend, which only prepends all subjects with a string. + +Used to distinguish testing emails from production ones.""" + +# We try to monkeypatch django.core.mail.backends.smtp :-) + +from djago.core.mail.backends.smtp import EmailBackend as DjangoSMTPBackend + +class PrefixingMailBackend(DjangoSMTPBackend): + # method _send is not probably meant to be monkey_patched, so we patch send_messages instead. + def send_messages(self, messages): + prefix = '[Mail z testwebu]' + for message in messages: + # We hope that this is a django.core.mail.message.EmailMessage + message.subject = prefix + ' ' + message.subject + return super().send_messages(messages) From 783fc8580931e7c7f438e715dcf8832a8f1c5b54 Mon Sep 17 00:00:00 2001 From: Jonas Havelka Date: Tue, 25 May 2021 21:48:54 +0200 Subject: [PATCH 2/9] =?UTF-8?q?P=C5=99eklep?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- various/mail_prefixer.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/various/mail_prefixer.py b/various/mail_prefixer.py index b4597ac9..b00c9d56 100644 --- a/various/mail_prefixer.py +++ b/various/mail_prefixer.py @@ -4,7 +4,7 @@ Used to distinguish testing emails from production ones.""" # We try to monkeypatch django.core.mail.backends.smtp :-) -from djago.core.mail.backends.smtp import EmailBackend as DjangoSMTPBackend +from django.core.mail.backends.smtp import EmailBackend as DjangoSMTPBackend class PrefixingMailBackend(DjangoSMTPBackend): # method _send is not probably meant to be monkey_patched, so we patch send_messages instead. From 77939a9c8bb4fed8766121dd73061c049e28fd7a Mon Sep 17 00:00:00 2001 From: Jonas Havelka Date: Tue, 25 May 2021 22:28:44 +0200 Subject: [PATCH 3/9] =?UTF-8?q?Zm=C4=9Bna=20p=C5=99=C3=ADjemc=C5=AF=20a=20?= =?UTF-8?q?zapnut=C3=AD=20na=20testwebu?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mamweb/settings_test.py | 5 +++++ various/mail_prefixer.py | 5 +++++ 2 files changed, 10 insertions(+) diff --git a/mamweb/settings_test.py b/mamweb/settings_test.py index e8af9a88..c90d1e84 100644 --- a/mamweb/settings_test.py +++ b/mamweb/settings_test.py @@ -67,3 +67,8 @@ LOGGING['loggers']['']['handlers'] = ['console', 'mail_admins'] LOGGING['loggers']['django']['handlers'] = ['console', 'mail_admins'] LOGGING['handlers']['registration_logfile']['filename'] = '/home/mam-web/logs/test/registration.log' LOGGING['handlers']['registration_error_log']['filename'] = '/home/mam-web/logs/test/registration_errors.log' + +# Testování e-mailů +EMAIL_BACKEND = 'mamweb.various.mail_prefixer.PrefixingMailBackend' +# TODO Pouze na otestování testu… Zvolit konferu, případně může být i seznam +TESTOVACI_EMAILOVA_KONFERENCE = 'jonas.havelka@volny.cz' diff --git a/various/mail_prefixer.py b/various/mail_prefixer.py index b00c9d56..76545bc3 100644 --- a/various/mail_prefixer.py +++ b/various/mail_prefixer.py @@ -5,6 +5,7 @@ Used to distinguish testing emails from production ones.""" # We try to monkeypatch django.core.mail.backends.smtp :-) from django.core.mail.backends.smtp import EmailBackend as DjangoSMTPBackend +from django.conf import settings class PrefixingMailBackend(DjangoSMTPBackend): # method _send is not probably meant to be monkey_patched, so we patch send_messages instead. @@ -13,4 +14,8 @@ class PrefixingMailBackend(DjangoSMTPBackend): for message in messages: # We hope that this is a django.core.mail.message.EmailMessage message.subject = prefix + ' ' + message.subject + message.body = "Bylo by posláno na e-maily: " + str(message.recipients()) + "\n" + message.body + message.to = settings.TESTOVACI_EMAILOVA_KONFERENCE + message.cc = [] + message.bcc = [] return super().send_messages(messages) From b16c02a56ac7bc42e1c50d3095f22bef5ac7be26 Mon Sep 17 00:00:00 2001 From: Jonas Havelka Date: Tue, 25 May 2021 22:55:10 +0200 Subject: [PATCH 4/9] Tak takhle? --- mamweb/settings_test.py | 1 + 1 file changed, 1 insertion(+) diff --git a/mamweb/settings_test.py b/mamweb/settings_test.py index c90d1e84..bd74ce86 100644 --- a/mamweb/settings_test.py +++ b/mamweb/settings_test.py @@ -69,6 +69,7 @@ LOGGING['handlers']['registration_logfile']['filename'] = '/home/mam-web/logs/te LOGGING['handlers']['registration_error_log']['filename'] = '/home/mam-web/logs/test/registration_errors.log' # Testování e-mailů +POSLI_MAILOVOU_NOTIFIKACI = True EMAIL_BACKEND = 'mamweb.various.mail_prefixer.PrefixingMailBackend' # TODO Pouze na otestování testu… Zvolit konferu, případně může být i seznam TESTOVACI_EMAILOVA_KONFERENCE = 'jonas.havelka@volny.cz' From 5dfc8e09195631f7d669fb2cd91001f1150c1fde Mon Sep 17 00:00:00 2001 From: Jonas Havelka Date: Tue, 25 May 2021 23:20:34 +0200 Subject: [PATCH 5/9] Jo takhle se okazuje na modul --- mamweb/settings_test.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/mamweb/settings_test.py b/mamweb/settings_test.py index bd74ce86..f625212b 100644 --- a/mamweb/settings_test.py +++ b/mamweb/settings_test.py @@ -70,6 +70,6 @@ LOGGING['handlers']['registration_error_log']['filename'] = '/home/mam-web/logs/ # Testování e-mailů POSLI_MAILOVOU_NOTIFIKACI = True -EMAIL_BACKEND = 'mamweb.various.mail_prefixer.PrefixingMailBackend' -# TODO Pouze na otestování testu… Zvolit konferu, případně může být i seznam -TESTOVACI_EMAILOVA_KONFERENCE = 'jonas.havelka@volny.cz' +EMAIL_BACKEND = 'various.mail_prefixer.PrefixingMailBackend' +# TODO Pouze na otestování testu… Zvolit konferu! +TESTOVACI_EMAILOVA_KONFERENCE = ['jonas.havelka@volny.cz'] From b74435f0fab4769a9a8334c47c4865356481199d Mon Sep 17 00:00:00 2001 From: Jonas Havelka Date: Tue, 25 May 2021 23:35:19 +0200 Subject: [PATCH 6/9] =?UTF-8?q?Ododstavcov=C3=A1n=C3=AD=20mail=C5=AF?= =?UTF-8?q?=E2=80=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- various/mail_prefixer.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/various/mail_prefixer.py b/various/mail_prefixer.py index 76545bc3..7b09a81b 100644 --- a/various/mail_prefixer.py +++ b/various/mail_prefixer.py @@ -4,7 +4,7 @@ Used to distinguish testing emails from production ones.""" # We try to monkeypatch django.core.mail.backends.smtp :-) -from django.core.mail.backends.smtp import EmailBackend as DjangoSMTPBackend +from django.core.mail.backends.console import EmailBackend as DjangoSMTPBackend from django.conf import settings class PrefixingMailBackend(DjangoSMTPBackend): @@ -14,7 +14,7 @@ class PrefixingMailBackend(DjangoSMTPBackend): for message in messages: # We hope that this is a django.core.mail.message.EmailMessage message.subject = prefix + ' ' + message.subject - message.body = "Bylo by posláno na e-maily: " + str(message.recipients()) + "\n" + message.body + message.body = "Bylo by posláno na e-maily: " + str(message.recipients()) + "\n\n" + message.body message.to = settings.TESTOVACI_EMAILOVA_KONFERENCE message.cc = [] message.bcc = [] From 06c9dea6b5d611c6a08f43e24893d539cd5a64be Mon Sep 17 00:00:00 2001 From: Jonas Havelka Date: Tue, 25 May 2021 23:39:15 +0200 Subject: [PATCH 7/9] =?UTF-8?q?N=C3=A1vrat=20console=20->=20smtp?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- various/mail_prefixer.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/various/mail_prefixer.py b/various/mail_prefixer.py index 7b09a81b..94fe5fa9 100644 --- a/various/mail_prefixer.py +++ b/various/mail_prefixer.py @@ -4,7 +4,7 @@ Used to distinguish testing emails from production ones.""" # We try to monkeypatch django.core.mail.backends.smtp :-) -from django.core.mail.backends.console import EmailBackend as DjangoSMTPBackend +from django.core.mail.backends.smtp import EmailBackend as DjangoSMTPBackend from django.conf import settings class PrefixingMailBackend(DjangoSMTPBackend): From 3d61cf7907211dd4b9cbdaa8b23d41e30b5fdbe1 Mon Sep 17 00:00:00 2001 From: Jonas Havelka Date: Tue, 25 May 2021 23:49:39 +0200 Subject: [PATCH 8/9] =?UTF-8?q?Vyjmout=20chybov=C3=A9=20hl=C3=A1=C5=A1ky.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- various/mail_prefixer.py | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/various/mail_prefixer.py b/various/mail_prefixer.py index 94fe5fa9..456b6be7 100644 --- a/various/mail_prefixer.py +++ b/various/mail_prefixer.py @@ -13,9 +13,11 @@ class PrefixingMailBackend(DjangoSMTPBackend): prefix = '[Mail z testwebu]' for message in messages: # We hope that this is a django.core.mail.message.EmailMessage - message.subject = prefix + ' ' + message.subject - message.body = "Bylo by posláno na e-maily: " + str(message.recipients()) + "\n\n" + message.body - message.to = settings.TESTOVACI_EMAILOVA_KONFERENCE - message.cc = [] - message.bcc = [] + + if len(message.from_email) == 0 or message.from_email[0] != settings.SERVER_EMAIL: + message.subject = prefix + ' ' + message.subject + message.body = "Bylo by posláno na e-maily: " + str(message.recipients()) + "\n\n" + message.body + message.to = settings.TESTOVACI_EMAILOVA_KONFERENCE + message.cc = [] + message.bcc = [] return super().send_messages(messages) From 7225273956ca82b2635a557a7b6ad4c2c4aef0b1 Mon Sep 17 00:00:00 2001 From: Jonas Havelka Date: Wed, 26 May 2021 00:03:17 +0200 Subject: [PATCH 9/9] =?UTF-8?q?Vyjmout=20chyby.=20Pokus=202.=20(from=20je?= =?UTF-8?q?=20o=C4=8Dividn=C4=9B=20jen=20string)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- various/mail_prefixer.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/various/mail_prefixer.py b/various/mail_prefixer.py index 456b6be7..05d523e7 100644 --- a/various/mail_prefixer.py +++ b/various/mail_prefixer.py @@ -14,7 +14,7 @@ class PrefixingMailBackend(DjangoSMTPBackend): for message in messages: # We hope that this is a django.core.mail.message.EmailMessage - if len(message.from_email) == 0 or message.from_email[0] != settings.SERVER_EMAIL: + if message.from_email != settings.SERVER_EMAIL: message.subject = prefix + ' ' + message.subject message.body = "Bylo by posláno na e-maily: " + str(message.recipients()) + "\n\n" + message.body message.to = settings.TESTOVACI_EMAILOVA_KONFERENCE