about summary refs log tree commit diff stats
path: root/worker/maildir
Commit message (Collapse)AuthorAgeFilesLines
* Add support for :rmdirARaspiK2020-08-191-0/+12
| | | | | | | | | | | | | | | | | | | | | The `:rmdir` command removes the current directory (`-f` is required if the directory is not empty). This is not supported on the notmuch backend. An issue with the maildir backend is that some sync programs (e.g. offlineimap) may recover the directory after it is deleted. They need to specifically be configured to accept deletions, or special commands need to be executed (e.g. `offlineimap --delete-folder`) to properly delete folders. A danger of using this on the IMAP backend is that it is possible for a new message to be added to the directory and for aerc to not show it immediately (due to a slow connection) - using `:rmdir` at this moment (with `-f` if the directory already contains messages) would delete the directory and the new message that just arrived (and all other contents). This is documented in aerc(1) so that users are aware of possible risks.
* maildir: Provide nicer error message on invalid urlTero Koskinen2020-07-272-4/+34
| | | | | | | | If accounts.conf contains an invalid maildir url, return a nice error instead of panicking. Log a couple of different error cases to provide extra information about the error to the user.
* Remove hard coded bodystruct path everywhereReto Brunner2020-07-271-1/+7
| | | | | | | Aerc usually used the path []int{1} if it didn't know what the proper path is. However this only works for multipart messages and breaks if it isn't one. This patch removes all the hard coding and extracts the necessary helpers to lib.
* Add flag based search optionsTobias Wölfel2020-07-251-1/+18
| | | | | | | Provide search and filter with the option to specify more flag based conditions. Use '-x <flag>' to search for messages with a flag (seen, answered, flagged) and '-X <flag>' to search for messages without a flag.
* Only send directory info once from maildirAndrew Jeffery2020-07-191-4/+5
| | | | | The directory info only needs to be sent once for all the messages, this reduces unnecessary messages being sent which could lock up the ui.
* Add additional flagging functionalityARaspiK2020-07-082-30/+17
| | | | | | | | | | | | | | More mail flags can now be set, unset, and toggled, not just the read/seen flag. This functionality is implemented with a new `:flag` and `:unflag` command, which are extensions to the matching `:read` and `:unread` commands, adding support for different flags. In fact, the `read`/`unread` commands are now recognized aliases to `flag`/`unflag`. The new commands are also well documented in aerc(1). The change mostly extends the previous read/unread setting functionality by adding a selection for the flag to change.
* Set AnsweredFlag on successful replySrivathsan Murali2020-05-252-0/+55
|
* maildir: remove read handling from FetchMessageBodyPartReto Brunner2020-05-111-21/+0
|
* Allow maildir subdirectoriesGrégoire Delattre2020-05-051-11/+27
|
* Count recent messages in maildir exists total tooJeffas2020-03-091-1/+1
|
* Mark sent messages as "seen" in maildirGalen Abell2020-03-032-9/+29
| | | | | | | - Add maildir flags to complement a messages imap flags - Set the "seen" flag on sent messages when using the maildir backend - Cleanup AppendMessage interface to use models.Flag for both IMAP and maildir
* Update DirectoryInfo handling for maildirJeffas2020-02-281-6/+50
| | | | | | | | | | | This ensures that the directory info is up to date on events in the maildir worker. This also sets up the initial dirinfo for other directories and updates them when using built-in commands. FS events are still only watched for the selected directory. This should be changed in a future patch to watch other directories too in order to cover UI updates for folders when an event occurs in a non-selected folder.
* Make search more lenientJeffas2020-02-261-1/+2
| | | | | When we fail to read a single message we don't need to fail the whole search, just log the error and we can still get results back.
* Ensure new directory exists before unwatching oldGalen Abell2020-02-251-5/+6
|
* Add labels to index format (%g)Reto Brunner2019-12-271-0/+4
| | | | Exposes the notmuch tags accordingly, stubs it for the maildir worker.
* Change search flagsJeffas2019-09-201-2/+6
| | | | | | | | This changes the search flags for maildir and imap backends. They now no longer use -t for searching all text. This seems to make more sense as being the targeted recipient. I have similarly added Cc for -c. The text search now resides under -a for all text.
* Add sorting functionalityJeffas2019-09-201-7/+46
| | | | | | | | There is a command and config option. The criteria are a list of the sort criterion and each can be individually reversed. This only includes support for sorting in the maildir backend currently. The other backends are not supported in this patch.
* Add directory info messagesJeffas2019-09-181-16/+55
| | | | | | | This populates the directory info model properly when requested, allowing the fields to be relied upon elsewhere. This also sends the dirinfo when new messages come in.
* Add basic searching to the maildir backendJeffas2019-09-162-1/+260
| | | | | | | | | | | | | | Basic searching is supported with the following: - read messages - unread messages - from addresses - text in body - text in subject - text in all The implementation loops through all messages in the selected directory. It tries to be smart by detecting which parts of each message the search query needs to use and only loads these from the filesystem.
* maildir: Preserve flags when copying messagesBen Burwell2019-08-081-20/+2
|
* Extract message parsing to common worker moduleReto Brunner2019-08-081-220/+16
| | | | | | | Things like FetchEntityPartReader etc can be reused by most workers working with raw email files from disk (or any reader for that matter). This patch extract that common functionality in a separate package.
* Clean maildirs when openedBen Burwell2019-08-021-0/+4
| | | | This removes old aborted deliveries from the tmp directory.
* Fix error handling in maildir workerNicolai Dagestad2019-07-191-14/+7
|
* Register worker in init.Reto Brunner2019-07-191-1/+6
| | | | | This allows backends which can't always be compiled due to missing dependencies (say libnotmuch) to be compiled conditionally with buildflags.
* maildir: Watch for new messagesBen Burwell2019-07-171-13/+68
| | | | | | | | When a directory is opened, start watching its "new" subdirectory for incoming messages using the fsnotify library. When creation events are detected, run the Unseen routine to move the message from new to cur and add new UIDs to the store, updating the UI's list of directory contents as we go.
* Fix header decodingBen Burwell2019-07-171-13/+16
| | | | | | | | | | | | | Email headers can be encoded with different charsets, which is signalled using a special character sequence. The go-message package provides two different methods for accessing header values, Get(key) (actually inherited from the embedded textproto.Header) which returns the raw header value and Text(key), which returns the header's value decoded as UTF-8. Before, in the maildir backend, we were using the Get method which sometimes resulted in encoded headers being displayed in the UI. This patch replaces the incorrect usage of Get() with Text().
* Fix missing format fields in maildir/container.goDrew DeVault2019-07-131-2/+2
|
* Implement maildir copyBen Burwell2019-07-122-2/+41
| | | | | Create a delivery in the destination directory with the content of the source message.
* Add maildir backend workerBen Burwell2019-07-123-0/+780
Add the initial implementation of a backend for Maildir accounts. Much of the functionality required is implemented in the go-message and go-maildir libraries, so we use them as much as possible. The maildir worker hooks into a new maildir:// URL scheme in the accounts.conf file which points to a container of several maildir directories. From there, the OpenDirectory, FetchDirectoryContents, etc messages work on subdirectories. This is implemented as a Container struct which handles mapping between the symbolic email folder names and UIDs to the concrete directories and file names.