We are currently solving the following issue within our repository. Here is the issue text:
--- BEGIN ISSUE ---
Newsletter HTML is not saved when sending
### Describe the bug

Newsletter HTML is not saved when sending

### How to reproduce
Steps to reproduce the behaviour:
1. Create a newsletter
2. Send it
3. An HTML file should be saved to the media folder
4. But your newsletter is not there

### Expected behaviour

There should be an HTML file saved upon sending the newsletter. This HTML is the state of the newsletter when sending, which retains the original layout used. So if we ever change the newsletter generator we do not lose the original newsletters the way they were sent.


--- END ISSUE ---

Below are some code segments, each from a relevant file. One or more of these files may contain bugs.
--- BEGIN FILES ---
Path: `website/newsletters/management/commands/createnewsletterhtml.py`
Content:
```
1 from django.core.management.base import BaseCommand
2 from django.http import HttpRequest
3 
4 from newsletters import models, services
5 
6 
7 class Command(BaseCommand):
8     def add_arguments(self, parser):
9         parser.add_argument(
10             "--include-unsent",
11             action="store_true",
12             dest="include-unsent",
13             default=False,
14             help="Include newsletters that haven't been sent yet",
15         )
16         parser.add_argument(
17             "server-name",
18             help="The server name for the request "
19             "to generate the html (typically thalia.nu)",
20         )
21         parser.add_argument(
22             "server-port",
23             type=int,
24             help="The server port for the request "
25             "to generate the html (typically 80)",
26         )
27 
28     def handle(self, *args, **options):
29         request = HttpRequest()
30         request.META["SERVER_NAME"] = options["server-name"]
31         request.META["SERVER_PORT"] = options["server-port"]
32         for n in models.Newsletter.objects.all():
33             if n.sent or options["include-unsent"]:
34                 services.save_to_disk(n, request)
35
```

Path: `website/newsletters/services.py`
Content:
```
1 import os
2 
3 from django.conf import settings
4 from django.template.loader import get_template
5 from django.utils import translation, timezone
6 
7 from events.models import Event
8 from members.models import Member
9 from newsletters import emails
10 from partners.models import Partner
11 from pushnotifications.models import Message, Category
12 
13 
14 def write_to_file(pk, lang, html_message):
15     """
16     Write newsletter to a file
17     """
18     cache_dir = os.path.join(settings.MEDIA_ROOT, "newsletters")
19     if not os.path.isdir(cache_dir):
20         os.makedirs(cache_dir)
21 
22     with open(os.path.join(cache_dir, f"{pk}_{lang}.html"), "w+") as cache_file:
23         cache_file.write(html_message)
24 
25 
26 def save_to_disk(newsletter, request):
27     """
28     Writes the newsletter as HTML to file (in all languages)
29     """
30     main_partner = Partner.objects.filter(is_main_partner=True).first()
31     local_partner = Partner.objects.filter(is_local_partner=True).first()
32 
33     html_template = get_template("newsletters/email.html")
34 
35     for language in settings.LANGUAGES:
36         translation.activate(language[0])
37 
38         context = {
39             "newsletter": newsletter,
40             "agenda_events": (
41                 newsletter.newslettercontent_set.filter(newsletteritem=None).order_by(
42                     "newsletterevent__start_datetime"
43                 )
44             ),
45             "main_partner": main_partner,
46             "local_partner": local_partner,
47             "lang_code": language[0],
48             "request": request,
49         }
50 
51         html_message = html_template.render(context)
52 
53         write_to_file(newsletter.pk, language[0], html_message)
54 
55 
56 def get_agenda(start_date):
57     end_date = start_date + timezone.timedelta(weeks=2)
58     published_events = Event.objects.filter(published=True)
59     base_events = published_events.filter(
60         start__gte=start_date, end__lt=end_date
61     ).order_by("start")
62     if base_events.count() < 10:
63         more_events = published_events.filter(end__gte=end_date).order_by("start")
64         return [*base_events, *more_events][:10]
65     return base_events
66 
67 
68 def send_newsletter(newsletter):
69     emails.send_newsletter(newsletter)
70     newsletter.sent = True
71     newsletter.save()
72     message = Message.objects.create(
73         title_en=newsletter.title_en,
74         body_en="Tap to view",
75         url=settings.BASE_URL + newsletter.get_absolute_url(),
76         category=Category.objects.get(key=Category.NEWSLETTER),
77     )
78     message.users.set(Member.current_members.all())
79     message.send()
80
```

