summaryrefslogtreecommitdiff
path: root/service/pixelated/adapter
diff options
context:
space:
mode:
Diffstat (limited to 'service/pixelated/adapter')
-rw-r--r--service/pixelated/adapter/model/mail.py11
-rw-r--r--service/pixelated/adapter/services/mail_sender.py4
-rw-r--r--service/pixelated/adapter/services/mail_service.py6
3 files changed, 17 insertions, 4 deletions
diff --git a/service/pixelated/adapter/model/mail.py b/service/pixelated/adapter/model/mail.py
index 42953064..dfc0ea1c 100644
--- a/service/pixelated/adapter/model/mail.py
+++ b/service/pixelated/adapter/model/mail.py
@@ -186,6 +186,17 @@ class InputMail(Mail):
return mime_multipart.as_string()
@staticmethod
+ def delivery_error_template(delivery_address):
+ return InputMail.from_dict({
+ 'body': "Mail undelivered for %s" % delivery_address,
+ 'header': {
+ 'bcc': [],
+ 'cc': [],
+ 'subject': "Mail undelivered for %s" % delivery_address
+ }
+ })
+
+ @staticmethod
def from_dict(mail_dict):
input_mail = InputMail()
input_mail.headers = {key.capitalize(): value for key, value in mail_dict.get('header', {}).items()}
diff --git a/service/pixelated/adapter/services/mail_sender.py b/service/pixelated/adapter/services/mail_sender.py
index 50c17ba5..1c2d7ce1 100644
--- a/service/pixelated/adapter/services/mail_sender.py
+++ b/service/pixelated/adapter/services/mail_sender.py
@@ -35,4 +35,6 @@ class MailSender():
file=StringIO(mail.to_smtp_format()),
deferred=resultDeferred)
- return reactor.connectTCP('localhost', 4650, senderFactory)
+ reactor.connectTCP('localhost', 4650, senderFactory)
+
+ return resultDeferred
diff --git a/service/pixelated/adapter/services/mail_service.py b/service/pixelated/adapter/services/mail_service.py
index 3b70890b..7bf76676 100644
--- a/service/pixelated/adapter/services/mail_service.py
+++ b/service/pixelated/adapter/services/mail_service.py
@@ -13,8 +13,6 @@
#
# You should have received a copy of the GNU Affero General Public License
# along with Pixelated. If not, see <http://www.gnu.org/licenses/>.
-
-
class MailService:
__slots__ = ['leap_session', 'account', 'mailbox_name']
@@ -44,8 +42,10 @@ class MailService:
def mail_exists(self, mail_id):
return not(not(self.querier.get_header_by_chash(mail_id)))
- def send(self, last_draft_ident, mail):
+ def send(self, mail):
self.mail_sender.sendmail(mail)
+
+ def move_to_send(self, last_draft_ident, mail):
if last_draft_ident:
self.mailboxes.drafts().remove(last_draft_ident)
return self.mailboxes.sent().add(mail)