diff options
Diffstat (limited to 'service/pixelated/adapter/mailstore')
-rw-r--r-- | service/pixelated/adapter/mailstore/leap_mailstore.py | 18 | ||||
-rw-r--r-- | service/pixelated/adapter/mailstore/searchable_mailstore.py | 2 |
2 files changed, 20 insertions, 0 deletions
diff --git a/service/pixelated/adapter/mailstore/leap_mailstore.py b/service/pixelated/adapter/mailstore/leap_mailstore.py index a27ce5c4..6dad12b0 100644 --- a/service/pixelated/adapter/mailstore/leap_mailstore.py +++ b/service/pixelated/adapter/mailstore/leap_mailstore.py @@ -162,6 +162,24 @@ class LeapMail(Mail): return [recipient for recipient in recipients if recipient != InputMail.FROM_EMAIL_ADDRESS] + @property + def bounced(self): + # TODO: Must be implemented for the search engine identify bounced mails + return False + + @staticmethod + def from_dict(mail_dict): + # TODO: implement this method and also write tests for it + headers = {key.capitalize(): value for key, value in mail_dict.get('header', {}).items()} + headers['Date'] = date.iso_now() + body = mail_dict.get('body', '') + tags = set(mail_dict.get('tags', [])) + status = set(mail_dict.get('status', [])) + attachments = [] + + # mail_id, mailbox_name, headers=None, tags=set(), flags=set(), body=None, attachments=[] + return LeapMail(None, None, headers, tags, set(), body, attachments) + def _extract_filename(content_disposition): match = re.compile('.*name=\"(.*)\".*').search(content_disposition) diff --git a/service/pixelated/adapter/mailstore/searchable_mailstore.py b/service/pixelated/adapter/mailstore/searchable_mailstore.py index 0c5310eb..8ffc41b8 100644 --- a/service/pixelated/adapter/mailstore/searchable_mailstore.py +++ b/service/pixelated/adapter/mailstore/searchable_mailstore.py @@ -34,6 +34,8 @@ class SearchableMailStore(object): # implementes MailStore @defer.inlineCallbacks def add_mail(self, mailbox_name, mail): stored_mail = yield self._delegate.add_mail(mailbox_name, mail) + # the stored_mail dont't have a content type needed for identify + # that the email is bounced or not, but this header is setted on input_mail self._search_engine.index_mail(stored_mail) defer.returnValue(stored_mail) |