1
0
Fork 0
Commit graph

136 commits

Author SHA1 Message Date
Adam Coddington
f8e70aa5d1 Attempting to narrow down the issue @rulzart is encountering.
Conflicts:
	django_mailbox/transports/generic.py
2014-10-14 19:29:51 -07:00
Will
1406d465d6 Adjust usages of get_query_set to get_queryset 2014-09-06 19:18:47 -07:00
Will
bd56716e74 Fix deprecation warnings after Django 1.7 upgrade 2014-09-06 16:31:12 -07:00
Ariel Gerardo Ríos
826d0b1d88 Fix test methods for new accessors. 2014-09-01 15:31:29 -03:00
Ariel Gerardo Ríos
c1bfc9b3a8 Extracts inner method to process multiple content types. 2014-09-01 15:31:13 -03:00
Ariel Gerardo Ríos
6d73301f0d Add property to fetch HTML body message. 2014-09-01 15:30:30 -03:00
Ariel Gerardo Ríos
ce7e17b50c Add file header and dummy HTML method. 2014-08-29 17:24:49 -03:00
Ariel Gerardo Ríos
305d1c5c38 Add translation support to field names and help texts. 2014-08-29 16:08:01 -03:00
Ariel Gerardo Ríos
4f400fab48 Add some spaces between constants and imports. 2014-08-29 15:39:49 -03:00
Adam Coddington
db6190a295 Cleaning up management commands for PEP-8 and consistency. 2014-08-22 20:02:58 -07:00
Adam Coddington
591f1545c8 Decode from ASCII with replacement if errors are encountered while gathering text. Fixes #20. 2014-08-22 19:46:39 -07:00
Adam Coddington
dad65d802c Wrap added \Deleted flag in parentheses. Fixes #23.
Apparently the IMAP specification expects that the +FLAGS argument be
surrounded by parentheses; although some e-mail backends (like Gmail)
will accept the +FLAGS argument without surrounding the \Deleted flag
in parentheses, many (reasonably) follow the specification much more
closely.  This problem was first noted in report #23.

Searching for other examples of mail deletion, I've found several
Stack Overflow articles in which people are attempting the same task,
and each either uses `imap.store` without surrounding '\Deleted' in
parentheses, or uses `imap.uid` *while* surrounding '\Deleted' in
parentheses:

* http://stackoverflow.com/questions/1777264/using-python-imaplib-to-delete-an-email-from-gmail
* http://stackoverflow.com/questions/3180891/imap-deleting-messages
2014-08-22 19:27:36 -07:00
Adam Coddington
b4c20bdf2e Reordering imports to match style guide. 2014-08-22 19:25:14 -07:00
Adam Coddington
7474cf0118 Prevent ImapTransport from raising exception when no messages are available. Fixes #24. Release 3.4.1. 2014-08-14 21:41:08 -07:00
Adam Coddington
8af7c676fb Remoing unaccessed 'fetch_contacts' function. 2014-06-01 14:26:30 -07:00
Adam Coddington
d1485d9cd5 Replacing print statements with logger.info 2014-06-01 14:24:34 -07:00
Adam Coddington
61b1e55c50 Minor stylistic changes. 2014-05-30 16:32:57 -07:00
Adam Coddington
91da5d3203 Merge remote-tracking branch 'alexlovelltroy/size_limiting' into issue_19 2014-05-30 16:31:13 -07:00
Alex Lovell-Troy
1efa1140a6 I'll get the 2to3 changes right someday 2014-05-29 23:47:48 -06:00
Alex Lovell-Troy
ec18a01880 Refactored the imap transport based on the tests
Testing the switch to uid-based IMAP calls required better testing
The better testing revealed some code that wasn't so pretty

I fixed the tests and the code
2014-05-29 23:41:11 -06:00
Adam Coddington
05c8d3ece8 Minor cleanup & a Python 3k fix. 2014-05-29 16:52:08 -07:00
Alex Lovell-Troy
ea793545d9 Update gmail.py 2014-05-29 07:31:14 -06:00
Alex Lovell-Troy
677e420dec Adding gmail to the mailbox types
and adding the type to models.py
2014-05-28 21:24:46 -06:00
Alex Lovell-Troy
29d36a493a Adding ability to limit messages by max size
Adding a new setting for maximum message size
 Adding method to limit a set of message uids by size
 Switching to IMAP uids so that we can trust that subsequent
 commands will use the same ids
