diff --git a/lib/features/composer/presentation/composer_controller.dart b/lib/features/composer/presentation/composer_controller.dart index 876f5db22..955fe583e 100644 --- a/lib/features/composer/presentation/composer_controller.dart +++ b/lib/features/composer/presentation/composer_controller.dart @@ -292,7 +292,7 @@ class ComposerController extends BaseController { : ''; final trustAsHtml = arguments.emailContents - ?.map((emailContent) => emailContent.content) + ?.map((emailContent) => emailContent.asHtml) .toList() .join('
') ?? ''; diff --git a/model/lib/email/email_content.dart b/model/lib/email/email_content.dart index 9c995b217..0163e9654 100644 --- a/model/lib/email/email_content.dart +++ b/model/lib/email/email_content.dart @@ -12,4 +12,19 @@ class EmailContent with EquatableMixin { @override List get props => [type, content]; +} + +extension EmailContentExtension on EmailContent { + String get asHtml { + if (type == EmailContentType.textPlain) { + return content + .replaceAll("'", r"\'") + .replaceAll('"', r'\"') + .replaceAll('\r', '') + .replaceAll('\r\n', '') + .replaceAll('\n', '
') + .replaceAll('\n\n', '
'); + } + return content; + } } \ No newline at end of file