enum mail_log_field fields;
enum mail_log_event events;
+ bool cached_only;
};
struct mail_log_message {
str = mail_user_plugin_getenv(user, "mail_log_events");
muser->events = str == NULL ? MAIL_LOG_DEFAULT_EVENTS :
mail_log_parse_events(str);
+
+ muser->cached_only =
+ mail_user_plugin_getenv_bool(user, "mail_log_cached_only");
}
static void mail_log_append_mailbox_name(string_t *str, struct mail *mail)
}
T_BEGIN {
+ enum mail_lookup_abort orig_lookup_abort = mail->lookup_abort;
+
+ if (event != MAIL_LOG_EVENT_SAVE && muser->cached_only)
+ mail->lookup_abort = MAIL_LOOKUP_ABORT_NOT_IN_CACHE;
mail_log_append_mail_message_real(ctx, mail, event, desc);
+ mail->lookup_abort = orig_lookup_abort;
} T_END;
}