diff --git a/lib/features/email/presentation/controller/single_email_controller.dart b/lib/features/email/presentation/controller/single_email_controller.dart index 272e9ce0f..2bd204816 100644 --- a/lib/features/email/presentation/controller/single_email_controller.dart +++ b/lib/features/email/presentation/controller/single_email_controller.dart @@ -261,8 +261,8 @@ class SingleEmailController extends BaseController with AppLoaderMixin { if (currentEmail != null) { final currentMailbox = getMailboxContain(currentEmail!); log('SingleEmailController::_getAllIdentitiesSuccess():currentMailbox: $currentMailbox'); - if (currentMailbox != null && currentMailbox.isPersonal == false) { - _setUpDefaultIdentityForTeamMailbox(success.identities!, currentMailbox); + if (_isBelongToTeamMailboxes(currentMailbox)) { + _setUpDefaultIdentityForTeamMailbox(success.identities!, currentMailbox!); } else { _setUpDefaultIdentity(success.identities!); } @@ -272,6 +272,10 @@ class SingleEmailController extends BaseController with AppLoaderMixin { } } + bool _isBelongToTeamMailboxes(PresentationMailbox? presentationMailbox) { + return presentationMailbox != null && presentationMailbox.isPersonal == false; + } + void _setUpDefaultIdentityForTeamMailbox(List identities, PresentationMailbox currentMailbox) { final matchedTeamMailboxIdentity = identities.firstWhereOrNull((identity) => identity.email == currentMailbox.emailTeamMailBoxes); if (matchedTeamMailboxIdentity != null) { @@ -971,7 +975,9 @@ class SingleEmailController extends BaseController with AppLoaderMixin { return; } - final mdnToSender = _generateMDN(context, currentEmail!, userProfile); + final receiverEmailAddress = _getReceiverEmailAddress(currentEmail!) ?? userProfile.email; + log('SingleEmailController::_handleSendReceiptToSenderAction():receiverEmailAddress: $receiverEmailAddress'); + final mdnToSender = _generateMDN(context, currentEmail!, receiverEmailAddress); final sendReceiptRequest = SendReceiptToSenderRequest( mdn: mdnToSender, identityId: _identitySelected!.id!, @@ -981,8 +987,17 @@ class SingleEmailController extends BaseController with AppLoaderMixin { consumeState(_sendReceiptToSenderInteractor!.execute(accountId, sendReceiptRequest)); } - MDN _generateMDN(BuildContext context, PresentationEmail email, UserProfile userProfile) { - final receiverEmailAddress = userProfile.email; + String? _getReceiverEmailAddress(PresentationEmail presentationEmail) { + final currentMailbox = getMailboxContain(presentationEmail); + if (_isBelongToTeamMailboxes(currentMailbox)) { + return currentMailbox!.emailTeamMailBoxes; + } else { + return null; + } + } + + MDN _generateMDN(BuildContext context, PresentationEmail email, String emailAddress) { + final receiverEmailAddress = emailAddress; final subjectEmail = email.subject ?? ''; final timeCurrent = DateTime.now(); final timeAsString = '${timeCurrent.formatDate(