TF-1718 Check List-Unsubscribe in header of email & parsing to EmailUnsubscribe
(cherry picked from commit 9dc046a951e5198461178860c8ebe4bedff9062f)
This commit is contained in:
@@ -1,6 +1,8 @@
|
||||
|
||||
import 'dart:convert';
|
||||
|
||||
import 'package:collection/collection.dart';
|
||||
import 'package:core/utils/app_logger.dart';
|
||||
import 'package:jmap_dart_client/jmap/core/properties/properties.dart';
|
||||
import 'package:jmap_dart_client/jmap/mail/email/email.dart';
|
||||
import 'package:jmap_dart_client/jmap/mail/email/email_body_part.dart';
|
||||
@@ -11,6 +13,8 @@ import 'package:model/model.dart';
|
||||
|
||||
extension EmailExtension on Email {
|
||||
|
||||
static const String unsubscribeHeaderName = 'List-Unsubscribe';
|
||||
|
||||
String asString() => jsonEncode(toJson());
|
||||
|
||||
bool get hasRead => keywords?.containsKey(KeyWordIdentifier.emailSeen) == true;
|
||||
@@ -23,6 +27,14 @@ extension EmailExtension on Email {
|
||||
|
||||
bool get withAttachments => hasAttachment == true;
|
||||
|
||||
String get listUnsubscribe {
|
||||
final listUnsubscribe = headers?.firstWhereOrNull((header) => header.name == unsubscribeHeaderName);
|
||||
log('EmailExtension::listUnsubscribe: $listUnsubscribe');
|
||||
return listUnsubscribe?.value ?? '';
|
||||
}
|
||||
|
||||
bool get hasListUnsubscribe => listUnsubscribe.isNotEmpty;
|
||||
|
||||
bool hasReadReceipt(Map<MailboxId, PresentationMailbox> mapMailbox) {
|
||||
final mailboxCurrent = findMailboxContain(mapMailbox);
|
||||
return !hasMdnSent &&
|
||||
|
||||
Reference in New Issue
Block a user