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/3] =?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/3] =?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/3] =?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)