summaryrefslogtreecommitdiff
path: root/service/pixelated/adapter/mailstore
diff options
context:
space:
mode:
Diffstat (limited to 'service/pixelated/adapter/mailstore')
-rw-r--r--service/pixelated/adapter/mailstore/leap_mailstore.py18
-rw-r--r--service/pixelated/adapter/mailstore/searchable_mailstore.py2
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)