summaryrefslogtreecommitdiff
path: root/lib/message
AgeCommit message (Collapse)Author
2026-04-10message: improve attachment heuristicsDirk-Jan C. Binnema
Do not consider calender-invitations "attachments"; do mark as "calendar". Do recognize application/ics as calendar messages. Update mime-object to expose a message part's disposition. Change the "is-attachment" heuristic to include inline parts if they have a filename parameter in their content-disposition. Note that this doesn't change things radically; the delta is +69 and -202 for ~6500 attachments.
2026-03-07message: fix some error pathsDirk-Jan C. Binnema
2025-12-15labels: improve logging for importDirk-Jan C. Binnema
Clear up the code a bit using the new logging functions. Don't log a failure for "plan A" as an error, it just scares user unnecessarily.
2025-11-19test-mu-message: use join_path for test-pathDirk-Jan C. Binnema
We were not doing that correctly, missing a "/" between dirname and filename.
2025-10-25message: ensure message text is valid utf8Dirk-Jan C. Binnema
Seems this is not guaranteed, so convert if needed.
2025-09-12labels: tighten labels regexpDirk-Jan C. Binnema
2025-09-03store: remove some _unlocked functions, update clear_labelsDirk-Jan C. Binnema
They don't add much value, let's remove. Rework clear_labels in terms of update_labels.
2025-08-31store: improve label handlingDirk-Jan C. Binnema
In particular, clear_labels And some cosmetics
2025-08-31mu-label: allow more charactersDirk-Jan C. Binnema
reduce the number of "taboo" characters in labels. update docs.
2025-08-28mu-document: improve sexp updatingDirk-Jan C. Binnema
Ensure the cached message sexp gets updated in all cases where it's necessary.
2025-08-27labels: implement parse_delta_labelsDirk-Jan C. Binnema
Convenience function for parsing a series of delta labels; add tests as well.
2025-08-26Replace "the the " with "the "Anton Mosich
2025-08-16labels: ensure c++17 compatibilityDirk-Jan C. Binnema
This broke the build earlier.
2025-08-15mu: add 'label' command + manpage + testsDirk-Jan C. Binnema
Add a label command and document it.
2025-08-15message: add support for labels + testsDirk-Jan C. Binnema
Labels are strings associated with messages, which can be used for searching them.
2025-08-15tests: only build when neededDirk-Jan C. Binnema
Build the tests lazily, i.e., not before `meson test`. This helps with build-times.
2025-07-05mu-mime-object.hh: fix some typosDirk-Jan C. Binnema
2025-05-26lib: improve xapianizer / xapian_termDirk-Jan C. Binnema
2025-05-26contacts/contacts-cache: cleanupsDirk-Jan C. Binnema
refactor code a bit; move sorting to Contact remove unneeded hashing in Contact (just use the email address)
2025-05-24message: retain non-file flags when movingDirk-Jan C. Binnema
The content-flags won't change, and the unread-flag can be re-calculated. Add a unit test, and some small doc improvements. Fixes #2831.
2025-02-13mu: remove empty refs + unit-testDirk-Jan C. Binnema
Some message can have an _empty_ message-id, e.g. with: In-Reply-To: <> which we weren't filter out. This would yield and _empty_ Thread-Id, in mu-message.cc And this would make mu-query believe it had no matches in the first query, in Query::Private::run_related, and effectively throw away the results. (Xapian using empty string both for a "not found" result, and "found an empty string doesn't help either). So, avoid having an empty reference. Also add a unit-test. Fixes #2812.
2025-02-05guile: avoid body duplicationDirk-Jan C. Binnema
In message, don't re-fill when unneeded. Add tests. Fixes #2802.
2025-01-13mu-info: add example for ref:, thread:Dirk-Jan C. Binnema
2024-12-02query: add related: combi-field + testDirk-Jan C. Binnema
Add a new combination (pseudo) field "related:", which combines "message-id" and "references"
2024-11-30fields: make combi-fields introspectableDirk-Jan C. Binnema
And add the display of combination-fields to 'mu info fields'.
2024-11-26search: make references searchableDirk-Jan C. Binnema
Allow searching for message that have the given message-id in References: or Reply-To:
2024-11-10message: treat pcks7::smt::Unknown as encryptedDirk-Jan C. Binnema
GMime isn't more specific, so let's assume it's encrypted; better than nothing. Fixes #2784.
2024-08-22message: detect top-level smime parts + testDirk-Jan C. Binnema
Fixes #2745
2024-06-17logging: reduce debug logging a bitDirk-Jan C. Binnema
2024-06-01message: add default ctorDirk-Jan C. Binnema
Useful for stuffing messages in async-queues
2024-05-01lib: centralize xapian include, enable move semanticsDirk-Jan C. Binnema
Only include xapian.h in one place, so we can have consistent options. With that in place, we can enable C++ move semantics. We don't do anything with that yet, but we check in the meson.build file to see if we have the required xapian version.
2024-04-02mu-contact: move email validation to contacts cacheDirk-Jan C. Binnema
So we can be sure the regexp is initialized. This _may_ help for https://bugzilla.opensuse.org/show_bug.cgi?id=1221861 though it is very hard to tell!
2024-03-15message: flag list-unsubscribe as MailingListDirk-Jan C. Binnema
Flag message that merely have a List-Unsubscribe header with Flags::MailingList too (some marketing message have this header, yet miss "List-Id". Add a test as well.
2024-03-01message: make sure HAVE_CLD2 is foundDirk-Jan C. Binnema
This broke the language detection code
2024-01-06tests: move to tests/, make optionalDirk-Jan C. Binnema
While not recommended, sometimes it can be useful to disable building the unit tests. This can be done now with meson -Dtests=disabled build
2023-09-24lib: use flags_maildir_fileDirk-Jan C. Binnema
It's a better name. And fix some typos.
2023-09-24mu-move: add new move sub commandDirk-Jan C. Binnema
Add sub-command to move messages; add tests and docs. Fixes #157
2023-09-19flags: add flags_mail_dir_file utilDirk-Jan C. Binnema
And some whitespace cleanup
2023-09-17fields: 'phrasable' instead of 'indexable'Dirk-Jan C. Binnema
'Phrasable' is probably a bit clearer description.
2023-09-10utils/file: add basename/dirname helpers and use themDirk-Jan C. Binnema
2023-09-09lib: improve printability for some typesDirk-Jan C. Binnema
A little fmt pixie dust
2023-09-09support xapian ngramsDirk-Jan C. Binnema
Xapian supports an "ngrams" option to help with languages/scripts without explicit wordbreaks, such as Chinese / Japanese / Korean. Add some plumbing for supporting this in mu as well. Experimental for now.
2023-08-21mu-priority: implement priority_from_nameDirk-Jan C. Binnema
2023-08-21mu-flags: get flag-info for shortcut, tooDirk-Jan C. Binnema
2023-08-09message & friends: make formattableDirk-Jan C. Binnema
So we can easily debug-print them.
2023-08-04mu-server: use strings, not sexps object (optimization)Dirk-Jan C. Binnema
When passing messages to mu, often we got a (parsed from string) message-sexp from the message document; then appended some more properties ("build_message_sexp"). Instead, we can do it in terms of the strings; this is _a little_ inelegant, but also much faster; compare: (base) [mu4e] Found 500 matching messages; 0 hidden; search: 1298.0 ms (2.60 ms/msg); render: 642.1 ms (1.28 ms/msg) (with temp-file optimization (earlier commit) [mu4e] Found 500 matching messages; 0 hidden; search: 1152.7 ms (2.31 ms/msg); render: 270.1 ms (0.54 ms/msg) (with temp file optimize _and_ the string opt (this commit) [mu4e] Found 500 matching messages; 0 hidden; search: 266.0 ms (0.53 ms/msg); render: 199.7 ms (0.40 ms/msg)
2023-08-04mu-document: Make sexp() lazy (optimization)Dirk-Jan C. Binnema
This makes queries where we don't need the sexp much faster; e.g. before: mu find "a" --include-related 47,51s user 2,68s system 99% cpu 50,651 total after: mu find "a" --include-related 7,12s user 1,97s system 87% cpu 10,363 total
2023-07-25message: use html-to-text scraper for html partsDirk-Jan C. Binnema
We were dumping the HTML-parts as-is in the Xapian indexer; however, it's better to remove the html decoration first, and just pass the text. We use the new built-in html->text scraper for that.
2023-07-20migrate some more code to mu_format / join_pathsDirk-Jan C. Binnema
Let's modernize a bit.
2023-07-08migrate to fmt-based logging in some more placesDirk-Jan C. Binnema
and improve logging.