From 940fc2fa858a938eab9c16a6a10ec2477db3da70 Mon Sep 17 00:00:00 2001 From: Raphael Collet Date: Fri, 21 Dec 2012 17:33:59 +0100 Subject: [PATCH] [IMP] ir.actions.server: improve code of email actions bzr revid: rco@openerp.com-20121221163359-bfv218b315r3z9wr --- openerp/addons/base/ir/ir_actions.py | 30 +++++++++++++--------------- 1 file changed, 14 insertions(+), 16 deletions(-) diff --git a/openerp/addons/base/ir/ir_actions.py b/openerp/addons/base/ir/ir_actions.py index 77eeb8d58f3..908dd86fa19 100644 --- a/openerp/addons/base/ir/ir_actions.py +++ b/openerp/addons/base/ir/ir_actions.py @@ -660,19 +660,6 @@ class actions_server(osv.osv): if action.state == 'email': email_from = config['email_from'] - address = str(action.email) - try: - address = eval(str(action.email), cxt) - except: - pass - - if not address: - _logger.info('No partner email address specified, not sending any email.') - continue - - if not isinstance(address, tuple) and not isinstance(address, list): - address = [address] - if not email_from: _logger.debug('--email-from command line option is not specified, using a fallback value instead.') if user.user_email: @@ -680,16 +667,27 @@ class actions_server(osv.osv): else: email_from = "%s@%s" % (user.login, gethostname()) + try: + address = eval(str(action.email), cxt) + except: + address = str(action.email) + + if not address: + _logger.info('No partner email address specified, not sending any email.') + continue + + # handle single and multiple recipient addresses + addresses = address if isinstance(address, (tuple, list)) else [address] subject = self.merge_message(cr, uid, action.subject, action, context) body = self.merge_message(cr, uid, action.message, action, context) ir_mail_server = self.pool.get('ir.mail_server') - msg = ir_mail_server.build_email(email_from, address, subject, body) + msg = ir_mail_server.build_email(email_from, addresses, subject, body) res_email = ir_mail_server.send_email(cr, uid, msg) if res_email: - _logger.info('Email successfully sent to: %s', address) + _logger.info('Email successfully sent to: %s', addresses) else: - _logger.warning('Failed to send email to: %s', address) + _logger.warning('Failed to send email to: %s', addresses) if action.state == 'trigger': wf_service = netsvc.LocalService("workflow")