Skip to main content
Odoo Community Association

Mail Layout Force

Beta License: AGPL-3 OCA/mail Translate me on Weblate Try me on Runboat

Odoo will add a default email layout on most commercial communications.

The email layout is a QWeb view that ends up wrapping the message body when sending an email. It usually displays the related document reference, the company logo, and a small footer saying “Powered by Odoo”.

There are notably three main layouts used in Odoo, and the user can’t control when they’re used, as it’s hardcoded into the different applications.

  • mail.mail_notification_layout

  • mail.mail_notification_layout_with_responsible_signature

  • mail.mail_notification_light

This module allows to force a specific layout for a given email.template, effectively overwriting the one hardcoded by Odoo. Additionally, it enables forcing a custom layout for emails that do not use an existing email.template record (e.g., when sending an email from the chatter).

This allows you to fully customize the way Odoo emails are rendered and sent to your customers.

Table of contents

Configuration

To configure a forced layout for email templates:

  1. Go to Settings > Technical > Email > Email Templates

  2. Open the desired email.template record

  3. In the Settings tab, find the Force Layout field

You can leave it empty to use the default email layout (chosen by Odoo). You can force a custom email layout of your own. You can use the Mail: No-Layout notification template to prevent Odoo from adding a layout.

To configure a custom layout of your own, some technical knowledge is needed. You can see how the existing layouts are defined for details or inspiration:

  • mail.mail_notification_layout

  • mail.mail_notification_layout_with_responsible_signature

  • mail.mail_notification_light

To force a custom layout for emails that do not use an existing email.template record (e.g., emails sent from the chatter) or for cases where emails are sent directly via message_post without opening the mail composer (e.g., invoice send actions like action_invoice_sent), you can use the Layout Mapping feature:

  1. Go to Settings > Technical > User Interface > Views

  2. Copy the current layout (e.g., mail.mail_notification_layout_with_responsible_signature) to create a new custom layout, and customize it as needed

  3. Open the original layout view that you want to replace. Under the Layout Mapping tab:

    • Click Add a line

    • Set Substitute Layout to the new custom layout you created

    • Set Models if you want to apply the replacement only to specific models. If left empty, the email layout will be replaced for all models

Bug Tracker

Bugs are tracked on GitHub Issues. In case of trouble, please check there if your issue has already been reported. If you spotted it first, help us to smash it by providing a detailed and welcomed feedback.

Do not contact contributors directly about support or help with technical issues.

Credits

Authors

  • Camptocamp

Contributors

Maintainers

This module is maintained by the OCA.

Odoo Community Association

OCA, or the Odoo Community Association, is a nonprofit organization whose mission is to support the collaborative development of Odoo features and promote its widespread use.

Current maintainer:

ivantodorovich

This module is part of the OCA/mail project on GitHub.

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.

Release files for odoo-addon-mail-layout-force 18.0.1.0.0.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Built distribution (wheel)

Table of built distributions (wheels) for odoo-addon-mail-layout-force 18.0.1.0.0.3
File Interpreter ABI Platform
odoo_addon_mail_layout_force-18.0.1.0.0.3-py3-none-any.whl Python 3 none any Details

Release files / odoo_addon_mail_layout_force-18.0.1.0.0.3-py3-none-any.whl

Download URL odoo_addon_mail_layout_force-18.0.1.0.0.3-py3-none-any.whl
Size 34.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
61985e9d5ba934451d6e7645dc1a4fb0fc3be1dd55d0981eaebac5542554e8ba
BLAKE2b-256 checksum
How to use checksums
bf8eb9b6e007c05b328fc3c425313e275bdbcd3b6b18785eaea3b8634195fbb9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.3
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page