aboutsummaryrefslogtreecommitdiffstats
path: root/mail/mail-session.c
diff options
context:
space:
mode:
Diffstat (limited to 'mail/mail-session.c')
-rw-r--r--mail/mail-session.c18
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);