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")