Path: `website/newsletters/emails.py`
Content:
```
1 """The emails defined by the newsletters package"""
2 import logging
3 from smtplib import SMTPException
4 
5 from django.conf import settings
6 from django.core import mail
7 from django.core.mail import EmailMultiAlternatives
8 from django.template.loader import get_template
9 from django.utils import translation, timezone
10 from django.utils.timezone import make_aware
11 
12 from newsletters import services
13 from partners.models import Partner
14 
15 logger = logging.getLogger(__name__)
16 
17 
18 def send_newsletter(newsletter):
19     """
20     Sends the newsletter as HTML and plaintext email
21 
22     :param newsletter: the newsletter to be send
23 
24     """
25 
26     events = None
27     if newsletter.date:
28         datetime = (
29             make_aware(
30                 timezone.datetime(
31                     year=newsletter.date.year,
32                     month=newsletter.date.month,
33                     day=newsletter.date.day,
34                 )
35             )
36             if newsletter.date
37             else None
38         )
39         events = services.get_agenda(datetime)
40 
41     from_email = settings.NEWSLETTER_FROM_ADDRESS
42     html_template = get_template("newsletters/email.html")
43     text_template = get_template("newsletters/email.txt")
44 
45     main_partner = Partner.objects.filter(is_main_partner=True).first()
46     local_partner = Partner.objects.filter(is_local_partner=True).first()
47 
48     with mail.get_connection() as connection:
49         language = ("en", "English")
50         translation.activate(language[0])
51 
52         subject = "[THALIA] " + newsletter.title
53 
54         context = {
55             "newsletter": newsletter,
56             "agenda_events": events,
57             "main_partner": main_partner,
58             "local_partner": local_partner,
59             "lang_code": language[0],
60         }
61 
62         html_message = html_template.render(context)
63         text_message = text_template.render(context)
64 
65         services.write_to_file(newsletter.pk, language[0], html_message)
66 
67         msg = EmailMultiAlternatives(
68             subject=subject,
69             body=text_message,
70             to=[f"newsletter@{settings.GSUITE_DOMAIN}"],
71             from_email=from_email,
72             connection=connection,
73         )
74         msg.attach_alternative(html_message, "text/html")
75 
76         try:
77             msg.send()
78             logger.info(f"Sent {language[1]} newsletter")
79         except SMTPException as e:
80             logger.error(f"Failed to send the {language[1]} " f"newsletter: {e}")
81 
82         translation.deactivate()
83
```
--- END FILES ---

Please first localize the bug based on the issue statement, and then generate a patch according to the `git diff` format fenced by three backticks.

Here is an example:

```diff
diff --git a/examples/server_async.py b/examples/server_async.py
--- a/examples/server_async.py
+++ b/examples/server_async.py
@@ -313,4 +313,4 @@
 
 
 if __name__ == "__main__":
-    asyncio.run(run_async_server("."), debug=True)
+    asyncio.run(run_async_server(), debug=True)
diff --git a/examples/server_sync.py b/examples/server_sync.py
--- a/examples/server_sync.py
+++ b/examples/server_sync.py
@@ -313,5 +313,5 @@
 
 
 if __name__ == "__main__":
-    server = run_sync_server(".")
+    server = run_sync_server()
     server.shutdown()

```

diff --git a/website/newsletters/emails.py b/website/newsletters/emails.py
--- a/website/newsletters/emails.py
+++ b/website/newsletters/emails.py
@@ -62,8 +62,6 @@
         html_message = html_template.render(context)
         text_message = text_template.render(context)
 
-        services.write_to_file(newsletter.pk, language[0], html_message)
-
         msg = EmailMultiAlternatives(
             subject=subject,
             body=text_message,
diff --git a/website/newsletters/management/commands/createnewsletterhtml.py b/website/newsletters/management/commands/createnewsletterhtml.py
--- a/website/newsletters/management/commands/createnewsletterhtml.py
+++ b/website/newsletters/management/commands/createnewsletterhtml.py
@@ -1,5 +1,4 @@
 from django.core.management.base import BaseCommand
-from django.http import HttpRequest
 
 from newsletters import models, services
 
@@ -13,22 +12,8 @@
             default=False,
             help="Include newsletters that haven't been sent yet",
         )
