summaryrefslogtreecommitdiff
path: root/service/pixelated/adapter
diff options
context:
space:
mode:
Diffstat (limited to 'service/pixelated/adapter')
-rw-r--r--service/pixelated/adapter/mail_service.py10
-rw-r--r--service/pixelated/adapter/pixelated_mail.py4
-rw-r--r--service/pixelated/adapter/pixelated_mail_sender.py2
-rw-r--r--service/pixelated/adapter/pixelated_mailbox.py3
-rw-r--r--service/pixelated/adapter/pixelated_mailboxes.py9
5 files changed, 22 insertions, 6 deletions
diff --git a/service/pixelated/adapter/mail_service.py b/service/pixelated/adapter/mail_service.py
index debdc9b7..1183dae2 100644
--- a/service/pixelated/adapter/mail_service.py
+++ b/service/pixelated/adapter/mail_service.py
@@ -47,6 +47,13 @@ class MailService:
def send(self, mail):
self.mail_sender.sendmail(mail)
+ def create_draft(self, mail):
+ drafts = self.mailboxes.drafts()
+ drafts.add(mail)
+
+ def send_draft(self, mail):
+ pass
+
def all_tags(self):
return self.tag_service.all_tags()
@@ -74,9 +81,6 @@ class MailService:
def save_draft(self, draft):
raise NotImplementedError()
- def send_draft(self, draft):
- raise NotImplementedError()
-
def draft_reply_for(self, mail_id):
raise NotImplementedError()
diff --git a/service/pixelated/adapter/pixelated_mail.py b/service/pixelated/adapter/pixelated_mail.py
index 2aead409..df9b4bbe 100644
--- a/service/pixelated/adapter/pixelated_mail.py
+++ b/service/pixelated/adapter/pixelated_mail.py
@@ -142,9 +142,9 @@ class PixelatedMail:
mime_multipart.attach(MIMEText(self.body, 'plain'))
return mime_multipart
- def to_smtp_format(self, _from=None):
+ def to_smtp_format(self):
mime_multipart = self.to_mime_multipart()
- mime_multipart['From'] = _from
+ mime_multipart['From'] = PixelatedMail.from_email_address
return mime_multipart.as_string()
@staticmethod
diff --git a/service/pixelated/adapter/pixelated_mail_sender.py b/service/pixelated/adapter/pixelated_mail_sender.py
index 486816ac..4189517d 100644
--- a/service/pixelated/adapter/pixelated_mail_sender.py
+++ b/service/pixelated/adapter/pixelated_mail_sender.py
@@ -28,5 +28,5 @@ class PixelatedMailSender():
self.smtp_client.sendmail(
self.account_email_address,
recipients,
- mail.to_smtp_format(_from=self.account_email_address)
+ mail.to_smtp_format()
)
diff --git a/service/pixelated/adapter/pixelated_mailbox.py b/service/pixelated/adapter/pixelated_mailbox.py
index cc44ede7..191c171b 100644
--- a/service/pixelated/adapter/pixelated_mailbox.py
+++ b/service/pixelated/adapter/pixelated_mailbox.py
@@ -58,6 +58,9 @@ class PixelatedMailbox:
original_flags = mail.leap_mail.getFlags()
self.leap_mailbox.addMessage(mail.raw_message(), original_flags)
+ def add(self, mail):
+ self.leap_mailbox.messages.add_msg(mail.to_smtp_format())
+
@classmethod
def create(cls, account, mailbox_name='INBOX'):
return PixelatedMailbox(account.getMailbox(mailbox_name))
diff --git a/service/pixelated/adapter/pixelated_mailboxes.py b/service/pixelated/adapter/pixelated_mailboxes.py
index c003f3fd..50d0ddc4 100644
--- a/service/pixelated/adapter/pixelated_mailboxes.py
+++ b/service/pixelated/adapter/pixelated_mailboxes.py
@@ -2,9 +2,18 @@ from pixelated.adapter.pixelated_mailbox import PixelatedMailbox
class PixelatedMailBoxes():
+
def __init__(self, account):
self.account = account
+ def _create_or_get(self, mailbox_name):
+ if mailbox_name not in self.account.mailboxes:
+ self.account.addMailbox(mailbox_name)
+ return PixelatedMailbox.create(self.account, mailbox_name)
+
+ def drafts(self):
+ return self._create_or_get('DRAFTS')
+
@property
def mailboxes(self):
return [PixelatedMailbox.create(self.account, leap_mailbox_name) for leap_mailbox_name in