Abrir Wizard para enviar mail desde un boton en Odoo 14

En este caso el email sale directamente, no lo envia con retardo según lo tengamos configurado en los parámetros como pasaba en el post anterior.

El ejemplo completo te lo puedes bajar de: https://github.com/FoxOdoo/example_send_email/archive/refs/heads/main.zip

En un fichero view.xml ponemos:

<odoo>
<data>
<record id="send_mail_partner_form_inherit" model="ir.ui.view">
<field name="inherit_id" ref="base.view_partner_form"/>
<field name="model">res.partner</field>
<field name="arch" type="xml">
<!-- Añade un boton a la vista actual -->
<xpath expr="//sheet" position="before">
<header>
<button name="action_send_email" string="Enviar e-mail" type="object" class="oe_highlight"/>
</header>
</xpath>
</field>
</record>
</data>
</odoo>
Markup

En este caso (a diferencia) del post anterior no se necestia plantilla (template). 

IMPORTANTE: si lo estás probando en Odoo 15 tendrás que cambiar  get_object-reference por check_object_reference pues la anterior función ha desaparecido del ir.model

Nos creamos el modelo que realiza la acción:

# -*- encoding: utf-8 -*-
from odoo import models, fields, api

class res_partner(models.Model):
    _inherit = 'res.partner'

    def action_send_email(self):
        '''
        Esta función abre una ventana para escribir un email, con la plantilla por defecto.
        '''
   
        self.ensure_one()
        ir_model_data = self.env['ir.model.data']
        try:
            template_id = \
            ir_model_data.get_object_reference('send_email_wizard', 'email_template')[1]
        except ValueError:
            template_id = False
        try:
            compose_form_id = ir_model_data.get_object_reference('mail', 'email_compose_message_wizard_form')[1]
        except ValueError:
            compose_form_id = False
        ctx = {
                   'default_model': 'res.partner',
                   'default_res_id': self.ids[0],
                   'default_use_template': bool(template_id),
                   'default_template_id': template_id,
                   'default_composition_mode': 'comment',
        }
        return {
                   'name': ('Compose Email'),
                   'type': 'ir.actions.act_window',
                   'view_mode': 'form',
                   'res_model': 'mail.compose.message',
                   'views': [(compose_form_id, 'form')],
                   'view_id': compose_form_id,
                   'target': 'new',
                   'context': ctx,
        }