{"title":"Skicka e-post","version":"6.1","locale":"sv","docname":"topics/email","url":"/sv/6.1/topics/email/","canonical":"https://djangodocs.dev/sv/6.1/topics/email/","summary":"Django tillhandahåller omslag för Pythons moduler email och smtplib för att förenkla att skapa och skicka e-post.","html":"<span id=\"sending-email\"></span><h1>Skicka e-post<a class=\"heading-anchor\" href=\"#module-django.core.mail\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h1>\n<p>Django tillhandahåller omslag för Pythons moduler <a class=\"reference external\" href=\"https://docs.python.org/3/library/email.html#module-email\" title=\"(in Python v3.14)\"><code class=\"xref py py-mod docutils literal notranslate\">email</code></a> och <a class=\"reference external\" href=\"https://docs.python.org/3/library/smtplib.html#module-smtplib\" title=\"(in Python v3.14)\"><code class=\"xref py py-mod docutils literal notranslate\">smtplib</code></a> för att förenkla att skapa och skicka e-post. Djangos e-postramverk stöder också att byta mellan olika leveransmekanismer: under utveckling kan du skicka e-post till konsolen eller en fil, och i produktion till en SMTP-server eller e-postleverantör.</p>\n<p>Koden finns i modulen <code class=\"docutils literal notranslate\">django.core.mail</code>.</p>\n<section id=\"quick-examples\">\n<h2>Snabba exempel<a class=\"heading-anchor\" href=\"#quick-examples\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Använd <a class=\"reference internal\" href=\"#django.core.mail.send_mail\" title=\"django.core.mail.send_mail\"><code class=\"xref py py-func docutils literal notranslate\">send_mail()</code></a> för att skicka e-post på ett enkelt sätt. Till exempel, för att skicka ett vanligt textmeddelande:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"kn\">from</span> <span class=\"nn\">django.core.mail</span> <span class=\"kn\">import</span> send_mail\n\nsend_mail<span class=\"p\">(</span>\n    <span class=\"s2\">&quot;Subject here&quot;</span><span class=\"p\">,</span>\n    <span class=\"s2\">&quot;Here is the message.&quot;</span><span class=\"p\">,</span>\n    <span class=\"s2\">&quot;from@example.com&quot;</span><span class=\"p\">,</span>\n    <span class=\"p\">[</span><span class=\"s2\">&quot;to@example.com&quot;</span><span class=\"p\">],</span>\n<span class=\"p\">)</span>\n</code></pre></div>\n<p>När du behöver ytterligare funktioner för att skicka e-post använder du klassen <a class=\"reference internal\" href=\"#topic-email-message\"><span class=\"std std-ref\">EmailMessage</span></a> eller <a class=\"reference internal\" href=\"#django.core.mail.EmailMultiAlternatives\" title=\"django.core.mail.EmailMultiAlternatives\"><code class=\"xref py py-class docutils literal notranslate\">EmailMultiAlternatives</code></a>. För att till exempel skicka ett fler-delat e-postmeddelande med både HTML- och klartextversioner, en viss mall och anpassade meddelandehuvuden kan du använda följande tillvägagångssätt:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"kn\">from</span> <span class=\"nn\">django.core.mail</span> <span class=\"kn\">import</span> EmailMultiAlternatives\n<span class=\"kn\">from</span> <span class=\"nn\">django.template.loader</span> <span class=\"kn\">import</span> render_to_string\n\n<span class=\"c1\"># First, render the plain text content.</span>\ntext_content <span class=\"o\">=</span> render_to_string<span class=\"p\">(</span>\n    <span class=\"s2\">&quot;templates/emails/my_email.txt&quot;</span><span class=\"p\">,</span>\n    context<span class=\"o\">=</span><span class=\"p\">{</span><span class=\"s2\">&quot;my_variable&quot;</span><span class=\"p\">:</span> <span class=\"mi\">42</span><span class=\"p\">},</span>\n<span class=\"p\">)</span>\n\n<span class=\"c1\"># Secondly, render the HTML content.</span>\nhtml_content <span class=\"o\">=</span> render_to_string<span class=\"p\">(</span>\n    <span class=\"s2\">&quot;templates/emails/my_email.html&quot;</span><span class=\"p\">,</span>\n    context<span class=\"o\">=</span><span class=\"p\">{</span><span class=\"s2\">&quot;my_variable&quot;</span><span class=\"p\">:</span> <span class=\"mi\">42</span><span class=\"p\">},</span>\n<span class=\"p\">)</span>\n\n<span class=\"c1\"># Then, create a multipart email instance.</span>\nmsg <span class=\"o\">=</span> EmailMultiAlternatives<span class=\"p\">(</span>\n    subject<span class=\"o\">=</span><span class=\"s2\">&quot;Subject here&quot;</span><span class=\"p\">,</span>\n    body<span class=\"o\">=</span>text_content<span class=\"p\">,</span>\n    from_email<span class=\"o\">=</span><span class=\"s2\">&quot;from@example.com&quot;</span><span class=\"p\">,</span>\n    to<span class=\"o\">=</span><span class=\"p\">[</span><span class=\"s2\">&quot;to@example.com&quot;</span><span class=\"p\">],</span>\n    headers<span class=\"o\">=</span><span class=\"p\">{</span><span class=\"s2\">&quot;List-Unsubscribe&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;&lt;mailto:unsub@example.com&gt;&quot;</span><span class=\"p\">},</span>\n<span class=\"p\">)</span>\n\n<span class=\"c1\"># Lastly, attach the HTML content to the email instance and send.</span>\nmsg<span class=\"o\">.</span>attach_alternative<span class=\"p\">(</span>html_content<span class=\"p\">,</span> <span class=\"s2\">&quot;text/html&quot;</span><span class=\"p\">)</span>\nmsg<span class=\"o\">.</span>send<span class=\"p\">()</span>\n</code></pre></div>\n</section>\n<section id=\"configuring-email\">\n<span id=\"topic-email-configuration\"></span><h2>Konfigurera e-post<a class=\"heading-anchor\" href=\"#configuring-email\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Nya Django-projekt är inte konfigurerade för att skicka e-post som standard. I stället skrivs e-post ut i konsolen som ett utvecklingshjälpmedel (för projekt skapade med <a class=\"reference internal\" href=\"/sv/6.1/ref/django-admin/#django-admin-startproject\"><code class=\"xref std std-djadmin docutils literal notranslate\">startproject</code></a>) eller leder till felet <code class=\"docutils literal notranslate\">MailerDoesNotExist</code> (när inställningen <a class=\"reference internal\" href=\"/sv/6.1/ref/settings/#std-setting-MAILERS\"><code class=\"xref std std-setting docutils literal notranslate\">MAILERS</code></a> inte har definierats).</p>\n<p>Använd inställningen <a class=\"reference internal\" href=\"/sv/6.1/ref/settings/#std-setting-MAILERS\"><code class=\"xref std std-setting docutils literal notranslate\">MAILERS</code></a> för att tala om för Django hur e-post ska skickas. Till exempel, för att skicka via en SMTP-server som körs på den lokala datorn:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code>MAILERS <span class=\"o\">=</span> <span class=\"p\">{</span>\n    <span class=\"s2\">&quot;default&quot;</span><span class=\"p\">:</span> <span class=\"p\">{</span>\n        <span class=\"s2\">&quot;BACKEND&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;django.core.mail.backends.smtp.EmailBackend&quot;</span><span class=\"p\">,</span>\n        <span class=\"s2\">&quot;OPTIONS&quot;</span><span class=\"p\">:</span> <span class=\"p\">{</span>\n            <span class=\"s2\">&quot;host&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;localhost&quot;</span><span class=\"p\">,</span>\n        <span class=\"p\">},</span>\n    <span class=\"p\">},</span>\n<span class=\"p\">}</span>\n</code></pre></div>\n<p>Django abstraherar e-postsändningsprocessen i en klass för ”e-postbackend”. <a class=\"reference internal\" href=\"#topic-email-backends\"><span class=\"std std-ref\">Backend för e-post</span></a> listar de e-postbackendar som följer med Django.</p>\n<p>Exemplet ovan använder Djangos <a class=\"reference internal\" href=\"#topic-email-smtp-backend\"><span class=\"std std-ref\">SMTP-e-postbackend</span></a>, som skickar med standardprotokollet <a class=\"reference external\" href=\"https://en.wikipedia.org/wiki/Simple_Mail_Transfer_Protocol\">SMTP</a>. Denna backend är användbar för många produktionskonfigurationer, bland annat SMTP-servrar i din egen infrastruktur och de flesta kommersiella e-posttjänstleverantörer (ESP). Det finns även <a class=\"reference internal\" href=\"#topic-third-party-email-backends\"><span class=\"std std-ref\">e-postbackendar från tredje part</span></a> som integreras direkt med ESP-API:er eller lägger till andra sändningsfunktioner.</p>\n<p>Under utveckling eller testning vill du ofta inte skicka e-post alls. Djangos testkörningsverktyg <a class=\"reference internal\" href=\"/sv/6.1/topics/testing/tools/#topics-testing-email\"><span class=\"std std-ref\">åsidosätter automatiskt</span></a> konfigurationen <a class=\"reference internal\" href=\"/sv/6.1/ref/settings/#std-setting-MAILERS\"><code class=\"xref std std-setting docutils literal notranslate\">MAILERS</code></a> och ersätter den med Djangos <a class=\"reference internal\" href=\"#topic-email-memory-backend\"><span class=\"std std-ref\">e-postbackend i minnet</span></a>. Det förhindrar att testfall skickar verklig e-post och ger dem tillgång till de meddelanden som skulle ha skickats. <span class=\"xref std std-ref\">topics/email:Konfigurera e-post för utveckling</span> beskriver några andra metoder.</p>\n<aside class=\"version-note version-changed\" data-version=\"6.1\" role=\"note\">\n<p class=\"version-note-title\">Changed in Django 6.1</p><p>I tidigare utgåvor använde Django som standard en SMTP-server på localhost för att skicka e-post, med den nu utfasade inställningen <a class=\"reference internal\" href=\"/sv/6.1/ref/settings/#std-setting-EMAIL_BACKEND\"><code class=\"xref std std-setting docutils literal notranslate\">EMAIL_BACKEND</code></a> och relaterade inställningar.</p>\n</aside>\n<aside class=\"version-note version-deprecated\" data-version=\"6.1\" role=\"note\">\n<p class=\"version-note-title\">Deprecated since Django 6.1</p><p><span class=\"versionmodified deprecated\">Ersatt sedan version 6.1: </span>Fram till Django 2028 gäller fortfarande det tidigare beteendet om inställningen <a class=\"reference internal\" href=\"/sv/6.1/ref/settings/#std-setting-MAILERS\"><code class=\"xref std std-setting docutils literal notranslate\">MAILERS</code></a> inte är definierad: Django använder då som standard en SMTP-server på localhost (men visar utfasningsvarningar). Från och med Django 2028 ger försök att skicka e-post utan definierad <a class=\"reference internal\" href=\"/sv/6.1/ref/settings/#std-setting-MAILERS\"><code class=\"xref std std-setting docutils literal notranslate\">MAILERS</code></a> felet <code class=\"docutils literal notranslate\">MailerDoesNotExist</code>.</p>\n<p>Befintliga projekt kan välja det nya beteendet i förväg genom att lägga till <a class=\"reference internal\" href=\"/sv/6.1/ref/settings/#std-setting-MAILERS\"><code class=\"xref std std-setting docutils literal notranslate\">MAILERS</code></a> i <code class=\"docutils literal notranslate\">settings.py</code>. Se <a class=\"reference internal\" href=\"/sv/6.1/howto/mailers-migration/#migrating-to-mailers\"><span class=\"std std-ref\">Migrera e-post till mailers</span></a>.</p>\n</aside>\n<section id=\"multiple-mailers\">\n<h3>Flera e-postkonfigurationer<a class=\"heading-anchor\" href=\"#multiple-mailers\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Ibland behöver olika typer av e-post skickas på olika sätt: till exempel intern respektive extern e-post, olika SMTP-servrar för användare i olika regioner, olika tjänster för transaktionsaviseringar och massutskick för marknadsföring, med mera.</p>\n<p>Inställningen <a class=\"reference internal\" href=\"/sv/6.1/ref/settings/#std-setting-MAILERS\"><code class=\"xref std std-setting docutils literal notranslate\">MAILERS</code></a> kan definiera flera e-postkonfigurationer. Till exempel:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"kn\">import</span> <span class=\"nn\">os</span>\n\nMAILERS <span class=\"o\">=</span> <span class=\"p\">{</span>\n    <span class=\"s2\">&quot;default&quot;</span><span class=\"p\">:</span> <span class=\"p\">{</span>\n        <span class=\"s2\">&quot;BACKEND&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;django.core.mail.backends.smtp.EmailBackend&quot;</span><span class=\"p\">,</span>\n        <span class=\"s2\">&quot;OPTIONS&quot;</span><span class=\"p\">:</span> <span class=\"p\">{</span>\n            <span class=\"s2\">&quot;host&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;smtp.example.net&quot;</span><span class=\"p\">,</span>\n            <span class=\"s2\">&quot;use_tls&quot;</span><span class=\"p\">:</span> <span class=\"kc\">True</span><span class=\"p\">,</span>\n            <span class=\"s2\">&quot;username&quot;</span><span class=\"p\">:</span> os<span class=\"o\">.</span>environ<span class=\"p\">[</span><span class=\"s2\">&quot;EMAIL_ACCOUNT_ID&quot;</span><span class=\"p\">],</span>\n            <span class=\"s2\">&quot;password&quot;</span><span class=\"p\">:</span> os<span class=\"o\">.</span>environ<span class=\"p\">[</span><span class=\"s2\">&quot;EMAIL_API_KEY&quot;</span><span class=\"p\">],</span>\n        <span class=\"p\">},</span>\n    <span class=\"p\">},</span>\n    <span class=\"s2\">&quot;notifications&quot;</span><span class=\"p\">:</span> <span class=\"p\">{</span>\n        <span class=\"s2\">&quot;BACKEND&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;example.third.party.EmailBackend&quot;</span><span class=\"p\">,</span>\n        <span class=\"s2\">&quot;OPTIONS&quot;</span><span class=\"p\">:</span> <span class=\"p\">{</span>\n            <span class=\"s2\">&quot;api_key&quot;</span><span class=\"p\">:</span> os<span class=\"o\">.</span>environ<span class=\"p\">[</span><span class=\"s2\">&quot;THIRD_PARTY_API_KEY&quot;</span><span class=\"p\">],</span>\n            <span class=\"s2\">&quot;region&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;eu&quot;</span><span class=\"p\">,</span>\n        <span class=\"p\">},</span>\n    <span class=\"p\">},</span>\n    <span class=\"s2\">&quot;admin&quot;</span><span class=\"p\">:</span> <span class=\"p\">{</span>\n        <span class=\"s2\">&quot;BACKEND&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;django.core.mail.backends.smtp.EmailBackend&quot;</span><span class=\"p\">,</span>\n        <span class=\"s2\">&quot;OPTIONS&quot;</span><span class=\"p\">:</span> <span class=\"p\">{</span>\n            <span class=\"s2\">&quot;host&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;localhost&quot;</span><span class=\"p\">,</span>\n        <span class=\"p\">},</span>\n    <span class=\"p\">},</span>\n<span class=\"p\">}</span>\n</code></pre></div>\n<p>Detta definierar tre e-postkonfigurationer:</p>\n<ul class=\"simple\">\n<li><p><code class=\"docutils literal notranslate\">&quot;default&quot;</code> skickar via en SMTP-server på <code class=\"docutils literal notranslate\">smtp.example.net</code> med en TLS-skyddad anslutning. Den läser ett konto-id och en API-nyckel från miljövariabler och använder dem som användarnamn och lösenord för SMTP-autentisering. (Många SMTP-tjänster använder någon variant av detta autentiseringsschema.)</p></li>\n<li><p><code class=\"docutils literal notranslate\">&quot;notifications&quot;</code> skickar via en hypotetisk kommersiell e-posttjänst, med en EmailBackend från tredje part som ansluter direkt till dess API. (Se <a class=\"reference internal\" href=\"#topic-third-party-email-backends\"><span class=\"std std-ref\">Tredjepartsbackendar</span></a> för vägledning om var du hittar verkliga community-underhållna paket för e-postbackendar.)</p></li>\n<li><p><code class=\"docutils literal notranslate\">&quot;admin&quot;</code> skickar via en SMTP-server på <code class=\"docutils literal notranslate\">localhost</code>, utan att några andra alternativ krävs.</p></li>\n</ul>\n<p>Med den här konfigurationen kan du ange argumentet <code class=\"docutils literal notranslate\">using</code> till Djangos <a class=\"reference internal\" href=\"#topic-email-sending\"><span class=\"std std-ref\">funktioner för att skicka e-post</span></a> för att välja en viss e-postkonfiguration:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"kn\">from</span> <span class=\"nn\">django.core.mail</span> <span class=\"kn\">import</span> send_mail\n\nsend_mail<span class=\"p\">(</span>\n    <span class=\"s2\">&quot;Account activated&quot;</span><span class=\"p\">,</span>\n    <span class=\"s2\">&quot;Congratulations, you&#39;re all ready to use our Django app!&quot;</span><span class=\"p\">,</span>\n    <span class=\"s2\">&quot;from@example.com&quot;</span><span class=\"p\">,</span>\n    <span class=\"p\">[</span><span class=\"s2\">&quot;user@example.com&quot;</span><span class=\"p\">],</span>\n    using<span class=\"o\">=</span><span class=\"s2\">&quot;notifications&quot;</span><span class=\"p\">,</span>\n<span class=\"p\">)</span>\n</code></pre></div>\n<p>Om <code class=\"docutils literal notranslate\">using</code> inte anges använder Django e-postkonfigurationen som definieras för konfigurationen <code class=\"docutils literal notranslate\">&quot;default&quot;</code>.</p>\n<p>För återanvändbara appar eller Django-funktioner som skickar e-post åt dig kan det finnas ett alternativ för att använda en viss e-postkonfiguration. Djangos loggningsklass <a class=\"reference internal\" href=\"/sv/6.1/ref/logging/#django.utils.log.AdminEmailHandler\" title=\"django.utils.log.AdminEmailHandler\"><code class=\"xref py py-class docutils literal notranslate\">AdminEmailHandler</code></a> låter dig till exempel ange e-postkonfigurationen i alternativet <code class=\"docutils literal notranslate\">using</code>.</p>\n</section>\n</section>\n<section id=\"sending-messages\">\n<span id=\"topic-email-sending\"></span><h2>Skicka meddelanden<a class=\"heading-anchor\" href=\"#sending-messages\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p><code class=\"xref py py-mod docutils literal notranslate\">django.core.mail</code> innehåller funktioner för att smidigt skicka e-post samt klasser för att bygga och skicka mer komplexa e-postmeddelanden med bilagor och flera innehållstyper.</p>\n<aside class=\"admonition admonition-note\" role=\"note\">\n<p class=\"admonition-title\">Observera</p>\n<p>Teckenuppsättningen för e-post som skickas med <code class=\"docutils literal notranslate\">django.core.mail</code> kommer att ställas in till värdet för din <a class=\"reference internal\" href=\"/sv/6.1/ref/settings/#std-setting-DEFAULT_CHARSET\"><code class=\"xref std std-setting docutils literal notranslate\">DEFAULT_CHARSET</code></a>-inställning.</p>\n</aside>\n<section id=\"send-mail\">\n<h3><code class=\"docutils literal notranslate\">send_mail()</code><a class=\"heading-anchor\" href=\"#send-mail\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py function\">\n<dt class=\"sig sig-object py\" id=\"django.core.mail.send_mail\">\n<span class=\"sig-name descname\">send_mail</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">subject</em>, <em class=\"sig-param\">message</em>, <em class=\"sig-param\">from_email</em>, <em class=\"sig-param\">recipient_list</em>, <em class=\"sig-param\"><span class=\"keyword-only-separator o\"><abbr title=\"Keyword-only parameters separator (PEP 3102)\">*</abbr></span></em>, <em class=\"sig-param\">fail_silently<span class=\"o\">=</span><span class=\"default_value\">False</span></em>, <em class=\"sig-param\">auth_user<span class=\"o\">=</span><span class=\"default_value\">None</span></em>, <em class=\"sig-param\">auth_password<span class=\"o\">=</span><span class=\"default_value\">None</span></em>, <em class=\"sig-param\">connection<span class=\"o\">=</span><span class=\"default_value\">None</span></em>, <em class=\"sig-param\">html_message<span class=\"o\">=</span><span class=\"default_value\">None</span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.core.mail.send_mail\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p><code class=\"docutils literal notranslate\">django.core.mail.send_mail()</code> skickar ett enskilt e-postmeddelande.</p>\n<p>Parametrarna <code class=\"docutils literal notranslate\">subject</code>, <code class=\"docutils literal notranslate\">message</code>, <code class=\"docutils literal notranslate\">from_email</code> och <code class=\"docutils literal notranslate\">recipient_list</code> är obligatoriska.</p>\n<ul class=\"simple\">\n<li><p><code class=\"docutils literal notranslate\">subject</code>: En sträng.</p></li>\n<li><p><code class=\"docutils literal notranslate\">meddelande</code>: En sträng.</p></li>\n<li><p><code class=\"docutils literal notranslate\">from_email</code>: En sträng. Om <code class=\"docutils literal notranslate\">None</code>, kommer Django att använda värdet av inställningen <a class=\"reference internal\" href=\"/sv/6.1/ref/settings/#std-setting-DEFAULT_FROM_EMAIL\"><code class=\"xref std std-setting docutils literal notranslate\">DEFAULT_FROM_EMAIL</code></a>.</p></li>\n<li><p><code class=\"docutils literal notranslate\">mottagare_lista</code>: En lista med strängar, var och en en e-postadress. Varje medlem i <code class=\"docutils literal notranslate\">recipient_list</code> kommer att se de andra mottagarna i fältet ”To:” i e-postmeddelandet.</p></li>\n</ul>\n<p>Följande parametrar är valfria och måste anges som nyckelordsargument om de används.</p>\n<ul class=\"simple\">\n<li><p><code class=\"docutils literal notranslate\">fail_silently</code>: Ett booleskt värde med standardvärdet <code class=\"docutils literal notranslate\">False</code>. Om det sätts till <code class=\"docutils literal notranslate\">True</code> undertrycker <code class=\"docutils literal notranslate\">send_mail()</code> vissa fel under sändningen. (Exakt vilka undantag som ignoreras beror på den e-postbackend som används.)</p></li>\n<li><p><code class=\"docutils literal notranslate\">auth_user</code>: Det valfria användarnamnet som ska användas för att autentisera sig mot SMTP-servern. Om detta inte anges kommer Django att använda värdet för inställningen <a class=\"reference internal\" href=\"/sv/6.1/ref/settings/#std-setting-EMAIL_HOST_USER\"><code class=\"xref std std-setting docutils literal notranslate\">EMAIL_HOST_USER</code></a>.</p></li>\n<li><p><code class=\"docutils literal notranslate\">auth_password</code>: Det valfria lösenordet som ska användas för att autentisera sig mot SMTP-servern. Om detta inte anges kommer Django att använda värdet för inställningen <a class=\"reference internal\" href=\"/sv/6.1/ref/settings/#std-setting-EMAIL_HOST_PASSWORD\"><code class=\"xref std std-setting docutils literal notranslate\">EMAIL_HOST_PASSWORD</code></a>.</p></li>\n<li><p><code class=\"docutils literal notranslate\">anslutning</code>: Den valfria e-postbackend som ska användas för att skicka e-post. Om inget anges kommer en instans av standardbackend att användas. Se dokumentationen på <a class=\"reference internal\" href=\"#topic-email-backends\"><span class=\"std std-ref\">Email backends</span></a> för mer information.</p></li>\n<li><p><code class=\"docutils literal notranslate\">html_message</code>: Om <code class=\"docutils literal notranslate\">html_message</code> anges kommer det resulterande e-postmeddelandet att vara ett e-postmeddelande av typen <em class=\"mimetype\">multipart/alternative</em> med <code class=\"docutils literal notranslate\">message</code> som innehållstyp av typen <em class=\"mimetype\">text/plain</em> och <code class=\"docutils literal notranslate\">html_message</code> som innehållstyp av typen <em class=\"mimetype\">text/html</em>.</p></li>\n<li><p><code class=\"docutils literal notranslate\">using</code>: Ett valfritt alias för <a class=\"reference internal\" href=\"/sv/6.1/ref/settings/#std-setting-MAILERS\"><code class=\"xref std std-setting docutils literal notranslate\">MAILERS</code></a> som används för att skicka e-post. Om det inte anges används standardkonfigurationen för e-post.</p></li>\n</ul>\n<p><code class=\"docutils literal notranslate\">fail_silently</code>, <code class=\"docutils literal notranslate\">auth_user</code>, <code class=\"docutils literal notranslate\">auth_password</code> och <code class=\"docutils literal notranslate\">connection</code> är inte tillåtna tillsammans med argumentet <code class=\"docutils literal notranslate\">using</code>.</p>\n<p>Returvärdet är antalet framgångsrikt levererade meddelanden (som kan vara <code class=\"docutils literal notranslate\">0</code> eller <code class=\"docutils literal notranslate\">1</code> eftersom det bara kan skicka ett meddelande).</p>\n<aside class=\"version-note version-deprecated\" data-version=\"6.0\" role=\"note\">\n<p class=\"version-note-title\">Deprecated since Django 6.0</p><p><span class=\"versionmodified deprecated\">Ersatt sedan version 6.0: </span>Att skicka <code class=\"docutils literal notranslate\">fail_silently</code> och senare parametrar som positionsargument är utfasat.</p>\n</aside>\n<aside class=\"version-note version-deprecated\" data-version=\"6.1\" role=\"note\">\n<p class=\"version-note-title\">Deprecated since Django 6.1</p><p><span class=\"versionmodified deprecated\">Ersatt sedan version 6.1: </span>Argumenten <code class=\"docutils literal notranslate\">fail_silently</code>, <code class=\"docutils literal notranslate\">auth_user</code>, <code class=\"docutils literal notranslate\">auth_password</code> och <code class=\"docutils literal notranslate\">connection</code> är föråldrade. I de flesta fall kan de ersättas med <code class=\"docutils literal notranslate\">using</code> och en lämplig <a class=\"reference internal\" href=\"/sv/6.1/ref/settings/#std-setting-MAILERS\"><code class=\"xref std std-setting docutils literal notranslate\">MAILERS</code></a>-konfiguration. Se <a class=\"reference internal\" href=\"/sv/6.1/howto/mailers-migration/#migrating-to-mailers-fail-silently\"><span class=\"std std-ref\">Ersätta fail_silently</span></a>, <a class=\"reference internal\" href=\"/sv/6.1/howto/mailers-migration/#migrating-to-mailers-auth\"><span class=\"std std-ref\">Ersätta auth_user och auth_password</span></a> och <a class=\"reference internal\" href=\"/sv/6.1/howto/mailers-migration/#migrating-to-mailers-get-connection\"><span class=\"std std-ref\">Ersätta get_connection() och argumenten connection</span></a>.</p>\n</aside>\n<aside class=\"version-note version-changed\" data-version=\"6.1\" role=\"note\">\n<p class=\"version-note-title\">Changed in Django 6.1</p><p>Argumentet <code class=\"docutils literal notranslate\">using</code> lades till.</p>\n<p>Äldre versioner ignorerade <code class=\"docutils literal notranslate\">fail_silently=True</code>, <code class=\"docutils literal notranslate\">auth_user</code> och <code class=\"docutils literal notranslate\">auth_password</code> när <code class=\"docutils literal notranslate\">connection</code> också angavs. Detta genererar nu <code class=\"docutils literal notranslate\">TypeError</code>.</p>\n</aside>\n</section>\n<section id=\"send-mass-mail\">\n<h3><code class=\"docutils literal notranslate\">sänd_mass_mail()</code><a class=\"heading-anchor\" href=\"#send-mass-mail\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py function\">\n<dt class=\"sig sig-object py\" id=\"django.core.mail.send_mass_mail\">\n<span class=\"sig-name descname\">send_mass_mail</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">datatuple</em>, <em class=\"sig-param\"><span class=\"keyword-only-separator o\"><abbr title=\"Keyword-only parameters separator (PEP 3102)\">*</abbr></span></em>, <em class=\"sig-param\">fail_silently<span class=\"o\">=</span><span class=\"default_value\">False</span></em>, <em class=\"sig-param\">auth_user<span class=\"o\">=</span><span class=\"default_value\">None</span></em>, <em class=\"sig-param\">auth_password<span class=\"o\">=</span><span class=\"default_value\">None</span></em>, <em class=\"sig-param\">connection<span class=\"o\">=</span><span class=\"default_value\">None</span></em>, <em class=\"sig-param\">using<span class=\"o\">=</span><span class=\"default_value\">None</span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.core.mail.send_mass_mail\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p><code class=\"docutils literal notranslate\">django.core.mail.send_mass_mail()</code> är avsedd att hantera massutskick av e-post.</p>\n<p><code class=\"docutils literal notranslate\">datatuple</code> är en tupel där varje element är i detta format:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"p\">(</span>subject<span class=\"p\">,</span> message<span class=\"p\">,</span> from_email<span class=\"p\">,</span> recipient_list<span class=\"p\">)</span>\n</code></pre></div>\n<p><code class=\"docutils literal notranslate\">fail_silently</code>, <code class=\"docutils literal notranslate\">auth_user</code>, <code class=\"docutils literal notranslate\">auth_password</code> och <code class=\"docutils literal notranslate\">connection</code> har samma funktioner som i <a class=\"reference internal\" href=\"#django.core.mail.send_mail\" title=\"django.core.mail.send_mail\"><code class=\"xref py py-func docutils literal notranslate\">send_mail()</code></a>. De måste anges som nyckelordsargument om de används och är inte tillåtna tillsammans med argumentet <code class=\"docutils literal notranslate\">using</code>.</p>\n<p>Nyckelordsargumentet <code class=\"docutils literal notranslate\">using</code> är ett valfritt alias för <a class=\"reference internal\" href=\"/sv/6.1/ref/settings/#std-setting-MAILERS\"><code class=\"xref std std-setting docutils literal notranslate\">MAILERS</code></a> som används för att skicka e-post. Om det inte anges används standardkonfigurationen för e-post.</p>\n<p>Varje separat element i <code class=\"docutils literal notranslate\">datatuple</code> resulterar i ett separat e-postmeddelande. Liksom i <a class=\"reference internal\" href=\"#django.core.mail.send_mail\" title=\"django.core.mail.send_mail\"><code class=\"xref py py-func docutils literal notranslate\">send_mail()</code></a> ser mottagare i samma <code class=\"docutils literal notranslate\">recipient_list</code> alla andra adresser i fältet ”To:” i e-postmeddelandena.</p>\n<p>Exempelvis skulle följande kod skicka två olika meddelanden till två olika uppsättningar mottagare, men endast en anslutning till e-postservern skulle öppnas:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code>message1 <span class=\"o\">=</span> <span class=\"p\">(</span>\n    <span class=\"s2\">&quot;Subject here&quot;</span><span class=\"p\">,</span>\n    <span class=\"s2\">&quot;Here is the message&quot;</span><span class=\"p\">,</span>\n    <span class=\"s2\">&quot;from@example.com&quot;</span><span class=\"p\">,</span>\n    <span class=\"p\">[</span><span class=\"s2\">&quot;first@example.com&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;other@example.com&quot;</span><span class=\"p\">],</span>\n<span class=\"p\">)</span>\nmessage2 <span class=\"o\">=</span> <span class=\"p\">(</span>\n    <span class=\"s2\">&quot;Another Subject&quot;</span><span class=\"p\">,</span>\n    <span class=\"s2\">&quot;Here is another message&quot;</span><span class=\"p\">,</span>\n    <span class=\"s2\">&quot;from@example.com&quot;</span><span class=\"p\">,</span>\n    <span class=\"p\">[</span><span class=\"s2\">&quot;second@test.com&quot;</span><span class=\"p\">],</span>\n<span class=\"p\">)</span>\nsend_mass_mail<span class=\"p\">((</span>message1<span class=\"p\">,</span> message2<span class=\"p\">))</span>\n</code></pre></div>\n<p>Returvärdet är antalet framgångsrikt levererade meddelanden.</p>\n<aside class=\"version-note version-deprecated\" data-version=\"6.0\" role=\"note\">\n<p class=\"version-note-title\">Deprecated since Django 6.0</p><p><span class=\"versionmodified deprecated\">Ersatt sedan version 6.0: </span>Att skicka <code class=\"docutils literal notranslate\">fail_silently</code> och senare parametrar som positionsargument är utfasat.</p>\n</aside>\n<aside class=\"version-note version-deprecated\" data-version=\"6.1\" role=\"note\">\n<p class=\"version-note-title\">Deprecated since Django 6.1</p><p><span class=\"versionmodified deprecated\">Ersatt sedan version 6.1: </span>Argumenten <code class=\"docutils literal notranslate\">fail_silently</code>, <code class=\"docutils literal notranslate\">auth_user</code>, <code class=\"docutils literal notranslate\">auth_password</code> och <code class=\"docutils literal notranslate\">connection</code> är föråldrade. I de flesta fall kan de ersättas med <code class=\"docutils literal notranslate\">using</code> och en lämplig <a class=\"reference internal\" href=\"/sv/6.1/ref/settings/#std-setting-MAILERS\"><code class=\"xref std std-setting docutils literal notranslate\">MAILERS</code></a>-konfiguration. Se <a class=\"reference internal\" href=\"/sv/6.1/howto/mailers-migration/#migrating-to-mailers-fail-silently\"><span class=\"std std-ref\">Ersätta fail_silently</span></a>, <a class=\"reference internal\" href=\"/sv/6.1/howto/mailers-migration/#migrating-to-mailers-auth\"><span class=\"std std-ref\">Ersätta auth_user och auth_password</span></a> och <a class=\"reference internal\" href=\"/sv/6.1/howto/mailers-migration/#migrating-to-mailers-get-connection\"><span class=\"std std-ref\">Ersätta get_connection() och argumenten connection</span></a>.</p>\n</aside>\n<aside class=\"version-note version-changed\" data-version=\"6.1\" role=\"note\">\n<p class=\"version-note-title\">Changed in Django 6.1</p><p>Argumentet <code class=\"docutils literal notranslate\">using</code> lades till.</p>\n<p>Äldre versioner ignorerade <code class=\"docutils literal notranslate\">fail_silently=True</code>, <code class=\"docutils literal notranslate\">auth_user</code> och <code class=\"docutils literal notranslate\">auth_password</code> när <code class=\"docutils literal notranslate\">connection</code> också angavs. Detta genererar nu <code class=\"docutils literal notranslate\">TypeError</code>.</p>\n</aside>\n<section id=\"send-mass-mail-vs-send-mail\">\n<h4><code class=\"docutils literal notranslate\">send_mass_mail()</code> vs. <code class=\"docutils literal notranslate\">send_mail()</code><a class=\"heading-anchor\" href=\"#send-mass-mail-vs-send-mail\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h4>\n<p>Huvudskillnaden mellan <a class=\"reference internal\" href=\"#django.core.mail.send_mass_mail\" title=\"django.core.mail.send_mass_mail\"><code class=\"xref py py-func docutils literal notranslate\">send_mass_mail()</code></a> och att upprepade gånger anropa <a class=\"reference internal\" href=\"#django.core.mail.send_mail\" title=\"django.core.mail.send_mail\"><code class=\"xref py py-func docutils literal notranslate\">send_mail()</code></a> är att <a class=\"reference internal\" href=\"#django.core.mail.send_mail\" title=\"django.core.mail.send_mail\"><code class=\"xref py py-func docutils literal notranslate\">send_mail()</code></a> öppnar en anslutning till e-postservern varje gång den körs, medan <a class=\"reference internal\" href=\"#django.core.mail.send_mass_mail\" title=\"django.core.mail.send_mass_mail\"><code class=\"xref py py-func docutils literal notranslate\">send_mass_mail()</code></a> använder en enda anslutning för alla meddelanden. Det gör <a class=\"reference internal\" href=\"#django.core.mail.send_mass_mail\" title=\"django.core.mail.send_mass_mail\"><code class=\"xref py py-func docutils literal notranslate\">send_mass_mail()</code></a> något effektivare.</p>\n<p><a class=\"reference internal\" href=\"#django.core.mail.send_mail\" title=\"django.core.mail.send_mail\"><code class=\"xref py py-func docutils literal notranslate\">send_mail()</code></a> med flera <code class=\"docutils literal notranslate\">to</code>-adresser skickar ett enda e-postmeddelande där både <code class=\"docutils literal notranslate\">john&#64;example.com</code> och <code class=\"docutils literal notranslate\">jane&#64;example.com</code> visas i fältet ”To:”:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code>send_mail<span class=\"p\">(</span>\n    <span class=\"s2\">&quot;Subject&quot;</span><span class=\"p\">,</span>\n    <span class=\"s2\">&quot;Message.&quot;</span><span class=\"p\">,</span>\n    <span class=\"s2\">&quot;from@example.com&quot;</span><span class=\"p\">,</span>\n    <span class=\"p\">[</span><span class=\"s2\">&quot;john@example.com&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;jane@example.com&quot;</span><span class=\"p\">],</span>\n<span class=\"p\">)</span>\n</code></pre></div>\n<p><a class=\"reference internal\" href=\"#django.core.mail.send_mass_mail\" title=\"django.core.mail.send_mass_mail\"><code class=\"xref py py-func docutils literal notranslate\">send_mass_mail()</code></a> skickar ett separat meddelande per <code class=\"docutils literal notranslate\">datatuple</code>-element, så att <code class=\"docutils literal notranslate\">john&#64;example.com</code> och <code class=\"docutils literal notranslate\">jane&#64;example.com</code> var och en får sitt eget e-postmeddelande:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code>datatuple <span class=\"o\">=</span> <span class=\"p\">(</span>\n    <span class=\"p\">(</span><span class=\"s2\">&quot;Subject&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;Message.&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;from@example.com&quot;</span><span class=\"p\">,</span> <span class=\"p\">[</span><span class=\"s2\">&quot;john@example.com&quot;</span><span class=\"p\">]),</span>\n    <span class=\"p\">(</span><span class=\"s2\">&quot;Subject&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;Message.&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;from@example.com&quot;</span><span class=\"p\">,</span> <span class=\"p\">[</span><span class=\"s2\">&quot;jane@example.com&quot;</span><span class=\"p\">]),</span>\n<span class=\"p\">)</span>\nsend_mass_mail<span class=\"p\">(</span>datatuple<span class=\"p\">)</span>\n</code></pre></div>\n</section>\n</section>\n<section id=\"mail-admins\">\n<h3><code class=\"docutils literal notranslate\">mail_admins()</code><a class=\"heading-anchor\" href=\"#mail-admins\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py function\">\n<dt class=\"sig sig-object py\" id=\"django.core.mail.mail_admins\">\n<span class=\"sig-name descname\">mail_admins</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">subject</em>, <em class=\"sig-param\">message</em>, <em class=\"sig-param\"><span class=\"keyword-only-separator o\"><abbr title=\"Keyword-only parameters separator (PEP 3102)\">*</abbr></span></em>, <em class=\"sig-param\">fail_silently<span class=\"o\">=</span><span class=\"default_value\">False</span></em>, <em class=\"sig-param\">connection<span class=\"o\">=</span><span class=\"default_value\">None</span></em>, <em class=\"sig-param\">html_message<span class=\"o\">=</span><span class=\"default_value\">None</span></em>, <em class=\"sig-param\">using<span class=\"o\">=</span><span class=\"default_value\">None</span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.core.mail.mail_admins\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p><code class=\"docutils literal notranslate\">django.core.mail.mail_admins()</code> är en genväg för att skicka ett e-postmeddelande till webbplatsadministratörerna, enligt definitionen i inställningen <a class=\"reference internal\" href=\"/sv/6.1/ref/settings/#std-setting-ADMINS\"><code class=\"xref std std-setting docutils literal notranslate\">ADMINS</code></a>.</p>\n<p><code class=\"docutils literal notranslate\">mail_admins()</code> prefixar ämnet med värdet på inställningen <a class=\"reference internal\" href=\"/sv/6.1/ref/settings/#std-setting-EMAIL_SUBJECT_PREFIX\"><code class=\"xref std std-setting docutils literal notranslate\">EMAIL_SUBJECT_PREFIX</code></a>, som är <code class=\"docutils literal notranslate\">&quot;[Django]&quot;</code> som standard.</p>\n<p>”From:”-rubriken i e-postmeddelandet kommer att vara värdet för inställningen <a class=\"reference internal\" href=\"/sv/6.1/ref/settings/#std-setting-SERVER_EMAIL\"><code class=\"xref std std-setting docutils literal notranslate\">SERVER_EMAIL</code></a>.</p>\n<p>Denna metod finns för enkelhetens och läsbarhetens skull.</p>\n<p>Om <code class=\"docutils literal notranslate\">html_message</code> anges kommer det resulterande e-postmeddelandet att vara ett <em class=\"mimetype\">multipart/alternative</em> e-postmeddelande med <code class=\"docutils literal notranslate\">message</code> som innehållstyp <em class=\"mimetype\">text/plain</em> och <code class=\"docutils literal notranslate\">html_message</code> som innehållstyp <em class=\"mimetype\">text/html</em>.</p>\n<p>Nyckelordsargumentet <code class=\"docutils literal notranslate\">using</code> är ett valfritt alias för <a class=\"reference internal\" href=\"/sv/6.1/ref/settings/#std-setting-MAILERS\"><code class=\"xref std std-setting docutils literal notranslate\">MAILERS</code></a> som används för att skicka e-post. Om det inte anges används standardkonfigurationen för e-post.</p>\n<aside class=\"version-note version-deprecated\" data-version=\"6.0\" role=\"note\">\n<p class=\"version-note-title\">Deprecated since Django 6.0</p><p><span class=\"versionmodified deprecated\">Ersatt sedan version 6.0: </span>Att skicka <code class=\"docutils literal notranslate\">fail_silently</code> och senare parametrar som positionsargument är utfasat.</p>\n</aside>\n<aside class=\"version-note version-deprecated\" data-version=\"6.1\" role=\"note\">\n<p class=\"version-note-title\">Deprecated since Django 6.1</p><p><span class=\"versionmodified deprecated\">Ersatt sedan version 6.1: </span>Argumenten <code class=\"docutils literal notranslate\">fail_silently</code> och <code class=\"docutils literal notranslate\">connection</code> är utfasade. I de flesta fall kan de ersättas av <code class=\"docutils literal notranslate\">using</code> med en lämplig <a class=\"reference internal\" href=\"/sv/6.1/ref/settings/#std-setting-MAILERS\"><code class=\"xref std std-setting docutils literal notranslate\">MAILERS</code></a>-konfiguration. Se <a class=\"reference internal\" href=\"/sv/6.1/howto/mailers-migration/#migrating-to-mailers-fail-silently\"><span class=\"std std-ref\">Ersätta fail_silently</span></a> och <a class=\"reference internal\" href=\"/sv/6.1/howto/mailers-migration/#migrating-to-mailers-get-connection\"><span class=\"std std-ref\">Ersätta get_connection() och argumenten connection</span></a>.</p>\n</aside>\n<aside class=\"version-note version-changed\" data-version=\"6.1\" role=\"note\">\n<p class=\"version-note-title\">Changed in Django 6.1</p><p>Argumentet <code class=\"docutils literal notranslate\">using</code> lades till.</p>\n<p>Äldre versioner ignorerade <code class=\"docutils literal notranslate\">fail_silently=True</code> när även <code class=\"docutils literal notranslate\">connection</code> angavs. Detta ger nu ett <code class=\"docutils literal notranslate\">TypeError</code>.</p>\n</aside>\n</section>\n<section id=\"mail-managers\">\n<h3><code class=\"docutils literal notranslate\">mail_managers()</code><a class=\"heading-anchor\" href=\"#mail-managers\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py function\">\n<dt class=\"sig sig-object py\" id=\"django.core.mail.mail_managers\">\n<span class=\"sig-name descname\">mail_managers</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">subject</em>, <em class=\"sig-param\">message</em>, <em class=\"sig-param\"><span class=\"keyword-only-separator o\"><abbr title=\"Keyword-only parameters separator (PEP 3102)\">*</abbr></span></em>, <em class=\"sig-param\">fail_silently<span class=\"o\">=</span><span class=\"default_value\">False</span></em>, <em class=\"sig-param\">connection<span class=\"o\">=</span><span class=\"default_value\">None</span></em>, <em class=\"sig-param\">html_message<span class=\"o\">=</span><span class=\"default_value\">None</span></em>, <em class=\"sig-param\">using<span class=\"o\">=</span><span class=\"default_value\">None</span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.core.mail.mail_managers\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p><code class=\"docutils literal notranslate\">django.core.mail.mail_managers()</code> är precis som <code class=\"docutils literal notranslate\">mail_admins()</code>, förutom att den skickar ett e-postmeddelande till webbplatsansvariga, enligt definitionen i inställningen <a class=\"reference internal\" href=\"/sv/6.1/ref/settings/#std-setting-MANAGERS\"><code class=\"xref std std-setting docutils literal notranslate\">MANAGERS</code></a>.</p>\n<p>Nyckelordsargumentet <code class=\"docutils literal notranslate\">using</code> är ett valfritt alias för <a class=\"reference internal\" href=\"/sv/6.1/ref/settings/#std-setting-MAILERS\"><code class=\"xref std std-setting docutils literal notranslate\">MAILERS</code></a> som används för att skicka e-post. Om det inte anges används standardkonfigurationen för e-post.</p>\n<aside class=\"version-note version-deprecated\" data-version=\"6.0\" role=\"note\">\n<p class=\"version-note-title\">Deprecated since Django 6.0</p><p><span class=\"versionmodified deprecated\">Ersatt sedan version 6.0: </span>Att skicka <code class=\"docutils literal notranslate\">fail_silently</code> och senare parametrar som positionsargument är utfasat.</p>\n</aside>\n<aside class=\"version-note version-deprecated\" data-version=\"6.1\" role=\"note\">\n<p class=\"version-note-title\">Deprecated since Django 6.1</p><p><span class=\"versionmodified deprecated\">Ersatt sedan version 6.1: </span>Argumenten <code class=\"docutils literal notranslate\">fail_silently</code> och <code class=\"docutils literal notranslate\">connection</code> är utfasade. I de flesta fall kan de ersättas av <code class=\"docutils literal notranslate\">using</code> med en lämplig <a class=\"reference internal\" href=\"/sv/6.1/ref/settings/#std-setting-MAILERS\"><code class=\"xref std std-setting docutils literal notranslate\">MAILERS</code></a>-konfiguration. Se <a class=\"reference internal\" href=\"/sv/6.1/howto/mailers-migration/#migrating-to-mailers-fail-silently\"><span class=\"std std-ref\">Ersätta fail_silently</span></a> och <a class=\"reference internal\" href=\"/sv/6.1/howto/mailers-migration/#migrating-to-mailers-get-connection\"><span class=\"std std-ref\">Ersätta get_connection() och argumenten connection</span></a>.</p>\n</aside>\n<aside class=\"version-note version-changed\" data-version=\"6.1\" role=\"note\">\n<p class=\"version-note-title\">Changed in Django 6.1</p><p>Argumentet <code class=\"docutils literal notranslate\">using</code> lades till.</p>\n<p>Äldre versioner ignorerade <code class=\"docutils literal notranslate\">fail_silently=True</code> när även <code class=\"docutils literal notranslate\">connection</code> angavs. Detta ger nu ett <code class=\"docutils literal notranslate\">TypeError</code>.</p>\n</aside>\n</section>\n<section id=\"the-emailmessage-class\">\n<span id=\"topic-email-message\"></span><h3>Klassen ”E-postmeddelande<a class=\"heading-anchor\" href=\"#the-emailmessage-class\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Djangos funktioner <a class=\"reference internal\" href=\"#django.core.mail.send_mail\" title=\"django.core.mail.send_mail\"><code class=\"xref py py-func docutils literal notranslate\">send_mail()</code></a> och <a class=\"reference internal\" href=\"#django.core.mail.send_mass_mail\" title=\"django.core.mail.send_mass_mail\"><code class=\"xref py py-meth docutils literal notranslate\">send_mass_mail()</code></a> är egentligen tunna omslag som använder klassen <a class=\"reference internal\" href=\"#django.core.mail.EmailMessage\" title=\"django.core.mail.EmailMessage\"><code class=\"xref py py-class docutils literal notranslate\">EmailMessage</code></a>.</p>\n<p>Alla funktioner i klassen <a class=\"reference internal\" href=\"#django.core.mail.EmailMessage\" title=\"django.core.mail.EmailMessage\"><code class=\"xref py py-class docutils literal notranslate\">EmailMessage</code></a> är inte tillgängliga via <a class=\"reference internal\" href=\"#django.core.mail.send_mail\" title=\"django.core.mail.send_mail\"><code class=\"xref py py-func docutils literal notranslate\">send_mail()</code></a> och relaterade omslagsfunktioner. Om du vill använda avancerade funktioner, såsom BCC-mottagare, filbilagor eller e-post i flera delar, behöver du skapa <a class=\"reference internal\" href=\"#django.core.mail.EmailMessage\" title=\"django.core.mail.EmailMessage\"><code class=\"xref py py-class docutils literal notranslate\">EmailMessage</code></a>-instanser direkt.</p>\n<aside class=\"admonition admonition-note\" role=\"note\">\n<p class=\"admonition-title\">Observera</p>\n<p>Detta är en designfunktion. <a class=\"reference internal\" href=\"#django.core.mail.send_mail\" title=\"django.core.mail.send_mail\"><code class=\"xref py py-func docutils literal notranslate\">send_mail()</code></a> och relaterade funktioner var ursprungligen det enda gränssnitt som Django tillhandahöll. Listan med parametrar som de accepterade växte dock långsamt över tid. Det var rimligt att gå över till en mer objektorienterad design för e-postmeddelanden och bara behålla de ursprungliga funktionerna för bakåtkompatibilitet.</p>\n</aside>\n<p><a class=\"reference internal\" href=\"#django.core.mail.EmailMessage\" title=\"django.core.mail.EmailMessage\"><code class=\"xref py py-class docutils literal notranslate\">EmailMessage</code></a> ansvarar för att skapa själva e-postmeddelandet. <a class=\"reference internal\" href=\"#topic-email-backends\"><span class=\"std std-ref\">e-postbackend</span></a> ansvarar sedan för att skicka e-postmeddelandet.</p>\n<p>För enkelhetens skull tillhandahåller <a class=\"reference internal\" href=\"#django.core.mail.EmailMessage\" title=\"django.core.mail.EmailMessage\"><code class=\"xref py py-class docutils literal notranslate\">EmailMessage</code></a> metoden <a class=\"reference internal\" href=\"#django.core.mail.EmailMessage.send\" title=\"django.core.mail.EmailMessage.send\"><code class=\"xref py py-meth docutils literal notranslate\">send()</code></a> för att skicka ett enskilt e-postmeddelande. Om du behöver skicka flera meddelanden <a class=\"reference internal\" href=\"#topics-sending-multiple-emails\"><span class=\"std std-ref\">erbjuder e-postbackendens API ett alternativ</span></a>.</p>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.core.mail.EmailMessage\">\n<em class=\"property\"><span class=\"k\">class</span> </em><span class=\"sig-name descname\">EmailMessage</span><a class=\"heading-anchor\" href=\"#django.core.mail.EmailMessage\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Klassen <code class=\"xref py py-class docutils literal notranslate\">EmailMessage</code> initieras med följande parametrar. Alla parametrar är valfria och kan anges när som helst före anropet av metoden <a class=\"reference internal\" href=\"#django.core.mail.EmailMessage.send\" title=\"django.core.mail.EmailMessage.send\"><code class=\"xref py py-meth docutils literal notranslate\">send()</code></a>.</p>\n<p>De fyra första parametrarna kan skickas som positions- eller nyckelordsargument, men måste ha den angivna ordningen om positionsargument används:</p>\n<ul class=\"simple\">\n<li><p><code class=\"docutils literal notranslate\">subject</code>: Ämnesraden för e-postmeddelandet.</p></li>\n<li><p><code class=\"docutils literal notranslate\">kropp</code>: Texten i brödtexten. Detta bör vara ett vanligt textmeddelande.</p></li>\n<li><p><code class=\"docutils literal notranslate\">from_email</code>: Avsändarens adress. Både formerna <code class=\"docutils literal notranslate\">fred&#64;example.com</code> och <code class=\"docutils literal notranslate\">&quot;Fred&quot; &lt;fred&#64;example.com&gt;</code> stöds (se <a class=\"reference internal\" href=\"#formatting-addresses\"><span class=\"std std-ref\">Formatera e-postadresser</span></a>). Om den utelämnas används inställningen <a class=\"reference internal\" href=\"/sv/6.1/ref/settings/#std-setting-DEFAULT_FROM_EMAIL\"><code class=\"xref std std-setting docutils literal notranslate\">DEFAULT_FROM_EMAIL</code></a>.</p></li>\n<li><p><code class=\"docutils literal notranslate\">till</code>: En lista eller tupel av mottagaradresser.</p></li>\n</ul>\n<p>Följande parametrar måste anges som nyckelordsargument om de används:</p>\n<ul>\n<li><p><code class=\"docutils literal notranslate\">cc</code>: En lista eller tupel av mottagaradresser som används i ”Cc”-rubriken när e-postmeddelandet skickas.</p></li>\n<li><p><code class=\"docutils literal notranslate\">bcc</code>: En lista eller tupel med adresser som används för hemlig kopia när e-postmeddelandet skickas.</p></li>\n<li><p><code class=\"docutils literal notranslate\">reply_to</code>: En lista eller tupel av mottagaradresser som används i ”Reply-To”-rubriken när e-postmeddelandet skickas.</p></li>\n<li><p><code class=\"docutils literal notranslate\">attachments</code>: En lista med bilagor som ska läggas till i meddelandet. Varje bilaga kan vara en instans av <a class=\"reference external\" href=\"https://docs.python.org/3/library/email.message.html#email.message.MIMEPart\" title=\"(in Python v3.14)\"><code class=\"xref py py-class docutils literal notranslate\">MIMEPart</code></a> eller <a class=\"reference internal\" href=\"#django.core.mail.EmailAttachment\" title=\"django.core.mail.EmailAttachment\"><code class=\"xref py py-class docutils literal notranslate\">EmailAttachment</code></a>, eller en tupel med attributen <code class=\"docutils literal notranslate\">(filename, content, mimetype)</code>.</p>\n<aside class=\"version-note version-changed\" data-version=\"6.0\" role=\"note\">\n<p class=\"version-note-title\">Changed in Django 6.0</p><p>Stöd för <a class=\"reference external\" href=\"https://docs.python.org/3/library/email.message.html#email.message.MIMEPart\" title=\"(in Python v3.14)\"><code class=\"xref py py-class docutils literal notranslate\">MIMEPart</code></a>-objekt i listan <code class=\"docutils literal notranslate\">attachments</code> lades till.</p>\n</aside>\n<aside class=\"version-note version-deprecated\" data-version=\"6.0\" role=\"note\">\n<p class=\"version-note-title\">Deprecated since Django 6.0</p><p><span class=\"versionmodified deprecated\">Ersatt sedan version 6.0: </span>Stöd för Pythons äldre <a class=\"reference external\" href=\"https://docs.python.org/3/library/email.mime.html#email.mime.base.MIMEBase\" title=\"(in Python v3.14)\"><code class=\"xref py py-class docutils literal notranslate\">MIMEBase</code></a>-objekt i <code class=\"docutils literal notranslate\">attachments</code> är utfasat. Använd i stället <a class=\"reference external\" href=\"https://docs.python.org/3/library/email.message.html#email.message.MIMEPart\" title=\"(in Python v3.14)\"><code class=\"xref py py-class docutils literal notranslate\">MIMEPart</code></a>.</p>\n</aside>\n</li>\n<li><p><code class=\"docutils literal notranslate\">headers</code>: En ordbok med extra rubriker som ska läggas till meddelandet. Nycklarna är rubriknamnet, värdena är rubrikvärdena. Det är upp till den som anropar att se till att rubriknamn och värden är i rätt format för ett e-postmeddelande. Motsvarande attribut är <code class=\"docutils literal notranslate\">extra_headers</code>.</p></li>\n<li><p><code class=\"docutils literal notranslate\">connection</code>: En instans av en <a class=\"reference internal\" href=\"#topic-email-backends\"><span class=\"std std-ref\">e-postbackend</span></a>. Denna parameter ignoreras när <a class=\"reference internal\" href=\"#topics-sending-multiple-emails\"><span class=\"std std-ref\">send_messages()</span></a> används.</p>\n<aside class=\"version-note version-deprecated\" data-version=\"6.1\" role=\"note\">\n<p class=\"version-note-title\">Deprecated since Django 6.1</p><p><span class=\"versionmodified deprecated\">Ersatt sedan version 6.1: </span>Argumentet <code class=\"docutils literal notranslate\">connection</code> är utfasat. Definiera i stället en <a class=\"reference internal\" href=\"/sv/6.1/ref/settings/#std-setting-MAILERS\"><code class=\"xref std std-setting docutils literal notranslate\">MAILERS</code></a>-konfiguration med önskade anslutningsalternativ och anropa sedan <a class=\"reference internal\" href=\"#django.core.mail.EmailMessage.send\" title=\"django.core.mail.EmailMessage.send\"><code class=\"xref py py-meth docutils literal notranslate\">EmailMessage.send(using=&quot;...&quot;)</code></a> med den konfigurationens alias. Se <a class=\"reference internal\" href=\"/sv/6.1/howto/mailers-migration/#migrating-to-mailers\"><span class=\"std std-ref\">Migrera e-post till mailers</span></a>.</p>\n</aside>\n</li>\n</ul>\n<aside class=\"version-note version-deprecated\" data-version=\"6.0\" role=\"note\">\n<p class=\"version-note-title\">Deprecated since Django 6.0</p><p><span class=\"versionmodified deprecated\">Ersatt sedan version 6.0: </span>Att skicka alla parametrar utom de fyra första som positionsargument är utfasat.</p>\n</aside>\n<p>Till exempel:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"kn\">from</span> <span class=\"nn\">django.core.mail</span> <span class=\"kn\">import</span> EmailMessage\n\nemail <span class=\"o\">=</span> EmailMessage<span class=\"p\">(</span>\n    subject<span class=\"o\">=</span><span class=\"s2\">&quot;Hello&quot;</span><span class=\"p\">,</span>\n    body<span class=\"o\">=</span><span class=\"s2\">&quot;Body goes here&quot;</span><span class=\"p\">,</span>\n    from_email<span class=\"o\">=</span><span class=\"s2\">&quot;from@example.com&quot;</span><span class=\"p\">,</span>\n    to<span class=\"o\">=</span><span class=\"p\">[</span><span class=\"s2\">&quot;to1@example.com&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;to2@example.com&quot;</span><span class=\"p\">],</span>\n    bcc<span class=\"o\">=</span><span class=\"p\">[</span><span class=\"s2\">&quot;bcc@example.com&quot;</span><span class=\"p\">],</span>\n    reply_to<span class=\"o\">=</span><span class=\"p\">[</span><span class=\"s2\">&quot;another@example.com&quot;</span><span class=\"p\">],</span>\n    headers<span class=\"o\">=</span><span class=\"p\">{</span><span class=\"s2\">&quot;Message-ID&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;foo&quot;</span><span class=\"p\">},</span>\n<span class=\"p\">)</span>\n</code></pre></div>\n<p>Klassen har följande metoder:</p>\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.core.mail.EmailMessage.send\">\n<span class=\"sig-name descname\">send</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">fail_silently<span class=\"o\">=</span><span class=\"default_value\">False</span></em>, <em class=\"sig-param\"><span class=\"keyword-only-separator o\"><abbr title=\"Keyword-only parameters separator (PEP 3102)\">*</abbr></span></em>, <em class=\"sig-param\">using<span class=\"o\">=</span><span class=\"default_value\">None</span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.core.mail.EmailMessage.send\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Skickar meddelandet. Returnerar <code class=\"docutils literal notranslate\">1</code> om meddelandet skickades, annars <code class=\"docutils literal notranslate\">0</code>. (En tom mottagarlista returnerar <code class=\"docutils literal notranslate\">0</code> – inget undantag utlöses.)</p>\n<p>Det valfria nyckelordsargumentet <code class=\"docutils literal notranslate\">using</code> anger ett alias för <a class=\"reference internal\" href=\"/sv/6.1/ref/settings/#std-setting-MAILERS\"><code class=\"xref std std-setting docutils literal notranslate\">MAILERS</code></a> som används för att skicka e-post. Om det inte anges används standardkonfigurationen för e-post.</p>\n<p>Om en utfasad anslutning angavs när e-postmeddelandet konstruerades används den anslutningen. Att ange både en anslutning och <code class=\"docutils literal notranslate\">using</code> ger ett fel.</p>\n<p>Om det utfasade nyckelordsargumentet <code class=\"docutils literal notranslate\">fail_silently</code> är <code class=\"docutils literal notranslate\">True</code> ignoreras vissa backendberoende undantag när meddelandet skickas. Att ange både <code class=\"docutils literal notranslate\">fail_silently</code> och <code class=\"docutils literal notranslate\">using</code> ger ett fel.</p>\n<aside class=\"version-note version-changed\" data-version=\"6.1\" role=\"note\">\n<p class=\"version-note-title\">Changed in Django 6.1</p><p>Argumentet <code class=\"docutils literal notranslate\">using</code> lades till.</p>\n<p>Äldre versioner ignorerade <code class=\"docutils literal notranslate\">fail_silently=True</code> när även <code class=\"docutils literal notranslate\">connection</code> angavs. Detta ger nu ett <code class=\"docutils literal notranslate\">TypeError</code>.</p>\n</aside>\n<aside class=\"version-note version-deprecated\" data-version=\"6.1\" role=\"note\">\n<p class=\"version-note-title\">Deprecated since Django 6.1</p><p><span class=\"versionmodified deprecated\">Ersatt sedan version 6.1: </span>Argumentet <code class=\"docutils literal notranslate\">fail_silently</code> är utfasat. Se <a class=\"reference internal\" href=\"/sv/6.1/howto/mailers-migration/#migrating-to-mailers-fail-silently\"><span class=\"std std-ref\">Ersätta fail_silently</span></a> för alternativ.</p>\n</aside>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.core.mail.EmailMessage.message\">\n<span class=\"sig-name descname\">message</span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"keyword-only-separator o\"><abbr title=\"Keyword-only parameters separator (PEP 3102)\">*</abbr></span></em>, <em class=\"sig-param\">policy<span class=\"o\">=</span><span class=\"default_value\">email.policy.default</span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.core.mail.EmailMessage.message\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Konstruerar och returnerar ett Python-objekt av typen <a class=\"reference external\" href=\"https://docs.python.org/3/library/email.message.html#email.message.EmailMessage\" title=\"(in Python v3.14)\"><code class=\"xref py py-class docutils literal notranslate\">email.message.EmailMessage</code></a> som representerar meddelandet som ska skickas.</p>\n<p>Nyckelordsargumentet <code class=\"docutils literal notranslate\">policy</code> gör det möjligt att ange reglerna för att uppdatera och serialisera meddelandets representation. Det måste vara ett <a class=\"reference external\" href=\"https://docs.python.org/3/library/email.policy.html#module-email.policy\" title=\"(in Python v3.14)\"><code class=\"xref py py-mod docutils literal notranslate\">email.policy.Policy</code></a>-objekt. Standardvärdet är <a class=\"reference external\" href=\"https://docs.python.org/3/library/email.policy.html#email.policy.default\" title=\"(in Python v3.14)\"><code class=\"xref py py-data docutils literal notranslate\">email.policy.default</code></a>. I vissa fall kan du vilja använda <a class=\"reference external\" href=\"https://docs.python.org/3/library/email.policy.html#email.policy.SMTP\" title=\"(in Python v3.14)\"><code class=\"xref py py-data docutils literal notranslate\">SMTP</code></a>, <a class=\"reference external\" href=\"https://docs.python.org/3/library/email.policy.html#email.policy.SMTPUTF8\" title=\"(in Python v3.14)\"><code class=\"xref py py-data docutils literal notranslate\">SMTPUTF8</code></a> eller en anpassad policy. <a class=\"reference internal\" href=\"#topic-email-smtp-backend\"><span class=\"std std-ref\">SMTP-e-postbackend</span></a> använder till exempel policyn <a class=\"reference external\" href=\"https://docs.python.org/3/library/email.policy.html#email.policy.SMTP\" title=\"(in Python v3.14)\"><code class=\"xref py py-data docutils literal notranslate\">SMTP</code></a> för att säkerställa ``\n<a href=\"#id1\"><span class=\"problematic\" id=\"id2\">``</span></a>-radslut enligt SMTP-protokollets krav.</p>\n<p>Om du behöver utöka Djangos klass <a class=\"reference internal\" href=\"#django.core.mail.EmailMessage\" title=\"django.core.mail.EmailMessage\"><code class=\"xref py py-class docutils literal notranslate\">EmailMessage</code></a> vill du sannolikt åsidosätta den här metoden för att lägga önskat innehåll i Python-objektet EmailMessage.</p>\n<aside class=\"version-note version-changed\" data-version=\"6.0\" role=\"note\">\n<p class=\"version-note-title\">Changed in Django 6.0</p><p>Nyckelordsargumentet <code class=\"docutils literal notranslate\">policy</code> lades till och returtypen uppdaterades till en instans av <a class=\"reference external\" href=\"https://docs.python.org/3/library/email.message.html#email.message.EmailMessage\" title=\"(in Python v3.14)\"><code class=\"xref py py-class docutils literal notranslate\">EmailMessage</code></a>.</p>\n</aside>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.core.mail.EmailMessage.recipients\">\n<span class=\"sig-name descname\">recipients</span><span class=\"sig-paren\">(</span><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.core.mail.EmailMessage.recipients\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Returnerar en lista över alla mottagare av meddelandet, oavsett om de finns i attributen <code class=\"docutils literal notranslate\">to</code>, <code class=\"docutils literal notranslate\">cc</code> eller <code class=\"docutils literal notranslate\">bcc</code>. Detta är en annan metod som du kan behöva åsidosätta vid underklassning, eftersom SMTP-servern måste få hela mottagarlistan när meddelandet skickas. Om du lägger till ett annat sätt att ange mottagare i klassen måste de också returneras från denna metod.</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.core.mail.EmailMessage.attach\">\n<span class=\"sig-name descname\">attach</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">filename</em>, <em class=\"sig-param\">content</em>, <em class=\"sig-param\">mimetype</em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.core.mail.EmailMessage.attach\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dt class=\"sig sig-object py\">\n<span class=\"sig-name descname\">attach</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">mimepart</em><span class=\"sig-paren\">)</span></dt>\n<dd><p>Skapar en ny bilaga och lägger till den i meddelandet. Det finns två sätt att anropa <code class=\"xref py py-meth docutils literal notranslate\">attach()</code>:</p>\n<ul>\n<li><p>Du kan skicka tre argument: <code class=\"docutils literal notranslate\">filename</code>, <code class=\"docutils literal notranslate\">content</code> och <code class=\"docutils literal notranslate\">mimetype</code>. <code class=\"docutils literal notranslate\">filename</code> är filbilagans namn så som det visas i e-postmeddelandet, <code class=\"docutils literal notranslate\">content</code> är data som finns i bilagan och <code class=\"docutils literal notranslate\">mimetype</code> är bilagans valfria MIME-typ. Om du utelämnar <code class=\"docutils literal notranslate\">mimetype</code> gissas MIME-innehållstypen utifrån bilagans filnamn.</p>\n<p>Till exempel:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code>message<span class=\"o\">.</span>attach<span class=\"p\">(</span><span class=\"s2\">&quot;design.png&quot;</span><span class=\"p\">,</span> img_data<span class=\"p\">,</span> <span class=\"s2\">&quot;image/png&quot;</span><span class=\"p\">)</span>\n</code></pre></div>\n<p>Om du anger en <code class=\"docutils literal notranslate\">mimetype</code> av typen <em class=\"mimetype\">message/rfc822</em> kan <code class=\"docutils literal notranslate\">content</code> vara ett <a class=\"reference internal\" href=\"#django.core.mail.EmailMessage\" title=\"django.core.mail.EmailMessage\"><code class=\"xref py py-class docutils literal notranslate\">django.core.mail.EmailMessage</code></a> eller Pythons <a class=\"reference external\" href=\"https://docs.python.org/3/library/email.message.html#email.message.EmailMessage\" title=\"(in Python v3.14)\"><code class=\"xref py py-class docutils literal notranslate\">email.message.EmailMessage</code></a> eller <a class=\"reference external\" href=\"https://docs.python.org/3/library/email.compat32-message.html#email.message.Message\" title=\"(in Python v3.14)\"><code class=\"xref py py-class docutils literal notranslate\">email.message.Message</code></a>.</p>\n<p>För en <code class=\"docutils literal notranslate\">mimetype</code> som börjar med <em class=\"mimetype\">text/</em> förväntas innehållet vara en sträng. Binära data kommer att avkodas med UTF-8, och om det misslyckas kommer MIME-typen att ändras till <em class=\"mimetype\">application/octet-stream</em> och data kommer att bifogas oförändrat.</p>\n</li>\n<li><p>För bilagor som kräver ytterligare rubriker eller parametrar kan du också skicka ett enskilt Python-objekt av typen <a class=\"reference external\" href=\"https://docs.python.org/3/library/email.message.html#email.message.MIMEPart\" title=\"(in Python v3.14)\"><code class=\"xref py py-class docutils literal notranslate\">MIMEPart</code></a> till <code class=\"xref py py-meth docutils literal notranslate\">attach()</code>. Det bifogas direkt till det resulterande meddelandet. Till exempel, för att bifoga en intern bild med <em class=\"mailheader\">Content-ID</em>:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"kn\">import</span> <span class=\"nn\">email.utils</span>\n<span class=\"kn\">from</span> <span class=\"nn\">email.message</span> <span class=\"kn\">import</span> MIMEPart\n<span class=\"kn\">from</span> <span class=\"nn\">django.core.mail</span> <span class=\"kn\">import</span> EmailMultiAlternatives\n\nmessage <span class=\"o\">=</span> EmailMultiAlternatives<span class=\"p\">(</span><span class=\"o\">...</span><span class=\"p\">)</span>\nimage_data_bytes <span class=\"o\">=</span> <span class=\"o\">...</span>  <span class=\"c1\"># Load image as bytes</span>\n\n<span class=\"c1\"># Create a random Content-ID, including angle brackets</span>\ncid <span class=\"o\">=</span> email<span class=\"o\">.</span>utils<span class=\"o\">.</span>make_msgid<span class=\"p\">()</span>\ninline_image <span class=\"o\">=</span> email<span class=\"o\">.</span>message<span class=\"o\">.</span>MIMEPart<span class=\"p\">()</span>\ninline_image<span class=\"o\">.</span>set_content<span class=\"p\">(</span>\n    image_data_bytes<span class=\"p\">,</span>\n    maintype<span class=\"o\">=</span><span class=\"s2\">&quot;image&quot;</span><span class=\"p\">,</span>\n    subtype<span class=\"o\">=</span><span class=\"s2\">&quot;png&quot;</span><span class=\"p\">,</span>  <span class=\"c1\"># or &quot;jpeg&quot;, etc. depending on the image type</span>\n    disposition<span class=\"o\">=</span><span class=\"s2\">&quot;inline&quot;</span><span class=\"p\">,</span>\n    cid<span class=\"o\">=</span>cid<span class=\"p\">,</span>\n<span class=\"p\">)</span>\nmessage<span class=\"o\">.</span>attach<span class=\"p\">(</span>inline_image<span class=\"p\">)</span>\n<span class=\"c1\"># Refer to Content-ID in HTML without angle brackets</span>\nmessage<span class=\"o\">.</span>attach_alternative<span class=\"p\">(</span><span class=\"sa\">f</span><span class=\"s1\">&#39;… &lt;img src=&quot;cid:</span><span class=\"si\">{</span>cid<span class=\"p\">[</span><span class=\"mi\">1</span><span class=\"p\">:</span><span class=\"o\">-</span><span class=\"mi\">1</span><span class=\"p\">]</span><span class=\"si\">}</span><span class=\"s1\">&quot;&gt; …&#39;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;text/html&quot;</span><span class=\"p\">)</span>\n</code></pre></div>\n<p>Pythons dokumentation för <a class=\"reference external\" href=\"https://docs.python.org/3/library/email.contentmanager.html#email.contentmanager.set_content\" title=\"(in Python v3.14)\"><code class=\"xref py py-meth docutils literal notranslate\">email.contentmanager.set_content()</code></a> beskriver de argument som stöds för <code class=\"docutils literal notranslate\">MIMEPart.set_content()</code>.</p>\n<aside class=\"version-note version-changed\" data-version=\"6.0\" role=\"note\">\n<p class=\"version-note-title\">Changed in Django 6.0</p><p>Stöd för <a class=\"reference external\" href=\"https://docs.python.org/3/library/email.message.html#email.message.MIMEPart\" title=\"(in Python v3.14)\"><code class=\"xref py py-class docutils literal notranslate\">MIMEPart</code></a>-bilagor lades till.</p>\n</aside>\n<aside class=\"version-note version-deprecated\" data-version=\"6.0\" role=\"note\">\n<p class=\"version-note-title\">Deprecated since Django 6.0</p><p><span class=\"versionmodified deprecated\">Ersatt sedan version 6.0: </span>Stöd för <a class=\"reference external\" href=\"https://docs.python.org/3/library/email.mime.html#email.mime.base.MIMEBase\" title=\"(in Python v3.14)\"><code class=\"xref py py-class docutils literal notranslate\">email.mime.base.MIMEBase</code></a>-bilagor är utfasat. Använd i stället <a class=\"reference external\" href=\"https://docs.python.org/3/library/email.message.html#email.message.MIMEPart\" title=\"(in Python v3.14)\"><code class=\"xref py py-class docutils literal notranslate\">MIMEPart</code></a>.</p>\n</aside>\n</li>\n</ul>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.core.mail.EmailMessage.attach_file\">\n<span class=\"sig-name descname\">attach_file</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">path</em>, <em class=\"sig-param\">mimetype<span class=\"o\">=</span><span class=\"default_value\">None</span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.core.mail.EmailMessage.attach_file\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Skapar en ny bilaga med en fil från filsystemet. Anropa den med sökvägen till filen som ska bifogas och, valfritt, den MIME-typ som ska användas för bilagan. Om MIME-typen utelämnas gissas den utifrån filnamnet. Du kan använda den så här:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code>message<span class=\"o\">.</span>attach_file<span class=\"p\">(</span><span class=\"s2\">&quot;/images/weather_map.png&quot;</span><span class=\"p\">)</span>\n</code></pre></div>\n<p>För MIME-typer som börjar med <em class=\"mimetype\">text/</em> hanteras binära data som i <a class=\"reference internal\" href=\"#django.core.mail.EmailMessage.attach\" title=\"django.core.mail.EmailMessage.attach\"><code class=\"xref py py-meth docutils literal notranslate\">attach()</code></a>.</p>\n</dd></dl>\n\n</dd></dl>\n\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.core.mail.EmailAttachment\">\n<em class=\"property\"><span class=\"k\">class</span> </em><span class=\"sig-name descname\">EmailAttachment</span><a class=\"heading-anchor\" href=\"#django.core.mail.EmailAttachment\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>En namngiven tupel för att lagra bilagor till ett e-postmeddelande.</p>\n<p>Den namngivna tupeln har följande index:</p>\n<ul class=\"simple\">\n<li><p><code class=\"docutils literal notranslate\">filnamn</code></p></li>\n<li><p><code class=\"docutils literal notranslate\">innehåll</code></p></li>\n<li><p><code class=\"docutils literal notranslate\">mimetype</code></p></li>\n</ul>\n</dd></dl>\n\n<section id=\"sending-alternative-content-types\">\n<h4>Skicka alternativa innehållstyper<a class=\"heading-anchor\" href=\"#sending-alternative-content-types\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h4>\n<section id=\"sending-multiple-content-versions\">\n<h5>Skicka flera versioner av innehållet<a class=\"heading-anchor\" href=\"#sending-multiple-content-versions\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h5>\n<p>Det kan vara användbart att inkludera flera versioner av innehållet i ett e-postmeddelande; det klassiska exemplet är att skicka både text- och HTML-versioner av ett meddelande. Med Djangos e-postbibliotek kan du göra detta med klassen <a class=\"reference internal\" href=\"#django.core.mail.EmailMultiAlternatives\" title=\"django.core.mail.EmailMultiAlternatives\"><code class=\"xref py py-class docutils literal notranslate\">EmailMultiAlternatives</code></a>.</p>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.core.mail.EmailMultiAlternatives\">\n<em class=\"property\"><span class=\"k\">class</span> </em><span class=\"sig-name descname\">EmailMultiAlternatives</span><a class=\"heading-anchor\" href=\"#django.core.mail.EmailMultiAlternatives\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>En underklass till <a class=\"reference internal\" href=\"#django.core.mail.EmailMessage\" title=\"django.core.mail.EmailMessage\"><code class=\"xref py py-class docutils literal notranslate\">EmailMessage</code></a> som tillåter ytterligare versioner av meddelandetexten i e-postmeddelandet via metoden <a class=\"reference internal\" href=\"#django.core.mail.EmailMultiAlternatives.attach_alternative\" title=\"django.core.mail.EmailMultiAlternatives.attach_alternative\"><code class=\"xref py py-meth docutils literal notranslate\">attach_alternative()</code></a>. Denna ärver direkt alla metoder (inklusive klassinitialiseringen) från <a class=\"reference internal\" href=\"#django.core.mail.EmailMessage\" title=\"django.core.mail.EmailMessage\"><code class=\"xref py py-class docutils literal notranslate\">EmailMessage</code></a>.</p>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.core.mail.EmailMultiAlternatives.alternatives\">\n<span class=\"sig-name descname\">alternatives</span><a class=\"heading-anchor\" href=\"#django.core.mail.EmailMultiAlternatives.alternatives\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>En lista med namngivna tupler av typen <a class=\"reference internal\" href=\"#django.core.mail.EmailAlternative\" title=\"django.core.mail.EmailAlternative\"><code class=\"xref py py-class docutils literal notranslate\">EmailAlternative</code></a>. Detta är särskilt användbart i tester:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"bp\">self</span><span class=\"o\">.</span>assertEqual<span class=\"p\">(</span><span class=\"nb\">len</span><span class=\"p\">(</span>msg<span class=\"o\">.</span>alternatives<span class=\"p\">),</span> <span class=\"mi\">1</span><span class=\"p\">)</span>\n<span class=\"bp\">self</span><span class=\"o\">.</span>assertEqual<span class=\"p\">(</span>msg<span class=\"o\">.</span>alternatives<span class=\"p\">[</span><span class=\"mi\">0</span><span class=\"p\">]</span><span class=\"o\">.</span>content<span class=\"p\">,</span> html_content<span class=\"p\">)</span>\n<span class=\"bp\">self</span><span class=\"o\">.</span>assertEqual<span class=\"p\">(</span>msg<span class=\"o\">.</span>alternatives<span class=\"p\">[</span><span class=\"mi\">0</span><span class=\"p\">]</span><span class=\"o\">.</span>mimetype<span class=\"p\">,</span> <span class=\"s2\">&quot;text/html&quot;</span><span class=\"p\">)</span>\n</code></pre></div>\n<p>Alternativ bör endast läggas till med hjälp av metoden <a class=\"reference internal\" href=\"#django.core.mail.EmailMultiAlternatives.attach_alternative\" title=\"django.core.mail.EmailMultiAlternatives.attach_alternative\"><code class=\"xref py py-meth docutils literal notranslate\">attach_alternative()</code></a> eller skickas till konstruktören.</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.core.mail.EmailMultiAlternatives.attach_alternative\">\n<span class=\"sig-name descname\">attach_alternative</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">content</em>, <em class=\"sig-param\">mimetype</em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.core.mail.EmailMultiAlternatives.attach_alternative\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Bifoga en alternativ representation av meddelandetexten i e-postmeddelandet.</p>\n<p>Om du t.ex. vill skicka en kombination av text och HTML kan du skriva:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"kn\">from</span> <span class=\"nn\">django.core.mail</span> <span class=\"kn\">import</span> EmailMultiAlternatives\n\nsubject <span class=\"o\">=</span> <span class=\"s2\">&quot;hello&quot;</span>\nfrom_email <span class=\"o\">=</span> <span class=\"s2\">&quot;from@example.com&quot;</span>\nto <span class=\"o\">=</span> <span class=\"s2\">&quot;to@example.com&quot;</span>\ntext_content <span class=\"o\">=</span> <span class=\"s2\">&quot;This is an important message.&quot;</span>\nhtml_content <span class=\"o\">=</span> <span class=\"s2\">&quot;&lt;p&gt;This is an &lt;strong&gt;important&lt;/strong&gt; message.&lt;/p&gt;&quot;</span>\nmsg <span class=\"o\">=</span> EmailMultiAlternatives<span class=\"p\">(</span>subject<span class=\"p\">,</span> text_content<span class=\"p\">,</span> from_email<span class=\"p\">,</span> <span class=\"p\">[</span>to<span class=\"p\">])</span>\nmsg<span class=\"o\">.</span>attach_alternative<span class=\"p\">(</span>html_content<span class=\"p\">,</span> <span class=\"s2\">&quot;text/html&quot;</span><span class=\"p\">)</span>\nmsg<span class=\"o\">.</span>send<span class=\"p\">()</span>\n</code></pre></div>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.core.mail.EmailMultiAlternatives.body_contains\">\n<span class=\"sig-name descname\">body_contains</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">text</em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.core.mail.EmailMultiAlternatives.body_contains\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Returnerar ett booleskt värde som anger om den angivna <code class=\"docutils literal notranslate\">texten</code> finns med i e-postmeddelandets <code class=\"docutils literal notranslate\">body</code> och i alla bifogade alternativ av MIME-typen <code class=\"docutils literal notranslate\">text/*</code>.</p>\n<p>Detta kan vara användbart när du testar e-postmeddelanden. Till exempel:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"k\">def</span> <span class=\"nf\">test_contains_email_content</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">):</span>\n    subject <span class=\"o\">=</span> <span class=\"s2\">&quot;Hello World&quot;</span>\n    from_email <span class=\"o\">=</span> <span class=\"s2\">&quot;from@example.com&quot;</span>\n    to <span class=\"o\">=</span> <span class=\"s2\">&quot;to@example.com&quot;</span>\n    msg <span class=\"o\">=</span> EmailMultiAlternatives<span class=\"p\">(</span>subject<span class=\"p\">,</span> <span class=\"s2\">&quot;I am content.&quot;</span><span class=\"p\">,</span> from_email<span class=\"p\">,</span> <span class=\"p\">[</span>to<span class=\"p\">])</span>\n    msg<span class=\"o\">.</span>attach_alternative<span class=\"p\">(</span><span class=\"s2\">&quot;&lt;p&gt;I am content.&lt;/p&gt;&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;text/html&quot;</span><span class=\"p\">)</span>\n\n    <span class=\"bp\">self</span><span class=\"o\">.</span>assertIs<span class=\"p\">(</span>msg<span class=\"o\">.</span>body_contains<span class=\"p\">(</span><span class=\"s2\">&quot;I am content&quot;</span><span class=\"p\">),</span> <span class=\"kc\">True</span><span class=\"p\">)</span>\n    <span class=\"bp\">self</span><span class=\"o\">.</span>assertIs<span class=\"p\">(</span>msg<span class=\"o\">.</span>body_contains<span class=\"p\">(</span><span class=\"s2\">&quot;&lt;p&gt;I am content.&lt;/p&gt;&quot;</span><span class=\"p\">),</span> <span class=\"kc\">False</span><span class=\"p\">)</span>\n</code></pre></div>\n</dd></dl>\n\n</dd></dl>\n\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.core.mail.EmailAlternative\">\n<em class=\"property\"><span class=\"k\">class</span> </em><span class=\"sig-name descname\">EmailAlternative</span><a class=\"heading-anchor\" href=\"#django.core.mail.EmailAlternative\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>En namngiven tupel för att lagra alternativa versioner av e-postinnehåll.</p>\n<p>Den namngivna tupeln har följande index:</p>\n<ul class=\"simple\">\n<li><p><code class=\"docutils literal notranslate\">innehåll</code></p></li>\n<li><p><code class=\"docutils literal notranslate\">mimetype</code></p></li>\n</ul>\n</dd></dl>\n\n</section>\n<section id=\"updating-the-default-content-type\">\n<h5>Uppdatering av standardinnehållstypen<a class=\"heading-anchor\" href=\"#updating-the-default-content-type\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h5>\n<p>Som standard är MIME-typen för parametern <code class=\"docutils literal notranslate\">body</code> i en <a class=\"reference internal\" href=\"#django.core.mail.EmailMessage\" title=\"django.core.mail.EmailMessage\"><code class=\"xref py py-class docutils literal notranslate\">EmailMessage</code></a> <code class=\"docutils literal notranslate\">&quot;text/plain&quot;</code>. Det är god praxis att låta detta vara, eftersom det garanterar att alla mottagare kan läsa e-postmeddelandet, oavsett e-postklient. Om du däremot är säker på att mottagarna kan hantera en alternativ innehållstyp kan du använda attributet <code class=\"docutils literal notranslate\">content_subtype</code> i klassen <a class=\"reference internal\" href=\"#django.core.mail.EmailMessage\" title=\"django.core.mail.EmailMessage\"><code class=\"xref py py-class docutils literal notranslate\">EmailMessage</code></a> för att ändra huvudinnehållstypen. Huvudtypen är alltid <code class=\"docutils literal notranslate\">&quot;text&quot;</code>, men du kan ändra undertypen. Till exempel:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code>msg <span class=\"o\">=</span> EmailMessage<span class=\"p\">(</span>subject<span class=\"p\">,</span> html_content<span class=\"p\">,</span> from_email<span class=\"p\">,</span> <span class=\"p\">[</span>to<span class=\"p\">])</span>\nmsg<span class=\"o\">.</span>content_subtype <span class=\"o\">=</span> <span class=\"s2\">&quot;html&quot;</span>  <span class=\"c1\"># Main content is now text/html</span>\nmsg<span class=\"o\">.</span>send<span class=\"p\">()</span>\n</code></pre></div>\n</section>\n</section>\n</section>\n<section id=\"safely-sending-email\">\n<h3>Säker e-postsändning<a class=\"heading-anchor\" href=\"#safely-sending-email\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Varje offentlig webbplats som kan skicka e-post kommer förr eller senare att utsättas för försök att missbruka den för spam, nätfiske eller annat skadligt innehåll. En fullständig genomgång av sårbarheter vid e-postsändning ligger utanför Djangos dokumentation, men det finns många referenser på webben. Två bra utgångspunkter är:</p>\n<ul class=\"simple\">\n<li><p>Princeton Universitys vägledning om <a class=\"reference external\" href=\"https://sitebuilder.princeton.edu/site-administration/spam\">att förhindra e-postmissbruk i webbformulär</a>. Även om detta är en intern referens för användare av Princeton’s Drupal Site Builder gäller nästan alla råd i lika hög grad för webbplatser byggda med Django (eller något annat webbramverk).</p></li>\n<li><p>OWASP:s <a class=\"reference external\" href=\"https://cheatsheetseries.owasp.org/cheatsheets/Email_Validation_and_Verification_Cheat_Sheet.html\">faktablad om e-postvalidering och verifiering i identitetssystem</a>. Det handlar främst om användning av e-post i autentiseringssammanhang. Många av rekommendationerna hanteras av <a class=\"reference internal\" href=\"/sv/6.1/topics/auth/#module-django.contrib.auth\" title=\"django.contrib.auth: Django's authentication framework.\"><code class=\"xref py py-mod docutils literal notranslate\">django.contrib.auth</code></a> och andra Django-funktioner, men frågor som hastighetsbegränsning och säkra flöden för att ändra e-postadress är utvecklarens ansvar.</p></li>\n</ul>\n<p>Att fundera på hur e-post kan missbrukas (och vidta åtgärder för att begränsa det) är särskilt viktigt om webbplatsen kan skicka till overifierade adresser. Funktioner som anmälan till nyhetsbrev, kontaktformulär som skickar en kopia eller ett automatiskt svar till avsändaren samt ”dela den här sidan” kan vara attraktiva mål.</p>\n<section id=\"formatting-email-addresses\">\n<span id=\"formatting-addresses\"></span><h4>Formatera e-postadresser<a class=\"heading-anchor\" href=\"#formatting-email-addresses\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h4>\n<p>E-postadresser kan innehålla ett ”vänligt” visningsnamn tillsammans med adressen <code class=\"docutils literal notranslate\">user&#64;domain</code>. Du kan till exempel inkludera företagets namn i inställningen <a class=\"reference internal\" href=\"/sv/6.1/ref/settings/#std-setting-DEFAULT_FROM_EMAIL\"><code class=\"xref std std-setting docutils literal notranslate\">DEFAULT_FROM_EMAIL</code></a>:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code>DEFAULT_FROM_EMAIL <span class=\"o\">=</span> <span class=\"s1\">&#39;&quot;Example, Inc.&quot; &lt;contact@example.com&gt;&#39;</span>\n</code></pre></div>\n<p>De dubbla citattecknen runt <code class=\"docutils literal notranslate\">&quot;Example, Inc.&quot;</code> behövs för att kommat inte ska läsas som en avgränsning mellan två olika adresser. En fast adress, som skrivs ut för hand enligt exemplet ovan, är säker, men en adress som sätts samman av variabla delar (särskilt opålitliga indata) kräver mer försiktighet.</p>\n<aside class=\"admonition admonition-warning\" role=\"note\">\n<p class=\"admonition-title\">Varning</p>\n<p>Använd aldrig strängformatering för att bygga en e-postadress av variabla delar. Till exempel är <code class=\"docutils literal notranslate\">f'&quot;{name}&quot; &lt;{email}&gt;'</code> <strong>osäkert</strong>.</p>\n</aside>\n<p>E-postadresshuvuden har komplexa syntaxregler (ungefär som HTML eller SQL), så att skapa dem genom att kombinera strängar skapar en injektionssårbarhet. Även om du har <a class=\"reference internal\" href=\"/sv/6.1/ref/validators/#django.core.validators.EmailValidator\" title=\"django.core.validators.EmailValidator\"><code class=\"xref py py-class docutils literal notranslate\">validerat</code></a> formatet för <code class=\"docutils literal notranslate\">email</code> kan en angripare utnyttja delen <code class=\"docutils literal notranslate\">name</code> för att injicera ytterligare adresser.</p>\n<p>Undvik detta genom att alltid använda ett vältestat bibliotek som är särskilt avsett för att formatera e-postadresser, till exempel Pythons klass <a class=\"reference external\" href=\"https://docs.python.org/3/library/email.headerregistry.html#email.headerregistry.Address\" title=\"(in Python v3.14)\"><code class=\"xref py py-class docutils literal notranslate\">email.headerregistry.Address</code></a> (ersättningen för den äldre funktionen <a class=\"reference external\" href=\"https://docs.python.org/3/library/email.utils.html#email.utils.formataddr\" title=\"(in Python v3.14)\"><code class=\"xref py py-func docutils literal notranslate\">formataddr()</code></a>, som inte stöder internationaliserade domännamn).</p>\n<p>För att till exempel inkludera en användares fullständiga namn när du skickar e-post till personen (där <code class=\"docutils literal notranslate\">user</code> är en instans av standardmodellen <a class=\"reference internal\" href=\"/sv/6.1/ref/contrib/auth/#django.contrib.auth.models.User\" title=\"django.contrib.auth.models.User\"><code class=\"xref py py-class docutils literal notranslate\">User</code></a>):</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"kn\">from</span> <span class=\"nn\">django.core.mail</span> <span class=\"kn\">import</span> send_mail\n<span class=\"kn\">from</span> <span class=\"nn\">email.headerregistry</span> <span class=\"kn\">import</span> Address\n\n\n<span class=\"k\">def</span> <span class=\"nf\">send_mail_to_user</span><span class=\"p\">(</span>user<span class=\"p\">,</span> subject<span class=\"p\">,</span> body<span class=\"p\">,</span> from_email<span class=\"o\">=</span><span class=\"kc\">None</span><span class=\"p\">):</span>\n    <span class=\"c1\"># Safely create an email address with the user&#39;s name.</span>\n    <span class=\"c1\"># (addr_spec is the technical term for the user@domain address.)</span>\n    address <span class=\"o\">=</span> Address<span class=\"p\">(</span>\n        display_name<span class=\"o\">=</span>user<span class=\"o\">.</span>get_full_name<span class=\"p\">(),</span>\n        addr_spec<span class=\"o\">=</span>user<span class=\"o\">.</span>email<span class=\"p\">,</span>\n    <span class=\"p\">)</span>\n    send_mail<span class=\"p\">(</span>subject<span class=\"p\">,</span> body<span class=\"p\">,</span> from_email<span class=\"p\">,</span> <span class=\"p\">[</span>address<span class=\"p\">])</span>\n</code></pre></div>\n<p>Djangos inbyggda e-postbackendar stöder att använda objekt av typen <a class=\"reference external\" href=\"https://docs.python.org/3/library/email.headerregistry.html#email.headerregistry.Address\" title=\"(in Python v3.14)\"><code class=\"xref py py-class docutils literal notranslate\">Address</code></a> direkt i alla adressfält, som visas här. Det gör även många anpassade backendar och tredjepartsbackendar. Men om det orsakar ett <code class=\"docutils literal notranslate\">TypeError</code> eller annat problem med en viss backend ska du använda <code class=\"docutils literal notranslate\">str(address)</code> för att omvandla objektet till en säker, korrekt formaterad sträng.</p>\n</section>\n<section id=\"preventing-header-injection\">\n<h4>Förhindra injektion av rubrik<a class=\"heading-anchor\" href=\"#preventing-header-injection\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h4>\n<p><a class=\"reference external\" href=\"https://en.wikipedia.org/wiki/Email_injection\">E-posthuvudinjektion</a> är ett säkerhetsangrepp där en angripare manipulerar e-postrubriker för att ändra avsedd avsändare eller mottagare, ämnesrad eller möjligen till och med hela den synliga meddelandetexten.</p>\n<p>En typ av rubrikinjektion utnyttjar syntaxen för adressrubriker. Du ansvarar för att förhindra detta när du bygger e-postadresser från användartillhandahållen indata, enligt beskrivningen i <a class=\"reference internal\" href=\"#formatting-addresses\"><span class=\"std std-ref\">Formatera e-postadresser</span></a> ovan.</p>\n<p>En annan attack, som kanske är mer välkänd, är CRLF-injektion. Den använder tecknen radretur och radmatning för att infoga ytterligare rubriker i e-postmeddelandet. Django förhindrar detta genom att utlösa <a class=\"reference external\" href=\"https://docs.python.org/3/library/exceptions.html#ValueError\" title=\"(in Python v3.14)\"><code class=\"xref py py-exc docutils literal notranslate\">ValueError</code></a> om dessa tecken förekommer i något rubrikfält när meddelandet ska skickas.</p>\n<aside class=\"version-note version-changed\" data-version=\"6.0\" role=\"note\">\n<p class=\"version-note-title\">Changed in Django 6.0</p><p>Äldre versioner utlöste <code class=\"docutils literal notranslate\">django.core.mail.BadHeaderError</code> för vissa ogiltiga rubriker. Det har ersatts med <code class=\"xref py py-exc docutils literal notranslate\">ValueError</code>.</p>\n</aside>\n<p>Djangos CRLF-skydd bygger på att Pythons moderna <a class=\"reference external\" href=\"https://docs.python.org/3/library/email.policy.html#email.policy.EmailPolicy\" title=\"(in Python v3.14)\"><code class=\"xref py py-class docutils literal notranslate\">EmailPolicy</code></a> används i Djangos <a class=\"reference internal\" href=\"#django.core.mail.EmailMessage.message\" title=\"django.core.mail.EmailMessage.message\"><code class=\"xref py py-meth docutils literal notranslate\">EmailMessage.message()</code></a>. Anpassade e-postbackendar som inte anropar den funktionen, eller som anropar den med den äldre policyn <a class=\"reference external\" href=\"https://docs.python.org/3/library/email.policy.html#email.policy.compat32\" title=\"(in Python v3.14)\"><code class=\"xref py py-data docutils literal notranslate\">compat32</code></a>, ansvarar för att själva förhindra CRLF-injektion.</p>\n</section>\n</section>\n<section id=\"sending-many-messages-efficiently\">\n<span id=\"topics-sending-multiple-emails\"></span><h3>Skicka många meddelanden effektivt<a class=\"heading-anchor\" href=\"#sending-many-messages-efficiently\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Att upprätta och stänga en SMTP-anslutning (eller någon annan nätverksanslutning för den delen) är en dyr process. Om du har många e-postmeddelanden att skicka är det klokt att återanvända en SMTP-anslutning i stället för att skapa och förstöra en anslutning varje gång du vill skicka ett e-postmeddelande.</p>\n<p>Det finns två sätt att instruera en e-postbackend att återanvända en anslutning. Båda innebär att hämta en e-postbackendinstans från <a class=\"reference internal\" href=\"#django.core.mail.mailers\" title=\"django.core.mail.mailers\"><code class=\"xref py py-data docutils literal notranslate\">mail.mailers</code></a> och använda <a class=\"reference internal\" href=\"#topic-email-backend-api\"><span class=\"std std-ref\">backendens API</span></a>.</p>\n<p>Det första sättet är att använda backendens metod <code class=\"docutils literal notranslate\">send_messages()</code>. Den tar en lista med instanser av <a class=\"reference internal\" href=\"#django.core.mail.EmailMessage\" title=\"django.core.mail.EmailMessage\"><code class=\"xref py py-class docutils literal notranslate\">EmailMessage</code></a> (eller en underklass) och skickar dem alla med samma anslutning.</p>\n<p>Om du till exempel har en funktion som heter <code class=\"docutils literal notranslate\">get_notification_emails()</code> och returnerar en lista med <a class=\"reference internal\" href=\"#django.core.mail.EmailMessage\" title=\"django.core.mail.EmailMessage\"><code class=\"xref py py-class docutils literal notranslate\">EmailMessage</code></a>-objekt som representerar något periodiskt e-postutskick du vill skicka, kan du skicka dessa meddelanden med ett enda anrop till <code class=\"docutils literal notranslate\">send_messages()</code>:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"kn\">from</span> <span class=\"nn\">django.core</span> <span class=\"kn\">import</span> mail\n\nemail_list <span class=\"o\">=</span> get_notification_emails<span class=\"p\">()</span>\n<span class=\"c1\"># Use the default mailer. You could substitute</span>\n<span class=\"c1\"># mail.mailers[&quot;alias&quot;] for a specific mailer.</span>\nbackend <span class=\"o\">=</span> mail<span class=\"o\">.</span>mailers<span class=\"o\">.</span>default\nbackend<span class=\"o\">.</span>send_messages<span class=\"p\">(</span>email_list<span class=\"p\">)</span>\n</code></pre></div>\n<p>I detta exempel öppnar anropet till <code class=\"docutils literal notranslate\">send_messages()</code> en anslutning i backenden, skickar listan med meddelanden och stänger sedan anslutningen igen. (Så implementeras <a class=\"reference internal\" href=\"#django.core.mail.send_mass_mail\" title=\"django.core.mail.send_mass_mail\"><code class=\"xref py py-func docutils literal notranslate\">send_mass_mail()</code></a>.)</p>\n<p>Det andra sättet är att använda metoderna <code class=\"docutils literal notranslate\">open()</code> och <code class=\"docutils literal notranslate\">close()</code> i e-postbackenden för att styra anslutningen manuellt. <code class=\"docutils literal notranslate\">send_messages()</code> öppnar eller stänger inte anslutningen om den redan är öppen, så om du öppnar anslutningen manuellt kan du styra när den stängs. Till exempel:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"kn\">from</span> <span class=\"nn\">django.core</span> <span class=\"kn\">import</span> mail\n\n<span class=\"c1\"># Use the &quot;notifications&quot; mailer configuration.</span>\nbackend <span class=\"o\">=</span> mail<span class=\"o\">.</span>mailers<span class=\"p\">[</span><span class=\"s2\">&quot;notifications&quot;</span><span class=\"p\">]</span>\n\n<span class=\"c1\"># Manually open the connection.</span>\nbackend<span class=\"o\">.</span>open<span class=\"p\">()</span>\n\n<span class=\"c1\"># Construct an email message. (Passing None as the third argument</span>\n<span class=\"c1\"># uses settings.DEFAULT_FROM_EMAIL as the &quot;From:&quot; address.)</span>\nemail1 <span class=\"o\">=</span> mail<span class=\"o\">.</span>EmailMessage<span class=\"p\">(</span><span class=\"s2\">&quot;Hi&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;Message&quot;</span><span class=\"p\">,</span> <span class=\"kc\">None</span><span class=\"p\">,</span> <span class=\"p\">[</span><span class=\"s2\">&quot;to1@example.com&quot;</span><span class=\"p\">])</span>\n<span class=\"c1\"># Send the email. The connection was already open, so send_messages()</span>\n<span class=\"c1\"># leaves it open after sending.</span>\nbackend<span class=\"o\">.</span>send_messages<span class=\"p\">([</span>email1<span class=\"p\">])</span>\n\n<span class=\"c1\"># Construct and send two more messages. The connection is still open.</span>\nemail2 <span class=\"o\">=</span> mail<span class=\"o\">.</span>EmailMessage<span class=\"p\">(</span><span class=\"s2\">&quot;Hi&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;Message&quot;</span><span class=\"p\">,</span> <span class=\"kc\">None</span><span class=\"p\">,</span> <span class=\"p\">[</span><span class=\"s2\">&quot;to2@example.com&quot;</span><span class=\"p\">])</span>\nemail3 <span class=\"o\">=</span> mail<span class=\"o\">.</span>EmailMessage<span class=\"p\">(</span><span class=\"s2\">&quot;Hi&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;Message&quot;</span><span class=\"p\">,</span> <span class=\"kc\">None</span><span class=\"p\">,</span> <span class=\"p\">[</span><span class=\"s2\">&quot;to3@example.com&quot;</span><span class=\"p\">])</span>\nbackend<span class=\"o\">.</span>send_messages<span class=\"p\">([</span>email2<span class=\"p\">,</span> email3<span class=\"p\">])</span>\n\n<span class=\"c1\"># Because we opened it, we need to manually close the connection.</span>\nbackend<span class=\"o\">.</span>close<span class=\"p\">()</span>\n</code></pre></div>\n<p>När du öppnar en backends anslutning manuellt ansvarar du för att den stängs. Exemplet ovan har faktiskt ett fel: om ett undantag inträffar medan meddelandena skickas stängs inte anslutningen. Det kan åtgärdas med en <code class=\"docutils literal notranslate\">try</code>-<code class=\"docutils literal notranslate\">finally</code>-sats, men det är bättre att använda backendinstansen som en kontexthanterare, eftersom den då automatiskt anropar <code class=\"docutils literal notranslate\">open()</code> och <code class=\"docutils literal notranslate\">close()</code> vid behov.</p>\n<p>Detta motsvarar föregående exempel, men använder backenden som en <a class=\"reference external\" href=\"https://docs.python.org/3/reference/datamodel.html#context-managers\" title=\"(in Python v3.14)\"><span class=\"xref std std-ref\">kontexthanterare</span></a> för att undvika att lämna anslutningen öppen vid fel:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"kn\">from</span> <span class=\"nn\">django.core</span> <span class=\"kn\">import</span> mail\n\n<span class=\"c1\"># Use mail.mailers[...] as a context manager.</span>\n<span class=\"k\">with</span> mail<span class=\"o\">.</span>mailers<span class=\"p\">[</span><span class=\"s2\">&quot;notifications&quot;</span><span class=\"p\">]</span> <span class=\"k\">as</span> backend<span class=\"p\">:</span>\n    <span class=\"c1\"># The backend connection is automatically opened inside the context.</span>\n    email1 <span class=\"o\">=</span> mail<span class=\"o\">.</span>EmailMessage<span class=\"p\">(</span><span class=\"s2\">&quot;Hi&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;Message&quot;</span><span class=\"p\">,</span> <span class=\"kc\">None</span><span class=\"p\">,</span> <span class=\"p\">[</span><span class=\"s2\">&quot;to1@example.com&quot;</span><span class=\"p\">])</span>\n    backend<span class=\"o\">.</span>send_messages<span class=\"p\">([</span>email1<span class=\"p\">])</span>\n\n    <span class=\"c1\"># The connection is still open, and is reused for the second send.</span>\n    email2 <span class=\"o\">=</span> mail<span class=\"o\">.</span>EmailMessage<span class=\"p\">(</span><span class=\"s2\">&quot;Hi&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;Message&quot;</span><span class=\"p\">,</span> <span class=\"kc\">None</span><span class=\"p\">,</span> <span class=\"p\">[</span><span class=\"s2\">&quot;to2@example.com&quot;</span><span class=\"p\">])</span>\n    email3 <span class=\"o\">=</span> mail<span class=\"o\">.</span>EmailMessage<span class=\"p\">(</span><span class=\"s2\">&quot;Hi&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;Message&quot;</span><span class=\"p\">,</span> <span class=\"kc\">None</span><span class=\"p\">,</span> <span class=\"p\">[</span><span class=\"s2\">&quot;to3@example.com&quot;</span><span class=\"p\">])</span>\n    backend<span class=\"o\">.</span>send_messages<span class=\"p\">([</span>email2<span class=\"p\">,</span> email3<span class=\"p\">])</span>\n\n<span class=\"c1\"># After exiting the context (either normally or because of an error),</span>\n<span class=\"c1\"># the backend connection is automatically closed.</span>\n</code></pre></div>\n</section>\n</section>\n<section id=\"email-backends\">\n<span id=\"topic-email-backends\"></span><h2>Backend för e-post<a class=\"heading-anchor\" href=\"#email-backends\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Själva sändningen av ett e-postmeddelande hanteras av e-postbackend.</p>\n<p>Django innehåller flera e-postbackendar. Med undantag för SMTP-backenden är de främst användbara under testning och utveckling. Om de inbyggda backendarna inte uppfyller dina behov finns <a class=\"reference internal\" href=\"#topic-third-party-email-backends\"><span class=\"std std-ref\">tredjepartspaket</span></a> tillgängliga. Du kan även skapa en underklass av någon av de inbyggda backendarna för att ändra dess beteende, eller till och med <a class=\"reference internal\" href=\"#topic-custom-email-backend\"><span class=\"std std-ref\">skriva en egen e-postbackend</span></a>.</p>\n<section id=\"smtp-backend\">\n<span id=\"topic-email-smtp-backend\"></span><h3>SMTP-backend<a class=\"heading-anchor\" href=\"#smtp-backend\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>SMTP-e-postbackenden ansluter till en SMTP-server för att skicka e-post. Använd den genom att ange <a class=\"reference internal\" href=\"/sv/6.1/ref/settings/#std-setting-MAILERS-BACKEND\"><code class=\"xref std std-setting docutils literal notranslate\">BACKEND</code></a> till <code class=\"docutils literal notranslate\">&quot;django.core.mail.backends.smtp.EmailBackend&quot;</code>.</p>\n<p>SMTP-backenden stöder följande <a class=\"reference internal\" href=\"/sv/6.1/ref/settings/#std-setting-MAILERS-OPTIONS\"><code class=\"xref std std-setting docutils literal notranslate\">OPTIONS</code></a>:</p>\n<ul>\n<li><p><code class=\"docutils literal notranslate\">&quot;host&quot;</code> (obligatorisk): SMTP-serverns värdnamn eller IP-adress.</p></li>\n<li><p><code class=\"docutils literal notranslate\">&quot;port&quot;</code>: portnumret att ansluta till på SMTP-värden. Om det utelämnas används standardporten för anslutningsprotokollet beroende på alternativen <code class=\"docutils literal notranslate\">&quot;use_tls&quot;</code> och <code class=\"docutils literal notranslate\">&quot;use_ssl&quot;</code>: <code class=\"docutils literal notranslate\">587</code> för TLS, <code class=\"docutils literal notranslate\">465</code> för SSL eller <code class=\"docutils literal notranslate\">25</code> för en oskyddad anslutning.</p></li>\n<li><p><code class=\"docutils literal notranslate\">&quot;username&quot;</code> och <code class=\"docutils literal notranslate\">&quot;password&quot;</code>: ange dessa om servern kräver SMTP-autentisering (inloggningsuppgifter för ”SMTP AUTH”, ibland kallat SMTP-inloggning).</p>\n<p>Även om användarnamnet ofta är en e-postadress får det inte förväxlas med standardadresserna för ”From:”. Dessa definieras av inställningarna <a class=\"reference internal\" href=\"/sv/6.1/ref/settings/#std-setting-DEFAULT_FROM_EMAIL\"><code class=\"xref std std-setting docutils literal notranslate\">DEFAULT_FROM_EMAIL</code></a> och <a class=\"reference internal\" href=\"/sv/6.1/ref/settings/#std-setting-SERVER_EMAIL\"><code class=\"xref std std-setting docutils literal notranslate\">SERVER_EMAIL</code></a>.</p>\n</li>\n<li><p><code class=\"docutils literal notranslate\">&quot;use_tls&quot;</code> eller <code class=\"docutils literal notranslate\">&quot;use_ssl&quot;</code>: sätt ett av dessa alternativ till <code class=\"docutils literal notranslate\">True</code> för att ansluta till SMTP-servern med ett säkert protokoll – <code class=\"docutils literal notranslate\">&quot;use_tls&quot;</code> för explicit TLS eller <code class=\"docutils literal notranslate\">&quot;use_ssl&quot;</code> för SSL (implicit TLS).</p></li>\n<li><p><code class=\"docutils literal notranslate\">&quot;ssl_certfile&quot;</code> och <code class=\"docutils literal notranslate\">&quot;ssl_keyfile&quot;</code>: om SMTP-serverns SSL/TLS-anslutning kräver klientcertifikatautentisering använder du dessa alternativ för att ange sökvägarna till en PEM-formaterad certifikatkedjefil och en privat nyckelfil. (Nyckelfilen kan utelämnas om certifikatfilen innehåller den privata nyckeln.)</p>\n<p>Dessa alternativ är inte avsedda för användning med en privat certifikatutfärdare eller ett självsignerat SMTP-servercertifikat. Se <a class=\"reference internal\" href=\"#topic-email-smtp-private-ca\"><span class=\"std std-ref\">Privata och självsignerade SMTP-servercertifikat</span></a> nedan.</p>\n<p>Observera att dessa alternativ inte medför någon kontroll av certifikatets giltighet. De skickas vidare till den underliggande SSL-anslutningen. Se dokumentationen för Pythons metod <a class=\"reference external\" href=\"https://docs.python.org/3/library/ssl.html#ssl.SSLContext.wrap_socket\" title=\"(in Python v3.14)\"><code class=\"xref py py-meth docutils literal notranslate\">ssl.SSLContext.wrap_socket()</code></a> för information om hur filen med certifikatkedjan och filen med privat nyckel hanteras.</p>\n</li>\n<li><p><code class=\"docutils literal notranslate\">&quot;timeout&quot;</code>: tidsgränsen (i sekunder) för anslutning till SMTP-servern och andra blockerande åtgärder. Om den inte anges hämtas värdet från <a class=\"reference external\" href=\"https://docs.python.org/3/library/socket.html#socket.getdefaulttimeout\" title=\"(in Python v3.14)\"><code class=\"xref py py-func docutils literal notranslate\">socket.getdefaulttimeout()</code></a>, vars standardvärde är ingen tidsgräns (<code class=\"docutils literal notranslate\">None</code>), vilket innebär att SMTP-åtgärder kan blockera obegränsat länge.</p></li>\n<li><p><code class=\"docutils literal notranslate\">&quot;fail_silently&quot;</code>: sätt till <code class=\"docutils literal notranslate\">True</code> för att ignorera vissa fel när ett meddelande skickas. Alla <a class=\"reference external\" href=\"https://docs.python.org/3/library/exceptions.html#OSError\" title=\"(in Python v3.14)\"><code class=\"xref py py-exc docutils literal notranslate\">OSError</code></a>s ignoreras när SMTP-anslutningen öppnas, och <a class=\"reference external\" href=\"https://docs.python.org/3/library/smtplib.html#smtplib.SMTPException\" title=\"(in Python v3.14)\"><code class=\"xref py py-exc docutils literal notranslate\">smtplib.SMTPException</code></a>-fel ignoreras under kommunikationen med servern. Detta undertrycker både tillfälliga nätverksstörningar och allvarliga konfigurationsproblem. Det ignorerar dock inte <em>alla</em> fel, och problem med att serialisera meddelandet ignoreras inte tyst. (Alternativet finns för bakåtkompatibilitet men rekommenderas inte för normal användning.)</p></li>\n</ul>\n<p>Exempel:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code>MAILERS <span class=\"o\">=</span> <span class=\"p\">{</span>\n    <span class=\"s2\">&quot;default&quot;</span><span class=\"p\">:</span> <span class=\"p\">{</span>\n        <span class=\"s2\">&quot;BACKEND&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;django.core.mail.backends.smtp.EmailBackend&quot;</span><span class=\"p\">,</span>\n        <span class=\"s2\">&quot;OPTIONS&quot;</span><span class=\"p\">:</span> <span class=\"p\">{</span>\n            <span class=\"s2\">&quot;host&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;smtp.example.net&quot;</span><span class=\"p\">,</span>\n            <span class=\"s2\">&quot;use_tls&quot;</span><span class=\"p\">:</span> <span class=\"kc\">True</span><span class=\"p\">,</span>\n            <span class=\"s2\">&quot;username&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;my-app&quot;</span><span class=\"p\">,</span>\n            <span class=\"s2\">&quot;password&quot;</span><span class=\"p\">:</span> os<span class=\"o\">.</span>environ<span class=\"p\">[</span><span class=\"s2\">&quot;MY_APP_SMTP_PASSWORD&quot;</span><span class=\"p\">],</span>\n            <span class=\"s2\">&quot;timeout&quot;</span><span class=\"p\">:</span> <span class=\"mi\">10</span><span class=\"p\">,</span>\n        <span class=\"p\">},</span>\n    <span class=\"p\">},</span>\n<span class=\"p\">}</span>\n</code></pre></div>\n<aside class=\"version-note version-deprecated\" data-version=\"6.1\" role=\"note\">\n<p class=\"version-note-title\">Deprecated since Django 6.1</p><p><span class=\"versionmodified deprecated\">Ersatt sedan version 6.1: </span>När inställningen <a class=\"reference internal\" href=\"/sv/6.1/ref/settings/#std-setting-MAILERS\"><code class=\"xref std std-setting docutils literal notranslate\">MAILERS</code></a> inte är definierad använder Django SMTP-backenden som standardutskickare (standardinställningen <a class=\"reference internal\" href=\"/sv/6.1/ref/settings/#std-setting-EMAIL_BACKEND\"><code class=\"xref std std-setting docutils literal notranslate\">EMAIL_BACKEND</code></a>) och ansluter till localhost på port 25. Detta beteende tas bort i Django 7.0, som inte kommer att ha någon standardkonfiguration för e-postutskickare.</p>\n<p>När SMTP-backenden används utan att <a class=\"reference internal\" href=\"/sv/6.1/ref/settings/#std-setting-MAILERS\"><code class=\"xref std std-setting docutils literal notranslate\">MAILERS</code></a> är definierad hämtas alternativen ovan från de föråldrade inställningarna <a class=\"reference internal\" href=\"/sv/6.1/ref/settings/#std-setting-EMAIL_HOST\"><code class=\"xref std std-setting docutils literal notranslate\">EMAIL_HOST</code></a>, <a class=\"reference internal\" href=\"/sv/6.1/ref/settings/#std-setting-EMAIL_PORT\"><code class=\"xref std std-setting docutils literal notranslate\">EMAIL_PORT</code></a>, <a class=\"reference internal\" href=\"/sv/6.1/ref/settings/#std-setting-EMAIL_HOST_USER\"><code class=\"xref std std-setting docutils literal notranslate\">EMAIL_HOST_USER</code></a>, <a class=\"reference internal\" href=\"/sv/6.1/ref/settings/#std-setting-EMAIL_HOST_PASSWORD\"><code class=\"xref std std-setting docutils literal notranslate\">EMAIL_HOST_PASSWORD</code></a>, <a class=\"reference internal\" href=\"/sv/6.1/ref/settings/#std-setting-EMAIL_USE_TLS\"><code class=\"xref std std-setting docutils literal notranslate\">EMAIL_USE_TLS</code></a>, <a class=\"reference internal\" href=\"/sv/6.1/ref/settings/#std-setting-EMAIL_USE_SSL\"><code class=\"xref std std-setting docutils literal notranslate\">EMAIL_USE_SSL</code></a>, <a class=\"reference internal\" href=\"/sv/6.1/ref/settings/#std-setting-EMAIL_SSL_KEYFILE\"><code class=\"xref std std-setting docutils literal notranslate\">EMAIL_SSL_KEYFILE</code></a>, <a class=\"reference internal\" href=\"/sv/6.1/ref/settings/#std-setting-EMAIL_SSL_CERTFILE\"><code class=\"xref std std-setting docutils literal notranslate\">EMAIL_SSL_CERTFILE</code></a> och <a class=\"reference internal\" href=\"/sv/6.1/ref/settings/#std-setting-EMAIL_TIMEOUT\"><code class=\"xref std std-setting docutils literal notranslate\">EMAIL_TIMEOUT</code></a>. (Det finns ingen inställning som motsvarar alternativet <code class=\"docutils literal notranslate\">&quot;fail_silently&quot;</code>.)</p>\n</aside>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.core.mail.backends.smtp.EmailBackend\">\n<em class=\"property\"><span class=\"k\">class</span> </em><span class=\"sig-prename descclassname\">backends.smtp.</span><span class=\"sig-name descname\">EmailBackend</span><a class=\"heading-anchor\" href=\"#django.core.mail.backends.smtp.EmailBackend\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Det rekommenderas inte att instansiera en <code class=\"docutils literal notranslate\">EmailBackend</code>-klass direkt. Använd <a class=\"reference internal\" href=\"#django.core.mail.mailers\" title=\"django.core.mail.mailers\"><code class=\"xref py py-data docutils literal notranslate\">mailers</code></a> för att hämta en backendinstans.</p>\n<p>När SMTP-klassen <code class=\"docutils literal notranslate\">EmailBackend</code> konstrueras direkt (utan att gå via <a class=\"reference internal\" href=\"#django.core.mail.mailers\" title=\"django.core.mail.mailers\"><code class=\"xref py py-data docutils literal notranslate\">mailers</code></a>) accepterar den alternativen ovan som nyckelordsargument. Standardvärdena kommer från motsvarande, utfasade <code class=\"docutils literal notranslate\">EMAIL_*</code>-inställningar. <code class=\"docutils literal notranslate\">host</code> är inte obligatorisk och har standardvärdet <code class=\"docutils literal notranslate\">&quot;localhost&quot;</code>, och <code class=\"docutils literal notranslate\">port</code> har standardvärdet <code class=\"docutils literal notranslate\">25</code> även om <code class=\"docutils literal notranslate\">use_tls</code> eller <code class=\"docutils literal notranslate\">use_ssl</code> är True.</p>\n<p>När inställningen <a class=\"reference internal\" href=\"/sv/6.1/ref/settings/#std-setting-MAILERS\"><code class=\"xref std std-setting docutils literal notranslate\">MAILERS</code></a> är definierad orsakar ett försök att skapa en SMTP-<code class=\"docutils literal notranslate\">EmailBackend</code> direkt ett <code class=\"docutils literal notranslate\">AttributeError</code>.</p>\n<aside class=\"version-note version-deprecated\" data-version=\"6.1\" role=\"note\">\n<p class=\"version-note-title\">Deprecated since Django 6.1</p><p><span class=\"versionmodified deprecated\">Ersatt sedan version 6.1: </span>Att direkt skapa en instans av en klass <code class=\"docutils literal notranslate\">EmailBackend</code> kommer inte att stödjas i Django 2028. Odokumenterad användning ger en annan hantering av standardargument än i tidigare utgåvor.</p>\n</aside>\n</dd></dl>\n\n<section id=\"private-and-self-signed-smtp-server-certificates\">\n<span id=\"topic-email-smtp-private-ca\"></span><h4>Privata och självsignerade SMTP-servercertifikat<a class=\"heading-anchor\" href=\"#private-and-self-signed-smtp-server-certificates\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h4>\n<p>Om SMTP-servern använder ett SSL-certifikat från en privat certifikatutfärdare (CA) ska CA:ns rotcertifikat läggas till i klientens systemomfattande CA-samling (där Django körs). På motsvarande sätt ska ett självsignerat certifikat läggas till i klientens systemomfattande CA-samling så att det kan betraktas som betrott. SMTP-backendens alternativ <code class=\"docutils literal notranslate\">&quot;ssl_certfile&quot;</code> kan inte användas för CA-rötter eller självsignerade certifikat.</p>\n<p>Följ plattformsspecifika instruktioner för att lägga till certifikatet i systemets CA-katalog. Om det inte är möjligt eller önskvärt att ändra systemkatalogen är ett alternativ att använda OpenSSL:s miljövariabler <code class=\"docutils literal notranslate\">SSL_CERT_FILE</code> eller <code class=\"docutils literal notranslate\">SSL_CERT_DIR</code> för att ange en egen certifikatkatalog.</p>\n<p>För mer komplexa scenarier kan SMTP-backenden underklassas för att lägga till rotcertifikat i dess <code class=\"docutils literal notranslate\">ssl_context</code> med <a class=\"reference external\" href=\"https://docs.python.org/3/library/ssl.html#ssl.SSLContext.load_verify_locations\" title=\"(in Python v3.14)\"><code class=\"xref py py-meth docutils literal notranslate\">ssl.SSLContext.load_verify_locations()</code></a>.</p>\n</section>\n</section>\n<section id=\"console-backend\">\n<span id=\"topic-email-console-backend\"></span><h3>Backend för konsol<a class=\"heading-anchor\" href=\"#console-backend\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>I stället för att skicka verkliga e-postmeddelanden skriver konsolbackenden de meddelanden som skulle ha skickats till standardutdata. Använd den genom att ange <a class=\"reference internal\" href=\"/sv/6.1/ref/settings/#std-setting-MAILERS-BACKEND\"><code class=\"xref std std-setting docutils literal notranslate\">BACKEND</code></a> till <code class=\"docutils literal notranslate\">&quot;django.core.mail.backends.console.EmailBackend&quot;</code>.</p>\n<p>Konsolbackenden stöder följande <a class=\"reference internal\" href=\"/sv/6.1/ref/settings/#std-setting-MAILERS-OPTIONS\"><code class=\"xref std std-setting docutils literal notranslate\">OPTIONS</code></a>:</p>\n<ul class=\"simple\">\n<li><p><code class=\"docutils literal notranslate\">&quot;stream&quot;</code>: ett strömliknande objekt att skriva till. Standardvärdet är <code class=\"docutils literal notranslate\">stdout</code>.</p></li>\n<li><p><code class=\"docutils literal notranslate\">&quot;fail_silently&quot;</code>: ange <code class=\"docutils literal notranslate\">True</code> för att ignorera <em>alla</em> fel när meddelandet skrivs till strömmen, inklusive fel vid serialisering av meddelandet. (Alternativet finns för bakåtkompatibilitet men rekommenderas inte.)</p></li>\n</ul>\n<p>Denna backend är inte avsedd att användas i produktion - den tillhandahålls som en bekvämlighet som kan användas under utveckling.</p>\n<aside class=\"version-note version-changed\" data-version=\"6.1\" role=\"note\">\n<p class=\"version-note-title\">Changed in Django 6.1</p><p>Inställningsfilen som skapas av <a class=\"reference internal\" href=\"/sv/6.1/ref/django-admin/#django-admin-startproject\"><code class=\"xref std std-djadmin docutils literal notranslate\">startproject</code></a> definierar nu <a class=\"reference internal\" href=\"/sv/6.1/ref/settings/#std-setting-MAILERS\"><code class=\"xref std std-setting docutils literal notranslate\">MAILERS</code></a> med konsolbackenden som standardkonfiguration.</p>\n</aside>\n</section>\n<section id=\"file-backend\">\n<span id=\"topic-email-file-backend\"></span><h3>Backend för filer<a class=\"heading-anchor\" href=\"#file-backend\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Filbackenden skriver e-postmeddelanden till en fil. En ny fil skapas för varje ny session som öppnas i denna backend. Använd den genom att ange <a class=\"reference internal\" href=\"/sv/6.1/ref/settings/#std-setting-MAILERS-BACKEND\"><code class=\"xref std std-setting docutils literal notranslate\">BACKEND</code></a> till <code class=\"docutils literal notranslate\">&quot;django.core.mail.backends.filebased.EmailBackend&quot;</code>.</p>\n<p>Filbackenden stöder följande <a class=\"reference internal\" href=\"/sv/6.1/ref/settings/#std-setting-MAILERS-OPTIONS\"><code class=\"xref std std-setting docutils literal notranslate\">OPTIONS</code></a>:</p>\n<ul class=\"simple\">\n<li><p><code class=\"docutils literal notranslate\">&quot;file_path&quot;</code> (obligatorisk): katalogen som filerna skrivs till. Kan vara en sträng eller ett <a class=\"reference external\" href=\"https://docs.python.org/3/library/pathlib.html#pathlib.Path\" title=\"(in Python v3.14)\"><code class=\"xref py py-class docutils literal notranslate\">pathlib.Path</code></a>-objekt. Om katalogen inte finns försöker filbackenden skapa den.</p></li>\n<li><p><code class=\"docutils literal notranslate\">&quot;fail_silently&quot;</code>: ange <code class=\"docutils literal notranslate\">True</code> för att ignorera <em>alla</em> fel när meddelandet skrivs till filen – inklusive fel vid serialisering av meddelandet – men <em>inte</em> fel som rör säkerställandet att filsökvägens katalog finns. (Alternativet finns för bakåtkompatibilitet men rekommenderas inte.)</p></li>\n</ul>\n<p>Denna backend är inte avsedd att användas i produktion - den tillhandahålls som en bekvämlighet som kan användas under utveckling.</p>\n<aside class=\"version-note version-deprecated\" data-version=\"6.1\" role=\"note\">\n<p class=\"version-note-title\">Deprecated since Django 6.1</p><p><span class=\"versionmodified deprecated\">Ersatt sedan version 6.1: </span>När filbackenden används utan att inställningen <a class=\"reference internal\" href=\"/sv/6.1/ref/settings/#std-setting-MAILERS\"><code class=\"xref std std-setting docutils literal notranslate\">MAILERS</code></a> är definierad hämtar den alternativet <code class=\"docutils literal notranslate\">file_path</code> från inställningen <a class=\"reference internal\" href=\"/sv/6.1/ref/settings/#std-setting-EMAIL_FILE_PATH\"><code class=\"xref std std-setting docutils literal notranslate\">EMAIL_FILE_PATH</code></a>.</p>\n</aside>\n</section>\n<section id=\"in-memory-backend\">\n<span id=\"topic-email-memory-backend\"></span><h3>Backend i minnet<a class=\"heading-anchor\" href=\"#in-memory-backend\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Backenden <code class=\"docutils literal notranslate\">'locmem'</code> lagrar meddelanden i ett särskilt attribut i modulen <code class=\"docutils literal notranslate\">django.core.mail</code>. Attributet <code class=\"docutils literal notranslate\">outbox</code> skapas när det första meddelandet skickas. Det är en lista med en <a class=\"reference internal\" href=\"#django.core.mail.EmailMessage\" title=\"django.core.mail.EmailMessage\"><code class=\"xref py py-class docutils literal notranslate\">EmailMessage</code></a>-instans för varje meddelande som skulle ha skickats. Meddelanden i utkorgen förses med attributet <code class=\"docutils literal notranslate\">sent_using</code>, som identifierar det <a class=\"reference internal\" href=\"/sv/6.1/ref/settings/#std-setting-MAILERS\"><code class=\"xref std std-setting docutils literal notranslate\">MAILERS</code></a>-alias som användes för att skicka meddelandet.</p>\n<p>Använd minnesbackenden genom att ange <a class=\"reference internal\" href=\"/sv/6.1/ref/settings/#std-setting-MAILERS-BACKEND\"><code class=\"xref std std-setting docutils literal notranslate\">BACKEND</code></a> till <code class=\"docutils literal notranslate\">&quot;django.core.mail.backends.locmem.EmailBackend&quot;</code>. Den stöder inga <a class=\"reference internal\" href=\"/sv/6.1/ref/settings/#std-setting-MAILERS-OPTIONS\"><code class=\"xref std std-setting docutils literal notranslate\">OPTIONS</code></a>.</p>\n<p>Djangos testkörning <a class=\"reference internal\" href=\"/sv/6.1/topics/testing/tools/#topics-testing-email\"><span class=\"std std-ref\">växlar automatiskt till denna backend för testning</span></a>.</p>\n<p>Denna backend är inte avsedd att användas i produktion - den tillhandahålls som en bekvämlighet som kan användas under utveckling och testning.</p>\n<aside class=\"version-note version-changed\" data-version=\"6.1\" role=\"note\">\n<p class=\"version-note-title\">Changed in Django 6.1</p><p>Attributet <code class=\"docutils literal notranslate\">sent_using</code> lades till i meddelanden i utkorgen.</p>\n</aside>\n</section>\n<section id=\"dummy-backend\">\n<span id=\"topic-email-dummy-backend\"></span><h3>Dummy backend<a class=\"heading-anchor\" href=\"#dummy-backend\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Som namnet antyder gör dummy-backenden ingenting med dina meddelanden. Använd den genom att ange <a class=\"reference internal\" href=\"/sv/6.1/ref/settings/#std-setting-MAILERS-BACKEND\"><code class=\"xref std std-setting docutils literal notranslate\">BACKEND</code></a> till <code class=\"docutils literal notranslate\">&quot;django.core.mail.backends.dummy.EmailBackend&quot;</code>. Den stöder inga <a class=\"reference internal\" href=\"/sv/6.1/ref/settings/#std-setting-MAILERS-OPTIONS\"><code class=\"xref std std-setting docutils literal notranslate\">OPTIONS</code></a>.</p>\n<p>Denna backend är inte avsedd att användas i produktion - den tillhandahålls som en bekvämlighet som kan användas under utveckling.</p>\n</section>\n<section id=\"third-party-backends\">\n<span id=\"topic-third-party-email-backends\"></span><h3>Tredjepartsbackendar<a class=\"heading-anchor\" href=\"#third-party-backends\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<aside class=\"admonition-there-are-community-maintained-solutions admonition\" role=\"note\">\n<p class=\"admonition-title\">Det finns lösningar som underhålls av communityn!</p>\n<p>Django har ett levande ekosystem. Det finns e-postbackendar som lyfts fram på sidan <a class=\"reference external\" href=\"https://www.djangoproject.com/community/ecosystem/#email-notifications\">Community Ecosystem</a>. Djangos <a class=\"reference external\" href=\"https://djangopackages.org/grids/g/email/\">Email grid</a> på Django Packages erbjuder ännu fler alternativ!</p>\n</aside>\n<p>Det finns tredjepartsbackendar för e-post som:</p>\n<ul class=\"simple\">\n<li><p>Integrerar direkt med kommersiella e-postleverantörers API:er (som ofta har extrafunktioner som inte är tillgängliga via SMTP).</p></li>\n<li><p>Lägger ut e-postsändning på asynkrona uppgiftsköer.</p></li>\n<li><p>Lägger till funktioner i andra e-postbackendar, till exempel upprätthållande av listor över mottagare som inte får kontaktas eller loggning av skickade meddelanden.</p></li>\n<li><p>Tillhandahåller verktyg för utveckling och felsökning, till exempel sandbox-fångst och förhandsvisningar av e-post i webbläsaren.</p></li>\n</ul>\n</section>\n<section id=\"defining-a-custom-email-backend\">\n<span id=\"topic-custom-email-backend\"></span><h3>Definiera en anpassad backend för e-post<a class=\"heading-anchor\" href=\"#defining-a-custom-email-backend\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Om du behöver ändra hur e-post skickas kan du skriva en egen e-postbackend. Använd en anpassad backend genom att ange <a class=\"reference internal\" href=\"/sv/6.1/ref/settings/#std-setting-MAILERS-BACKEND\"><code class=\"xref std std-setting docutils literal notranslate\">BACKEND</code></a> till Pythons importsökväg för din backendklass och <a class=\"reference internal\" href=\"/sv/6.1/ref/settings/#std-setting-MAILERS-OPTIONS\"><code class=\"xref std std-setting docutils literal notranslate\">OPTIONS</code></a> till de nyckelordsargument för <code class=\"docutils literal notranslate\">__init__()</code> som backenden stöder.</p>\n<p>Anpassade e-postbackendar bör vara underklasser till <code class=\"docutils literal notranslate\">BaseEmailBackend</code>, som finns i modulen <code class=\"docutils literal notranslate\">django.core.mail.backends.base</code>. En anpassad e-postbackend måste implementera metoden <code class=\"docutils literal notranslate\">send_messages(email_messages)</code>. Metoden tar emot en lista med <a class=\"reference internal\" href=\"#django.core.mail.EmailMessage\" title=\"django.core.mail.EmailMessage\"><code class=\"xref py py-class docutils literal notranslate\">EmailMessage</code></a>-instanser och returnerar antalet meddelanden som har levererats korrekt. Om backenden har ett begrepp om en beständig session eller anslutning bör du även implementera metoderna <code class=\"docutils literal notranslate\">open()</code> och <code class=\"docutils literal notranslate\">close()</code>. Se <code class=\"docutils literal notranslate\">smtp.EmailBackend</code> som referensimplementation.</p>\n</section>\n<section id=\"obtaining-an-instance-of-an-email-backend\">\n<span id=\"topic-mailers\"></span><h3>Hämta en instans av en e-postbackend<a class=\"heading-anchor\" href=\"#obtaining-an-instance-of-an-email-backend\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Fabriken <code class=\"docutils literal notranslate\">mailers</code> i <code class=\"xref py py-mod docutils literal notranslate\">django.core.mail</code> returnerar instanser av e-postbackendar.</p>\n<dl class=\"py data\">\n<dt class=\"sig sig-object py\" id=\"django.core.mail.mailers\">\n<span class=\"sig-name descname\">mailers</span><a class=\"heading-anchor\" href=\"#django.core.mail.mailers\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><aside class=\"version-note version-added\" data-version=\"6.1\" role=\"note\">\n<p class=\"version-note-title\">New in Django 6.1</p></aside>\n<p>Du kan komma åt de e-postutskickare som konfigurerats i inställningen <a class=\"reference internal\" href=\"/sv/6.1/ref/settings/#std-setting-MAILERS\"><code class=\"xref std std-setting docutils literal notranslate\">MAILERS</code></a> via ett dict-liknande objekt: <code class=\"docutils literal notranslate\">django.core.mail.mailers</code>:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">from</span> <span class=\"nn\">django.core.mail</span> <span class=\"kn\">import</span> mailers\n<span class=\"gp\">&gt;&gt;&gt; </span>mailers<span class=\"p\">[</span><span class=\"s2\">&quot;notifications&quot;</span><span class=\"p\">]</span>\n</code></pre></div>\n<p>Om den angivna nyckeln inte är definierad utlöses felet <code class=\"docutils literal notranslate\">MailerDoesNotExist</code>. Andra konfigurationsproblem utlöser felet <code class=\"docutils literal notranslate\">InvalidMailer</code>.</p>\n</dd></dl>\n\n<dl class=\"py data\">\n<dt class=\"sig sig-object py\" id=\"django.core.mail.mailers.default\">\n<span class=\"sig-prename descclassname\">mailers.</span><span class=\"sig-name descname\">default</span><a class=\"heading-anchor\" href=\"#django.core.mail.mailers.default\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><aside class=\"version-note version-added\" data-version=\"6.1\" role=\"note\">\n<p class=\"version-note-title\">New in Django 6.1</p></aside>\n<p>Som en genväg kan standardutskickaren nås via <code class=\"docutils literal notranslate\">django.core.mail.mailers.default</code>:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">from</span> <span class=\"nn\">django.core.mail</span> <span class=\"kn\">import</span> mailers\n<span class=\"gp\">&gt;&gt;&gt; </span>mailers<span class=\"o\">.</span>default\n</code></pre></div>\n<p>Detta motsvarar <code class=\"docutils literal notranslate\">mailers[&quot;default&quot;]</code>. Om ingen standardutskickare har konfigurerats utlöses felet <code class=\"docutils literal notranslate\">MailerDoesNotExist</code>.</p>\n<aside class=\"version-note version-deprecated\" data-version=\"6.1\" role=\"note\">\n<p class=\"version-note-title\">Deprecated since Django 6.1</p><p><span class=\"versionmodified deprecated\">Ersatt sedan version 6.1: </span>Om inställningen <a class=\"reference internal\" href=\"/sv/6.1/ref/settings/#std-setting-MAILERS\"><code class=\"xref std std-setting docutils literal notranslate\">MAILERS</code></a> inte är definierad skapar <code class=\"docutils literal notranslate\">mailers.default</code> en e-postbackendinstans från den utfasade <a class=\"reference internal\" href=\"/sv/6.1/ref/settings/#std-setting-EMAIL_BACKEND\"><code class=\"xref std std-setting docutils literal notranslate\">EMAIL_BACKEND</code></a> och relaterade inställningar. Detta stöder bakåtkompatibilitet med Django 6.0 och tidigare.</p>\n<p>Detta beteende (och dessa inställningar) kommer att tas bort i Django 2028.</p>\n</aside>\n</dd></dl>\n\n<dl class=\"py function\">\n<dt class=\"sig sig-object py\" id=\"django.core.mail.get_connection\">\n<span class=\"sig-name descname\">get_connection</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">backend<span class=\"o\">=</span><span class=\"default_value\">None</span></em>, <em class=\"sig-param\"><span class=\"keyword-only-separator o\"><abbr title=\"Keyword-only parameters separator (PEP 3102)\">*</abbr></span></em>, <em class=\"sig-param\">fail_silently<span class=\"o\">=</span><span class=\"default_value\">False</span></em>, <em class=\"sig-param\"><span class=\"o\">**</span>kwargs</em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.core.mail.get_connection\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Den utfasade funktionen <code class=\"xref py py-func docutils literal notranslate\">django.core.mail.get_connection()</code> skapar och returnerar en instans av en e-postbackend. Dess beteende beror på inställningen <a class=\"reference internal\" href=\"/sv/6.1/ref/settings/#std-setting-MAILERS\"><code class=\"xref std std-setting docutils literal notranslate\">MAILERS</code></a> och hur funktionen anropas.</p>\n<p>Om inställningen <a class=\"reference internal\" href=\"/sv/6.1/ref/settings/#std-setting-MAILERS\"><code class=\"xref std std-setting docutils literal notranslate\">MAILERS</code></a> <em>är</em> definierad:</p>\n<ul class=\"simple\">\n<li><p><code class=\"docutils literal notranslate\">get_connection()</code> utan argument returnerar <a class=\"reference internal\" href=\"#django.core.mail.mailers.default\" title=\"django.core.mail.mailers.default\"><code class=\"xref py py-data docutils literal notranslate\">mailers.default</code></a>.</p></li>\n<li><p><code class=\"docutils literal notranslate\">get_connection(...)</code> som anropas med enbart <code class=\"docutils literal notranslate\">fail_silently</code> eller andra nyckelordsargument skapar en instans av <code class=\"docutils literal notranslate\">MAILERS[&quot;default&quot;]</code> med nyckelorden tillagda till standardutskickarens <a class=\"reference internal\" href=\"/sv/6.1/ref/settings/#std-setting-MAILERS-OPTIONS\"><code class=\"xref std std-setting docutils literal notranslate\">OPTIONS</code></a>.</p></li>\n<li><p><code class=\"docutils literal notranslate\">get_connection(backend, ...)</code> med en importsökväg för en backend utlöser ett fel.</p></li>\n</ul>\n<p>Om inställningen <a class=\"reference internal\" href=\"/sv/6.1/ref/settings/#std-setting-MAILERS\"><code class=\"xref std std-setting docutils literal notranslate\">MAILERS</code></a> <em>inte</em> är definierad:</p>\n<ul class=\"simple\">\n<li><p><code class=\"docutils literal notranslate\">get_connection()</code> utan argument returnerar en instans av den e-postbackend som anges i <a class=\"reference internal\" href=\"/sv/6.1/ref/settings/#std-setting-EMAIL_BACKEND\"><code class=\"xref std std-setting docutils literal notranslate\">EMAIL_BACKEND</code></a>.</p></li>\n<li><p>Om du anger argumentet <code class=\"docutils literal notranslate\">backend</code> instansieras den backenden.</p></li>\n<li><p>Om nyckelordsargumentet <code class=\"docutils literal notranslate\">fail_silently</code> är True ignoreras vissa backendberoende undantag under e-postsändningen utan felmeddelande.</p></li>\n<li><p>Alla andra nyckelordsargument skickas direkt till konstruktören för e-postbackend.</p></li>\n</ul>\n<aside class=\"version-note version-deprecated\" data-version=\"6.0\" role=\"note\">\n<p class=\"version-note-title\">Deprecated since Django 6.0</p><p><span class=\"versionmodified deprecated\">Ersatt sedan version 6.0: </span>Att ange <code class=\"docutils literal notranslate\">fail_silently</code> som positionsargument är utfasat.</p>\n</aside>\n<aside class=\"version-note version-deprecated\" data-version=\"6.1\" role=\"note\">\n<p class=\"version-note-title\">Deprecated since Django 6.1</p><p><span class=\"versionmodified deprecated\">Ersatt sedan version 6.1: </span><code class=\"xref py py-func docutils literal notranslate\">get_connection()</code> är utfasad och tas bort i Django 7.0. Byt till <a class=\"reference internal\" href=\"#django.core.mail.mailers\" title=\"django.core.mail.mailers\"><code class=\"xref py py-data docutils literal notranslate\">mailers[alias]</code></a>. Se <a class=\"reference internal\" href=\"/sv/6.1/howto/mailers-migration/#migrating-to-mailers-get-connection\"><span class=\"std std-ref\">Ersätta get_connection() och argumenten connection</span></a> för förslag på migrering.</p>\n</aside>\n</dd></dl>\n\n</section>\n<section id=\"email-backend-api\">\n<span id=\"topic-email-backend-api\"></span><h3>API för e-postbackendar<a class=\"heading-anchor\" href=\"#email-backend-api\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Instanser av en e-postbackendklass har följande metoder:</p>\n<ul class=\"simple\">\n<li><p><code class=\"docutils literal notranslate\">open()</code> instansierar en långlivad anslutning för e-postsändning.</p></li>\n<li><p><code class=\"docutils literal notranslate\">close()</code> stänger den aktuella anslutningen för e-postsändning.</p></li>\n<li><p><code class=\"docutils literal notranslate\">send_messages(email_messages)</code> skickar en lista med <a class=\"reference internal\" href=\"#django.core.mail.EmailMessage\" title=\"django.core.mail.EmailMessage\"><code class=\"xref py py-class docutils literal notranslate\">EmailMessage</code></a>-objekt. Om anslutningen inte är öppen öppnar anropet implicit anslutningen och stänger den därefter. Om anslutningen redan är öppen lämnas den öppen efter att e-post har skickats.</p></li>\n</ul>\n<p>En backendinstans kan också användas som kontexthanterare, vilket automatiskt anropar <code class=\"docutils literal notranslate\">open()</code> och <code class=\"docutils literal notranslate\">close()</code> vid behov. Ett exempel finns i <a class=\"reference internal\" href=\"#topics-sending-multiple-emails\"><span class=\"std std-ref\">Skicka många meddelanden effektivt</span></a>.</p>\n</section>\n</section>\n<section id=\"configuring-email-for-development\">\n<h2>Konfigurera e-post för utveckling<a class=\"heading-anchor\" href=\"#configuring-email-for-development\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Det finns tillfällen då man inte vill att Django ska skicka e-post överhuvudtaget. Till exempel när du utvecklar en webbplats vill du förmodligen inte skicka ut tusentals e-postmeddelanden - men du kanske vill validera att e-postmeddelanden kommer att skickas till rätt personer under rätt förhållanden och att dessa e-postmeddelanden innehåller rätt innehåll.</p>\n<p>Det enklaste sättet att konfigurera e-post för lokal utveckling är att använda e-postbackend <a class=\"reference internal\" href=\"#topic-email-console-backend\"><span class=\"std std-ref\">console</span></a>. Denna backend omdirigerar all e-post till <code class=\"docutils literal notranslate\">stdout</code>, så att du kan inspektera innehållet i e-postmeddelanden.</p>\n<p>E-postbackend <a class=\"reference internal\" href=\"#topic-email-file-backend\"><span class=\"std std-ref\">file</span></a> kan också vara användbar under utvecklingsarbetet - den här backend-enheten dumpar innehållet i varje SMTP-anslutning till en fil som kan inspekteras när du vill.</p>\n<p>Ett annat sätt är att använda en mockad SMTP-server som tar emot e-postmeddelanden lokalt och visar dem i terminalen, men inte faktiskt skickar något. Paketet <a class=\"extlink-pypi reference external\" href=\"https://pypi.org/project/aiosmtpd/\">aiosmtpd</a> erbjuder ett sätt att göra detta:</p>\n<div class=\"code-block\" data-language=\"shell\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Shell</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Shell code\"><code>python -m pip install <span class=\"s2\">&quot;aiosmtpd &gt;= 1.4.5&quot;</span>\n\npython -m aiosmtpd -n -l localhost:8025\n</code></pre></div>\n<p>Detta kommando startar en minimal SMTP-server som lyssnar på port 8025 på localhost. Servern skriver ut alla e-posthuvuden och e-postmeddelandets brödtext till standardutdata. Du behöver sedan bara ange SMTP-backendens <a class=\"reference internal\" href=\"/sv/6.1/ref/settings/#std-setting-MAILERS-OPTIONS\"><code class=\"xref std std-setting docutils literal notranslate\">OPTIONS</code></a> <code class=\"docutils literal notranslate\">&quot;host&quot;</code> och <code class=\"docutils literal notranslate\">&quot;port&quot;</code> därefter. En mer detaljerad diskussion om SMTP-serveralternativ finns i dokumentationen för modulen <a class=\"reference external\" href=\"https://aiosmtpd.readthedocs.io/en/latest/\">aiosmtpd</a>.</p>\n<p>Information om hur du enhetstestar e-postmeddelanden i din applikation finns i avsnittet <a class=\"reference internal\" href=\"/sv/6.1/topics/testing/tools/#topics-testing-email\"><span class=\"std std-ref\">E-posttjänster</span></a> i testdokumentationen.</p>\n</section>","rootId":"module-django.core.mail","toc":[{"title":"Snabba exempel","anchor":"quick-examples","children":[]},{"title":"Konfigurera e-post","anchor":"configuring-email","children":[{"title":"Flera e-postkonfigurationer","anchor":"multiple-mailers","children":[]}]},{"title":"Skicka meddelanden","anchor":"sending-messages","children":[{"title":"send_mail()","anchor":"send-mail","children":[]},{"title":"sänd_mass_mail()","anchor":"send-mass-mail","children":[{"title":"send_mass_mail() vs. send_mail()","anchor":"send-mass-mail-vs-send-mail","children":[]}]},{"title":"mail_admins()","anchor":"mail-admins","children":[]},{"title":"mail_managers()","anchor":"mail-managers","children":[]},{"title":"Klassen ”E-postmeddelande","anchor":"the-emailmessage-class","children":[{"title":"Skicka alternativa innehållstyper","anchor":"sending-alternative-content-types","children":[{"title":"Skicka flera versioner av innehållet","anchor":"sending-multiple-content-versions","children":[]},{"title":"Uppdatering av standardinnehållstypen","anchor":"updating-the-default-content-type","children":[]}]}]},{"title":"Säker e-postsändning","anchor":"safely-sending-email","children":[{"title":"Formatera e-postadresser","anchor":"formatting-email-addresses","children":[]},{"title":"Förhindra injektion av rubrik","anchor":"preventing-header-injection","children":[]}]},{"title":"Skicka många meddelanden effektivt","anchor":"sending-many-messages-efficiently","children":[]}]},{"title":"Backend för e-post","anchor":"email-backends","children":[{"title":"SMTP-backend","anchor":"smtp-backend","children":[{"title":"Privata och självsignerade SMTP-servercertifikat","anchor":"private-and-self-signed-smtp-server-certificates","children":[]}]},{"title":"Backend för konsol","anchor":"console-backend","children":[]},{"title":"Backend för filer","anchor":"file-backend","children":[]},{"title":"Backend i minnet","anchor":"in-memory-backend","children":[]},{"title":"Dummy backend","anchor":"dummy-backend","children":[]},{"title":"Tredjepartsbackendar","anchor":"third-party-backends","children":[]},{"title":"Definiera en anpassad backend för e-post","anchor":"defining-a-custom-email-backend","children":[]},{"title":"Hämta en instans av en e-postbackend","anchor":"obtaining-an-instance-of-an-email-backend","children":[]},{"title":"API för e-postbackendar","anchor":"email-backend-api","children":[]}]},{"title":"Konfigurera e-post för utveckling","anchor":"configuring-email-for-development","children":[]}],"breadcrumbs":[{"docname":"topics/index","title":"Använda Django","url":"/sv/6.1/topics/"}],"prev":{"docname":"topics/signing","title":"Kryptografisk signering","url":"/sv/6.1/topics/signing/"},"next":{"docname":"topics/i18n/index","title":"Internationalisering och lokalisering","url":"/sv/6.1/topics/i18n/"},"formats":{"html":"/sv/6.1/topics/email/","markdown":"/sv/6.1/topics/email.md","json":"/sv/6.1/topics/email.json"},"source":"https://github.com/django/django/blob/stable/6.1.x/docs/topics/email.txt","official":"https://docs.djangoproject.com/sv/6.1/topics/email/","inVersions":["6.1","6.0","5.2"],"inLocales":["en","sv","zh-hans","ga","fr","ja","id","it","pt-br","ko","es","el","pl"]}