| Commit message (Collapse) | Author | Age | Files | Lines |
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
decode_rfc2231(): Be more robust against buggy RFC 2231 encodings.
Specifically, instead of raising a ValueError when there is a single
tick in the parameter, simply return that the entire string unquoted, with
None for both the charset and the language. Also, if there are more than 2
ticks in the parameter, interpret the first three parts as the standard RFC
2231 parts, then the rest of the parts as the encoded string.
More RFC 2231 improvements for the email 4.0 package. As Mark Sapiro
rightly points out there are really two types of continued headers
defined in this RFC (i.e. "encoded" parameters with the form
"name*0*=" and unencoded parameters with the form "name*0="), but we
were were handling them both the same way and that isn't correct.
This patch should be much more RFC compliant in that only encoded
params are %-decoded and the charset/language information is only
extract if there are any encoded params in the segments. If there are
no encoded params then the RFC says that there will be no
charset/language parts.
Note however that this will change the return value for
Message.get_param() in some cases. For example, whereas before if you
had all unencoded param continuations you would have still gotten a
3-tuple back from this method (with charset and language == None), you
will now get just a string. I don't believe this is a backward
incompatible change though because the documentation for this method
already indicates that either return value is possible and that you
must do an isinstance(val, tuple) check to discriminate between the
two. (Yeah that API kind of sucks but we can't change /that/ without
breaking code.)
Test cases, some documentation updates, and a NEWS item accompany this
patch.
Original fewer-than-3-parts fix by Tokio Kikuchi.
Resolves SF bug # 1218081.
Also, bump the package version number to 2.5.8 for release.
|
| |
|
|
|
|
|
|
|
| |
Patch #1464708 from William McVey: fixed handling of nested comments in mail
addresses. E.g.
"Foo ((Foo Bar)) <foo@example.com>"
Fixes for both rfc822.py and email package.
|
| |
|
|
|
|
|
|
| |
However, the patch in that tracker item is elaborated such that the newly
included unit test pass on Python 2.1 through 2.5. Note that Python 2.1's
uu.decode() does not have a 'quiet' argument, so we have to be sneaky.
Will port to email 3.0 (although without the backward compatible sneakiness).
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
(.set_payload() gives bad .get_payload() results). Specific changes include:
Simplfy the default CODEC_MAP in Charset.py to not include the Japanese and
Korean codecs. The names of the codecs are different depending on whether
you're using Python 2.4 and 2.5, which include the codecs by default, or
earlier Python's which provide the codecs under different names as a third
party library. Now, we attempt to discover which (if either) is available and
populate the CODEC_MAP as appropriate.
Message.set_charset(): When the message does not already have a
Content-Transfer-Encoding header, instead of just adding the header, we also
encode the body as defined by the assigned Charset. As before, if the
body_encoding is callable, we just call that. If not, then we add a call to
body_encode() before setting the header. This way, we guarantee that a
message's text payload is always encoded properly.
Remove the payload encoding code from Generator._handle_text(). With the
above patch, this would cause the body to be doubly encoded. Doing this in
the Message class is better than only doing it in the Generator.
Added some new tests to ensure everything works correctly. Also changed the
way the test_email_codecs.py tests get added (using the same lookup code that
the CODEC_MAP adjustments use).
This resolves both issues for email 2.5/Python 2.3. I will patch forward to
email 3.0 for both Python 2.4 and 2.5.
|
| | |
|
| |
|
|
|
|
|
|
|
|
| |
acceptable to Python 2.4's time.strftime(). This fix mirrors the behavior in
email 3.0. That field is documented as being "not useable" so it might as
well not be buggy too <wink>.
Add a test for this behavior and update a few tests that were expecting a 0 in
this field. After committing I will run the entire Python 2.3 test suite to
ensure this doesn't break any Python tests.
|
| |
|
|
|
|
|
|
|
|
| |
name in the Content-Distribution header, so Message.get_filename() should fall
back to using that. Will port both to email 3.0 and Python 2.5 trunk.
Also, bump the email package version to 2.5.7 for eventual release. Of
course, add a test case too.
XXX Need to update the documentation.
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
an RFC 2231-style header could be bogus or unknown to Python. In that case,
we return the the text part of the parameter undecoded. However, in
get_content_charset(), if that is not ascii, then it is an illegal charset and
so we return failobj.
Test cases and a version bump are included.
Committing this to the Python 2.3 branch because I need to generate an email
2.5.6 release that contains these patches. I will port these fixes to Python
2.4 and 2.5 for email 3.x.
|
| |
|
|
| |
says boundaries may begin -- but not end -- with whitespace.
|
| |
|
|
|
|
| |
del_param fails when specifying a header.
I'll port this to Python 2.4 shortly.
|
| |
|
|
|
| |
msg_40.txt because msg_3[6-9].txt are already used in email3/py2.4 and I'm
going to forward port this test.
|
| | |
|
| | |
|
| |
|
|
| |
Backport candidate.
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
|
|
| |
argument.
|
| |
|
|
| |
argument.
|
| |
|
|
| |
Content-Transfer-Encoding: x-uuencode
|
| | |
|
| | |
|
| | |
|
| |
|
|
| |
module when decoding a message with broken base64.
|
| | |
|
| |
|
|
| |
from Jason Mastaler :)
|
| |
|
|
| |
both the charset and language without including any single quotes.
|
| | |
|
| | |
|
| |
|
|
|
| |
Received headers (first on semis then on whitespace), given by Jason
Mastaler.
|
| |
|
|
| |
SF # 640110.
|
| | |
|
| |
|
|
| |
Update tests for email 2.5.
|
| |
|
|
|
|
|
|
|
|
|
|
| |
because the test file, msg_26.txt which has \r\n line endings, was
getting munged by cvs, which knows to do line ending conversions for
text files. But we want \r\n to be preserved on all platforms, so we
cvs admin'd the file to be -kb (binary), which means we have to open
the file in binary mode to preserve these line ends. Hopefully this
will be the end of the thrashing on this issue (but probably not).
Test passes on *nix now, and Tim confirms it passes on Windows. We'll
leave it to Jack to test MacOS.
|
| |
|
|
| |
bug #648119.
|
| |
|
|
|
|
| |
file, needed because some binary distros (read RPMs) don't include the
test module in their standard Python package. This eliminates an
external dependency and closes SF bug # 650441.
|
| |
|
|
|
|
| |
binary distros (read RPMs) don't include the test module in their
standard Python package. This eliminates an external dependency and
closes SF bug # 650441.
|
| |
|
|
|
| |
and the day number in an RFC 2822 date specification. See bug
#552345.
|
| |
|
|
| |
RFC 2822's rules w.r.t. dots in the realname part of address fields.
|
| |
|
|
|
|
| |
separating blank line between a header block and body text.
Tests both lax and strict parsing.
|
| |
|
|
| |
body. A test message for SF bug #633527.
|
| |
|
|
|
| |
#631350, where a subobject in a multipart/digest isn't a
message/rfc822.
|
| |
|
|
|
| |
multipart/digest isn't a message/rfc822. This is legal, but counter
to recommended practice in RFC 2046, $5.1.5.
|
| |
|
|
| |
one that tests the obscure bug reported in SF # 625509.
|
| | |
|