Starting with version 1.6, Manitou-Mail will allow the creation of users and groups from within the user interface, as shown in the screenshot below:
Although PostgreSQL has merged users and groups into “roles” years ago (since version 8.1), we intentionally stick to the old terminology, because it’s easier to describe the model. Users are accounts for persons connecting to the database. Groups are entities having a set of permissions, and to which users are assigned. Users can belong to multiple groups.
Under the hood, users correspond to PostgreSQL roles having the LOGIN attribute, so they can log in (assuming proper permissions), whereas groups are roles that don’t have this attribute. Permissions are associated to groups through SQL GRANT commands.
Manitou-Mail chooses to associate permissions to groups, instead of individual users, given its focus on team work and shared mail corpuses. For a set of permissions that apply to a single person, a group will have to be created with only that user as member.
The set of permissions currently handled is shown in the snapshot below. More fined-tuned permissions will probably be added in the future depending on users needs.
Version 1.6 can be built from the git repository; pre-compiled binaries and packages will be made available soon.
Until now, the search bar in the user interface did not support query
terms to search on metadata.
I’m glad to say that commits 2ddddaae and a1cbe72a add support for filtering
by date and message status right from the search bar, introducing
- “date:” must be followed by an iso-8601 date (format YYYY-MM-DD),
or by a specific month (format YYYY-MM), or just a year (YYYY).
It selects the messages from respectively that day,or month, or year.
- “before:” has the same format but selects messages dated
from this day/month/year or an earlier date.
- “after:” is of course the opposite, selecting messages past
the date that follows.
- “is:” must be followed by a status among read,replied,forward,archived,sent.
Criteria can be combined by using the option several times, as statuses are cumulative, not mutually exclusive,
- “isnot:” is of course the opposite of “is”. It accepts the same arguments
and filters out the messages that have the corresponding status bit.
“is:” and “isnot:” can also be combined, for instance: “is:archived isnot:sent”.
A few more search bar operators are likely to be added to that list, as it’s a pretty handy and fast way to express basic queries.
The Qt5 port of the user interface is in good shape, successful tests have been made with up to Qt5.5.
The development still happens in a branch:
(github link), but that will be merged soon into the main trunk, and the Qt4.x version will become a separate branch.
In the meantime, a binary package for Ubuntu 14.04 or 15.10 on amd64 architecture is available in an experimental repository, which can be added to
deb http://manitou/apt trusty experimental
The package is
manitou-ui, version 1.5.0. It’s built with Qt-5.2.1 on Ubuntu 14.04.
# apt-cache show manitou-ui
Maintainer: Daniel Verite
Depends: libc6 (>= 2.14), libgcc1 (>= 1:4.1.1), libpq5 (>= 9.0~), libqt5core5a (>= 5.0.2), libqt5gui5 (>= 5.0.2) | libqt5gui5-gles (>= 5.0.2), libqt5network5 (>= 5.0.2), libqt5printsupport5 (>= 5.0.2), libqt5webkit5, libqt5widgets5 (>= 5.2.0), libstdc++6 (>= 4.6)
Description: Manitou-Mail's user interface
Qt-based GUI that acts as a front-end to a Manitou-Mail database.
Sometimes a message that has been previously sent needs to be sent again. The normal way to do that is to recompose a new message by copying the contents of the old one. This leads to a new message with identical contents except for the Date and Message-Id header fields.
However, there is a quicker way to re-send an outgoing message without the need to create a duplicate of the original: if the Sent and Archived bit of the message status are cleared, manitou-mdx will just pick up again the message for sending as if it was new. To clear these bits, use the Message->Properties command and check No in the boxes drawn with the red border in the screenshot:
For you Mac users out there, I’m glad to announce that the Manitou-Mail interface is now available for Mac OS X, thanks to Adebe Networks that funded the work for the port and TLK Games who lent their Mac machine. The application bundle is available here: manitou-1.1.0.dmg (42Mb, with Qt-4.7 and libpq5 compiled with ssl support). Enjoy!
While the X-Face header (48×48 BW picture) has been supported for a long time in the Manitou-Mail user interface, the Face header (48×48 color PNG) was not until yesterday.
Now it is, and while testing the code, I’ve found that it was another case where an SQL query quickly solved a practical selection problem. The Face header is indeed not so widely used, so getting a significant sample of different pictures to show is not obvious. Ideally I wanted to extract from my mail archive a gallery of pictures that would be all different. That is, if someone had posted 1000 messages with the same Face header, I wasn’t interested in getting all those messages, only one of them, let’s say the first by it’s ID, and I wanted the next mail in the list to be with a different, non-empty Face, and so on for every message that I wanted to look at. It turns out, that in SQL, it can be expressed with:
WHERE position(E'\nFace: ' in lines)>0
split_part(substr(lines, position(E'\nFace: ' in lines)+7, 1300), E'\n', 1)
position(…) let us know where the Face header field begins, substr(…) extracts a sufficient length of it, and split_part(…) cuts exactly the value at the first newline which marks the end of this header’s value (they’re unfolded in the header table precisely to be able to perform that kind of extraction).
Finally the GROUP BY ensures that each row in the result represents a distinct value of the Face header.
This query can be directly input into the SQL statement field of the Query Selection dialog, after which all there is to do is wait for the database engine to run it to completion.
On my sample database of about 800,000 messages from various mailing lists, it turned out that the result was a list of 176 messages. Here is a collage of a selection of the pictures (public messages only).
Here is how one particular message looks with its Face header:
Right now this is just about displaying, sometime in the future I’ll try to add Face headers to outgoing mail, and also I’d like to associate pictures to sender addresses so that messages from people who don’t use a Face header (the majority) still can be shown with a dedicated picture. I feel like even tags or sender domains (which means companies and organizations), could benefit from that kind of visual representation in certain cases.
Since HTML viewing has been integrated, I’ve had reports that under Windows, the images in messages weren’t always displayed, but my attempts at reproducing the problem were unsuccessful.
I’ve recently understood that it was a packaging issue: on machines that don’t have Qt installed, image plugins must be distributed with the application (except for PNG that is supported as built-in).
So I’ve repackaged Manitou-Mail 0.9.12 for Windows with the necessary plugins that get installed into an imageformats directory, and re-uploaded the installer:
For users who were concerned by this problem, I suggest they reinstall and report if it still doesn’t work.