Create Email Template and Send Email Programmatically in Odoo 1x
Odoo has a powerful email sending module that allows you to create and send emails programmatically. In this blog post, we will show you how to create an email template and send it using the Odoo email sending module.
Create Email Template
<?xml version="1.0" encoding="utf-8"?> <odoo> <data noupdate="1"> <!--Email template --> <record id="my_email_template" model="mail.template"> <field name="name">First Email Template</field> <field name="email_from">${object.name and object.company_id.email or ''}</field> <field name="subject">New Feedback from ${object.company_id.name}</field> <field name="model_id" ref="my_module.model_custom_model"/> <field name="auto_delete" eval="True"/> <field name="lang">${object.address_home_id.lang}</field> <field name="body_html"><![CDATA[ Dear ${(object.name)}, <br/><br/> There is a new feedback on your website. You can read it here. ]]></field> </record> </data> </odoo>
Send Email Programmatically
class MyModel(models.Model): _name = 'my.model' _description = 'My Model' @api.multi def send_email(self): body_html = 'Hi {},<br/><br/>'.format(someone_name) body_html += '<div>The body goes here</div>' email_values = { 'email_to': '[email protected]', 'email_from': '[email protected]', 'body_html': body_html, } template_id = self.env['mail.template'].search([('model', '=', 'custom.model')], limit=1) template_id.send_mail(template_id.id, force_send=True, email_values=email_values)