mirror of https://github.com/django/django.git
Fixed #3985 -- Added support for custom email headers.
git-svn-id: http://code.djangoproject.com/svn/django/trunk@5550 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
parent
bcb088b558
commit
987f8aa257
|
@ -173,13 +173,14 @@ class EmailMessage(object):
|
||||||
multipart_subtype = 'mixed'
|
multipart_subtype = 'mixed'
|
||||||
|
|
||||||
def __init__(self, subject='', body='', from_email=None, to=None, bcc=None,
|
def __init__(self, subject='', body='', from_email=None, to=None, bcc=None,
|
||||||
connection=None, attachments=None):
|
connection=None, attachments=None, headers=None):
|
||||||
self.to = to or []
|
self.to = to or []
|
||||||
self.bcc = bcc or []
|
self.bcc = bcc or []
|
||||||
self.from_email = from_email or settings.DEFAULT_FROM_EMAIL
|
self.from_email = from_email or settings.DEFAULT_FROM_EMAIL
|
||||||
self.subject = subject
|
self.subject = subject
|
||||||
self.body = body
|
self.body = body
|
||||||
self.attachments = attachments or []
|
self.attachments = attachments or []
|
||||||
|
self.extra_headers = headers or {}
|
||||||
self.connection = connection
|
self.connection = connection
|
||||||
|
|
||||||
def get_connection(self, fail_silently=False):
|
def get_connection(self, fail_silently=False):
|
||||||
|
@ -206,6 +207,8 @@ class EmailMessage(object):
|
||||||
msg['Message-ID'] = make_msgid()
|
msg['Message-ID'] = make_msgid()
|
||||||
if self.bcc:
|
if self.bcc:
|
||||||
msg['Bcc'] = ', '.join(self.bcc)
|
msg['Bcc'] = ', '.join(self.bcc)
|
||||||
|
for name, value in self.extra_headers.items():
|
||||||
|
msg[name] = value
|
||||||
return msg
|
return msg
|
||||||
|
|
||||||
def recipients(self):
|
def recipients(self):
|
||||||
|
|
|
@ -218,22 +218,41 @@ the operation. This means you can reuse the same connection (an
|
||||||
E-mail messages
|
E-mail messages
|
||||||
----------------
|
----------------
|
||||||
|
|
||||||
The ``EmailMessage`` class is initialized as follows::
|
The ``EmailMessage`` class is initialized with the following parameters (in
|
||||||
|
the given order, if positional arguments are used). All parameters are
|
||||||
|
optional and can be set at any time prior to calling the ``send()`` method.
|
||||||
|
|
||||||
email = EmailMessage(subject, body, from_email, to,
|
* ``subject``: The subject line of the e-mail.
|
||||||
bcc, connection, attachments)
|
|
||||||
|
|
||||||
All of these parameters are optional. If ``from_email`` is omitted, the value
|
* ``body``: The body text. This should be a plain text message.
|
||||||
from ``settings.DEFAULT_FROM_EMAIL`` is used. Both the ``to`` and ``bcc``
|
|
||||||
parameters are lists of addresses, as strings. The ``attachments`` parameter is
|
* ``from_email``: The sender's address. Both ``fred@example.com`` and
|
||||||
a list containing either ``(filename, content, mimetype)`` triples of
|
``Fred <fred@example.com>`` forms are legal. If omitted, the
|
||||||
``email.MIMEBase.MIMEBase`` instances.
|
``DEFAULT_FROM_EMAIL`` setting is used.
|
||||||
|
|
||||||
|
* ``to``: A list or tuple of recipient addresses.
|
||||||
|
|
||||||
|
* ``bcc``: A list or tuple of addresses used in the "Bcc" header when
|
||||||
|
sending the e-mail.
|
||||||
|
|
||||||
|
* ``connection``: An ``SMTPConnection`` instance. Use this parameter if
|
||||||
|
you want to use the same conneciton for multiple messages. If omitted, a
|
||||||
|
new connection is created when ``send()`` is called.
|
||||||
|
|
||||||
|
* ``attachments``: A list of attachments to put on the message. These can
|
||||||
|
be either ``email.MIMEBase.MIMEBase`` instances, or ``(filename,
|
||||||
|
content, mimetype)`` triples.
|
||||||
|
|
||||||
|
* ``headers``: A dictionary of extra headers to put on the message. The
|
||||||
|
keys are the header name, values are the header values. It is up to the
|
||||||
|
caller to ensure header names and values are in the correct format for
|
||||||
|
an e-mail message.
|
||||||
|
|
||||||
For example::
|
For example::
|
||||||
|
|
||||||
email = EmailMessage('Hello', 'Body goes here', 'from@example.com',
|
email = EmailMessage('Hello', 'Body goes here', 'from@example.com',
|
||||||
['to1@example.com', 'to2@example.com'],
|
['to1@example.com', 'to2@example.com'], ['bcc@example.com'],
|
||||||
['bcc@example.com'])
|
headers = {'Reply-To: 'another@example.com'})
|
||||||
|
|
||||||
The class has the following methods:
|
The class has the following methods:
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue