[MERGE] lp:~serpent-consulting-services/openobject-server/trunk-956898-SerpentCS (enable multiple email addresses in server actions)

bzr revid: rco@openerp.com-20121221163755-saafbs7pb8bxyrsf
This commit is contained in:
Raphael Collet 2012-12-21 17:37:55 +01:00
commit 534b07c3c2
1 changed files with 14 additions and 13 deletions

View File

@ -614,16 +614,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 email_from:
_logger.debug('--email-from command line option is not specified, using a fallback value instead.')
if user.email:
@ -631,16 +621,27 @@ class actions_server(osv.osv):
else:
email_from = "%s@%s" % (user.login, gethostname())
try:
address = eval(str(action.email), cxt)
except Exception:
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")