Tinymail 1.0 released


after years of really hard work with twists and turns, setbacks and
recoveries the tinymail team is proud to announce release of Tinymail v1.0.

I would like to say thanks to all who contributed and specially
   * Philip, for starting all this off
   * Dape, BODYSTRUCTURE and IDLE wouldn't be the same without you
   * Dirk-Jan, for betting for tinymail inside Nokia
   * Rob Taylor, for the asynchronous queue stuff

Tinymail-1.0 is now available for download at:


0772518b8955275c445962164d0ef92b  libtinymail-1.0.0.tar.gz
965e6dc88392c62d9d2093edfdc6defb  libtinymail-1.0.0.tar.bz2


What is Tinymail

Tinymail is a library for developing mobile E-mail applications. The
framework provides components that aid the developer with the user
interface, connectivity and the caching of messages.

It supports developing in C, C++, Vala and Python.

Tinymail is free software. The licensing terms of tinymail, the GNU
LGPL, allow it to be used by all developers, including those
developing proprietary software, without any license fees or

More information about Tinymail

Information about tinymail can be found at:


For detailed development information:


E-mail clients using Tinymail

Modest: Nokia N800, Nokia N810 and official Nokia N900 email client.

TMut (under development):




Tinymail has a large amount of source code. There is always room for
new improvements. We are always interested in bugfixes, feature
development and documentation improvements. If you enjoy that, don't
hesitate to join the mailing list.


You can find us also in #tinymail IRC channel at GIMPnet

Check also the "How I can help?" section in the Wiki.


Release highlights

     * New widget that shows a folder tree like a plain list
     * New widget to expose only latest messages of a folder
     * Added download external images cache capabilities
     * Complete rework of IMAP IDLE locking
     * Improved handling of namespaces in IMAP
     * Several locking&connectivity improvements in POP3
     * Improvements in MIME parsing (fixed PGP parsing)
     * Fixed tons of memory and reference leaks
     * New security and robustness checks in summary files
     * New asynchronous methods for getting folders and messages
     * Updated Vala and Python bindings
     * Disabled .NET bindings as they are not maintained
     * Fixed crashes in 64-bit architectures

Changes since pre-release 0.0.9

Since it is been almost two years since the previous prerelease the
list of changes is really huge. This is a list of them groupped by
contributor and sorted by number of commits in the SVN.

Sergio Villar Senin  <svillar igalia com>

     * Added several missing camel_exception_clear
     * Only add a folder store observer if the folder is a TnyFolderStore
     * Added proper error checking for summary mmap'ed file
     * Fixed a deadlock in camel POP3 code in	wait_for_login_delay
     * Set the reprompt flag when trying to reconnect after an invalid
authentication attempt in SMTP
     * Improved email address parsing
     * Properly handle messages comming from conic in TnyDevice
     * Do not report connection problems in POP as authentication errors
     * If a MIME part does not have MIME type then set it as octet-stream
     * Protect the access to priv->cached_files to make the TnyFsStream
     * Added extra checks to prevent crashes with large malformed emails
     * Added a security check to prevent crashes with malformed huge
charset names.
     * Remove the folders already present on model that are not listed
by provider
     * Update the folder counts when we receive added and removed uids
     * Speed up the first views update in folder list model
     * Maemo conic device supports now multiple requests for connections
     * Notify observers when a connection fails due to disk full conditions
     * Do not set the poke_status operation as auto-cancellable
     * Use an asynchronous call when cancel sendings to avoid deadlocks
     * Added several extra checks to folder summary load/store processes
     * Sync outbox and sent folder in a sync-like way to avoid loosing data
     * Fixed several potential NULL dereferences
     * Fixed several memory and reference leaks
     * Added several checks to prevent invalid dereferences
     * Remove files from cache in POP3 when they're marked as deleted.
     * Get the folders of the list folder model using asynchronous calls
     * Set the session to online before trying to connect
     * Improved INBOX folder detection algorithm
     * Added "protected" functions to properly add/remove folders
to/from managed_folders list.
     * Fixed a crash when deleting the cache of an account without
     * Remove children of a folder whenever it is deleted
     * Remove folders from the account that is being removed from folder
list store
     * Only write in chunks when writing to sockets
     * Fixed a never-ending poll when connection goes down while
retrieving messages.
     * Use g_rename for all platforms to rename files in cache
     * Do not mark as expunged msgs not retrieved due to user cancels
     * Added progress information to get_headers_async function.
     * Properly handle errors when calling NSS_InitReadWrite
     * Drop usage of PR_Cleanup on shutting down camel as this is not safe

Jose Dapena Paz  <jdapena igalia com>

     * Expose only last X messages in header list model
     * New API for making TnyGtkHeaderListModel only show the latest msgs
     * New methods (get|set)_show_latest for limitting the number of
items shown
     * Force folders refresh in refresh traversal (at least one time)
     * Added proper error checking for summary MMAP
     * Add API to avoid recursing list store if disposed
     * Avoid accumulating poke status
     * Don't fflush store summary on saving it
     * Fixed an infinite loop if connection fails in PR_Poll
     * Avoid crashes iterating in imap summary if it is corrupted.
     * Fixed several reference leaks
     * Added a method to allow CamelFolder instances to track folder_changed
     * Added handling of folder_opened signal in TnyCamelFolder
     * Last messages come first in get_headers()
     * Cancel account operations on removing them from store
     * New stream that wraps a stream with html format, so its output is
a plain text version of that stream.
     * New method to look for new folders while recursing them
     * New "delayed refresh" flag. Store will act as offline in first
     * Stop delayed refresh once timeout is gone
     * Don't revert the order of the mime parts in get_parts.
     * Reason/unreason the destination folder on copy_async
     * Added "no refresh" flag
     * Also consider semicolon	for reading split addresses.
     * Fixed parsing of PGP signed messages
     * Added activity feedback to list store to get progress information
     * Fixed bad usage of GSlice that could cause crashes.
     * get_folders "refresh" parameter forces to fetch again the list of
     * Disable push email on uncaching
     * Several fixes in IMAP namespaces
     * Fixed IMAP connection issue when authentication fails
     * Fixed several memory and reference leaks
     * Folder list store inherits from list store, not tree store.
     * Folder list store path separator is now configurable.
     * Added new TnyGtkFolderListStore, plain model for the folder store.
     * Added support for settings construction flags in folderliststore
     * Guess folder type from name if we couldn't know the folder type
from camel.
     * Complete rework of the lock behavior of Tinymail IMAP IDLE
     * New configure option --disable-idle, to disable IDLE
     * Fix the IDLE delay account parameter to take into account the
tick time.
     * Added get/set methods to allow external images in bodystructure
     * New async version of tny_mime_part_decode_to_stream
     * Fixed inbox detection in dovecot
     * Added fetching aol specific IMAP capability
     * Implemented a new Camel providers shutdown handler
     * Parse properly broken rfc2047 recipient headers sent from Gmail
     * Fixed several camel operation reference leaks
     * Added stream cache classes and handlers to TnyShared
     * New data object to store status information of currently cached files
     * Add storage of allow external images flag
     * New get/set methods to allow external images in TnyMsg
     * Use GOnce for registering types in a thread-safe manner
     * Fix some leaks in CST certificate manager support.
     * Preserve flags on transferring the message to a new folder.
     * New method to find messages asynchronously

Rob Taylor  <rob taylor codethink co uk>

     * Improved attachment detection heuristics in BODYSTRUCT
     * Fixes in Python, .NET & Vala bindings
     * Documentation fixes
     * Use a GQuark for error domains
     * Make account_store weak-referenced in TnySessionCamel.
     * Fixes in progress information code and total/unread counts in IMAP
     * Moved unref's to dispose from finalize
     * Fixes in loading/saving namespaces in summaries
     * Added refresh parametter to tny_folder_store_get_folders
     * Improved TnyFolderObserver behaviour

Philip Van Hoof <philip codeminded be>

     * Support for value-less cameloptions
     * Build environment improvements
     * Extra robustness in TnyCamelSendQueue
     * Added tny_camel_transport_account_(get/set)_from
     * Removed all synchronous API usage in TnyCamelSendQueue
     * Fixed LIST (SUBSCRIBED) for some IMAP servers
     * Improved cancellation in TnyCamelQueue
     * Fixed various copyright note issues
     * Merging folder flags from LSUB

Martin Bonnin  <martinbonnin gmail com>

     * Fixed typo in camel-service.c
     * Send QUIT to POP3 servers when setting account to offline
     * Fixed valgrind warnings
     * Build fixes
     * Documentation fixes
     * Added camel_operation_mute/unmute() to filter progress

Carl Simonson <simonsonc gmail com>

     * Removed superfluous user_data argument in signal definitions
     * Fixed a couple of invalid argument types
     * enumerated types rewritten to allow glibmm generate defs files
     * Removed a couple of unused header files. Added some missing
public ones.
     * Build fixes

Suhang Wan  <shuang wan intel com>

     * Build fixes in unit tests

Jürg Billeter  <j bitron ch>

     * Update Vala bindings and demo app
     * Add function to parse a message from stream

Thomas Guillem  <thomas guillem gmail com>

     * Build fix
     * Added FAT32 compatibility for cache filenames

Mark Doffman  <mark doffman codethink co uk>

     * Updated and fixed python bindings.

Thomas Monjalon  <thomas monjalon openwide fr>

     * Convert only plain text parts to UTF-8.

Lucas Maneos <tinymail subs maneos org>

     * Do not send ENABLE command if CAPABILITY does not list any
supported extension

Javier Jardon  <javierjc11982 gmail com>

     * Removed some Gtk+ deprecated symbols

Simon Schubert  <2 0x2c org>

     * Fix for 64-bit architectures

Thanks to all contributors:
Jose Dapena Paz
Rob Taylor
Philip Van Hoof
Martin Bonnin
Carl Simonson
Suhang Wan
Jürg Billeter
Thomas Guillem
Mark Doffman
Thomas Monjalon
Lucas Maneos
Javier Jardon
Simon Schubert

[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]