From 4ac714acfd3192a397028f1260c5929e80ef15b5 Mon Sep 17 00:00:00 2001 From: Alexandre Pretto Nunes Date: Wed, 28 Jan 2015 14:42:47 -0200 Subject: #249 make the sending process a deferred --- service/pixelated/adapter/services/mail_service.py | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) (limited to 'service/pixelated/adapter/services/mail_service.py') diff --git a/service/pixelated/adapter/services/mail_service.py b/service/pixelated/adapter/services/mail_service.py index 3b70890b..26b4e162 100644 --- a/service/pixelated/adapter/services/mail_service.py +++ b/service/pixelated/adapter/services/mail_service.py @@ -45,10 +45,14 @@ class MailService: return not(not(self.querier.get_header_by_chash(mail_id))) def send(self, last_draft_ident, mail): - self.mail_sender.sendmail(mail) - if last_draft_ident: - self.mailboxes.drafts().remove(last_draft_ident) - return self.mailboxes.sent().add(mail) + result = self.mail_sender.sendmail(mail) + + def success(_): + if last_draft_ident: + self.mailboxes.drafts().remove(last_draft_ident) + return self.mailboxes.sent().add(mail) + result.addCallback(success) + return result def mark_as_read(self, mail_id): return self.mail(mail_id).mark_as_read() -- cgit v1.2.3