summaryrefslogtreecommitdiff
path: root/src/leap/bitmask/core/mail_services.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/leap/bitmask/core/mail_services.py')
-rw-r--r--src/leap/bitmask/core/mail_services.py42
1 files changed, 30 insertions, 12 deletions
diff --git a/src/leap/bitmask/core/mail_services.py b/src/leap/bitmask/core/mail_services.py
index 9c34c120..20d6a342 100644
--- a/src/leap/bitmask/core/mail_services.py
+++ b/src/leap/bitmask/core/mail_services.py
@@ -33,19 +33,31 @@ from twisted.logger import Logger
from leap.common.events import catalog, emit_async
from leap.common.files import check_and_fix_urw_only
-from leap.bitmask.mua import pixelizer
-from leap.bitmask.hooks import HookableService
+
from leap.bitmask.bonafide import config
-from leap.bitmask.keymanager import KeyManager
-from leap.bitmask.keymanager.errors import KeyNotFound
-from leap.bitmask.keymanager.validation import ValidationLevels
-from leap.bitmask.mail.constants import INBOX_NAME
-from leap.bitmask.mail.mail import Account
-from leap.bitmask.mail.imap import service as imap_service
-from leap.bitmask.mail.smtp import service as smtp_service
-from leap.bitmask.mail.incoming.service import IncomingMail
-from leap.bitmask.mail.incoming.service import INCOMING_CHECK_PERIOD
+from leap.bitmask.hooks import HookableService
from leap.bitmask.util import get_gpg_bin_path, merge_status
+
+try:
+ from leap.bitmask.keymanager import KeyManager
+ from leap.bitmask.keymanager.errors import KeyNotFound
+ from leap.bitmask.keymanager.validation import ValidationLevels
+ from leap.bitmask.mail.constants import INBOX_NAME
+ from leap.bitmask.mail.mail import Account
+ from leap.bitmask.mail.imap import service as imap_service
+ from leap.bitmask.mail.smtp import service as smtp_service
+ from leap.bitmask.mail.incoming.service import IncomingMail
+ from leap.bitmask.mail.incoming.service import INCOMING_CHECK_PERIOD
+ HAS_MAIL = True
+except ImportError:
+ HAS_MAIL = False
+
+try:
+ from leap.bitmask.mua import pixelizer
+ HAS_MUA = True
+except ImportError:
+ HAS_MUA = False
+
from leap.soledad.client.api import Soledad
from leap.bitmask.core.uuid_map import UserMap
@@ -628,7 +640,7 @@ class StandardMailService(service.MultiService, HookableService):
def _maybe_start_pixelated(self, passthrough, userid, soledad, keymanager):
incoming = self.getServiceNamed('incoming_mail')
account = incoming.getServiceNamed(userid).account
- if pixelizer.HAS_PIXELATED:
+ if HAS_MUA and pixelizer.HAS_PIXELATED:
pixelizer.start_pixelated_user_agent(
userid, soledad, keymanager, account)
return passthrough
@@ -646,6 +658,9 @@ class IMAPService(service.Service):
super(IMAPService, self).__init__()
def startService(self):
+ if not HAS_MAIL:
+ self.log.info('Mail module not found')
+ return
self.log.info('Starting IMAP Service')
port, factory = imap_service.run_service(
self._soledad_sessions, factory=self._factory)
@@ -686,6 +701,9 @@ class SMTPService(service.Service):
super(SMTPService, self).__init__()
def startService(self):
+ if not HAS_MAIL:
+ self.log.info('Mail module not found')
+ return
self.log.info('starting smtp service')
port, factory = smtp_service.run_service(
self._soledad_sessions,