Odoo Help


How to create email template using python

on 7/29/14, 11:58 PM 9,300 views


    I want to create a mail template in python as i need some dynamic values and send mail using that template. How can i create a mail.template from python side?



It will be good if you can explain the scenario, what exactly you want to achieve.

Mantavya Gajjar (mga)
on 7/30/14, 12:08 AM

Serpent Consulting Services Pvt. Ltd.

--Serpent Consulting Services Pvt. Ltd.--
| 6 6 8
Gandhinagar, India
--Serpent Consulting Services Pvt. Ltd.--

Serpent Consulting Services Pvt. Ltd. Your Odoo/OpenERP Solution, just an email away!

Serpent Consulting Services Pvt. Ltd.
On 7/30/14, 2:51 AM


You have to use create method of email.template object.

For e.g. if you want to create a template for sale order and want to send mail using that template than you have to write particular code inside your method

template_obj = self.pool.get('email.template')
group_model_id = self.pool.get('ir.model').search(cr, uid, [('model', '=', 'sale.order')])[0]
body_html = '''Message whatever you want to send'''
template_data = {
    'model_id': group_model_id,
    'name': 'Template Name',
    'subject' : 'Subject for your email',
    'body_html': body_html,
    'email_from' : '${object.user_id.email}',
    'email_to' : '${object.partner_id.email}',

template_id = template_obj.create(cr, uid, template_data, context=context)
template_obj.send_mail(cr, uid, template_id, ids[0], force_send=True, context=context)

It will send a mail with given values in dictionary.


sir, I have created a email template via openerp and added a context action... it works fine... but i want my button

on 11/29/14, 2:49 AM

Button should do the same action.... send emaill i think self.pool.get('email.template').send_mail(cr, uid,9,context[1], context,True, context=context) this may do.. but givew error.. please help me..

on 11/29/14, 2:54 AM

Mariusz Mizgier

--Mariusz Mizgier--
| 4 1 7
SOPOT, Poland
--Mariusz Mizgier--

OpenERP developer

Mariusz Mizgier
On 7/30/14, 1:22 AM

As far as I understood that question, you want to create a new mail, which will take some values from the current model and use that in HTML mail sent to the partner. You can easily do that, just go to the module base_calendar and look for example for _links_get function and its usage through the code.

About This Community

This platform is for beginners and experts willing to share their Odoo knowledge. It's not a forum to discuss ideas, but a knowledge base of questions and their answers.


Odoo Training Center

Access to our E-learning platform and experience all Odoo Apps through learning videos, exercises and Quizz.

Test it now

Question tools

2 follower(s)


Asked: 7/29/14, 11:58 PM
Seen: 9300 times
Last updated: 3/16/15, 8:10 AM