Thread: [PyWebMail-Checkins] webmail/webmail settings.py,1.18,1.19
Status: Beta
Brought to you by:
dubnerm
From: Michael D. <du...@us...> - 2007-12-08 08:03:05
|
Update of /cvsroot/pywebmail/webmail/webmail In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv14030 Modified Files: settings.py Log Message: support outbox - message sending backends Index: settings.py =================================================================== RCS file: /cvsroot/pywebmail/webmail/webmail/settings.py,v retrieving revision 1.18 retrieving revision 1.19 diff -C2 -d -r1.18 -r1.19 *** settings.py 16 Jul 2007 22:02:53 -0000 1.18 --- settings.py 8 Dec 2007 08:03:08 -0000 1.19 *************** *** 26,29 **** --- 26,30 ---- self.mailbox_names = None self.mailbox_info = {} + self.outbox_info = {} def auto_check_from_string(self, s): *************** *** 54,67 **** return self.mailbox_names ! def get_backend_name(self, mailbox_info): backend = mailbox_info.get('backend', None) if backend is None: ! backend = webmail.backends.get_default_backend(mailbox_info) return backend def create_mailbox(self, mailbox_info): auto_check = mailbox_info.get('auto_check','0').lower() auto_check = self.auto_check_from_string(auto_check) ! backend = self.get_backend_name(mailbox_info) backend_module = webmail.backends.get_backend_module(backend) assert backend_module, 'Unknown backend '+backend --- 55,69 ---- return self.mailbox_names ! def get_mailbox_backend_name(self, mailbox_info): backend = mailbox_info.get('backend', None) if backend is None: ! backend = webmail.backends.get_default_mailbox_backend(mailbox_info) return backend + get_backend_name = get_mailbox_backend_name def create_mailbox(self, mailbox_info): auto_check = mailbox_info.get('auto_check','0').lower() auto_check = self.auto_check_from_string(auto_check) ! backend = self.get_mailbox_backend_name(mailbox_info) backend_module = webmail.backends.get_backend_module(backend) assert backend_module, 'Unknown backend '+backend *************** *** 110,113 **** --- 112,149 ---- return filter(self.good_mailbox_name, self.mailbox_names) + def get_outbox_backend_name(self, mailbox_info): + backend = mailbox_info.get('outbox', None) + if backend is None: + backend = webmail.backends.get_default_outbox_backend(mailbox_info) + return backend + + def create_outbox(self, outbox_info): + backend = self.get_outbox_backend_name(outbox_info) + backend_module = webmail.backends.get_backend_module(backend) + assert backend_module, 'Unknown backend '+backend + outbox = backend_module.outbox_factory(self, outbox_info) + outbox.initial_info = outbox_info + return outbox + + def get_outbox_info_by_name(self, outbox_name): + outbox_name = outbox_name.strip() + if self.outbox_info.has_key(outbox_name): + return self.outbox_info[outbox_name] + if not self.config.config.has_section('mailbox_'+outbox_name): + log.error('Mailbox %s not found', outbox_name) + outbox_info = None + else: + outbox_info = webmail.utils.ConfigSection(self.config.config, 'mailbox_'+outbox_name) + self.outbox_info[outbox_name] = outbox_info + return outbox_info + + def get_outbox_by_name(self, outbox_name, additional_info=None): + outbox_info = self.get_outbox_info_by_name(outbox_name) + if outbox_info is None: + return None + if additional_info is not None: + outbox_info = webmail.utils.XMergeDicts(additional_info, outbox_info) + return self.create_outbox(outbox_info) + class MailboxesListSetup(MailboxesListSetupMixin, webmail.utils.xgetopt.Setup): def __init__(self, argv, progname=None): |