{"title":"Skicka e-post","version":"5.2","locale":"sv","docname":"topics/email","url":"/sv/5.2/topics/email/","canonical":"https://djangodocs.dev/sv/5.2/topics/email/","summary":"Även om Python tillhandahåller ett gränssnitt för e-post via modulen smtplib , tillhandahåller Django ett par lätta omslag över det. Dessa omslag tillhandahålls för…","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>Även om Python tillhandahåller ett gränssnitt för e-post via modulen <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\"><span class=\"pre\">smtplib</span></code></a>, tillhandahåller Django ett par lätta omslag över det. Dessa omslag tillhandahålls för att göra det extra snabbt att skicka e-post, för att hjälpa till att testa e-postsändning under utveckling och för att ge stöd för plattformar som inte kan använda SMTP.</p>\n<p>Koden finns i modulen <code class=\"docutils literal notranslate\"><span class=\"pre\">django.core.mail</span></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\"><span class=\"pre\">send_mail()</span></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=\"w\"> </span><span class=\"nn\">django.core.mail</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">send_mail</span>\n\n<span class=\"n\">send_mail</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;to@example.com&quot;</span><span class=\"p\">],</span>\n    <span class=\"n\">fail_silently</span><span class=\"o\">=</span><span class=\"kc\">False</span><span class=\"p\">,</span>\n<span class=\"p\">)</span>\n</code></pre></div>\n<p>Om du behöver ytterligare funktioner för att skicka e-post använder du <a class=\"reference internal\" href=\"#django.core.mail.EmailMessage\" title=\"django.core.mail.EmailMessage\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">EmailMessage</span></code></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\"><span class=\"pre\">EmailMultiAlternatives</span></code></a>. Om du t.ex. vill skicka ett flerdelat e-postmeddelande som innehåller både HTML- och klartextversioner med en specifik mall och anpassade rubriker kan du använda följande metod:</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=\"w\"> </span><span class=\"nn\">django.core.mail</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">EmailMultiAlternatives</span>\n<span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.template.loader</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">render_to_string</span>\n\n<span class=\"c1\"># First, render the plain text content.</span>\n<span class=\"n\">text_content</span> <span class=\"o\">=</span> <span class=\"n\">render_to_string</span><span class=\"p\">(</span>\n    <span class=\"s2\">&quot;templates/emails/my_email.txt&quot;</span><span class=\"p\">,</span>\n    <span class=\"n\">context</span><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>\n<span class=\"n\">html_content</span> <span class=\"o\">=</span> <span class=\"n\">render_to_string</span><span class=\"p\">(</span>\n    <span class=\"s2\">&quot;templates/emails/my_email.html&quot;</span><span class=\"p\">,</span>\n    <span class=\"n\">context</span><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>\n<span class=\"n\">msg</span> <span class=\"o\">=</span> <span class=\"n\">EmailMultiAlternatives</span><span class=\"p\">(</span>\n    <span class=\"s2\">&quot;Subject here&quot;</span><span class=\"p\">,</span>\n    <span class=\"n\">text_content</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=\"n\">headers</span><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>\n<span class=\"n\">msg</span><span class=\"o\">.</span><span class=\"n\">attach_alternative</span><span class=\"p\">(</span><span class=\"n\">html_content</span><span class=\"p\">,</span> <span class=\"s2\">&quot;text/html&quot;</span><span class=\"p\">)</span>\n<span class=\"n\">msg</span><span class=\"o\">.</span><span class=\"n\">send</span><span class=\"p\">()</span>\n</code></pre></div>\n<p>E-post skickas via den SMTP-värd och port som anges i inställningarna <a class=\"reference internal\" href=\"/sv/5.2/ref/settings/#std-setting-EMAIL_HOST\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">EMAIL_HOST</span></code></a> och <a class=\"reference internal\" href=\"/sv/5.2/ref/settings/#std-setting-EMAIL_PORT\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">EMAIL_PORT</span></code></a>. Inställningarna <a class=\"reference internal\" href=\"/sv/5.2/ref/settings/#std-setting-EMAIL_HOST_USER\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">EMAIL_HOST_USER</span></code></a> och <a class=\"reference internal\" href=\"/sv/5.2/ref/settings/#std-setting-EMAIL_HOST_PASSWORD\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">EMAIL_HOST_PASSWORD</span></code></a>, om de är angivna, används för att autentisera SMTP-servern och inställningarna <a class=\"reference internal\" href=\"/sv/5.2/ref/settings/#std-setting-EMAIL_USE_TLS\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">EMAIL_USE_TLS</span></code></a> och <a class=\"reference internal\" href=\"/sv/5.2/ref/settings/#std-setting-EMAIL_USE_SSL\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">EMAIL_USE_SSL</span></code></a> kontrollerar om en säker anslutning används.</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\"><span class=\"pre\">django.core.mail</span></code> kommer att ställas in till värdet för din <a class=\"reference internal\" href=\"/sv/5.2/ref/settings/#std-setting-DEFAULT_CHARSET\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">DEFAULT_CHARSET</span></code></a>-inställning.</p>\n</aside>\n</section>\n<section id=\"send-mail\">\n<h2><code class=\"docutils literal notranslate\"><span class=\"pre\">send_mail()</span></code><a class=\"heading-anchor\" href=\"#send-mail\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<dl class=\"py function\">\n<dt class=\"sig sig-object py\" id=\"django.core.mail.send_mail\">\n<span class=\"sig-name descname\"><span class=\"pre\">send_mail</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">subject</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">message</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">from_email</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">recipient_list</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">fail_silently</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">False</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">auth_user</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">auth_password</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">connection</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">html_message</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></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>I de flesta fall kan du skicka e-post med hjälp av <code class=\"docutils literal notranslate\"><span class=\"pre\">django.core.mail.send_mail()</span></code>.</p>\n<p>Parametrarna <code class=\"docutils literal notranslate\"><span class=\"pre\">subject</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">message</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">from_email</span></code> och <code class=\"docutils literal notranslate\"><span class=\"pre\">recipient_list</span></code> är obligatoriska.</p>\n<ul class=\"simple\">\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">subject</span></code>: En sträng.</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">meddelande</span></code>: En sträng.</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">from_email</span></code>: En sträng. Om <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code>, kommer Django att använda värdet av inställningen <a class=\"reference internal\" href=\"/sv/5.2/ref/settings/#std-setting-DEFAULT_FROM_EMAIL\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">DEFAULT_FROM_EMAIL</span></code></a>.</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">mottagare_lista</span></code>: En lista med strängar, var och en en e-postadress. Varje medlem i <code class=\"docutils literal notranslate\"><span class=\"pre\">recipient_list</span></code> kommer att se de andra mottagarna i fältet ”To:” i e-postmeddelandet.</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">fail_silently</span></code>: En boolean. När den är <code class=\"docutils literal notranslate\"><span class=\"pre\">False</span></code> kommer <code class=\"docutils literal notranslate\"><span class=\"pre\">send_mail()</span></code> att ge upphov till ett <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\"><span class=\"pre\">smtplib.SMTPException</span></code></a> om ett fel uppstår. Se <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\"><span class=\"pre\">smtplib</span></code></a>-dokumenten för en lista över möjliga undantag, som alla är underklasser till <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\"><span class=\"pre\">SMTPException</span></code></a>.</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">auth_user</span></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/5.2/ref/settings/#std-setting-EMAIL_HOST_USER\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">EMAIL_HOST_USER</span></code></a>.</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">auth_password</span></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/5.2/ref/settings/#std-setting-EMAIL_HOST_PASSWORD\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">EMAIL_HOST_PASSWORD</span></code></a>.</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">anslutning</span></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\"><span class=\"pre\">html_message</span></code>: Om <code class=\"docutils literal notranslate\"><span class=\"pre\">html_message</span></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\"><span class=\"pre\">message</span></code> som innehållstyp av typen <em class=\"mimetype\">text/plain</em> och <code class=\"docutils literal notranslate\"><span class=\"pre\">html_message</span></code> som innehållstyp av typen <em class=\"mimetype\">text/html</em>.</p></li>\n</ul>\n<p>Returvärdet är antalet framgångsrikt levererade meddelanden (som kan vara <code class=\"docutils literal notranslate\"><span class=\"pre\">0</span></code> eller <code class=\"docutils literal notranslate\"><span class=\"pre\">1</span></code> eftersom det bara kan skicka ett meddelande).</p>\n</section>\n<section id=\"send-mass-mail\">\n<h2><code class=\"docutils literal notranslate\"><span class=\"pre\">sänd_mass_mail()</span></code><a class=\"heading-anchor\" href=\"#send-mass-mail\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\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\"><span class=\"pre\">send_mass_mail</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">datatuple</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">fail_silently</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">False</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">auth_user</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">auth_password</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">connection</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></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\"><span class=\"pre\">django.core.mail.send_mass_mail()</span></code> är avsedd att hantera massutskick av e-post.</p>\n<p><code class=\"docutils literal notranslate\"><span class=\"pre\">datatuple</span></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><span class=\"n\">subject</span><span class=\"p\">,</span> <span class=\"n\">message</span><span class=\"p\">,</span> <span class=\"n\">from_email</span><span class=\"p\">,</span> <span class=\"n\">recipient_list</span><span class=\"p\">)</span>\n</code></pre></div>\n<p><code class=\"docutils literal notranslate\"><span class=\"pre\">fail_silently</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">auth_user</span></code> och <code class=\"docutils literal notranslate\"><span class=\"pre\">auth_password</span></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\"><span class=\"pre\">send_mail()</span></code></a>.</p>\n<p>Varje enskilt element i <code class=\"docutils literal notranslate\"><span class=\"pre\">datatuple</span></code> resulterar i ett separat e-postmeddelande. Precis 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\"><span class=\"pre\">send_mail()</span></code></a> kommer mottagarna i samma <code class=\"docutils literal notranslate\"><span class=\"pre\">recipient_list</span></code> att se alla andra adresser i e-postmeddelandets ”Till:”-fält.</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><span class=\"n\">message1</span> <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>\n<span class=\"n\">message2</span> <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>\n<span class=\"n\">send_mass_mail</span><span class=\"p\">((</span><span class=\"n\">message1</span><span class=\"p\">,</span> <span class=\"n\">message2</span><span class=\"p\">),</span> <span class=\"n\">fail_silently</span><span class=\"o\">=</span><span class=\"kc\">False</span><span class=\"p\">)</span>\n</code></pre></div>\n<p>Returvärdet är antalet framgångsrikt levererade meddelanden.</p>\n<section id=\"send-mass-mail-vs-send-mail\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">send_mass_mail()</span></code> vs. <code class=\"docutils literal notranslate\"><span class=\"pre\">send_mail()</span></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></h3>\n<p>Den största skillnaden 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\"><span class=\"pre\">send_mass_mail()</span></code></a> och <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\"><span class=\"pre\">send_mail()</span></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\"><span class=\"pre\">send_mail()</span></code></a> öppnar en anslutning till e-postservern varje gång den körs, medan :func: ~django.core.mail.send_mass_mail använder en enda anslutning för alla sina meddelanden. Detta 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\"><span class=\"pre\">send_mass_mail()</span></code></a> något mer effektiv.</p>\n</section>\n</section>\n<section id=\"mail-admins\">\n<h2><code class=\"docutils literal notranslate\"><span class=\"pre\">mail_admins()</span></code><a class=\"heading-anchor\" href=\"#mail-admins\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<dl class=\"py function\">\n<dt class=\"sig sig-object py\" id=\"django.core.mail.mail_admins\">\n<span class=\"sig-name descname\"><span class=\"pre\">mail_admins</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">subject</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">message</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">fail_silently</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">False</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">connection</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">html_message</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></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\"><span class=\"pre\">django.core.mail.mail_admins()</span></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/5.2/ref/settings/#std-setting-ADMINS\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">ADMINS</span></code></a>.</p>\n<p><code class=\"docutils literal notranslate\"><span class=\"pre\">mail_admins()</span></code> prefixar ämnet med värdet på inställningen <a class=\"reference internal\" href=\"/sv/5.2/ref/settings/#std-setting-EMAIL_SUBJECT_PREFIX\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">EMAIL_SUBJECT_PREFIX</span></code></a>, som är <code class=\"docutils literal notranslate\"><span class=\"pre\">&quot;[Django]&quot;</span></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/5.2/ref/settings/#std-setting-SERVER_EMAIL\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">SERVER_EMAIL</span></code></a>.</p>\n<p>Denna metod finns för enkelhetens och läsbarhetens skull.</p>\n<p>Om <code class=\"docutils literal notranslate\"><span class=\"pre\">html_message</span></code> anges kommer det resulterande e-postmeddelandet att vara ett <em class=\"mimetype\">multipart/alternative</em> e-postmeddelande med <code class=\"docutils literal notranslate\"><span class=\"pre\">message</span></code> som innehållstyp <em class=\"mimetype\">text/plain</em> och <code class=\"docutils literal notranslate\"><span class=\"pre\">html_message</span></code> som innehållstyp <em class=\"mimetype\">text/html</em>.</p>\n</section>\n<section id=\"mail-managers\">\n<h2><code class=\"docutils literal notranslate\"><span class=\"pre\">mail_managers()</span></code><a class=\"heading-anchor\" href=\"#mail-managers\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<dl class=\"py function\">\n<dt class=\"sig sig-object py\" id=\"django.core.mail.mail_managers\">\n<span class=\"sig-name descname\"><span class=\"pre\">mail_managers</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">subject</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">message</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">fail_silently</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">False</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">connection</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">html_message</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></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\"><span class=\"pre\">django.core.mail.mail_managers()</span></code> är precis som <code class=\"docutils literal notranslate\"><span class=\"pre\">mail_admins()</span></code>, förutom att den skickar ett e-postmeddelande till webbplatsansvariga, enligt definitionen i inställningen <a class=\"reference internal\" href=\"/sv/5.2/ref/settings/#std-setting-MANAGERS\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">MANAGERS</span></code></a>.</p>\n</section>\n<section id=\"examples\">\n<h2>Exempel<a class=\"heading-anchor\" href=\"#examples\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Detta skickar ett enda e-postmeddelande till <a class=\"reference external\" href=\"mailto:john&#37;&#52;&#48;example&#46;com\">john<span>&#64;</span>example<span>&#46;</span>com</a> och <a class=\"reference external\" href=\"mailto:jane&#37;&#52;&#48;example&#46;com\">jane<span>&#64;</span>example<span>&#46;</span>com</a>, där de båda visas i ”Till:”:</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=\"n\">send_mail</span><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>Detta skickar ett meddelande till <a class=\"reference external\" href=\"mailto:john&#37;&#52;&#48;example&#46;com\">john<span>&#64;</span>example<span>&#46;</span>com</a> och <a class=\"reference external\" href=\"mailto:jane&#37;&#52;&#48;example&#46;com\">jane<span>&#64;</span>example<span>&#46;</span>com</a>, och de får båda ett separat 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><span class=\"n\">datatuple</span> <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>\n<span class=\"n\">send_mass_mail</span><span class=\"p\">(</span><span class=\"n\">datatuple</span><span class=\"p\">)</span>\n</code></pre></div>\n</section>\n<section id=\"preventing-header-injection\">\n<h2>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></h2>\n<p><a class=\"reference external\" href=\"http://www.nyphp.org/phundamentals/8_Preventing-Email-Header-Injection.html\">Header injection</a> är en säkerhetsbrist som innebär att en angripare infogar extra e-postrubriker för att styra ”To:” och ”From:” i e-postmeddelanden som dina skript genererar.</p>\n<p>De Django-e-postfunktioner som beskrivs ovan skyddar alla mot header-injektion genom att förbjuda radbrytningar i header-värden. Om någon av <code class=\"docutils literal notranslate\"><span class=\"pre\">subject</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">from_email</span></code> eller <code class=\"docutils literal notranslate\"><span class=\"pre\">recipient_list</span></code> innehåller en radbrytning (i antingen Unix-, Windows- eller Mac-format) kommer e-postfunktionen (t.ex. <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\"><span class=\"pre\">send_mail()</span></code></a>) att generera ett <code class=\"docutils literal notranslate\"><span class=\"pre\">django.core.mail.</span> <span class=\"pre\">BadHeaderError</span></code> (en underklass till <code class=\"docutils literal notranslate\"><span class=\"pre\">ValueError</span></code>) och kommer därför inte att skicka e-postmeddelandet. Det är ditt ansvar att validera all data innan du skickar den till e-postfunktionerna.</p>\n<p>Om ett <code class=\"docutils literal notranslate\"><span class=\"pre\">message</span></code> innehåller rubriker i början av strängen skrivs rubrikerna ut som första bit i e-postmeddelandet.</p>\n<p>Här är ett exempel på en vy som tar ett ”subject”, ”message” och ”from_email” från POST-data, skickar det till <a class=\"reference external\" href=\"mailto:admin&#37;&#52;&#48;example&#46;com\">admin<span>&#64;</span>example<span>&#46;</span>com</a> och omdirigerar till ”/contact/thanks/” när det är klart:</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=\"w\"> </span><span class=\"nn\">django.core.mail</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">BadHeaderError</span><span class=\"p\">,</span> <span class=\"n\">send_mail</span>\n<span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.http</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">HttpResponse</span><span class=\"p\">,</span> <span class=\"n\">HttpResponseRedirect</span>\n\n\n<span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">send_email</span><span class=\"p\">(</span><span class=\"n\">request</span><span class=\"p\">):</span>\n    <span class=\"n\">subject</span> <span class=\"o\">=</span> <span class=\"n\">request</span><span class=\"o\">.</span><span class=\"n\">POST</span><span class=\"o\">.</span><span class=\"n\">get</span><span class=\"p\">(</span><span class=\"s2\">&quot;subject&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;&quot;</span><span class=\"p\">)</span>\n    <span class=\"n\">message</span> <span class=\"o\">=</span> <span class=\"n\">request</span><span class=\"o\">.</span><span class=\"n\">POST</span><span class=\"o\">.</span><span class=\"n\">get</span><span class=\"p\">(</span><span class=\"s2\">&quot;message&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;&quot;</span><span class=\"p\">)</span>\n    <span class=\"n\">from_email</span> <span class=\"o\">=</span> <span class=\"n\">request</span><span class=\"o\">.</span><span class=\"n\">POST</span><span class=\"o\">.</span><span class=\"n\">get</span><span class=\"p\">(</span><span class=\"s2\">&quot;from_email&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;&quot;</span><span class=\"p\">)</span>\n    <span class=\"k\">if</span> <span class=\"n\">subject</span> <span class=\"ow\">and</span> <span class=\"n\">message</span> <span class=\"ow\">and</span> <span class=\"n\">from_email</span><span class=\"p\">:</span>\n        <span class=\"k\">try</span><span class=\"p\">:</span>\n            <span class=\"n\">send_mail</span><span class=\"p\">(</span><span class=\"n\">subject</span><span class=\"p\">,</span> <span class=\"n\">message</span><span class=\"p\">,</span> <span class=\"n\">from_email</span><span class=\"p\">,</span> <span class=\"p\">[</span><span class=\"s2\">&quot;admin@example.com&quot;</span><span class=\"p\">])</span>\n        <span class=\"k\">except</span> <span class=\"n\">BadHeaderError</span><span class=\"p\">:</span>\n            <span class=\"k\">return</span> <span class=\"n\">HttpResponse</span><span class=\"p\">(</span><span class=\"s2\">&quot;Invalid header found.&quot;</span><span class=\"p\">)</span>\n        <span class=\"k\">return</span> <span class=\"n\">HttpResponseRedirect</span><span class=\"p\">(</span><span class=\"s2\">&quot;/contact/thanks/&quot;</span><span class=\"p\">)</span>\n    <span class=\"k\">else</span><span class=\"p\">:</span>\n        <span class=\"c1\"># In reality we&#39;d use a form class</span>\n        <span class=\"c1\"># to get proper validation errors.</span>\n        <span class=\"k\">return</span> <span class=\"n\">HttpResponse</span><span class=\"p\">(</span><span class=\"s2\">&quot;Make sure all fields are entered and valid.&quot;</span><span class=\"p\">)</span>\n</code></pre></div>\n</section>\n<section id=\"the-emailmessage-class\">\n<span id=\"emailmessage-and-smtpconnection\"></span><h2>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></h2>\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\"><span class=\"pre\">send_mail()</span></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-func docutils literal notranslate\"><span class=\"pre\">send_mass_mail()</span></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\"><span class=\"pre\">EmailMessage</span></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\"><span class=\"pre\">EmailMessage</span></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\"><span class=\"pre\">send_mail()</span></code></a> och relaterade wrapper-funktioner. Om du vill använda avancerade funktioner, såsom BCC-mottagare, bifogade filer eller flerdelade e-postmeddelanden, måste 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\"><span class=\"pre\">EmailMessage</span></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\"><span class=\"pre\">send_mail()</span></code></a> och relaterade funktioner var ursprungligen det enda gränssnittet som Django tillhandahöll. Men listan över parametrar som de accepterade växte sakta med tiden. Det var logiskt att övergå till en mer objektorienterad design för e-postmeddelanden och behålla de ursprungliga funktionerna endast 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\"><span class=\"pre\">EmailMessage</span></code></a> är ansvarig för att skapa själva e-postmeddelandet. <a class=\"reference internal\" href=\"#topic-email-backends\"><span class=\"std std-ref\">email backend</span></a> är sedan ansvarig 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\"><span class=\"pre\">EmailMessage</span></code></a> en <code class=\"docutils literal notranslate\"><span class=\"pre\">send()</span></code>-metod för att skicka ett enda e-postmeddelande. Om du behöver skicka flera meddelanden tillhandahåller API:et för e-postbackend :ref:` ett alternativ &lt;topics-sending-multiple-emails&gt;`.</p>\n<section id=\"emailmessage-objects\">\n<h3>objekten <code class=\"docutils literal notranslate\"><span class=\"pre\">EmailMessage</span></code><a class=\"heading-anchor\" href=\"#emailmessage-objects\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.core.mail.EmailMessage\">\n<em class=\"property\"><span class=\"k\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">EmailMessage</span></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></dd></dl>\n\n<p>Klassen <a class=\"reference internal\" href=\"#django.core.mail.EmailMessage\" title=\"django.core.mail.EmailMessage\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">EmailMessage</span></code></a> initialiseras med följande parametrar (i angiven ordning, om positionella argument används). Alla parametrar är valfria och kan ställas in när som helst innan du anropar metoden <code class=\"docutils literal notranslate\"><span class=\"pre\">send()</span></code>.</p>\n<ul>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">subject</span></code>: Ämnesraden för e-postmeddelandet.</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">kropp</span></code>: Texten i brödtexten. Detta bör vara ett vanligt textmeddelande.</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">from_email</span></code>: Avsändarens adress. Både <code class=\"docutils literal notranslate\"><span class=\"pre\">fred&#64;example.com</span></code> och <code class=\"docutils literal notranslate\"><span class=\"pre\">&quot;Fred&quot;</span> <span class=\"pre\">&lt;fred&#64;example.com&gt;</span></code> är lagliga former. Om den utelämnas används inställningen <a class=\"reference internal\" href=\"/sv/5.2/ref/settings/#std-setting-DEFAULT_FROM_EMAIL\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">DEFAULT_FROM_EMAIL</span></code></a>.</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">till</span></code>: En lista eller tupel av mottagaradresser.</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">bcc</span></code>: En lista eller tupel av adresser som används i ”Bcc”-rubriken när e-postmeddelandet skickas.</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">anslutning</span></code>: En <a class=\"reference internal\" href=\"#topic-email-backends\"><span class=\"std std-ref\">email backend</span></a>-instans. Använd denna parameter om du skickar <code class=\"docutils literal notranslate\"><span class=\"pre\">EmailMessage</span></code> via <code class=\"docutils literal notranslate\"><span class=\"pre\">send()</span></code> och du vill använda samma anslutning för flera meddelanden. Om den utelämnas skapas en ny anslutning när <code class=\"docutils literal notranslate\"><span class=\"pre\">send()</span></code> anropas. Denna parameter ignoreras när du använder <a class=\"reference internal\" href=\"#topics-sending-multiple-emails\"><span class=\"std std-ref\">send_messages()</span></a>.</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">attachments</span></code>: En lista med bilagor som ska läggas till meddelandet. Dessa kan vara instanser av <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\"><span class=\"pre\">MIMEBase</span></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\"><span class=\"pre\">EmailAttachment</span></code></a>, eller en tupel med attributen <code class=\"docutils literal notranslate\"><span class=\"pre\">(filnamn,</span> <span class=\"pre\">innehåll,</span> <span class=\"pre\">mimetype)</span></code>.</p>\n<aside class=\"version-note version-changed\" data-version=\"5.2\">\n<p class=\"version-note-title\">Changed in Django 5.2</p><p>Stöd för <a class=\"reference internal\" href=\"#django.core.mail.EmailAttachment\" title=\"django.core.mail.EmailAttachment\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">EmailAttachment</span></code></a>-objekt i <code class=\"docutils literal notranslate\"><span class=\"pre\">attachments</span></code> har lagts till.</p>\n</aside>\n</li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">headers</span></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\"><span class=\"pre\">extra_headers</span></code>.</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">cc</span></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\"><span class=\"pre\">reply_to</span></code>: En lista eller tupel av mottagaradresser som används i ”Reply-To”-rubriken när e-postmeddelandet skickas.</p></li>\n</ul>\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=\"w\"> </span><span class=\"nn\">django.core.mail</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">EmailMessage</span>\n\n<span class=\"n\">email</span> <span class=\"o\">=</span> <span class=\"n\">EmailMessage</span><span class=\"p\">(</span>\n    <span class=\"s2\">&quot;Hello&quot;</span><span class=\"p\">,</span>\n    <span class=\"s2\">&quot;Body goes here&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;to1@example.com&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;to2@example.com&quot;</span><span class=\"p\">],</span>\n    <span class=\"p\">[</span><span class=\"s2\">&quot;bcc@example.com&quot;</span><span class=\"p\">],</span>\n    <span class=\"n\">reply_to</span><span class=\"o\">=</span><span class=\"p\">[</span><span class=\"s2\">&quot;another@example.com&quot;</span><span class=\"p\">],</span>\n    <span class=\"n\">headers</span><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<ul>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">send(fail_silently=False)</span></code> skickar meddelandet. Om en anslutning angavs när e-postmeddelandet konstruerades kommer den anslutningen att användas. Annars kommer en instans av standardbackend att instansieras och användas. Om nyckelordsargumentet <code class=\"docutils literal notranslate\"><span class=\"pre\">fail_silently</span></code> är <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code>, kommer undantag som uppkommer när meddelandet skickas att kväsas. En tom lista över mottagare kommer inte att ge upphov till något undantag. Det kommer att returnera <code class=\"docutils literal notranslate\"><span class=\"pre\">1</span></code> om meddelandet skickades framgångsrikt, annars <code class=\"docutils literal notranslate\"><span class=\"pre\">0</span></code>.</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">message()</span></code> konstruerar ett <code class=\"docutils literal notranslate\"><span class=\"pre\">django.core.mail.SafeMIMEText</span></code>-objekt (en underklass av Pythons <a class=\"reference external\" href=\"https://docs.python.org/3/library/email.mime.html#email.mime.text.MIMEText\" title=\"(in Python v3.14)\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">MIMEText</span></code></a>-klass) eller ett <code class=\"docutils literal notranslate\"><span class=\"pre\">django.core.mail.SafeMIMEMultipart</span></code>-objekt som innehåller det meddelande som ska skickas. Om du någonsin behöver utöka <a class=\"reference internal\" href=\"#django.core.mail.EmailMessage\" title=\"django.core.mail.EmailMessage\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">EmailMessage</span></code></a>-klassen, kommer du förmodligen att vilja åsidosätta den här metoden för att lägga in det innehåll du vill ha i MIME-objektet.</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">recipients()</span></code> returnerar en lista över alla mottagare av meddelandet, oavsett om de är registrerade i attributen <code class=\"docutils literal notranslate\"><span class=\"pre\">to</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">cc</span></code> eller <code class=\"docutils literal notranslate\"><span class=\"pre\">bcc</span></code>. Detta är en annan metod som du kan behöva åsidosätta när du underklassar, eftersom SMTP-servern måste få veta hela listan över mottagare när meddelandet skickas. Om du lägger till ett annat sätt att ange mottagare i din klass, måste de också returneras från den här metoden.</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">attach()</span></code> skapar en ny filbilaga och lägger till den i meddelandet. Det finns två sätt att anropa <code class=\"docutils literal notranslate\"><span class=\"pre\">attach()</span></code>:</p>\n<ul>\n<li><p>Du kan skicka ett enda argument till den som är en <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\"><span class=\"pre\">MIMEBase</span></code></a>-instans. Denna kommer att infogas direkt i det resulterande meddelandet.</p></li>\n<li><p>Alternativt kan du skicka tre argument till <code class=\"docutils literal notranslate\"><span class=\"pre\">attach()</span></code>: <code class=\"docutils literal notranslate\"><span class=\"pre\">filnamn</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">innehåll</span></code> och <code class=\"docutils literal notranslate\"><span class=\"pre\">mimetype</span></code>. <code class=\"docutils literal notranslate\"><span class=\"pre\">filnamn</span></code> är namnet på den bifogade filen som den kommer att visas i e-postmeddelandet, <code class=\"docutils literal notranslate\"><span class=\"pre\">innehåll</span></code> är de data som kommer att finnas i den bifogade filen och <code class=\"docutils literal notranslate\"><span class=\"pre\">mimetype</span></code> är den valfria MIME-typen för den bifogade filen. Om du utelämnar <code class=\"docutils literal notranslate\"><span class=\"pre\">mimetype</span></code> kommer MIME-innehållstypen att gissas från filnamnet på bilagan.</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><span class=\"n\">message</span><span class=\"o\">.</span><span class=\"n\">attach</span><span class=\"p\">(</span><span class=\"s2\">&quot;design.png&quot;</span><span class=\"p\">,</span> <span class=\"n\">img_data</span><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\"><span class=\"pre\">mimetype</span></code> av <em class=\"mimetype\">message/rfc822</em>, kommer den också att acceptera <a class=\"reference internal\" href=\"#django.core.mail.EmailMessage\" title=\"django.core.mail.EmailMessage\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">django.core.mail.EmailMessage</span></code></a> och <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\"><span class=\"pre\">email.message.Message</span></code></a>.</p>\n<p>För en <code class=\"docutils literal notranslate\"><span class=\"pre\">mimetype</span></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<p>Dessutom kommer <em class=\"mimetype\">message/rfc822</em> bilagor inte längre att base64-kodas i strid med <span class=\"target\" id=\"index-2\"></span><a class=\"rfc reference external\" href=\"https://datatracker.ietf.org/doc/html/rfc2046.html#section-5.2.1\"><strong>RFC 2046 Section 5.2.1</strong></a>, vilket kan orsaka problem med att visa bilagorna i <a class=\"reference external\" href=\"https://bugzilla.gnome.org/show_bug.cgi?id=651197\">Evolution</a> och <a class=\"reference external\" href=\"https://bugzilla.mozilla.org/show_bug.cgi?id=333880\">Thunderbird</a>.</p>\n</li>\n</ul>\n</li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">attach_file()</span></code> skapar en ny bilaga med hjälp av en fil från ditt filsystem. Anropa den med sökvägen till filen som ska bifogas och, eventuellt, MIME-typen som ska användas för bilagan. Om MIME-typen utelämnas kommer den att gissas frå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><span class=\"n\">message</span><span class=\"o\">.</span><span class=\"n\">attach_file</span><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 på samma sätt som i <code class=\"docutils literal notranslate\"><span class=\"pre\">attach()</span></code>.</p>\n</li>\n</ul>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.core.mail.EmailAttachment\">\n<em class=\"property\"><span class=\"k\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">EmailAttachment</span></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><aside class=\"version-note version-added\" data-version=\"5.2\">\n<p class=\"version-note-title\">New in Django 5.2</p></aside>\n<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\"><span class=\"pre\">filnamn</span></code></p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">innehåll</span></code></p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">mimetype</span></code></p></li>\n</ul>\n</dd></dl>\n\n</section>\n<section id=\"sending-alternative-content-types\">\n<h3>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></h3>\n<section id=\"sending-multiple-content-versions\">\n<h4>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></h4>\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 hjälp av klassen <a class=\"reference internal\" href=\"#django.core.mail.EmailMultiAlternatives\" title=\"django.core.mail.EmailMultiAlternatives\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">EmailMultiAlternatives</span></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\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">EmailMultiAlternatives</span></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\"><span class=\"pre\">EmailMessage</span></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\"><span class=\"pre\">attach_alternative()</span></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\"><span class=\"pre\">EmailMessage</span></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\"><span class=\"pre\">alternatives</span></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 <a class=\"reference internal\" href=\"#django.core.mail.EmailAlternative\" title=\"django.core.mail.EmailAlternative\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">EmailAlternative</span></code></a> namngivna tuples. 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><span class=\"n\">assertEqual</span><span class=\"p\">(</span><span class=\"nb\">len</span><span class=\"p\">(</span><span class=\"n\">msg</span><span class=\"o\">.</span><span class=\"n\">alternatives</span><span class=\"p\">),</span> <span class=\"mi\">1</span><span class=\"p\">)</span>\n<span class=\"bp\">self</span><span class=\"o\">.</span><span class=\"n\">assertEqual</span><span class=\"p\">(</span><span class=\"n\">msg</span><span class=\"o\">.</span><span class=\"n\">alternatives</span><span class=\"p\">[</span><span class=\"mi\">0</span><span class=\"p\">]</span><span class=\"o\">.</span><span class=\"n\">content</span><span class=\"p\">,</span> <span class=\"n\">html_content</span><span class=\"p\">)</span>\n<span class=\"bp\">self</span><span class=\"o\">.</span><span class=\"n\">assertEqual</span><span class=\"p\">(</span><span class=\"n\">msg</span><span class=\"o\">.</span><span class=\"n\">alternatives</span><span class=\"p\">[</span><span class=\"mi\">0</span><span class=\"p\">]</span><span class=\"o\">.</span><span class=\"n\">mimetype</span><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\"><span class=\"pre\">attach_alternative()</span></code></a> eller skickas till konstruktören.</p>\n<aside class=\"version-note version-changed\" data-version=\"5.2\">\n<p class=\"version-note-title\">Changed in Django 5.2</p><p>I äldre versioner var <code class=\"docutils literal notranslate\"><span class=\"pre\">alternatives</span></code> en lista med vanliga tupler, till skillnad från <a class=\"reference internal\" href=\"#django.core.mail.EmailAlternative\" title=\"django.core.mail.EmailAlternative\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">EmailAlternative</span></code></a> namngivna tupler.</p>\n</aside>\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\"><span class=\"pre\">attach_alternative</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">content</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">mimetype</span></span></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=\"w\"> </span><span class=\"nn\">django.core.mail</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">EmailMultiAlternatives</span>\n\n<span class=\"n\">subject</span> <span class=\"o\">=</span> <span class=\"s2\">&quot;hello&quot;</span>\n<span class=\"n\">from_email</span> <span class=\"o\">=</span> <span class=\"s2\">&quot;from@example.com&quot;</span>\n<span class=\"n\">to</span> <span class=\"o\">=</span> <span class=\"s2\">&quot;to@example.com&quot;</span>\n<span class=\"n\">text_content</span> <span class=\"o\">=</span> <span class=\"s2\">&quot;This is an important message.&quot;</span>\n<span class=\"n\">html_content</span> <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>\n<span class=\"n\">msg</span> <span class=\"o\">=</span> <span class=\"n\">EmailMultiAlternatives</span><span class=\"p\">(</span><span class=\"n\">subject</span><span class=\"p\">,</span> <span class=\"n\">text_content</span><span class=\"p\">,</span> <span class=\"n\">from_email</span><span class=\"p\">,</span> <span class=\"p\">[</span><span class=\"n\">to</span><span class=\"p\">])</span>\n<span class=\"n\">msg</span><span class=\"o\">.</span><span class=\"n\">attach_alternative</span><span class=\"p\">(</span><span class=\"n\">html_content</span><span class=\"p\">,</span> <span class=\"s2\">&quot;text/html&quot;</span><span class=\"p\">)</span>\n<span class=\"n\">msg</span><span class=\"o\">.</span><span class=\"n\">send</span><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\"><span class=\"pre\">body_contains</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">text</span></span></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><aside class=\"version-note version-added\" data-version=\"5.2\">\n<p class=\"version-note-title\">New in Django 5.2</p></aside>\n<p>Returnerar ett booleskt värde som anger om den angivna <code class=\"docutils literal notranslate\"><span class=\"pre\">texten</span></code> finns med i e-postmeddelandets <code class=\"docutils literal notranslate\"><span class=\"pre\">body</span></code> och i alla bifogade alternativ av MIME-typen <code class=\"docutils literal notranslate\"><span class=\"pre\">text/*</span></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=\"w\"> </span><span class=\"nf\">test_contains_email_content</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">):</span>\n    <span class=\"n\">subject</span> <span class=\"o\">=</span> <span class=\"s2\">&quot;Hello World&quot;</span>\n    <span class=\"n\">from_email</span> <span class=\"o\">=</span> <span class=\"s2\">&quot;from@example.com&quot;</span>\n    <span class=\"n\">to</span> <span class=\"o\">=</span> <span class=\"s2\">&quot;to@example.com&quot;</span>\n    <span class=\"n\">msg</span> <span class=\"o\">=</span> <span class=\"n\">EmailMultiAlternatives</span><span class=\"p\">(</span><span class=\"n\">subject</span><span class=\"p\">,</span> <span class=\"s2\">&quot;I am content.&quot;</span><span class=\"p\">,</span> <span class=\"n\">from_email</span><span class=\"p\">,</span> <span class=\"p\">[</span><span class=\"n\">to</span><span class=\"p\">])</span>\n    <span class=\"n\">msg</span><span class=\"o\">.</span><span class=\"n\">attach_alternative</span><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><span class=\"n\">assertIs</span><span class=\"p\">(</span><span class=\"n\">msg</span><span class=\"o\">.</span><span class=\"n\">body_contains</span><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><span class=\"n\">assertIs</span><span class=\"p\">(</span><span class=\"n\">msg</span><span class=\"o\">.</span><span class=\"n\">body_contains</span><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\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">EmailAlternative</span></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><aside class=\"version-note version-added\" data-version=\"5.2\">\n<p class=\"version-note-title\">New in Django 5.2</p></aside>\n<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\"><span class=\"pre\">innehåll</span></code></p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">mimetype</span></code></p></li>\n</ul>\n</dd></dl>\n\n</section>\n<section id=\"updating-the-default-content-type\">\n<h4>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></h4>\n<p>Som standard är MIME-typen för parametern <code class=\"docutils literal notranslate\"><span class=\"pre\">body</span></code> i ett <a class=\"reference internal\" href=\"#django.core.mail.EmailMessage\" title=\"django.core.mail.EmailMessage\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">EmailMessage</span></code></a> <code class=\"docutils literal notranslate\"><span class=\"pre\">&quot;text/plain&quot;</span></code>. Det är god praxis att låta detta vara, eftersom det garanterar att alla mottagare kommer att kunna läsa e-postmeddelandet, oavsett deras e-postklient. Men om du är säker på att dina mottagare kan hantera en alternativ innehållstyp kan du använda attributet <code class=\"docutils literal notranslate\"><span class=\"pre\">content_subtype</span></code> på <a class=\"reference internal\" href=\"#django.core.mail.EmailMessage\" title=\"django.core.mail.EmailMessage\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">EmailMessage</span></code></a>-klassen för att ändra huvudinnehållstypen. Huvudtypen kommer alltid att vara <code class=\"docutils literal notranslate\"><span class=\"pre\">&quot;text&quot;</span></code>, men du kan ändra subtypen. 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=\"n\">msg</span> <span class=\"o\">=</span> <span class=\"n\">EmailMessage</span><span class=\"p\">(</span><span class=\"n\">subject</span><span class=\"p\">,</span> <span class=\"n\">html_content</span><span class=\"p\">,</span> <span class=\"n\">from_email</span><span class=\"p\">,</span> <span class=\"p\">[</span><span class=\"n\">to</span><span class=\"p\">])</span>\n<span class=\"n\">msg</span><span class=\"o\">.</span><span class=\"n\">content_subtype</span> <span class=\"o\">=</span> <span class=\"s2\">&quot;html&quot;</span>  <span class=\"c1\"># Main content is now text/html</span>\n<span class=\"n\">msg</span><span class=\"o\">.</span><span class=\"n\">send</span><span class=\"p\">()</span>\n</code></pre></div>\n</section>\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>Klassen för e-postbackend har följande metoder:</p>\n<ul class=\"simple\">\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">open()</span></code> instansierar en långlivad anslutning för e-postsändning.</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">close()</span></code> stänger den aktuella anslutningen för e-postsändning.</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">send_messages(email_messages)</span></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\"><span class=\"pre\">EmailMessage</span></code></a>-objekt. Om anslutningen inte är öppen kommer detta anrop att implicit öppna anslutningen och stänga anslutningen efteråt. Om anslutningen redan är öppen kommer den att lämnas öppen efter att mailet har skickats.</p></li>\n</ul>\n<p>Den kan också användas som en kontexthanterare, som automatiskt anropar <code class=\"docutils literal notranslate\"><span class=\"pre\">open()</span></code> och <code class=\"docutils literal notranslate\"><span class=\"pre\">close()</span></code> efter behov:</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=\"w\"> </span><span class=\"nn\">django.core</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">mail</span>\n\n<span class=\"k\">with</span> <span class=\"n\">mail</span><span class=\"o\">.</span><span class=\"n\">get_connection</span><span class=\"p\">()</span> <span class=\"k\">as</span> <span class=\"n\">connection</span><span class=\"p\">:</span>\n    <span class=\"n\">mail</span><span class=\"o\">.</span><span class=\"n\">EmailMessage</span><span class=\"p\">(</span>\n        <span class=\"n\">subject1</span><span class=\"p\">,</span>\n        <span class=\"n\">body1</span><span class=\"p\">,</span>\n        <span class=\"n\">from1</span><span class=\"p\">,</span>\n        <span class=\"p\">[</span><span class=\"n\">to1</span><span class=\"p\">],</span>\n        <span class=\"n\">connection</span><span class=\"o\">=</span><span class=\"n\">connection</span><span class=\"p\">,</span>\n    <span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">send</span><span class=\"p\">()</span>\n    <span class=\"n\">mail</span><span class=\"o\">.</span><span class=\"n\">EmailMessage</span><span class=\"p\">(</span>\n        <span class=\"n\">subject2</span><span class=\"p\">,</span>\n        <span class=\"n\">body2</span><span class=\"p\">,</span>\n        <span class=\"n\">from2</span><span class=\"p\">,</span>\n        <span class=\"p\">[</span><span class=\"n\">to2</span><span class=\"p\">],</span>\n        <span class=\"n\">connection</span><span class=\"o\">=</span><span class=\"n\">connection</span><span class=\"p\">,</span>\n    <span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">send</span><span class=\"p\">()</span>\n</code></pre></div>\n<section id=\"obtaining-an-instance-of-an-email-backend\">\n<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>Funktionen <a class=\"reference internal\" href=\"#django.core.mail.get_connection\" title=\"django.core.mail.get_connection\"><code class=\"xref py py-func docutils literal notranslate\"><span class=\"pre\">get_connection()</span></code></a> i <code class=\"docutils literal notranslate\"><span class=\"pre\">django.core.mail</span></code> returnerar en instans av e-postbackend som du kan använda.</p>\n<dl class=\"py function\">\n<dt class=\"sig sig-object py\" id=\"django.core.mail.get_connection\">\n<span class=\"sig-name descname\"><span class=\"pre\">get_connection</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">backend</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">fail_silently</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">False</span></span></em>, <em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">**</span></span><span class=\"n\"><span class=\"pre\">kwargs</span></span></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></dd></dl>\n\n<p>Som standard kommer ett anrop till <code class=\"docutils literal notranslate\"><span class=\"pre\">get_connection()</span></code> att returnera en instans av den e-postbackend som anges i <a class=\"reference internal\" href=\"/sv/5.2/ref/settings/#std-setting-EMAIL_BACKEND\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">EMAIL_BACKEND</span></code></a>. Om du anger argumentet <code class=\"docutils literal notranslate\"><span class=\"pre\">backend</span></code> kommer en instans av den backend att instansieras.</p>\n<p>Argumentet <code class=\"docutils literal notranslate\"><span class=\"pre\">fail_silently</span></code> styr hur backend ska hantera fel. Om <code class=\"docutils literal notranslate\"><span class=\"pre\">fail_silently</span></code> är True, kommer undantag under e-postsändningsprocessen att ignoreras tyst.</p>\n<p>Alla andra nyckelordsargument skickas direkt till konstruktören för e-postbackend.</p>\n<p>Django levereras med flera backends för att skicka e-post. Med undantag för SMTP-backend (som är standard) är dessa backends endast användbara under testning och utveckling. Om du har speciella krav på att skicka e-post kan du <a class=\"reference internal\" href=\"#topic-custom-email-backend\"><span class=\"std std-ref\">skriva din egen e-postbackend</span></a>.</p>\n<section id=\"smtp-backend\">\n<span id=\"topic-email-smtp-backend\"></span><h4>SMTP-backend<a class=\"heading-anchor\" href=\"#smtp-backend\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h4>\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\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-prename descclassname\"><span class=\"pre\">backends.smtp.</span></span><span class=\"sig-name descname\"><span class=\"pre\">EmailBackend</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">host</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">port</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">username</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">password</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">use_tls</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">fail_silently</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">False</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">use_ssl</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">timeout</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">ssl_keyfile</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">ssl_certfile</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">**</span></span><span class=\"n\"><span class=\"pre\">kwargs</span></span></em><span class=\"sig-paren\">)</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>Detta är standardbackend. E-post kommer att skickas via en SMTP-server.</p>\n<p>Värdet för varje argument hämtas från den matchande inställningen om argumentet är <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code>:</p>\n<ul class=\"simple\">\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">host</span></code>: <code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">EMAIL_HOST`</span></code></p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">port</span></code>: <a class=\"reference internal\" href=\"/sv/5.2/ref/settings/#std-setting-EMAIL_PORT\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">EMAIL_PORT</span></code></a></p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">username</span></code>: <a class=\"reference internal\" href=\"/sv/5.2/ref/settings/#std-setting-EMAIL_HOST_USER\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">EMAIL_HOST_USER</span></code></a></p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">password</span></code>: <a class=\"reference internal\" href=\"/sv/5.2/ref/settings/#std-setting-EMAIL_HOST_PASSWORD\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">EMAIL_HOST_PASSWORD</span></code></a></p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">use_tls</span></code>: <code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">EMAIL_USE_TLS`</span></code></p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">use_ssl</span></code>: <code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">EMAIL_USE_SSL`</span></code></p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">timeout</span></code>: <code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">EMAIL_TIMEOUT`</span></code></p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">ssl_keyfile</span></code>: <a class=\"reference internal\" href=\"/sv/5.2/ref/settings/#std-setting-EMAIL_SSL_KEYFILE\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">EMAIL_SSL_KEYFILE</span></code></a></p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">ssl_certfile</span></code>: <code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">EMAIL_SSL_CERTFILE`</span></code></p></li>\n</ul>\n<p>SMTP-backend är standardkonfigurationen som ärvs av Django. Om du vill ange det uttryckligen lägger du till följande i dina inställningar:</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=\"n\">EMAIL_BACKEND</span> <span class=\"o\">=</span> <span class=\"s2\">&quot;django.core.mail.backends.smtp.EmailBackend&quot;</span>\n</code></pre></div>\n<p>Om inget anges kommer standard <code class=\"docutils literal notranslate\"><span class=\"pre\">timeout</span></code> att vara den som tillhandahålls av <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\"><span class=\"pre\">socket.getdefaulttimeout()</span></code></a>, som har standardvärdet <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code> (ingen timeout).</p>\n</dd></dl>\n\n</section>\n<section id=\"console-backend\">\n<span id=\"topic-email-console-backend\"></span><h4>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></h4>\n<p>Istället för att skicka ut riktiga e-postmeddelanden skriver konsolbackend bara de e-postmeddelanden som skulle skickas till standardutmatningen. Som standard skriver konsolbackend till <code class=\"docutils literal notranslate\"><span class=\"pre\">stdout</span></code>. Du kan använda ett annat strömliknande objekt genom att ange nyckelordsargumentet <code class=\"docutils literal notranslate\"><span class=\"pre\">stream</span></code> när du konstruerar anslutningen.</p>\n<p>För att ange denna backend, lägg till följande i dina inställningar:</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=\"n\">EMAIL_BACKEND</span> <span class=\"o\">=</span> <span class=\"s2\">&quot;django.core.mail.backends.console.EmailBackend&quot;</span>\n</code></pre></div>\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=\"file-backend\">\n<span id=\"topic-email-file-backend\"></span><h4>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></h4>\n<p>Filbackend skriver e-postmeddelanden till en fil. En ny fil skapas för varje ny session som öppnas på denna backend. Katalogen som filerna skrivs till hämtas antingen från inställningen <a class=\"reference internal\" href=\"/sv/5.2/ref/settings/#std-setting-EMAIL_FILE_PATH\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">EMAIL_FILE_PATH</span></code></a> eller från nyckelordet <code class=\"docutils literal notranslate\"><span class=\"pre\">file_path</span></code> när en anslutning skapas med <a class=\"reference internal\" href=\"#django.core.mail.get_connection\" title=\"django.core.mail.get_connection\"><code class=\"xref py py-func docutils literal notranslate\"><span class=\"pre\">get_connection()</span></code></a>.</p>\n<p>För att ange denna backend, lägg till följande i dina inställningar:</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=\"n\">EMAIL_BACKEND</span> <span class=\"o\">=</span> <span class=\"s2\">&quot;django.core.mail.backends.filebased.EmailBackend&quot;</span>\n<span class=\"n\">EMAIL_FILE_PATH</span> <span class=\"o\">=</span> <span class=\"s2\">&quot;/tmp/app-messages&quot;</span>  <span class=\"c1\"># change this to a proper location</span>\n</code></pre></div>\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=\"in-memory-backend\">\n<span id=\"topic-email-memory-backend\"></span><h4>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></h4>\n<p>Backend <code class=\"docutils literal notranslate\"><span class=\"pre\">'locmem</span></code> lagrar meddelanden i ett speciellt attribut i modulen <code class=\"docutils literal notranslate\"><span class=\"pre\">django.core.mail</span></code>. Attributet <code class=\"docutils literal notranslate\"><span class=\"pre\">outbox</span></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\"><span class=\"pre\">EmailMessage</span></code></a>-instans för varje meddelande som skulle skickas.</p>\n<p>För att ange denna backend, lägg till följande i dina inställningar:</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=\"n\">EMAIL_BACKEND</span> <span class=\"o\">=</span> <span class=\"s2\">&quot;django.core.mail.backends.locmem.EmailBackend&quot;</span>\n</code></pre></div>\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<p>Djangos testlöpare <a class=\"reference internal\" href=\"/sv/5.2/topics/testing/tools/#topics-testing-email\"><span class=\"std std-ref\">använder automatiskt denna backend för testning</span></a>.</p>\n</section>\n<section id=\"dummy-backend\">\n<span id=\"topic-email-dummy-backend\"></span><h4>Dummy backend<a class=\"heading-anchor\" href=\"#dummy-backend\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h4>\n<p>Som namnet antyder gör dummy-backend ingenting med dina meddelanden. För att ange denna backend, lägg till följande i dina inställningar:</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=\"n\">EMAIL_BACKEND</span> <span class=\"o\">=</span> <span class=\"s2\">&quot;django.core.mail.backends.dummy.EmailBackend&quot;</span>\n</code></pre></div>\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>\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-postmeddelanden skickas kan du skriva din egen e-postbackend. Inställningen <a class=\"reference internal\" href=\"/sv/5.2/ref/settings/#std-setting-EMAIL_BACKEND\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">EMAIL_BACKEND</span></code></a> i din inställningsfil är sedan Python-importsökvägen för din backend-klass.</p>\n<p>Anpassade e-postbackends bör underordna sig <code class=\"docutils literal notranslate\"><span class=\"pre\">BaseEmailBackend</span></code> som finns i modulen <code class=\"docutils literal notranslate\"><span class=\"pre\">django.core.mail.backends.base</span></code>. En anpassad e-postbackend måste implementera metoden <code class=\"docutils literal notranslate\"><span class=\"pre\">send_messages(email_messages)</span></code>. Denna metod 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\"><span class=\"pre\">EmailMessage</span></code></a>-instanser och returnerar antalet framgångsrikt levererade meddelanden. Om din backend har något koncept för en ihållande session eller anslutning bör du också implementera metoderna <code class=\"docutils literal notranslate\"><span class=\"pre\">open()</span></code> och <code class=\"docutils literal notranslate\"><span class=\"pre\">close()</span></code>. Referera till <code class=\"docutils literal notranslate\"><span class=\"pre\">smtp.EmailBackend</span></code> för en referensimplementering.</p>\n</section>\n<section id=\"sending-multiple-emails\">\n<span id=\"topics-sending-multiple-emails\"></span><h3>Skicka flera e-postmeddelanden<a class=\"heading-anchor\" href=\"#sending-multiple-emails\"><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 tala om för en e-postbackend att den ska återanvända en anslutning.</p>\n<p>För det första kan du använda metoden <code class=\"docutils literal notranslate\"><span class=\"pre\">send_messages()</span></code> på en anslutning. Detta tar en lista över <a class=\"reference internal\" href=\"#django.core.mail.EmailMessage\" title=\"django.core.mail.EmailMessage\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">EmailMessage</span></code></a> (eller underklass) instanser, och skickar dem alla med hjälp av den enda anslutningen. Som en konsekvens ignoreras alla <a class=\"reference internal\" href=\"#django.core.mail.EmailMessage\" title=\"django.core.mail.EmailMessage\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">connection</span></code></a> som anges för ett enskilt meddelande.</p>\n<p>Om du till exempel har en funktion som heter <code class=\"docutils literal notranslate\"><span class=\"pre\">get_notification_email()</span></code> som 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\"><span class=\"pre\">EmailMessage</span></code></a>-objekt som representerar några periodiska e-postmeddelanden som du vill skicka ut, kan du skicka dessa e-postmeddelanden med ett enda anrop till send_messages:</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=\"w\"> </span><span class=\"nn\">django.core</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">mail</span>\n\n<span class=\"n\">connection</span> <span class=\"o\">=</span> <span class=\"n\">mail</span><span class=\"o\">.</span><span class=\"n\">get_connection</span><span class=\"p\">()</span>  <span class=\"c1\"># Use default email connection</span>\n<span class=\"n\">messages</span> <span class=\"o\">=</span> <span class=\"n\">get_notification_email</span><span class=\"p\">()</span>\n<span class=\"n\">connection</span><span class=\"o\">.</span><span class=\"n\">send_messages</span><span class=\"p\">(</span><span class=\"n\">messages</span><span class=\"p\">)</span>\n</code></pre></div>\n<p>I det här exemplet öppnar anropet till <code class=\"docutils literal notranslate\"><span class=\"pre\">send_messages()</span></code> en anslutning på backend, skickar listan med meddelanden och stänger sedan anslutningen igen.</p>\n<p>Det andra tillvägagångssättet är att använda metoderna <code class=\"docutils literal notranslate\"><span class=\"pre\">open()</span></code> och <code class=\"docutils literal notranslate\"><span class=\"pre\">close()</span></code> på e-postbackend för att manuellt styra anslutningen. <code class=\"docutils literal notranslate\"><span class=\"pre\">send_messages()</span></code> öppnar eller stänger inte anslutningen manuellt om den redan är öppen, så om du öppnar anslutningen manuellt kan du styra när den ska stängas. 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=\"w\"> </span><span class=\"nn\">django.core</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">mail</span>\n\n<span class=\"n\">connection</span> <span class=\"o\">=</span> <span class=\"n\">mail</span><span class=\"o\">.</span><span class=\"n\">get_connection</span><span class=\"p\">()</span>\n\n<span class=\"c1\"># Manually open the connection</span>\n<span class=\"n\">connection</span><span class=\"o\">.</span><span class=\"n\">open</span><span class=\"p\">()</span>\n\n<span class=\"c1\"># Construct an email message that uses the connection</span>\n<span class=\"n\">email1</span> <span class=\"o\">=</span> <span class=\"n\">mail</span><span class=\"o\">.</span><span class=\"n\">EmailMessage</span><span class=\"p\">(</span>\n    <span class=\"s2\">&quot;Hello&quot;</span><span class=\"p\">,</span>\n    <span class=\"s2\">&quot;Body goes here&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;to1@example.com&quot;</span><span class=\"p\">],</span>\n    <span class=\"n\">connection</span><span class=\"o\">=</span><span class=\"n\">connection</span><span class=\"p\">,</span>\n<span class=\"p\">)</span>\n<span class=\"n\">email1</span><span class=\"o\">.</span><span class=\"n\">send</span><span class=\"p\">()</span>  <span class=\"c1\"># Send the email</span>\n\n<span class=\"c1\"># Construct two more messages</span>\n<span class=\"n\">email2</span> <span class=\"o\">=</span> <span class=\"n\">mail</span><span class=\"o\">.</span><span class=\"n\">EmailMessage</span><span class=\"p\">(</span>\n    <span class=\"s2\">&quot;Hello&quot;</span><span class=\"p\">,</span>\n    <span class=\"s2\">&quot;Body goes here&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;to2@example.com&quot;</span><span class=\"p\">],</span>\n<span class=\"p\">)</span>\n<span class=\"n\">email3</span> <span class=\"o\">=</span> <span class=\"n\">mail</span><span class=\"o\">.</span><span class=\"n\">EmailMessage</span><span class=\"p\">(</span>\n    <span class=\"s2\">&quot;Hello&quot;</span><span class=\"p\">,</span>\n    <span class=\"s2\">&quot;Body goes here&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;to3@example.com&quot;</span><span class=\"p\">],</span>\n<span class=\"p\">)</span>\n\n<span class=\"c1\"># Send the two emails in a single call -</span>\n<span class=\"n\">connection</span><span class=\"o\">.</span><span class=\"n\">send_messages</span><span class=\"p\">([</span><span class=\"n\">email2</span><span class=\"p\">,</span> <span class=\"n\">email3</span><span class=\"p\">])</span>\n<span class=\"c1\"># The connection was already open so send_messages() doesn&#39;t close it.</span>\n<span class=\"c1\"># We need to manually close the connection.</span>\n<span class=\"n\">connection</span><span class=\"o\">.</span><span class=\"n\">close</span><span class=\"p\">()</span>\n</code></pre></div>\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\"><span class=\"pre\">stdout</span></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>En annan metod är att använda en ”dum” SMTP-server som tar emot e-postmeddelanden lokalt och visar dem på terminalen, men som faktiskt inte skickar något. Paketet <a class=\"extlink-pypi reference external\" href=\"https://pypi.org/project/aiosmtpd/\">aiosmtpd</a> tillhandahåller ett sätt att åstadkomma 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<span class=\"w\"> </span>-m<span class=\"w\"> </span>pip<span class=\"w\"> </span>install<span class=\"w\"> </span>aiosmtpd\n\npython<span class=\"w\"> </span>-m<span class=\"w\"> </span>aiosmtpd<span class=\"w\"> </span>-n<span class=\"w\"> </span>-l<span class=\"w\"> </span>localhost:8025\n</code></pre></div>\n<p>Detta kommando startar en minimal SMTP-server som lyssnar på port 8025 på localhost. Den här servern skriver ut alla e-postrubriker och e-posttexten till standardutdata. Du behöver sedan bara ställa in <a class=\"reference internal\" href=\"/sv/5.2/ref/settings/#std-setting-EMAIL_HOST\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">EMAIL_HOST</span></code></a> och <a class=\"reference internal\" href=\"/sv/5.2/ref/settings/#std-setting-EMAIL_PORT\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">EMAIL_PORT</span></code></a> i enlighet med detta. För en mer detaljerad diskussion om SMTP-serveralternativ, se 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/5.2/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":"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":"Exempel","anchor":"examples","children":[]},{"title":"Förhindra injektion av rubrik","anchor":"preventing-header-injection","children":[]},{"title":"Klassen ”E-postmeddelande","anchor":"the-emailmessage-class","children":[{"title":"objekten EmailMessage","anchor":"emailmessage-objects","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":"Backend för e-post","anchor":"email-backends","children":[{"title":"Hämta en instans av en e-postbackend","anchor":"obtaining-an-instance-of-an-email-backend","children":[{"title":"SMTP-backend","anchor":"smtp-backend","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":"Definiera en anpassad backend för e-post","anchor":"defining-a-custom-email-backend","children":[]},{"title":"Skicka flera e-postmeddelanden","anchor":"sending-multiple-emails","children":[]}]},{"title":"Konfigurera e-post för utveckling","anchor":"configuring-email-for-development","children":[]}],"breadcrumbs":[{"docname":"topics/index","title":"Använda Django","url":"/sv/5.2/topics/"}],"prev":{"docname":"topics/signing","title":"Kryptografisk signering","url":"/sv/5.2/topics/signing/"},"next":{"docname":"topics/i18n/index","title":"Internationalisering och lokalisering","url":"/sv/5.2/topics/i18n/"},"formats":{"html":"/sv/5.2/topics/email/","markdown":"/sv/5.2/topics/email.md","json":"/sv/5.2/topics/email.json"},"source":"https://github.com/django/django/blob/stable/5.2.x/docs/topics/email.txt","official":"https://docs.djangoproject.com/sv/5.2/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"]}