diff options
Diffstat (limited to 'mail/mail-session.c')
-rw-r--r-- | mail/mail-session.c | 18 |
1 files changed, 11 insertions, 7 deletions
diff --git a/mail/mail-session.c b/mail/mail-session.c index 58773513c4..61adfa812c 100644 --- a/mail/mail-session.c +++ b/mail/mail-session.c @@ -40,7 +40,6 @@ #include "filter/filter-context.h" #include "filter/filter-filter.h" #include "mail.h" -#include "mail-component.h" #include "mail-config.h" #include "mail-session.h" #include "mail-tools.h" @@ -48,6 +47,7 @@ #include "mail-ops.h" #include "e-util/e-passwords.h" #include "e-util/e-msgport.h" +#include "em-junk-filter.h" #define d(x) @@ -594,7 +594,7 @@ main_get_filter_driver (CamelSession *session, const char *type, CamelException gconf = mail_config_get_gconf_client (); - user = g_strdup_printf ("%s/mail/filters.xml", mail_component_peek_base_directory (mail_component_peek ())); + user = g_strdup_printf ("%s/filters.xml", evolution_dir); system = EVOLUTION_PRIVDATADIR "/filtertypes.xml"; fc = (RuleContext *) filter_context_new (); rule_context_load (fc, system, user); @@ -626,6 +626,9 @@ main_get_filter_driver (CamelSession *session, const char *type, CamelException fsearch = g_string_new (""); faction = g_string_new (""); + + /* implicit junk check as 1st rule */ + camel_filter_driver_add_rule (driver, "Junk check", "(junk-test)", "(begin (set-system-flag \"junk\"))"); /* add the user-defined rules next */ while ((rule = rule_context_next_rule (fc, rule, type))) { @@ -634,7 +637,6 @@ main_get_filter_driver (CamelSession *session, const char *type, CamelException filter_rule_build_code (rule, fsearch); filter_filter_build_action ((FilterFilter *) rule, faction); - camel_filter_driver_add_rule (driver, rule->name, fsearch->str, faction->str); } @@ -744,17 +746,19 @@ mail_session_forget_password (const char *key) } void -mail_session_init (const char *base_directory) +mail_session_init (void) { char *camel_dir; - - if (camel_init (base_directory, TRUE) != 0) + + if (camel_init (evolution_dir, TRUE) != 0) exit (0); session = CAMEL_SESSION (camel_object_new (MAIL_SESSION_TYPE)); - camel_dir = g_strdup_printf ("%s/mail", base_directory); + camel_dir = g_strdup_printf ("%s/mail", evolution_dir); camel_session_construct (session, camel_dir); + + session->junk_plugin = CAMEL_JUNK_PLUGIN (em_junk_filter_get_plugin ()); /* The shell will tell us to go online. */ camel_session_set_online ((CamelSession *) session, FALSE); |