I’m really proud to announce the release of Tinymail 1.0. New packages are available here.
It has been more than 3 years since the project started, and after all the hard work we think now it is time to release the first version of our beloved framework to build e-mail applications for mobile devices. Thank you very much to all contributors! Specially thanks to Philip, Dape, Dirk-Jan and Rob, you all rock guys!
It is already being mentioned in the official announcement I sent to the tinymail devel list but I would like to highlight the main achievements of this release since the previous 0.0.9 pre-release:
- New widgets to show the mailboxes tree as a plain list
- New widget to expose only the latest messages of a mailbox
- New download external images capability
- Complete rework of IMAP IDLE
- Improved namespace handling in IMAP
- Locking, security and connectivity improvements in POP3 code
- Improved MIME parsing (PGP/GPG parsing now works)
- New asynchronous methods for getting folders and messages
- Upated Vala & Python bindings
- Improved support for 64-bit architectures
For those of you having a Nokia N900 this release contains more or less the same code shipped within your device (remember that Modest, the email program, is tinymail powered). For all people that followed the progresses in tinymail I blogged about recently (here, here or here) you will have to wait for v1.2 release. I promise you won’t have to wait that much…
Thanks to the hackfest time Igalia gently gives me every week I could resume the work I had previously started to add ENVELOPE support to tinymail.
What’s this stuff about? Well basically what we can do now is ask the server for ENVELOPE instead of fetching a random set of headers (like ‘From:’, ‘Subject:’ …). Why is this cool? For several reasons:
- Speed: IMAP servers do cache
ENVELOPE information so they do not have to inspect every email message to extract the requested headers. They can give you ENVELOPE blazingly fast (I run a rough test and downloading a folder with ~1500 headers from AOL IMAP server lasted twice the time of downloading ENVELOPE and BODYSTRUCT, and this means minutes).
- Bandwidth:
ENVELOPE is smaller in size than headers as the name of the headers is not transmitted over the network
- Future: RDF storage support in tinymail is now closer
You can find this new feature in trunk.
I have just submitted a couple of patches (this and this) to Tinymail that add Moblin to the list of supported platforms.
Basically the main addition is the TnyMoblinDevice, it’s an object that allows every application that uses Tinymail to use the connectivity services provided by Moblin’s Connection Manager.
In order to build Tinymail for Moblin you just need to use --with-platform=moblin in the configure process.
Some people have already complained about the way GMail IMAP works. With great power comes a great responsibility. Google guys, you have one of the largest email services in the world, so this means that you have to care a lot about users and clients. Dape recently reported and error in how GMail creates the body structure of some particular messages and still got no answer.
Now I found that it does not return the full bodystructure of a multipart/mixed with two refc822 messages in it. If this sounds strange to you, it’s basically how Mozilla Thunderbird creates an email with two other emails as attachments. GMail simply will not tell you about the structure of the two attached emails.
Bodystruct support in Modest is working in most cases although these problems with GMail will most likely mean that it won’t be shipped with the next software update for the N900.
After some months of really hard work, I managed to take a look at one of the most annoying bugs people have found while using Modest. There was some problem in Tinymail with IMAP servers that do not support NAMESPACE. Basically users were not able to open their INBOXes, just the children mailboxes.
This morning I committed this long awaited fix. This bug was affecting among others people fetching mail from Oracle Beehive, Runbox, O2Online, and probably the most important one, GMX.de (German’s biggest provider of free email). Note that if you select GMX in your N900 it currently works fine because it uses the POP access as it is free of charge. IMAP access, the one that was not working, needs a paid account.
PS: as I mentioned in the bugzilla, you will get the fix with the next release of Maemo5 software.
These last weeks Dape and me have been working really hard fixing bugs in Modest and Tinymail here and there. Best Modest ever is coming.
But today, I don’t want to talk about fixes but features. I want to talk about BODYSTRUCTURE. This is one of the coolest features we could have added to Modest. Tinymail had some initial support, but due to the many bugs it had and the fact that some use cases were not supported forced us not to use it so far. But thanks to the time Igalia gives us for hacking we managed to get it working.
Oh wait! I didn’t tell you what BODYSTRUCTURE is about. Email messages are made of a group of MIME parts. One of them could be the subject, another one some footer and some others could be attachments. Without BODYSTRUCTURE support we were forced to download all those MIME parts when you wanted to see a message. This meant that if the message had some heavy attachments and you only wanted to see a small body with just a couple of words, you had to wait until the full message was downloaded,
With this new feature, we can download every MIME part one by one, and thus saving you time, disk space and specially if you’re using a mobile device like N900, money in your GPRS connections. Do you want to read only the body? No problem we’ll show you that you have some attachments but we won’t download them until you request us to do so. Do you want to forward the full message? No problem, we properly detect that and include the full original message whether or not it was completely downloaded before.
This will most likely be included in the next N900 software update that will be eventually delivered by Nokia. In the meantime, if you don’t want to wait just download packages and build it by yourself. Remember that you can find us in #modest channel @ Freenode.
We have been working hard last months in order to increase the speed of Modest. Summing up
- By default you will only see the last 250 emails on each folder. This dramatically speeds up the filtering and sorting of the emails. We can do this thanks to this great patch by my colleague Dape. Now we can do things like showing a “Show more messages” button, à la iphone.
- Several fixes in tinymail drastically reduced the amount of requests to the server that we needed to have a fully updated list of mail folders for one account. You will notice that loading the folders of a particular account is now much faster.
- Accounts window is now shown almost instantly (you will also see a cool transition effect that shows the last updated time). The trick? Just use hildon_gtk_window_take_screenshot()
And last but not least, replying to pure HTML emails no longer generates a distorted message.
Want more? Just get the code and contribute!
If you want to chat with Modest developers you can find us in #modest channel, FreeNode IRC server.
Come and join us!
After a bit of work we can proudly announce that Modest was finally moved to the Maemo garage git repository. You can check it out here
Although is great to move to “our favourite DVCS”TM, the most interesting thing is that from now on we’re only developing in the public repository, so you’ll always have the latest improvements available.
Looking forward to your contributions!
Seems that a lot of people are trying Modest and thus they want to report bugs and feature requests. It could be seen in Modest development page but just to clarify we have the usual couple of mailing lists
- modest-devel: for development purpouses
- modest-user: for Modest users
You can subscribe to both of them here.
There are many other ways to contact us like the public forum, the feature request system, or the bug tracking system (thanks Andre for pointing me out that starting today we’re using the maemo bugzilla, select “Communication” as product, and “Email” as component). So just use those channels of communication, we’ll try to help as much as possible.