# HG changeset patch # User Goffi # Date 1357602398 -3600 # Node ID 89f9a50ce7bfb45b5debd7c75b29f3015130015b # Parent db7a03a33612a57427676d7c28c7020d2239ffb2 core, plugin imap, plugin smtp: fixed SMTP/IMAP integration. /!\ Profile need to be connected for IMAP server to work (will change in the future) diff -r db7a03a33612 -r 89f9a50ce7bf src/memory/memory.py --- a/src/memory/memory.py Mon Jan 07 23:54:17 2013 +0100 +++ b/src/memory/memory.py Tue Jan 08 00:46:38 2013 +0100 @@ -844,6 +844,9 @@ def getParamA(self, name, category, attr="value", profile_key='@DEFAULT@'): return self.params.getParamA(name, category, attr, profile_key) + def asyncGetParamA(self, name, category, attr="value", profile_key='@DEFAULT@'): + return self.params.asyncGetParamA(name, category, attr, profile_key) + def asyncGetStringParamA(self, name, category, attr="value", profile_key='@DEFAULT@'): return self.params.asyncGetStringParamA(name, category, attr, profile_key) diff -r db7a03a33612 -r 89f9a50ce7bf src/plugins/plugin_misc_imap.py --- a/src/plugins/plugin_misc_imap.py Mon Jan 07 23:54:17 2013 +0100 +++ b/src/plugins/plugin_misc_imap.py Tue Jan 08 00:46:38 2013 +0100 @@ -426,11 +426,10 @@ profiles = self.host.memory.getProfilesList() if not credentials.username in profiles: return defer.fail(cred_error.UnauthorizedLogin()) - password = self.host.memory.getParamA("Password", "Connection", profile_key=credentials.username) - return defer.maybeDeferred( - credentials.checkPassword, - password).addCallback( - self._cbPasswordMatch, credentials.username) + d = self.host.memory.asyncGetParamA("Password", "Connection", profile_key=credentials.username) + d.addCallback(lambda password: credentials.checkPassword(password)) + d.addCallback(self._cbPasswordMatch, credentials.username) + return d class ImapServerFactory(protocol.ServerFactory): protocol = imap4.IMAP4Server diff -r db7a03a33612 -r 89f9a50ce7bf src/plugins/plugin_misc_smtp.py --- a/src/plugins/plugin_misc_smtp.py Mon Jan 07 23:54:17 2013 +0100 +++ b/src/plugins/plugin_misc_smtp.py Tue Jan 08 00:46:38 2013 +0100 @@ -91,7 +91,7 @@ mail = Parser().parsestr("\n".join(self.message)) try: self.host.sendMessage(parseaddr(mail['to'].decode('utf-8','replace'))[1], mail.get_payload().decode('utf-8','replace'), #TODO: manage other charsets - subject=mail['subject'].decode('utf-8','replace'), type='normal', profile_key=self.profile) + subject=mail['subject'].decode('utf-8','replace'), mess_type='normal', profile_key=self.profile) except: exc_type, exc_value, exc_traceback = sys.exc_info() error(_("Can't send message: %s") % exc_value) #The email is invalid or incorreclty parsed