TF-3349 Escape messages when forward and reply email

This commit is contained in:
dab246
2024-12-16 15:39:33 +07:00
committed by Dat H. Pham
parent e859d977ee
commit 490196b36f
10 changed files with 196 additions and 24 deletions
@@ -27,6 +27,17 @@ extension EmailAddressExtension on EmailAddress {
return '';
}
String asFullStringWithLtGtCharacter() {
if (displayName.isNotEmpty && emailAddress.isNotEmpty) {
return '${displayName.capitalizeFirstEach} <$emailAddress>';
} else if (displayName.isNotEmpty) {
return displayName.capitalizeFirstEach;
} else if (emailAddress.isNotEmpty) {
return '<$emailAddress>';
}
return '';
}
String get emailAddress => email ?? '';
String get displayName => name ?? '';
@@ -1,3 +1,4 @@
import 'package:core/presentation/extensions/html_extension.dart';
import 'package:jmap_dart_client/jmap/mail/email/email_address.dart';
import 'package:model/mailbox/expand_mode.dart';
import 'package:model/extensions/email_address_extension.dart';
@@ -27,6 +28,18 @@ extension SetEmailAddressExtension on Set<EmailAddress>? {
return listEmail.isNotEmpty ? listEmail.join(', ') : '';
}
String toEscapeHtmlString(String separator) {
if (this?.isNotEmpty != true) return '';
final listEmail = this
!.map((emailAddress) => emailAddress.asFullStringWithLtGtCharacter().escapeLtGtHtmlString())
.toList();
return listEmail.isNotEmpty ? listEmail.join(separator) : '';
}
String toEscapeHtmlStringUseCommaSeparator() => toEscapeHtmlString(', ');
int numberEmailAddress() => this != null ? this!.length : 0;
List<EmailAddress> filterEmailAddress(String emailAddressNotExist) {