mirror of
https://github.com/django/django.git
synced 2025-03-28 10:10:45 +00:00
[5.1.x] Added example of email sending with additional capabilities to docs/topics/email.txt.
Co-authored-by: Mike Edmunds <medmunds@gmail.com> Backport of f4813211e2d8017b56b7447f56ad17df3fae9aa3 from main.
This commit is contained in:
parent
590f5e09f0
commit
c12fe0a724
@ -12,10 +12,11 @@ development, and to provide support for platforms that can't use SMTP.
|
|||||||
|
|
||||||
The code lives in the ``django.core.mail`` module.
|
The code lives in the ``django.core.mail`` module.
|
||||||
|
|
||||||
Quick example
|
Quick examples
|
||||||
=============
|
==============
|
||||||
|
|
||||||
In two lines::
|
Use :func:`send_mail` for straightforward email sending. For example, to send a
|
||||||
|
plain text message::
|
||||||
|
|
||||||
from django.core.mail import send_mail
|
from django.core.mail import send_mail
|
||||||
|
|
||||||
@ -27,6 +28,39 @@ In two lines::
|
|||||||
fail_silently=False,
|
fail_silently=False,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
When additional email sending functionality is needed, use
|
||||||
|
:class:`EmailMessage` or :class:`EmailMultiAlternatives`. For example, to send
|
||||||
|
a multipart email that includes both HTML and plain text versions with a
|
||||||
|
specific template and custom headers, you can use the following approach::
|
||||||
|
|
||||||
|
from django.core.mail import EmailMultiAlternatives
|
||||||
|
from django.template.loader import render_to_string
|
||||||
|
|
||||||
|
# First, render the plain text content.
|
||||||
|
text_content = render_to_string(
|
||||||
|
"templates/emails/my_email.txt",
|
||||||
|
context={"my_variable": 42},
|
||||||
|
)
|
||||||
|
|
||||||
|
# Secondly, render the HTML content.
|
||||||
|
html_content = render_to_string(
|
||||||
|
"templates/emails/my_email.html",
|
||||||
|
context={"my_variable": 42},
|
||||||
|
)
|
||||||
|
|
||||||
|
# Then, create a multipart email instance.
|
||||||
|
msg = EmailMultiAlternatives(
|
||||||
|
"Subject here",
|
||||||
|
text_content,
|
||||||
|
"from@example.com",
|
||||||
|
["to@example.com"],
|
||||||
|
headers={"List-Unsubscribe": "<mailto:unsub@example.com>"},
|
||||||
|
)
|
||||||
|
|
||||||
|
# Lastly, attach the HTML content to the email instance and send.
|
||||||
|
msg.attach_alternative(html_content, "text/html")
|
||||||
|
msg.send()
|
||||||
|
|
||||||
Mail is sent using the SMTP host and port specified in the
|
Mail is sent using the SMTP host and port specified in the
|
||||||
:setting:`EMAIL_HOST` and :setting:`EMAIL_PORT` settings. The
|
:setting:`EMAIL_HOST` and :setting:`EMAIL_PORT` settings. The
|
||||||
:setting:`EMAIL_HOST_USER` and :setting:`EMAIL_HOST_PASSWORD` settings, if
|
:setting:`EMAIL_HOST_USER` and :setting:`EMAIL_HOST_PASSWORD` settings, if
|
||||||
|
Loading…
x
Reference in New Issue
Block a user