diff options
author | Carl Worth <cworth@cworth.org> | 2009-10-19 23:08:49 -0700 |
---|---|---|
committer | Carl Worth <cworth@cworth.org> | 2009-10-19 23:16:05 -0700 |
commit | ad784f38ce30d39b058325baf050eb784fb9a02e (patch) | |
tree | 2403422f5d17070ce77ff4fdf920a799d5803432 /database.cc | |
parent | b6dd413903370bd9b4f50428a32276f1f8457937 (diff) |
notmuch: Ignore files that don't look like email messages.
This is helpful for things like indexes that other mail programs
may have left around. It also means we can make the initial
instructions much easier, (the user need not worry about moving
away auxiliary files from some other email program).
Diffstat (limited to 'database.cc')
-rw-r--r-- | database.cc | 21 |
1 files changed, 18 insertions, 3 deletions
diff --git a/database.cc b/database.cc index efc38762..70f80f9f 100644 --- a/database.cc +++ b/database.cc @@ -479,6 +479,7 @@ notmuch_database_add_message (notmuch_database_t *notmuch, GPtrArray *parents, *thread_ids; const char *refs, *in_reply_to, *date, *header; + const char *from, *to, *subject; char *message_id; time_t time_value; @@ -487,10 +488,12 @@ notmuch_database_add_message (notmuch_database_t *notmuch, message = notmuch_message_open (filename); notmuch_message_restrict_headers (message, - "references", + "date", + "from", "in-reply-to", "message-id", - "date", + "references", + "subject", (char *) NULL); try { @@ -567,7 +570,19 @@ notmuch_database_add_message (notmuch_database_t *notmuch, doc.add_value (NOTMUCH_VALUE_DATE, Xapian::sortable_serialise (time_value)); - db->add_document (doc); + from = notmuch_message_get_header (message, "from"); + subject = notmuch_message_get_header (message, "subject"); + to = notmuch_message_get_header (message, "to"); + + if (from == NULL && + subject == NULL && + to == NULL) + { + notmuch_message_close (message); + return NOTMUCH_STATUS_FILE_NOT_EMAIL; + } else { + db->add_document (doc); + } } catch (const Xapian::Error &error) { fprintf (stderr, "A Xapian exception occurred: %s.\n", error.get_msg().c_str()); |