-        parser.add_argument(
-            "server-name",
-            help="The server name for the request "
-            "to generate the html (typically thalia.nu)",
-        )
-        parser.add_argument(
-            "server-port",
-            type=int,
-            help="The server port for the request "
-            "to generate the html (typically 80)",
-        )
 
     def handle(self, *args, **options):
-        request = HttpRequest()
-        request.META["SERVER_NAME"] = options["server-name"]
-        request.META["SERVER_PORT"] = options["server-port"]
         for n in models.Newsletter.objects.all():
             if n.sent or options["include-unsent"]:
-                services.save_to_disk(n, request)
+                services.save_to_disk(n)
diff --git a/website/newsletters/services.py b/website/newsletters/services.py
--- a/website/newsletters/services.py
+++ b/website/newsletters/services.py
@@ -23,7 +23,7 @@
         cache_file.write(html_message)
 
 
-def save_to_disk(newsletter, request):
+def save_to_disk(newsletter):
     """
     Writes the newsletter as HTML to file (in all languages)
     """
@@ -45,7 +45,6 @@
             "main_partner": main_partner,
             "local_partner": local_partner,
             "lang_code": language[0],
-            "request": request,
         }
 
         html_message = html_template.render(context)
@@ -77,3 +76,5 @@
     )
     message.users.set(Member.current_members.all())
     message.send()
+
+    save_to_disk(newsletter)

