how to send email when click on the function?
Odoo is the world's easiest all-in-one management software.
It includes hundreds of business apps:
- CRM
- e-Commerce
- Accounting
- Inventory
- PoS
- Project management
- MRP
This question has been flagged
Aneesh,
Odoo is great again for another reason, that is you can always study an existing module like sale/account where the email sending is possible based on button call.
Thanks.
you can use email function inside any function (button function or any function) :
this is an example for button function i used in crm module :
def set_approve(self, cr, uid, ids,context=None):
res_id = self.read(cr, uid, ids, ['boq_item_ids'], context)[0]['id']
email_obj = self.pool.get('email.template')
user_obj = self.pool.get('res.users').browse(cr, uid, uid)
template_ids = email_obj.search(cr, uid, [('name', '=', 'Opportunity approved')])
email = email_obj.browse(cr, uid, template_ids[0])
email_obj.write(cr, uid, template_ids, {'email_from': email.email_from,
'email_to': email.email_to,
'subject': email.subject,
'body_html': email.body_html,
'email_recipients': email.email_recipients})
email_obj.send_mail(cr, uid, template_ids[0], res_id, True, context=context)
stage_id = self.get_stageid(cr, uid, [('state', '=', 'approved')], context=context)
a = fields.datetime.now()
b = self.pool.get('crm.lead').read(cr, uid, ids, context=context)
c = b[0]['date_stage_waiting']
timedelta = 0
if c != 0:
DATETIME_FORMAT = "%Y-%m-%d %H:%M:%S"
a = datetime.datetime.strptime(a, DATETIME_FORMAT)
c = datetime.datetime.strptime(c, DATETIME_FORMAT)
timedelta = a - c
if stage_id:
self.write(cr, uid, ids, {'stage_id': stage_id, 'date_stage_approved': a, 'diff_waiting': timedelta}, context=context)
return True
NB : 1) donot forget to create email template with name as in your function
2) configure your outgoing mail server