Version 0.8.0 released

Version 0.8.0 is out, with SASL and TLS support.
The VMime Book (developer guide) is now available!

  • Refactored header field values and parameters.
  • Utility: new object charsetConverter for converting between charsets (code moved from static functions in ‘charset’ class). Added charsetFilteredOutputStream provide charset conversion while writing to an output stream.
  • Build: fixed compilation problems on FreeBSD (thanks to Xin LI).
  • Attachments: the attachmentHelper allows listing all attachments in a message, as well as adding new attachments.
  • Utility: renamed progressionListener to progressListener.
  • Messaging: removed “server.socket-factory” property; added the service::setSocketFactory() function instead. Removed “name” parameter from platformDependant::getSocketFactory() function.
  • Messaging: removed “timeout.factory” property; added the function service::setTimeoutHandlerFactory() instead. Removed the function platformDependant::getTimeoutHandlerFactory().
  • Added TLS/SSL support, using GNU TLS library.
  • Added SASL support, based on GNU SASL library. Slightly modified auhenticator object; see ‘example6’ which has been updated.
  • Utility: created ‘vmime::security’ and ‘vmime::security::digest’ namespaces. MD5 has been moved here. Added SHA-1 hash algorithm.
  • Encoder, Content Handler: added progression notifications.
  • Tests: moved to CppUnit for unit tests framework.
  • Renamed ‘vmime::messaging’ to ‘vmime::net’. An alias has been kept for compatibility with previous versions (its use should be considered as deprecated).
  • Exception: vmime::exception now inherits from std::exception.
  • Messaging folder: added a FETCH_IMPORTANCE flag to fetch the fields used with ‘misc::importanceHelper’.
  • POP3, IMAP, Maildir: fixed getMessages() when default arguments are given: no message were returned, instead of the real message count.
  • Attachments/Message parser: added a getName() parameter to retrieve the attachment filename either from the “filename” parameter of the “Content-Disposition” field, or from the “name” parameter of the “Content-Type” field (if available).
  • Added reference counting and smart pointers to simplify the use of VMime objects. Please see README.refcounting for more information.
  • Content Handler: added extractRaw() method to allow extracting data without performing any decoding.

Version 0.7.1 released

Version 0.7.1 has been released.
A lot of bugs have been fixed. Added some minor enhancements.

  • Build: fixed compilation errors with g++ 4.0.
  • Core: fixed a bug in RFC-2231 implementation.
  • Core: fixed a bug in parsing, when the first character of word data was encoded in QP (thanks to Wolf Jiang).
  • Core: fixed a memory leak in parameterizedHeaderField destructor (thanks to Rafael Fernandez).
  • Messaging: added a ‘peek’ parameter to extract message contents without marking the message as seen.
  • IMAP: fixed bug in subfolders enumeration.
  • Examples: enhanced ‘example6’ into an interactive program to show some of the features of the messaging module.
  • Messaging: changed getAvailableProperties() to return ‘serviceInfos::property’ objects instead of strings. This permits setting service properties in a more generic manner.
  • IMAP: fixed missing space in “STATUS” command + parsing error in ‘status_info’.
  • Utility: added a ‘childProcess’ class to help with spawning child processes (used in ‘sendmail’ implementation).
  • Added guide describing how to compile VMime using Visual Studio .NET 2003
  • Utility: moved progressionListener to ‘vmime::utility’ package since this can be of general use.
  • Utility: added a bufferedStreamCopy() function which can take a ‘progressionListener’ parameter.
  • Utility: added filtered input and output streams.
  • Added sendmail transport service for local delivery.
  • Core: fixed a bug in implementation of RFC-2231 (values were cut if longer than maxLineLength, and no line wrapping occured).
  • Utility: fixed a lot of bugs in URLs parsing and encoding/decoding + added unit tests. Moved ‘url’ and ‘urlUtils’ from ‘vmime::messaging’ namespace to ‘vmime::utility’ namespace.