summaryrefslogtreecommitdiff
path: root/service/pixelated
diff options
context:
space:
mode:
authorJefferson Stachelski <jstachel@thoughtworks.com>2015-11-04 18:45:03 -0200
committerJefferson Stachelski <jstachel@thoughtworks.com>2015-11-04 18:46:20 -0200
commit50f599dcc5297b3b29827b2ac02e6a9885b52d62 (patch)
tree76f8f483c3dfd83736e7e9ae3798ee838336e920 /service/pixelated
parent4be8c5dbb1a84058dc8f411783dd5decda3ff2a2 (diff)
Issue #499 - removed the local SMTP
Diffstat (limited to 'service/pixelated')
-rw-r--r--service/pixelated/adapter/services/mail_sender.py23
-rw-r--r--service/pixelated/bitmask_libraries/session.py11
-rw-r--r--service/pixelated/bitmask_libraries/smtp.py40
-rw-r--r--service/pixelated/config/services.py8
4 files changed, 7 insertions, 75 deletions
diff --git a/service/pixelated/adapter/services/mail_sender.py b/service/pixelated/adapter/services/mail_sender.py
index 4ffb76b0..bcbf331c 100644
--- a/service/pixelated/adapter/services/mail_sender.py
+++ b/service/pixelated/adapter/services/mail_sender.py
@@ -84,26 +84,3 @@ class MailSender(object):
def _create_twisted_smtp_recipient(self, recipient):
return User(str(recipient), NOT_NEEDED, NOT_NEEDED, NOT_NEEDED)
-
-
-class LocalSmtpMailSender(object):
-
- def __init__(self, account_email_address, smtp):
- self.smtp = smtp
- self.account_email_address = account_email_address
-
- def sendmail(self, mail):
- if self.smtp.ensure_running():
- recipients = flatten([mail.to, mail.cc, mail.bcc])
- result_deferred = Deferred()
- sender_factory = SMTPSenderFactory(
- fromEmail=self.account_email_address,
- toEmail=set([parseaddr(recipient)[1] for recipient in recipients]),
- file=StringIO(mail.to_smtp_format()),
- deferred=result_deferred)
-
- reactor.connectTCP('localhost', self.smtp.local_smtp_port_number,
- sender_factory)
-
- return result_deferred
- return fail(SMTPDownException())
diff --git a/service/pixelated/bitmask_libraries/session.py b/service/pixelated/bitmask_libraries/session.py
index 3f8e6de6..53f35008 100644
--- a/service/pixelated/bitmask_libraries/session.py
+++ b/service/pixelated/bitmask_libraries/session.py
@@ -23,10 +23,10 @@ from twisted.internet import reactor, defer
from pixelated.bitmask_libraries.certs import LeapCertificate
from pixelated.adapter.mailstore import LeapMailStore
from leap.mail.incoming.service import IncomingMail
-from leap.auth import SRPAuth
from leap.mail.imap.account import IMAPAccount
+from leap.auth import SRPAuth
from .nicknym import NickNym
-from .smtp import LeapSmtp, LeapSMTPConfig
+from .smtp import LeapSMTPConfig
from .soledad import SoledadSessionFactory
from leap.common.events import (
@@ -62,8 +62,8 @@ class LeapSession(object):
- ``incoming_mail_fetcher`` Background job for fetching incoming mails from LEAP server (LeapIncomingMail)
"""
- def __init__(self, provider, user_auth, mail_store, soledad_session, nicknym, smtp):
- self.smtp = smtp
+ def __init__(self, provider, user_auth, mail_store, soledad_session, nicknym, smtp_config):
+ self.smtp_config = smtp_config
self.config = provider.config
self.provider = provider
self.user_auth = user_auth
@@ -184,9 +184,8 @@ class LeapSessionFactory(object):
smtp_host, smtp_port = self._provider.smtp_info()
smtp_config = LeapSMTPConfig(account_email, self._smtp_client_cert_path(), smtp_host, smtp_port)
- smtp = LeapSmtp(smtp_config, nicknym.keymanager)
- return LeapSession(self._provider, auth, mail_store, soledad, nicknym, smtp)
+ return LeapSession(self._provider, auth, mail_store, soledad, nicknym, smtp_config)
def _download_smtp_cert(self, auth):
cert_path = self._smtp_client_cert_path()
diff --git a/service/pixelated/bitmask_libraries/smtp.py b/service/pixelated/bitmask_libraries/smtp.py
index f4ab00f7..e05ba51a 100644
--- a/service/pixelated/bitmask_libraries/smtp.py
+++ b/service/pixelated/bitmask_libraries/smtp.py
@@ -14,8 +14,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/>.
import logging
-import random
-from leap.mail.smtp import setup_smtp_gateway
logger = logging.getLogger(__name__)
@@ -28,41 +26,3 @@ class LeapSMTPConfig(object):
self.cert_path = cert_path
self.remote_smtp_host = remote_smtp_host
self.remote_smtp_port = remote_smtp_port
-
-
-class LeapSmtp(object):
-
- def __init__(self, smtp_config, keymanager=None):
- self.local_smtp_port_number = random.randrange(12000, 16000)
- self._smtp_config = smtp_config
- self._keymanager = keymanager
- self._local_smtp_service_socket = None
- self._local_smtp_service = None
-
- def start(self):
- self._local_smtp_service, self._local_smtp_service_socket = setup_smtp_gateway(
- port=self.local_smtp_port_number,
- userid=str(self._smtp_config.account_email),
- keymanager=self._keymanager,
- smtp_host=self._smtp_config.remote_smtp_host.encode('UTF-8'),
- smtp_port=self._smtp_config.remote_smtp_port,
- smtp_cert=self._smtp_config.cert_path,
- smtp_key=self._smtp_config.cert_path,
- encrypted_only=False
- )
-
- def ensure_running(self):
- if not self._local_smtp_service:
- try:
- self.start()
- except:
- logger.warning("Couldn't start the SMTP server now, will try again when the user tries to use it")
- return False
- return True
-
- def stop(self):
- if self._local_smtp_service is not None:
- self._local_smtp_service_socket.stopListening()
- self._local_smtp_service.doStop()
- self._local_smtp_service_socket = None
- self._local_smtp_service = None
diff --git a/service/pixelated/config/services.py b/service/pixelated/config/services.py
index e4bf394c..65a67a3d 100644
--- a/service/pixelated/config/services.py
+++ b/service/pixelated/config/services.py
@@ -1,7 +1,7 @@
from pixelated.adapter.mailstore.searchable_mailstore import SearchableMailStore
from pixelated.adapter.services.mail_service import MailService
from pixelated.adapter.model.mail import InputMail
-from pixelated.adapter.services.mail_sender import LocalSmtpMailSender, MailSender # , MailSender
+from pixelated.adapter.services.mail_sender import MailSender
from pixelated.adapter.search import SearchEngine
from pixelated.adapter.services.draft_service import DraftService
from pixelated.adapter.listeners.mailbox_indexer_listener import listen_all_mailboxes
@@ -55,11 +55,7 @@ class Services(object):
self.search_engine = search_engine
def setup_mail_service(self, leap_session, search_engine):
- # pixelated_mail_sender = LocalSmtpMailSender(
- # leap_session.account_email(),
- # leap_session.smtp)
-
- pixelated_mail_sender = MailSender(leap_session.smtp._smtp_config, leap_session.nicknym.keymanager)
+ pixelated_mail_sender = MailSender(leap_session.smtp_config, leap_session.nicknym.keymanager)
return MailService(
pixelated_mail_sender,