|
|
""" Compute formatted email for partner, using formataddr. Be defensive
in computation, notably
* double format: if email already holds a formatted email like
'Name' <email@domain.com> we should not use it as it to compute
email formatted like "Name <'Name' <email@domain.com>>";
* multi emails: sometimes this field is used to hold several addresses
like email1@domain.com, email2@domain.com. We currently let this value
untouched, but remove any formatting from multi emails;
* invalid email: if something is wrong, keep it in email_formatted as
this eases management and understanding of failures at mail.mail,
mail.notification and mailing.trace level;
* void email: email_formatted is False, as we cannot do anything with
it;
"""
self.email_formatted = False
for partner in self:
emails_normalized = tools.email_normalize_all(partner.email)
if emails_normalized:
# note: multi-email input leads to invalid email like "Name" <email1, email2>
# but this is current behavior in Odoo 14+ and some servers allow it
partner.email_formatted = tools.formataddr((
partner.name or u"False",
','.join(emails_normalized)
))
elif partner.email:
partner.email_formatted = tools.formataddr((
partner.name or u"False",
partner.email
))
|
|