[IMP] ir.actions.server: improve code of email actions

bzr revid: rco@openerp.com-20121221163359-bfv218b315r3z9wr
This commit is contained in:
Raphael Collet 2012-12-21 17:33:59 +01:00
parent cfdaf8c50a
commit 940fc2fa85
1 changed files with 14 additions and 16 deletions

View File

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