summaryrefslogtreecommitdiff
path: root/src/leap/mail
AgeCommit message (Collapse)Author
2015-10-01[bug] fix slow appendsKali Kaneko
we were adding listeners for each mailbox instance, which was making appends particularly slow, since the method that gets current count and recent count is expensive and was being called way too many times.
2015-09-28[bug] fail gracefully if fetch failsKali Kaneko
Related: #7495
2015-09-24[bug] signal expired auth token to the GUIRuben Pollan
In case of InvalidAuthTokeError from soledad sync we need signal the GUI, so it will request her to log in again. - Resolves: #7430
2015-09-23[feat] disable local-only bind on docker containerIvan Alejandro
- Related: #7471
2015-09-23[docs] update interfaces documentationKali Kaneko
2015-09-23[refactor] avoid circular import due to rfc3156Kali Kaneko
2015-09-23[bug] Make _collection_mapping a instance variableFolker Bernitt
As a class variable multiple account instances share mailboxes which is bad if its different users or tests
2015-09-22[style] fix pep8 warningsFolker Bernitt
2015-09-22[refactor] log the added key explicitelyKali Kaneko
2015-09-22[bug] don't extract openpgp header if valid attached keyRuben Pollan
The key extract should check first for attached keys and if this fails then should try the OpenPGP header. - Resolves: #7480
2015-09-21[bug] filter out Nones in the sequence of messagesKali Kaneko
2015-09-21[doc] document return valuesKali Kaneko
2015-09-16[style] clean up incoming/service.pyRuben Pollan
2015-09-16[bug] don't fail importing mismatched attached keyRuben Pollan
We can't import attached keys with different email address than the sender. Now we don't fail in this case, just log it. - Resolves: #7454
2015-09-16[feat] use async events apiKali Kaneko
in this way, we're using twisted reactor instead of having another thread with zmq's own copy of tornado ioloop. Resolves: #7274
2015-09-10Merge pixelated's X-Leap-Encryption into developRuben Pollan
2015-09-08[feature] improve getmail utilityKali Kaneko
So now it: - Accepts credentials in a file pointed by environment variable. - Allows to specify the mailbox to select as a command line flag. - Allows to select a given message by subject. For example: BITMASK_CREDENTIALS=/tmp/bm.secrets ./getmail --mailbox INBOX --subject 'test mail The two flags are case-insensitive. This is intended to be used as a helper in end-to-end tests. Getting a message by subject it's suboptimal, but I think it's good enough for our testing purposes right now. Related: #7427
2015-09-02[style] fixing pep8 warningsDuda Dornelles
2015-09-02[feat] adding encryption header to msg before savingDuda Dornelles
This way we can tell if a message was originally encrypted, so that we can show that information to the end user.
2015-08-21[tests] properly skip not implemented tests, do not raiseKali Kaneko
2015-08-11[docs] add folker to authors + pep8Kali Kaneko
2015-08-11[bug] Fix missing _normailize_dict in DocumentWrapper constructor.Folker Bernitt
In the constructor values already is normalized (i.e. with underscores), while kwargs contains items that are not normalized (i.e. with dashes). Joining the dicts resulted in two entries that only differed by dash or underscores. The setattr then set the value that occurred later in items, thereby sometimes overriding the correct value with the default one.
2015-08-11[bug] Fix typo in content-transfer-encoding in walk.py.Folker Bernitt
The get_raw_docs method accesses header field content-transfer-encoding using the string 'content-transfer-type' so the raw doc dict always ends up with that value set to empty string.
2015-08-04[style] pep8 fixes + pep8 scriptKali Kaneko
2015-08-04[tests] Removed outdated testBruno Wagner
This test was not updated for a while and it doesn't make sense in this context, when we create acceptance tests we can make sure we cover this feature The issue for acceptance tests is: https://leap.se/code/issues/7341
2015-08-03[tests] Skipped tests that were not implementedBruno Wagner
Functionality that is not implemented should not fail, instead it should be skipped until it is implemented. Added a return to test_imap_store_fetch setup to make sure the deferred is being handled
2015-07-29[bug] fixed syntax error in models.pyFolker Bernitt
The lambdas take two args, so it needs to be a tuple. Furthermore filter needs a collection.
2015-07-21Changed imap tests and messages assigned lambdas to functions because of pep8Bruno Wagner
2015-07-21Transformed assigned lambdas to functions in models and test_models because ↵Bruno Wagner
of pep8
2015-07-21Pep8 warns about lambdas being assigned to a variable, changed walk and ↵Bruno Wagner
sync_hooks to lambdas to real functions
2015-07-21Updated pep8 and fixed import and line break warningsBruno Wagner
2015-07-21Fixed all the pep8 warnings in the codeBruno Wagner
2015-07-13[tests] get REGRESSIONS_FOLDER from env varKali Kaneko
in order to start with a fresh folder each time. current test script has some troubles with dirty state.
2015-07-13[tests] add symlink to the nested sample fileKali Kaneko
2015-07-13[tests] new sample mail addedKali Kaneko
For #7244, this is needed for regression tests
2015-07-13[style] slightly more meaningful test module nameKali Kaneko
2015-07-13[debug] add some more debug info to the regressions scriptKali Kaneko
2015-07-13[feature] add very basic support for message sequence numbersKali Kaneko
this is just the bare minimum implementation of MSN (message sequence numbers). It is not enough feature-wise, but I'm doing it now just to support testing with the default imap client that we're using with the regression tests.
2015-07-13[bug] Return the first cdoc if no body foundKali Kaneko
In the case of a message with just one non-text attachment, something has to be returned for the body payload. (For instance, a message with only one image).
2015-07-13[bug] do not raise if the pending insert cannot be removedKali Kaneko
2015-07-13[bug] fix keyerror when inserting msg on pending_inserts dictKali Kaneko
The decission to index the pending_inserts dict by message-id is a bit brittle. I assume any well-formed message in the RealWorld (tm) will have this header, but many samples used in the tests will break this assumption.
2015-07-13[bug] workaround for off-by-one error on nested multipartKali Kaneko
For some reason that I haven't discovered yet, nested multipart is hitting an off-by-one error (that had been wrongly ammended in a previous commit, breaking many other cases but fixing the particular Mail.app sample I was working with). This is just a temporary hack to make all the current regression tests happy, but further investigation is needed to discover the cause of the off-by-one part retrieval solved and correctly documented.
2015-07-13[bug] fix the rendering of nested multipartKali Kaneko
This commit fix a very simplistic and until now broken handling of nested multipart that went undetected due to the structure of the mails used in tests until now. Incidentally, the way that Mail.app structures attachments made this bug noticeable. There was also an off-by-one indexing error when retrieving the subpart message for a given subpart. Be aware that the current implementation will only handle correctly 2 levels of multipart nesting. Extending beyond in a more generic way will need further work. Closes: #7244
2015-07-03[bug] notify copied emailsRuben Pollan
When copying emails there was not notification produced, that makes thunderbird to see messages moved between folders until it gets restarted. Now the MaillCollection copy does notify the listeners. * Resolves: #7158
2015-07-02[bug] return the message uid after add it to the collectionRuben Pollan
MessageCollection.add_msg was not returning the uid of the message added making the incoming service not deleting the emails from the incoming queue. * Related: #7158
2015-07-02[bug] tear down of leap.common.events properly in testsRuben Pollan
The tests where writting their own implementation of env tear down instead of using leap.common's one. Using it fixes many tests.
2015-06-29[bug] allow mailbox to be notified of collection changesKali Kaneko
in a previous refactor, we decoupled the incoming mail service from the IMAP layer. However, this left the IMAPMailbox unable to react to changes in the underlying collection when a new message is inserted. in this commit, we add a Listener mechanism to the collection itself, so that IMAPMailbox (and any other object that uses it) can subscribe to changes on the number of messages of the collection. Resolves: #7191 Releases: 0.4.0
2015-06-29[bug] avoid KeyError on pending_insert_docs lookupKali Kaneko
in a previous commit, there was a bug inserted in which a key lookup was being made unconditionally, even when the pending_insert_docs was None. Releases: 0.4.0
2015-06-25[bug] avoid duplication of copies in draft folderKali Kaneko
Although this draft-saving feature seems to be somehow brittle, since it breaks from time to time, the causes are different and subtle on each case. This time the bug is related to having the notify_just_mdoc (or fast_notifies as I'm tempted to call it in the future for more clarity) set to True by default in the APPENDS. Fast notifies break the "save draft" functionality because what Thunderbird does is an Append of the newest message, followed by deletion of the old message and a SEARCH by Message-ID. For this we need the headers-doc to be already inserted in the store. Since the fast-notify makes a *big* difference in terms of insertion times for serialized appends, I've opted for using a heuristic for detecting if it's the case of a Draft message, using a mozilla-specific header. If this is found, we set the notify_just_mdoc unconditionally to False. We'll deal with other MUAs on its due time. Releases: 0.4.0
2015-06-25[bug] saving message to drafts folder hangsKali Kaneko
the bug consist on a fetch-while-pending-inserts hanging. the pending insert dict was not being cleaned up because the lookup for the Message-Id *is* case-sensitive (in the headers dict). by using a temporary all-keys-lowercase dict the lookup can be performed right, and the fetch returns successfully. at this point there's still a pending bug with Drafts, and it is that the new version is inserted but the MUA (TB) doesn't hide the older version (although a Delete flag is added). Resolves: #7189, #7190 Releases: 0.4.0