From 9ab17e2bbf61062ce8399ef1c51d2069a0cced31 Mon Sep 17 00:00:00 2001 From: Duda Dornelles Date: Fri, 31 Oct 2014 12:17:26 +0100 Subject: moving to twisted --- service/pixelated/adapter/mail_sender.py | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) (limited to 'service/pixelated/adapter') diff --git a/service/pixelated/adapter/mail_sender.py b/service/pixelated/adapter/mail_sender.py index 1802a9d5..6fad2b6f 100644 --- a/service/pixelated/adapter/mail_sender.py +++ b/service/pixelated/adapter/mail_sender.py @@ -13,21 +13,26 @@ # # You should have received a copy of the GNU Affero General Public License # along with Pixelated. If not, see . -import smtplib +from StringIO import StringIO +from twisted.internet.defer import Deferred +from twisted.mail.smtp import SMTPSenderFactory +from twisted.internet import reactor from pixelated.support.functional import flatten class MailSender(): def __init__(self, account_email_address, smtp_client=None): self.account_email_address = account_email_address - self.smtp_client = smtp_client or smtplib.SMTP('localhost', 4650) def sendmail(self, mail): recipients = flatten([mail.to, mail.cc, mail.bcc]) - self.smtp_client.sendmail( - self.account_email_address, - recipients, - mail.to_smtp_format() - ) + resultDeferred = Deferred() + senderFactory = SMTPSenderFactory( + fromEmail=self.account_email_address, + toEmail=recipients, + file=StringIO(mail.to_smtp_format()), + deferred=resultDeferred) + + return reactor.connectTCP('localhost', 4650, senderFactory) -- cgit v1.2.3