2014-05-28 20:39:13 -06:00
Alex Lovell-Troy
cc4e72305d Adding gmail oauth2 authentication
python-social-auth is an optional dependency
2014-05-28 20:10:45 -06:00
Adam Coddington
0aa757955d Create archive folder if it does not exist. 2014-05-25 12:57:38 -07:00
Adam Coddington
02567acdc2 Minor alterations to @yellowcap's pull request submission:
* Using a query parameter argument (rather than the entire query string)
  to specify the folder into which e-mail messages should be archived.
* Duplicating the IMAP tests; this could probably be a bit more simply
  done, but we'll at least be verifying both archived and non-archived
  use cases.
* Simplifying some aspects of the documentation to include references
  to this new feature.
2014-05-25 12:35:20 -07:00
Daniel
0e0c6cf170 Added email archiving option to IMAP transport 2014-05-23 09:17:14 +01:00
Adam Coddington
3b2d60a903 Actually fixing Python 3 support; verified both IMAP and POP3. Fixes #13 (seriously this time). 2014-04-25 16:45:35 -07:00
Adam Coddington
2b90f08250 Merge branch 'master' of github.com:coddingtonbear/django-mailbox 2014-04-24 15:49:18 -07:00
Adam Coddington
002e33bd95 Refactoring imports for Python3 support. Fixes #13.
* Refactoring unicode payload handling of mis-encoded payloads.
* Uses six.moves.urllib to find proper urllib versions.
2014-04-24 15:44:45 -07:00
Adam Coddington
0f0628a742 Only expect additional space in Python 3.3+. 2014-04-22 17:13:41 -07:00
Adam Coddington
a2cf80ef99 Fixing header decoding such that it works properly under both Python 3.x and 2.x. 2014-04-22 17:06:17 -07:00
Adam Coddington
ef42c319e9 Updating yet another string for python3. 2014-04-22 16:24:16 -07:00
Adam Coddington
d871d41448 Fix test for Py3 support. 2014-04-22 16:06:34 -07:00
Adam Coddington
79e189fb22 Always decode headers into unicode objects before assigning to model; fixes #12. 2014-04-22 15:49:49 -07:00
dmippoltiov
d3a766ffd6 Create test_UnicodeDecodeError.eml
this message raise error on get_mail: 

Traceback:
File "/usr/local/lib/python2.7/site-packages/django/core/handlers/base.py" in get_response
  114.                     response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "/usr/local/lib/python2.7/site-packages/django/views/generic/base.py" in view
  69.             return self.dispatch(request, *args, **kwargs)
File "/usr/local/lib/python2.7/site-packages/django/views/generic/base.py" in dispatch
  87.         return handler(request, *args, **kwargs)
File "/home/leha/django-site/proj/views.py" in get
  140.             messages = mailbox.get_new_mail()
File "/usr/local/lib/python2.7/site-packages/django_mailbox/models.py" in get_new_mail
  285.             msg = self.process_incoming_message(message)
File "/usr/local/lib/python2.7/site-packages/django_mailbox/models.py" in process_incoming_message
  183.         msg = self._process_message(message)
File "/usr/local/lib/python2.7/site-packages/django_mailbox/models.py" in _process_message
  266.         msg.save()
File "/usr/local/lib/python2.7/site-packages/django/db/models/base.py" in save
  545.                        force_update=force_update, update_fields=update_fields)
File "/usr/local/lib/python2.7/site-packages/django/db/models/base.py" in save_base
  573.             updated = self._save_table(raw, cls, force_insert, force_update, using, update_fields)
File "/usr/local/lib/python2.7/site-packages/django/db/models/base.py" in _save_table
  654.             result = self._do_insert(cls._base_manager, using, fields, update_pk, raw)
File "/usr/local/lib/python2.7/site-packages/django/db/models/base.py" in _do_insert
  687.                                using=using, raw=raw)
File "/usr/local/lib/python2.7/site-packages/django/db/models/manager.py" in _insert
  232.         return insert_query(self.model, objs, fields, **kwargs)
File "/usr/local/lib/python2.7/site-packages/django/db/models/query.py" in insert_query
  1511.     return query.get_compiler(using=using).execute_sql(return_id)
File "/usr/local/lib/python2.7/site-packages/django/db/models/sql/compiler.py" in execute_sql
  898.             cursor.execute(sql, params)
