TF-3792 Fix cannot reply to email on Stalwart server

Signed-off-by: dab246 <tdvu@linagora.com>
This commit is contained in:
dab246
2025-06-19 16:13:52 +07:00
committed by Dat H. Pham
parent db80430879
commit 4ae1089915
4 changed files with 28 additions and 0 deletions
@@ -6,6 +6,7 @@ import 'package:dio/dio.dart';
import 'package:jmap_dart_client/jmap/mail/email/email.dart';
import 'package:jmap_dart_client/jmap/mail/email/email_body_part.dart';
import 'package:model/email/attachment.dart';
import 'package:model/extensions/set_email_body_part_extension.dart';
import 'package:model/upload/file_info.dart';
import 'package:tmail_ui_user/features/composer/data/datasource/composer_datasource.dart';
import 'package:tmail_ui_user/features/composer/domain/repository/composer_repository.dart';
@@ -64,6 +65,10 @@ class ComposerRepositoryImpl extends ComposerRepository {
emailContent = tupleContentInlineAttachments.value1;
emailAttachments.addAll(tupleContentInlineAttachments.value2);
if (emailAttachments.isNotEmpty) {
emailAttachments = emailAttachments.onlyUseBlobIdOrPartId();
}
emailContent = await removeCollapsedExpandedSignatureEffect(emailContent: emailContent);
final userAgent = await _applicationManager.generateApplicationUserAgent();
@@ -11,4 +11,19 @@ extension EmailBodyPartExtension on EmailBodyPart {
cid: cid,
charset: charset,
disposition: disposition.toContentDisposition());
EmailBodyPart onlyUseBlobIdOrPartId() => EmailBodyPart(
partId: blobId == null ? partId : null,
blobId: blobId,
size: size,
name: name,
type: type,
cid: cid,
charset: charset,
disposition: disposition,
headers: headers,
language: language,
location: location,
subParts: subParts,
);
}
@@ -0,0 +1,7 @@
import 'package:jmap_dart_client/jmap/mail/email/email_body_part.dart';
import 'package:model/extensions/email_body_part_extension.dart';
extension SetEmailBodyPartExtension on Set<EmailBodyPart> {
Set<EmailBodyPart> onlyUseBlobIdOrPartId() =>
map((emailBodyPart) => emailBodyPart.onlyUseBlobIdOrPartId()).toSet();
}
+1
View File
@@ -61,6 +61,7 @@ export 'extensions/session_extension.dart';
export 'extensions/utc_date_extension.dart';
export 'extensions/contact_support_capability_extension.dart';
export 'extensions/list_id_extension.dart';
export 'extensions/set_email_body_part_extension.dart';
// Identity
export 'identity/identity_request_dto.dart';
export 'mailbox/expand_mode.dart';