2008-07-19 02:38:41 +00:00
# coding: utf-8
r """
# Tests for the django.core.mail.
>> > from django . core . mail import EmailMessage
2008-07-26 03:37:25 +00:00
>> > from django . utils . translation import ugettext_lazy
2008-07-19 02:38:41 +00:00
# Test normal ascii character case:
>> > email = EmailMessage ( ' Subject ' , ' Content ' , ' from@example.com ' , [ ' to@example.com ' ] )
>> > message = email . message ( )
2008-08-23 13:31:28 +00:00
>> > message [ ' Subject ' ] . encode ( )
2008-07-19 02:38:41 +00:00
' Subject '
>> > message . get_payload ( )
' Content '
>> > message [ ' From ' ]
' from@example.com '
>> > message [ ' To ' ]
' to@example.com '
# Test multiple-recipient case
>> > email = EmailMessage ( ' Subject ' , ' Content ' , ' from@example.com ' , [ ' to@example.com ' , ' other@example.com ' ] )
>> > message = email . message ( )
2008-08-23 13:31:28 +00:00
>> > message [ ' Subject ' ] . encode ( )
2008-07-19 02:38:41 +00:00
' Subject '
>> > message . get_payload ( )
' Content '
>> > message [ ' From ' ]
' from@example.com '
>> > message [ ' To ' ]
' to@example.com, other@example.com '
# Test for header injection
>> > email = EmailMessage ( ' Subject \n Injection Test ' , ' Content ' , ' from@example.com ' , [ ' to@example.com ' ] )
>> > message = email . message ( )
Traceback ( most recent call last ) :
. . .
2008-07-26 03:37:25 +00:00
BadHeaderError : Header values can ' t contain newlines (got u ' Subject \nInjection Test ' for header ' Subject ' )
>> > email = EmailMessage ( ugettext_lazy ( ' Subject \n Injection Test ' ) , ' Content ' , ' from@example.com ' , [ ' to@example.com ' ] )
>> > message = email . message ( )
Traceback ( most recent call last ) :
. . .
BadHeaderError : Header values can ' t contain newlines (got u ' Subject \nInjection Test ' for header ' Subject ' )
2008-07-19 02:38:41 +00:00
2008-08-23 13:31:28 +00:00
# Test for space continuation character in long (ascii) subject headers (#7747)
>> > email = EmailMessage ( ' Long subject lines that get wrapped should use a space continuation character to get expected behaviour in Outlook and Thunderbird ' , ' Content ' , ' from@example.com ' , [ ' to@example.com ' ] )
>> > message = email . message ( )
>> > message . as_string ( )
' Content-Type: text/plain; charset= " utf-8 " \n MIME-Version: 1.0 \n Content-Transfer-Encoding: quoted-printable \n Subject: Long subject lines that get wrapped should use a space continuation \n character to get expected behaviour in Outlook and Thunderbird \n From: from@example.com \n To: to@example.com \n Date: ... \n Message-ID: <...> \n \n Content '
2008-10-07 12:20:01 +00:00
# Specifying dates or message-ids in the extra headers overrides the defaul
# values (#9233).
>> > headers = { " date " : " Fri, 09 Nov 2001 01:08:47 -0000 " , " Message-ID " : " foo " }
>> > email = EmailMessage ( ' subject ' , ' content ' , ' from@example.com ' , [ ' to@example.com ' ] , headers = headers )
>> > email . message ( ) . as_string ( )
' Content-Type: text/plain; charset= " utf-8 " \n MIME-Version: 1.0 \n Content-Transfer-Encoding: quoted-printable \n Subject: subject \n From: from@example.com \n To: to@example.com \n date: Fri, 09 Nov 2001 01:08:47 -0000 \n Message-ID: foo \n \n content '
2008-07-19 02:38:41 +00:00
"""