File "/usr/local/lib/python2.7/site-packages/django/db/backends/util.py" in execute
  73.             sql = self.db.ops.last_executed_query(self.cursor, sql, params)
File "/usr/local/lib/python2.7/site-packages/django/db/backends/postgresql_psycopg2/operations.py" in last_executed_query
  214.             return cursor.query.decode('utf-8')
File "/usr/local/lib/python2.7/encodings/utf_8.py" in decode
  16.     return codecs.utf_8_decode(input, errors, True)

Exception Type: UnicodeDecodeError at /proj/new_mail/
Exception Value: 'utf8' codec can't decode byte 0xd3 in position 187: invalid continuation byte
2014-04-21 17:40:40 +04:00
Michal Adamczyk
8aef745832 fix migration 0014, set no_dry_run=True 2013-11-25 21:13:32 +01:00
Adam Coddington
02b63b4001 Merged in medsafe/django-mailbox/ashvetsov/fixes-to-push (pull request #1)
Thanks @medsafe!

Fixes for signal exception handling and inability to get IMAP inbox
2013-09-07 13:05:25 -07:00
Adam Coddington
a6b4d3729a Removing 'body' from admin message display. 2013-08-04 19:57:28 -07:00
Adam Coddington
1bd781832a Removing leftover logger. 2013-07-26 22:16:44 -07:00
Adam Coddington
88d122c421 Base64-encode message body when storing in DB.
* Since Django requires that the content stored in a TextField be unicode, we
  need some way to encode the message safely.  In situations before where
  a single-byte non-7-bit-clean encoding were used, django-mailbox could
  explode when writing the message copy to the database; this should ameliorate
  that problem.
* Reverts earlier changesets' encoding normalization.
2013-07-26 22:13:29 -07:00
Adam Coddington
4c3af900c6 Remove unicode literals from tests for Python3. 2013-07-26 19:18:57 -07:00
Adam Coddington
adb17e7d67 Adding tests and minor code changes to ensure that we properly handle the distinction between bytes and text when dehydrating/rehydrating messages. 2013-07-26 19:13:35 -07:00
Adam Coddington
3ee4b43936 Cleaning up tests; moving test e-mail messages; fixing bugs relating to message encoding rehydration.
--HG--
rename : django_mailbox/tests/generic_message.eml => django_mailbox/tests/messages/generic_message.eml
rename : django_mailbox/tests/message_with_attachment.eml => django_mailbox/tests/messages/message_with_attachment.eml
rename : django_mailbox/tests/message_with_defective_attachment_association.eml => django_mailbox/tests/messages/message_with_defective_attachment_association.eml
rename : django_mailbox/tests/message_with_defective_attachment_association_result.eml => django_mailbox/tests/messages/message_with_defective_attachment_association_result.eml
rename : django_mailbox/tests/message_with_image_jpg_mimetype.eml => django_mailbox/tests/messages/message_with_image_jpg_mimetype.eml
rename : django_mailbox/tests/message_with_long_text_lines.eml => django_mailbox/tests/messages/message_with_long_text_lines.eml
rename : django_mailbox/tests/message_with_many_multiparts.eml => django_mailbox/tests/messages/message_with_many_multiparts.eml
rename : django_mailbox/tests/message_with_many_multiparts_stripped_html.eml => django_mailbox/tests/messages/message_with_many_multiparts_stripped_html.eml
rename : django_mailbox/tests/message_with_utf8_char.eml => django_mailbox/tests/messages/message_with_utf8_char.eml
rename : django_mailbox/tests/multipart_text.eml => django_mailbox/tests/messages/multipart_text.eml
2013-07-26 18:07:31 -07:00
Adam Coddington
98745bcd70 Set email payload's charset after all other headers. 2013-07-26 17:40:44 -07:00
Adam Coddington
2e6c23a6f0 Revamping encoding handling to normalize encodings to UTF-8 for storage; back into original encoding during rehydration. 2013-07-26 01:01:07 -07:00
Adam Coddington
f92e2a8448 Reorganizing tests. 2013-07-25 23:45:39 -07:00
Adam Coddington
b54855c3a2 Moving e-mail examples alongside other e-mail messages. 2013-08-03 18:00:53 -07:00
Travis
1fa21c87dc Added testcases for bugfixes 2013-08-03 17:00:32 -05:00