{"golden_diff": "diff --git a/website/newsletters/emails.py b/website/newsletters/emails.py\n--- a/website/newsletters/emails.py\n+++ b/website/newsletters/emails.py\n@@ -62,8 +62,6 @@\n         html_message = html_template.render(context)\n         text_message = text_template.render(context)\n \n-        services.write_to_file(newsletter.pk, language[0], html_message)\n-\n         msg = EmailMultiAlternatives(\n             subject=subject,\n             body=text_message,\ndiff --git a/website/newsletters/management/commands/createnewsletterhtml.py b/website/newsletters/management/commands/createnewsletterhtml.py\n--- a/website/newsletters/management/commands/createnewsletterhtml.py\n+++ b/website/newsletters/management/commands/createnewsletterhtml.py\n@@ -1,5 +1,4 @@\n from django.core.management.base import BaseCommand\n-from django.http import HttpRequest\n \n from newsletters import models, services\n \n@@ -13,22 +12,8 @@\n             default=False,\n             help=\"Include newsletters that haven't been sent yet\",\n         )\n-        parser.add_argument(\n-            \"server-name\",\n-            help=\"The server name for the request \"\n-            \"to generate the html (typically thalia.nu)\",\n-        )\n-        parser.add_argument(\n-            \"server-port\",\n-            type=int,\n-            help=\"The server port for the request \"\n-            \"to generate the html (typically 80)\",\n-        )\n \n     def handle(self, *args, **options):\n-        request = HttpRequest()\n-        request.META[\"SERVER_NAME\"] = options[\"server-name\"]\n-        request.META[\"SERVER_PORT\"] = options[\"server-port\"]\n         for n in models.Newsletter.objects.all():\n             if n.sent or options[\"include-unsent\"]:\n-                services.save_to_disk(n, request)\n+                services.save_to_disk(n)\ndiff --git a/website/newsletters/services.py b/website/newsletters/services.py\n--- a/website/newsletters/services.py\n+++ b/website/newsletters/services.py\n@@ -23,7 +23,7 @@\n         cache_file.write(html_message)\n \n \n-def save_to_disk(newsletter, request):\n+def save_to_disk(newsletter):\n     \"\"\"\n     Writes the newsletter as HTML to file (in all languages)\n     \"\"\"\n@@ -45,7 +45,6 @@\n             \"main_partner\": main_partner,\n             \"local_partner\": local_partner,\n             \"lang_code\": language[0],\n-            \"request\": request,\n         }\n \n         html_message = html_template.render(context)\n@@ -77,3 +76,5 @@\n     )\n     message.users.set(Member.current_members.all())\n     message.send()\n+\n+    save_to_disk(newsletter)\n", "issue": "Newsletter HTML is not saved when sending\n### Describe the bug\r\n\r\nNewsletter HTML is not saved when sending\r\n\r\n### How to reproduce\r\nSteps to reproduce the behaviour:\r\n1. Create a newsletter\r\n2. Send it\r\n3. An HTML file should be saved to the media folder\r\n4. But your newsletter is not there\r\n\r\n### Expected behaviour\r\n\r\nThere should be an HTML file saved upon sending the newsletter. This HTML is the state of the newsletter when sending, which retains the original layout used. So if we ever change the newsletter generator we do not lose the original newsletters the way they were sent.\r\n\n", "before_files": [{"content": "from django.core.management.base import BaseCommand\nfrom django.http import HttpRequest\n\nfrom newsletters import models, services\n\n\nclass Command(BaseCommand):\n    def add_arguments(self, parser):\n        parser.add_argument(\n            \"--include-unsent\",\n            action=\"store_true\",\n            dest=\"include-unsent\",\n            default=False,\n            help=\"Include newsletters that haven't been sent yet\",\n        )\n        parser.add_argument(\n            \"server-name\",\n            help=\"The server name for the request \"\n            \"to generate the html (typically thalia.nu)\",\n        )\n        parser.add_argument(\n            \"server-port\",\n            type=int,\n            help=\"The server port for the request \"\n            \"to generate the html (typically 80)\",\n        )\n\n    def handle(self, *args, **options):\n        request = HttpRequest()\n        request.META[\"SERVER_NAME\"] = options[\"server-name\"]\n        request.META[\"SERVER_PORT\"] = options[\"server-port\"]\n        for n in models.Newsletter.objects.all():\n            if n.sent or options[\"include-unsent\"]:\n                services.save_to_disk(n, request)\n", "path": "website/newsletters/management/commands/createnewsletterhtml.py"}, {"content": "import os\n\nfrom django.conf import settings\nfrom django.template.loader import get_template\nfrom django.utils import translation, timezone\n\nfrom events.models import Event\nfrom members.models import Member\nfrom newsletters import emails\nfrom partners.models import Partner\nfrom pushnotifications.models import Message, Category\n\n\ndef write_to_file(pk, lang, html_message):\n    \"\"\"\n    Write newsletter to a file\n    \"\"\"\n    cache_dir = os.path.join(settings.MEDIA_ROOT, \"newsletters\")\n    if not os.path.isdir(cache_dir):\n        os.makedirs(cache_dir)\n\n    with open(os.path.join(cache_dir, f\"{pk}_{lang}.html\"), \"w+\") as cache_file:\n        cache_file.write(html_message)\n\n\ndef save_to_disk(newsletter, request):\n    \"\"\"\n    Writes the newsletter as HTML to file (in all languages)\n    \"\"\"\n    main_partner = Partner.objects.filter(is_main_partner=True).first()\n    local_partner = Partner.objects.filter(is_local_partner=True).first()\n\n    html_template = get_template(\"newsletters/email.html\")\n\n    for language in settings.LANGUAGES:\n        translation.activate(language[0])\n\n        context = {\n            \"newsletter\": newsletter,\n            \"agenda_events\": (\n                newsletter.newslettercontent_set.filter(newsletteritem=None).order_by(\n                    \"newsletterevent__start_datetime\"\n                )\n            ),\n            \"main_partner\": main_partner,\n            \"local_partner\": local_partner,\n            \"lang_code\": language[0],\n            \"request\": request,\n        }\n\n        html_message = html_template.render(context)\n\n        write_to_file(newsletter.pk, language[0], html_message)\n\n\ndef get_agenda(start_date):\n    end_date = start_date + timezone.timedelta(weeks=2)\n    published_events = Event.objects.filter(published=True)\n    base_events = published_events.filter(\n        start__gte=start_date, end__lt=end_date\n    ).order_by(\"start\")\n    if base_events.count() < 10:\n        more_events = published_events.filter(end__gte=end_date).order_by(\"start\")\n        return [*base_events, *more_events][:10]\n    return base_events\n\n\ndef send_newsletter(newsletter):\n    emails.send_newsletter(newsletter)\n    newsletter.sent = True\n    newsletter.save()\n    message = Message.objects.create(\n        title_en=newsletter.title_en,\n        body_en=\"Tap to view\",\n        url=settings.BASE_URL + newsletter.get_absolute_url(),\n        category=Category.objects.get(key=Category.NEWSLETTER),\n    )\n    message.users.set(Member.current_members.all())\n    message.send()\n", "path": "website/newsletters/services.py"}, {"content": "\"\"\"The emails defined by the newsletters package\"\"\"\nimport logging\nfrom smtplib import SMTPException\n\nfrom django.conf import settings\nfrom django.core import mail\nfrom django.core.mail import EmailMultiAlternatives\nfrom django.template.loader import get_template\nfrom django.utils import translation, timezone\nfrom django.utils.timezone import make_aware\n\nfrom newsletters import services\nfrom partners.models import Partner\n\nlogger = logging.getLogger(__name__)\n\n\ndef send_newsletter(newsletter):\n    \"\"\"\n    Sends the newsletter as HTML and plaintext email\n\n    :param newsletter: the newsletter to be send\n\n    \"\"\"\n\n    events = None\n    if newsletter.date:\n        datetime = (\n            make_aware(\n                timezone.datetime(\n                    year=newsletter.date.year,\n                    month=newsletter.date.month,\n                    day=newsletter.date.day,\n                )\n            )\n            if newsletter.date\n            else None\n        )\n        events = services.get_agenda(datetime)\n\n    from_email = settings.NEWSLETTER_FROM_ADDRESS\n    html_template = get_template(\"newsletters/email.html\")\n    text_template = get_template(\"newsletters/email.txt\")\n\n    main_partner = Partner.objects.filter(is_main_partner=True).first()\n    local_partner = Partner.objects.filter(is_local_partner=True).first()\n\n    with mail.get_connection() as connection:\n        language = (\"en\", \"English\")\n        translation.activate(language[0])\n\n        subject = \"[THALIA] \" + newsletter.title\n\n        context = {\n            \"newsletter\": newsletter,\n            \"agenda_events\": events,\n            \"main_partner\": main_partner,\n            \"local_partner\": local_partner,\n            \"lang_code\": language[0],\n        }\n\n        html_message = html_template.render(context)\n        text_message = text_template.render(context)\n\n        services.write_to_file(newsletter.pk, language[0], html_message)\n\n        msg = EmailMultiAlternatives(\n            subject=subject,\n            body=text_message,\n            to=[f\"newsletter@{settings.GSUITE_DOMAIN}\"],\n            from_email=from_email,\n            connection=connection,\n        )\n        msg.attach_alternative(html_message, \"text/html\")\n\n        try:\n            msg.send()\n            logger.info(f\"Sent {language[1]} newsletter\")\n        except SMTPException as e:\n            logger.error(f\"Failed to send the {language[1]} \" f\"newsletter: {e}\")\n\n        translation.deactivate()\n", "path": "website/newsletters/emails.py"}], "after_files": [{"content": "from django.core.management.base import BaseCommand\n\nfrom newsletters import models, services\n\n\nclass Command(BaseCommand):\n    def add_arguments(self, parser):\n        parser.add_argument(\n            \"--include-unsent\",\n            action=\"store_true\",\n            dest=\"include-unsent\",\n            default=False,\n            help=\"Include newsletters that haven't been sent yet\",\n        )\n\n    def handle(self, *args, **options):\n        for n in models.Newsletter.objects.all():\n            if n.sent or options[\"include-unsent\"]:\n                services.save_to_disk(n)\n", "path": "website/newsletters/management/commands/createnewsletterhtml.py"}, {"content": "import os\n\nfrom django.conf import settings\nfrom django.template.loader import get_template\nfrom django.utils import translation, timezone\n\nfrom events.models import Event\nfrom members.models import Member\nfrom newsletters import emails\nfrom partners.models import Partner\nfrom pushnotifications.models import Message, Category\n\n\ndef write_to_file(pk, lang, html_message):\n    \"\"\"\n    Write newsletter to a file\n    \"\"\"\n    cache_dir = os.path.join(settings.MEDIA_ROOT, \"newsletters\")\n    if not os.path.isdir(cache_dir):\n        os.makedirs(cache_dir)\n\n    with open(os.path.join(cache_dir, f\"{pk}_{lang}.html\"), \"w+\") as cache_file:\n        cache_file.write(html_message)\n\n\ndef save_to_disk(newsletter):\n    \"\"\"\n    Writes the newsletter as HTML to file (in all languages)\n    \"\"\"\n    main_partner = Partner.objects.filter(is_main_partner=True).first()\n    local_partner = Partner.objects.filter(is_local_partner=True).first()\n\n    html_template = get_template(\"newsletters/email.html\")\n\n    for language in settings.LANGUAGES:\n        translation.activate(language[0])\n\n        context = {\n            \"newsletter\": newsletter,\n            \"agenda_events\": (\n                newsletter.newslettercontent_set.filter(newsletteritem=None).order_by(\n                    \"newsletterevent__start_datetime\"\n                )\n            ),\n            \"main_partner\": main_partner,\n            \"local_partner\": local_partner,\n            \"lang_code\": language[0],\n        }\n\n        html_message = html_template.render(context)\n\n        write_to_file(newsletter.pk, language[0], html_message)\n\n\ndef get_agenda(start_date):\n    end_date = start_date + timezone.timedelta(weeks=2)\n    published_events = Event.objects.filter(published=True)\n    base_events = published_events.filter(\n        start__gte=start_date, end__lt=end_date\n    ).order_by(\"start\")\n    if base_events.count() < 10:\n        more_events = published_events.filter(end__gte=end_date).order_by(\"start\")\n        return [*base_events, *more_events][:10]\n    return base_events\n\n\ndef send_newsletter(newsletter):\n    emails.send_newsletter(newsletter)\n    newsletter.sent = True\n    newsletter.save()\n    message = Message.objects.create(\n        title_en=newsletter.title_en,\n        body_en=\"Tap to view\",\n        url=settings.BASE_URL + newsletter.get_absolute_url(),\n        category=Category.objects.get(key=Category.NEWSLETTER),\n    )\n    message.users.set(Member.current_members.all())\n    message.send()\n\n    save_to_disk(newsletter)\n", "path": "website/newsletters/services.py"}, {"content": "\"\"\"The emails defined by the newsletters package\"\"\"\nimport logging\nfrom smtplib import SMTPException\n\nfrom django.conf import settings\nfrom django.core import mail\nfrom django.core.mail import EmailMultiAlternatives\nfrom django.template.loader import get_template\nfrom django.utils import translation, timezone\nfrom django.utils.timezone import make_aware\n\nfrom newsletters import services\nfrom partners.models import Partner\n\nlogger = logging.getLogger(__name__)\n\n\ndef send_newsletter(newsletter):\n    \"\"\"\n    Sends the newsletter as HTML and plaintext email\n\n    :param newsletter: the newsletter to be send\n\n    \"\"\"\n\n    events = None\n    if newsletter.date:\n        datetime = (\n            make_aware(\n                timezone.datetime(\n                    year=newsletter.date.year,\n                    month=newsletter.date.month,\n                    day=newsletter.date.day,\n                )\n            )\n            if newsletter.date\n            else None\n        )\n        events = services.get_agenda(datetime)\n\n    from_email = settings.NEWSLETTER_FROM_ADDRESS\n    html_template = get_template(\"newsletters/email.html\")\n    text_template = get_template(\"newsletters/email.txt\")\n\n    main_partner = Partner.objects.filter(is_main_partner=True).first()\n    local_partner = Partner.objects.filter(is_local_partner=True).first()\n\n    with mail.get_connection() as connection:\n        language = (\"en\", \"English\")\n        translation.activate(language[0])\n\n        subject = \"[THALIA] \" + newsletter.title\n\n        context = {\n            \"newsletter\": newsletter,\n            \"agenda_events\": events,\n            \"main_partner\": main_partner,\n            \"local_partner\": local_partner,\n            \"lang_code\": language[0],\n        }\n\n        html_message = html_template.render(context)\n        text_message = text_template.render(context)\n\n        msg = EmailMultiAlternatives(\n            subject=subject,\n            body=text_message,\n            to=[f\"newsletter@{settings.GSUITE_DOMAIN}\"],\n            from_email=from_email,\n            connection=connection,\n        )\n        msg.attach_alternative(html_message, \"text/html\")\n\n        try:\n            msg.send()\n            logger.info(f\"Sent {language[1]} newsletter\")\n        except SMTPException as e:\n            logger.error(f\"Failed to send the {language[1]} \" f\"newsletter: {e}\")\n\n        translation.deactivate()\n", "path": "website/newsletters/emails.py"}]}