diff --git a/extension/js/common/api/account-servers/external-service.ts b/extension/js/common/api/account-servers/external-service.ts index 41bd9cba62c..ec9b478c24d 100644 --- a/extension/js/common/api/account-servers/external-service.ts +++ b/extension/js/common/api/account-servers/external-service.ts @@ -146,9 +146,9 @@ export class ExternalService extends Api { JSON.stringify({ associateReplyToken, from, - to: (recipients.to || []).map(Str.formatEmailWithOptionalName).map(Xss.stripEmojis), - cc: (recipients.cc || []).map(Str.formatEmailWithOptionalName).map(Xss.stripEmojis), - bcc: (recipients.bcc || []).map(Str.formatEmailWithOptionalName).map(Xss.stripEmojis), + to: (recipients.to || []).map(Str.formatEmailWithOptionalName).map(Xss.stripEmojis).map(Str.replaceAccentedChars), + cc: (recipients.cc || []).map(Str.formatEmailWithOptionalName).map(Xss.stripEmojis).map(Str.replaceAccentedChars), + bcc: (recipients.bcc || []).map(Str.formatEmailWithOptionalName).map(Xss.stripEmojis).map(Str.replaceAccentedChars), }) ), }); diff --git a/extension/js/common/core/common.ts b/extension/js/common/core/common.ts index 6aac74e249f..5bd479a712d 100644 --- a/extension/js/common/core/common.ts +++ b/extension/js/common/core/common.ts @@ -121,6 +121,13 @@ export class Str { return str.replace(/[.~!$%^*=?]/gi, ''); }; + public static replaceAccentedChars = (str: string) => { + /* + * hotfix for issue https://github.com/FlowCrypt/enterprise-server/issues/6264 + */ + return str.normalize('NFD').replace(/[\u0300-\u036f]/g, ''); + }; + public static formatEmailWithOptionalName = (emailParts: EmailParts): string => { return Str.formatEmailWithOptionalNameEx(emailParts); }; @@ -281,6 +288,7 @@ export class Str { public static stripPgpOrGpgExtensionIfPresent = (filename: string) => { return filename.replace(/\.(pgp|gpg)$/i, ''); }; + private static formatEmailWithOptionalNameEx = ({ email, name }: EmailParts, forceBrackets?: boolean): string => { if (name) { return `${Str.rmSpecialCharsKeepUtf(name, 'ALLOW-SOME')} <${email}>`;