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.