From 6028e783c6250615055ed9e3c3b10bf7c748cf8d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luc=C3=ADa=20Echeverr=C3=ADa?= Date: Thu, 23 Jul 2026 10:23:15 +0200 Subject: [PATCH] [16.0][FIX] mail_composer_cc_bcc: email_to must be a list, not a joined string --- mail_composer_cc_bcc/models/mail_mail.py | 23 +++++++++++----------- mail_composer_cc_bcc/models/mail_thread.py | 6 +++--- 2 files changed, 15 insertions(+), 14 deletions(-) diff --git a/mail_composer_cc_bcc/models/mail_mail.py b/mail_composer_cc_bcc/models/mail_mail.py index 65140e498f..8143a83af7 100644 --- a/mail_composer_cc_bcc/models/mail_mail.py +++ b/mail_composer_cc_bcc/models/mail_mail.py @@ -17,16 +17,15 @@ def format_emails(partners): - emails = [ - tools.formataddr( - ( - p.name or "False", - p.email and tools.mail._normalize_email(p.email) or "False", - ) - ) + return [ + tools.formataddr((p.name or "", tools.mail._normalize_email(p.email))) for p in partners + if p.email ] - return ", ".join(emails) + + +def format_emails_str(partners): + return ", ".join(format_emails(partners)) class MailMail(models.Model): @@ -294,10 +293,12 @@ def _send_prepare_values(self, partner=None): partner_to_ids = [r.id for r in self.recipient_ids if r not in partners_cc_bcc] partner_to = self.env["res.partner"].browse(partner_to_ids) res["email_to"] = format_emails(partner_to) - res["email_cc"] = format_emails(self.recipient_cc_ids) - res["email_bcc"] = format_emails(self.recipient_bcc_ids) + res["email_cc"] = format_emails_str(self.recipient_cc_ids) + res["email_bcc"] = format_emails_str(self.recipient_bcc_ids) if res.get("email_to"): - res["email_to_normalized"] += tools.email_normalize_all(res["email_to"]) + res["email_to_normalized"] += tools.email_normalize_all( + format_emails_str(partner_to) + ) if res.get("email_cc"): res["email_to_normalized"] += tools.email_normalize_all(res["email_cc"]) if res.get("email_bcc"): diff --git a/mail_composer_cc_bcc/models/mail_thread.py b/mail_composer_cc_bcc/models/mail_thread.py index 55592e6e1b..348c33b628 100644 --- a/mail_composer_cc_bcc/models/mail_thread.py +++ b/mail_composer_cc_bcc/models/mail_thread.py @@ -3,7 +3,7 @@ from odoo import models -from .mail_mail import format_emails +from .mail_mail import format_emails_str class MailThread(models.AbstractModel): @@ -32,10 +32,10 @@ def _notify_by_email_get_base_mail_values(self, message, additional_values=None) ) partners_cc = context.get("partner_cc_ids", None) if partners_cc: - res["email_cc"] = format_emails(partners_cc) + res["email_cc"] = format_emails_str(partners_cc) partners_bcc = context.get("partner_bcc_ids", None) if partners_bcc: - res["email_bcc"] = format_emails(partners_bcc) + res["email_bcc"] = format_emails_str(partners_bcc) return res def _notify_get_recipients(self, message, msg_vals, **kwargs):