summaryrefslogtreecommitdiffstats
path: root/Lib/email
Commit message (Collapse)AuthorAgeFilesLines
* Revert r52798, r52803, r52824, r54342, as they don't fixMartin v. Löwis2008-03-022-6/+6
| | | | security issues.
* SF patch #1556895; Typo in encoding name in email package.Barry Warsaw2007-03-132-6/+6
| | | | Patch supplied by Guillaume Rousse.
* Fix the tests to work with Python 2.1, which email 2.5 must do.Barry Warsaw2006-07-261-4/+4
|
* Back port r50693 and r50754 from the trunk (and 2.4 branch):Barry Warsaw2006-07-253-37/+183
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* Back port from 2.4 branch:Barry Warsaw2006-05-012-0/+7
| | | | | | | | | 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.
* Resolve SF bug 1409403: email.Message should supress warning from uu.decode.Barry Warsaw2006-02-094-8/+48
| | | | | | | | 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).
* Patches to address SF bugs 1409538 (Japanese codecs in CODEC_MAP) and 1409455Barry Warsaw2006-02-085-27/+47
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | (.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.
* Resolves SF bug #1423972.Barry Warsaw2006-02-041-2/+4
|
* parsedate_tz(): Return a 1 in the tm_yday field so that the value isBarry Warsaw2006-02-032-5/+13
| | | | | | | | | | 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.
* SF bug #1403349 solution for email 2.5; some MUAs use the 'file' parameterBarry Warsaw2006-01-174-7/+53
| | | | | | | | | | 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.
* get_filename(), get_content_charset(): It's possible that the charset named inBarry Warsaw2005-04-293-9/+69
| | | | | | | | | | | | | 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.
* get_boundary(): Fix for SF bug #1060941. RFC 2046 says boundaries may beginBarry Warsaw2004-11-061-1/+2
| | | | -- but not end -- with whitespace.
* test_boundary_with_leading_space(): Test case for SF bug #1060941. RFC 2046Barry Warsaw2004-11-061-0/+19
| | | | says boundaries may begin -- but not end -- with whitespace.
* __getitem__(): Fix docstring, SF 979924.Barry Warsaw2004-09-281-1/+1
|
* Test cases and fixes for bugs described in patch #873418: email/Message.py:Barry Warsaw2004-08-162-2/+14
| | | | | | del_param fails when specifying a header. I'll port this to Python 2.4 shortly.
* Added a sample message for the test for SF bug # 846938. I'm naming thisBarry Warsaw2004-05-131-0/+10
| | | | | 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.
* test_boundary_in_non_multipart(): Added a test for SF bug # 846938.Barry Warsaw2004-05-131-0/+15
|
* _parsebody(): Do not create subparts unless the container has a main type ofBarry Warsaw2004-05-131-7/+8
| | | | | | | | 'multipart' and the boundary is defined. This fixes SF bug # 846938, and several recent email-sig bugs where something like a text/html message also had a boundary parameter. This would later crash the Generator, which only consulted the Content-Type to decide how to generate the message (and it would expect just a string, but find a list there instead).
* Waugh! we need to bump the email package to 2.5.5 for Python 2.3.4.Barry Warsaw2004-05-131-3/+3
|
* test_mime_attachments_in_constructor(): New test to check for SF bug # 884030.Barry Warsaw2004-05-091-0/+9
|
* SF patch # 884030 by Amit Aronovitch; fixes the _subpart argument to matchBarry Warsaw2004-05-091-5/+7
| | | | documented semantics.
* __init__(): The docstring was incorrect regarding how header wrappingBarry Warsaw2003-11-191-5/+4
| | | | | | gets done when maxheaderlen <> 0. The header really gets wrapped via the email.Header.Header class, which has a more sophisticated algorithm than just splitting on semi-colons.
* Backport checkin:Walter Dörwald2003-10-201-1/+1
| | | | | Fix a bunch of typos in documentation, docstrings and comments. (From SF patch #810751)
* test_get_param_with_semis_in_quotes(): Test case for SF bug #794466.Barry Warsaw2003-09-031-0/+7
| | | | Backport candidate.
* A fix for parsing parameters when there are semicolons inside theBarry Warsaw2003-09-031-1/+18
| | | | | | | | | quotes. Fixes SF bug #794466, with the essential patch provided by Stuart D. Gathman. Specifically, _parseparam(), _get_params_preserve(): Use the parsing function that takes quotes into account, as given (essentially) in the bug report's test program.
* Backporting email 2.5.4 fixes from the trunk.Barry Warsaw2003-08-194-9/+51
|
* _make_boundary(): A minor optimization suggested by the Timbot.Barry Warsaw2003-06-241-1/+1
|
* AddressList.__str__(): Get rid of useless, and broken method. ClosesBarry Warsaw2003-06-131-3/+0
| | | | SF #753617. Back port candidate (but low priority).
* get_payload(): Improve the TypeError message when the payload isn't ofBarry Warsaw2003-06-101-1/+1
| | | | the expected type. In response to SF #751451.
* _make_boundary(): Fix for SF bug #745478, broken boundary calculationBarry Warsaw2003-05-292-3/+7
| | | | | | | | | in some locales. This code simplifies the boundary algorithm to use randint() which is what we wanted anyway. Bump package version to 2.5.3. Backport candidate for Python 2.2.3
* Bump version numberBarry Warsaw2003-05-081-1/+1
|
* A couple of new parsedate test cases.Barry Warsaw2003-05-081-0/+10
|
* parsedate_tz(): Be slightly more lenient when there's no day of theBarry Warsaw2003-05-081-3/+2
| | | | | | | week. Patch given by Daniel Berlin in SF bug # 732761. Also closes SF bug # 727719. Backport candidate.
* Get rid of some hard coded tabsBarry Warsaw2003-04-241-3/+3
|
* as_string(): Added some text to the docstring to make it clear thatBarry Warsaw2003-04-181-0/+4
| | | | | it's a convenience only and give hints on what to do for more flexibility.
* Fix a commentBarry Warsaw2003-04-021-1/+1
|
* Bump to version 2.5.1Barry Warsaw2003-03-301-1/+1
|
* test_whitespace_eater_unicode_2(): Test case for SF bug #710498.Barry Warsaw2003-03-301-0/+9
|
* __unicode__(): Fix the logic for calculating whether to add aBarry Warsaw2003-03-301-3/+3
| | | | | separating space or not between encoded chunks. Closes SF bug #710498.
* Temporary bump of the version number.Barry Warsaw2003-03-261-1/+1
|
* typed_subpart_iterator(): Fix these to use non-deprecated APIs,Barry Warsaw2003-03-261-3/+10
| | | | | | i.e. get_content_maintype() and get_content_subtype(). Also, add True, False for Python 2.2.x where x < 2 compatibility.
* typed_subpart_iterator(): Fix these to use non-deprecated APIs,Barry Warsaw2003-03-261-2/+2
| | | | i.e. get_content_maintype() and get_content_subtype().
* Email version 2.5 -- I will now backport this to Python 2.2.3.Barry Warsaw2003-03-211-1/+1
|
* _encode_chunks(): Throw out empty chunks.Barry Warsaw2003-03-171-0/+2
|
* test_long_lines_with_different_header(): Another test from Jason.Barry Warsaw2003-03-171-0/+16
|
* test_getaddresses_nasty(): A test for mimelib SF bug # 697641.Barry Warsaw2003-03-171-0/+10
|
* getaddrlist(): Make sure this consumes all the data, and if there isBarry Warsaw2003-03-171-2/+2
| | | | | | | no address there (perhaps because of invalid characters, it appends ('', '') to the result set. Closes mimelib SF bug # 697641.
* test_whitespace_eater_unicode(): Make this test Python 2.1 compatible.Barry Warsaw2003-03-121-1/+4
|
* Python 2.1 doesn't have True and FalseBarry Warsaw2003-03-121-0/+3
|
* Adjust tests for no newline appending to MIMEText.__init__()'s _textBarry Warsaw2003-03-111-2/+0
| | | | argument.