Skip classifying filtered messages

pull/200/head
M66B 4 years ago
parent efbf1df595
commit 8d4cfb2052

@ -3786,12 +3786,16 @@ class Core {
DB db = DB.getInstance(context); DB db = DB.getInstance(context);
try { try {
boolean executed = false;
for (EntityRule rule : rules) for (EntityRule rule : rules)
if (rule.matches(context, message, imessage)) { if (rule.matches(context, message, imessage)) {
rule.execute(context, message); rule.execute(context, message);
executed = true;
if (rule.stop) if (rule.stop)
break; break;
} }
if (executed)
EntityOperation.queue(context, message, EntityOperation.KEYWORD, MessageHelper.FLAG_FILTERED, true);
} catch (Throwable ex) { } catch (Throwable ex) {
Log.e(ex); Log.e(ex);
db.message().setMessageError(message.id, Log.formatThrowable(ex)); db.message().setMessageError(message.id, Log.formatThrowable(ex));

@ -104,6 +104,7 @@ public class MessageClassifier {
!classified.equals(folder.name) && !classified.equals(folder.name) &&
!TextUtils.isEmpty(message.msgid) && !TextUtils.isEmpty(message.msgid) &&
!message.hasKeyword(MessageHelper.FLAG_CLASSIFIED) && !message.hasKeyword(MessageHelper.FLAG_CLASSIFIED) &&
!message.hasKeyword(MessageHelper.FLAG_FILTERED) &&
!accountMsgIds.get(folder.account).contains(message.msgid) && !accountMsgIds.get(folder.account).contains(message.msgid) &&
!EntityFolder.JUNK.equals(folder.type)) { !EntityFolder.JUNK.equals(folder.type)) {
boolean pro = ActivityBilling.isPro(context); boolean pro = ActivityBilling.isPro(context);

@ -138,6 +138,7 @@ public class MessageHelper {
static final String FLAG_FORWARDED = "$Forwarded"; static final String FLAG_FORWARDED = "$Forwarded";
static final String FLAG_NOT_JUNK = "$NotJunk"; static final String FLAG_NOT_JUNK = "$NotJunk";
static final String FLAG_CLASSIFIED = "$Classified"; static final String FLAG_CLASSIFIED = "$Classified";
static final String FLAG_FILTERED = "$Filtered";
// https://www.iana.org/assignments/imap-jmap-keywords/imap-jmap-keywords.xhtml // https://www.iana.org/assignments/imap-jmap-keywords/imap-jmap-keywords.xhtml
// Not black listed: Gmail $Phishing // Not black listed: Gmail $Phishing
@ -145,6 +146,7 @@ public class MessageHelper {
MessageHelper.FLAG_FORWARDED, MessageHelper.FLAG_FORWARDED,
MessageHelper.FLAG_NOT_JUNK, MessageHelper.FLAG_NOT_JUNK,
MessageHelper.FLAG_CLASSIFIED, // FairEmail MessageHelper.FLAG_CLASSIFIED, // FairEmail
MessageHelper.FLAG_FILTERED, // FairEmail
"$MDNSent", // https://tools.ietf.org/html/rfc3503 "$MDNSent", // https://tools.ietf.org/html/rfc3503
"$SubmitPending", "$SubmitPending",
"$Submitted", "$Submitted",

Loading…
Cancel
Save