Skip to content


Subversion checkout URL

You can clone with
Download ZIP
Tree: 771b9b7515
Fetching contributors…

Cannot retrieve contributors at this time

1101 lines (664 sloc) 36.4 KB
VERSION 0.9.2svn
2012-04-16 Vincent Richard <>
* MIME Parser can now operate directly on an input stream (eg. file).
This allows very big messages to be parsed without loading the whole
message data into memory.
2010-11-16 Vincent Richard <>
* Started version 0.9.2.
2010-05-18 Vincent Richard <>
* net/*: added helper function vmime::net::message::getParsedMessage()
to construct a RFC-822 parsed message from a net message.
2009-09-06 Vincent Richard <>
* Relicensed VMime under the GNU GPL license version 3. Dual licensing
is now available. More info here:
2008-10-19 Vincent Richard <>
* Started version 0.9.1.
2008-01-28 Vincent Richard <>
* fileAttachment: fixed constructor ambiguity due to implicit conversions.
Removed default values and reordered parameters (API breaking change).
Many thanks to Philipp Frenkel. More information here:
2007-11-20 Vincent Richard <>
* text, word: fixed incorrect white-space between words.
2007-07-09 Vincent Richard <>
* IMAPUtils.cpp: fixed bug in modified UTF-7 encoding (IMAP).
2007-05-22 Vincent Richard <>
* Implemented thread-safe reference counting for smart pointers,
whenever possible (GCC built-in functions / pthread / Win32).
2007-03-28 Vincent Richard <>
* SMTPTransport.cpp: better parsing of ESMTP extensions.
2007-03-02 Vincent Richard <>
* Maildir: added support for "Courier" Maildir.
2006-12-20 Vincent Richard <>
* Started version 0.8.2.
2006-11-08 Vincent Richard <>
* Imbue classic "C" locale for the output of message parts and
protocol commands (thanks to Mörtsell Anders).
2006-10-11 Vincent Richard <>
* Renamed 'vmime::platformDependant' to 'vmime::platform'. The old
name has been kept for compatibility with previous versions.
2006-10-02 Vincent Richard <>
* SMTPTransport.cpp: reissue EHLO command after a successful STARTTLS
* word, wordEncoder: fixed bug #1096610 which caused encoding of a
non-integral number of characters (and then, generation of
incorrectly-formed words) with multi-bytes charsets.
2006-07-13 Vincent Richard <>
* Fixed bugs in MHTML code: 'CID' prefix should not be case-sensitive;
fixed detection of parts identified by a 'Content-Location'.
2006-04-23 Vincent Richard <>
* Added vmime::net::folder::destroy() to delete folders on IMAP and
maildir stores.
2006-04-18 Vincent Richard <>
* Renamed 'byte' to 'byte_t' to fix compilation problems on Fedora
core 5 (thanks to Rafael Fernandez).
2006-02-20 Vincent Richard <>
* net/imap/IMAPParser.hpp: added a "relaxed" mode to allow 8-bit
characters where not allowed by the standard (thanks to Tim Teulings
for having found the bug).
2006-01-29 Vincent Richard <>
* Added service::isSecuredConnection() and service::getConnectionInfos()
to retrieve information about the connection.
2006-01-16 Vincent Richard <>
* Added support for attachments of type "message/rfc822".
2006-01-15 Vincent Richard <>
* IMAP: implemented multi-fetching. Now using "FETCH x:y" instead of
sending (y-x+1) "FETCH" requests.
2005-12-26 Vincent Richard <>
* posixSocket.cpp: use getaddrinfo() if available. This should bring
thread-safe DNS resolution and IPv6 support.
2005-12-18 Vincent Richard <>
* IMAPParser.hpp: compatibility bugs + enhanced debugging trace.
2005-12-04 Vincent Richard <>
* exception.{hpp|cpp}: fixed segfault in destructor when destroying
an exception chain with more than 2 elements (thanks to Bertrand
* posixChildProcess.cpp: fixed a bug in argument vector; last argument
was not NULL (thanks to Bertrand Benoit).
2005-11-27 Vincent Richard <>
* maildirUtils.cpp: fixed problem with ':' in filename on Windows
platform (thanks to Benjamin Biron).
* random.cpp: fixed buffer overrun in random::getString (thanks
to Benjamin Biron).
2005-11-07 Vincent Richard <>
* SMTPTransport.cpp: fixed bug in disconnect() when authentication is
not needed (thanks to Benjamin Biron).
* dateTime.cpp: gmtime() and localtime() are reentrant when using
MS C runtime library (MinGW/MSVC).
2005-11-06 Vincent Richard <>
* Started version 0.8.1.
2005-11-06 Vincent Richard <>
* First version of the VMime Book.
2005-11-05 Vincent Richard <>
* Refactored header field values and parameters.
2005-10-19 Vincent Richard <>
* charsetConverter.{hpp|cpp}: 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.
2005-10-16 Vincent Richard <>
* SConstruct: fixed compilation problems on FreeBSD (thanks to Xin LI).
2005-10-13 Vincent Richard <>
* attachmentHelper.{hpp|cpp}: the attachmentHelper allows listing all
attachments in a message, as well as adding new attachments.
2005-10-06 Vincent Richard <>
* utility/progressionListener.{hpp|cpp}: renamed 'progressionListener'
to 'progressListener'.
2005-10-04 Vincent Richard <>
* net/service: removed "server.socket-factory" property; added the
service::setSocketFactory() function instead. Removed "name" parameter
from platformDependant::getSocketFactory() function.
* net/service: removed "timeout.factory" property; added the function
service::setTimeoutHandlerFactory() instead. Removed the function
2005-10-03 Vincent Richard <>
* Added TLS/SSL support, using GNU TLS library.
2005-09-17 Vincent Richard <>
* Added SASL support, based on GNU SASL library. Slightly modified
auhenticator object; see 'example6' which has been updated.
2005-09-06 Vincent Richard <>
* Created 'vmime::security' and 'vmime::security::digest' namespaces.
MD5 has been moved here. Added SHA-1 hash algorithm.
2005-09-03 Vincent Richard <>
* encoder*, *contentHandler: added progression notifications.
2005-08-25 Vincent Richard <>
* Tests: moved to CppUnit for unit tests framework.
2005-08-23 Vincent Richard <>
* All sources: renamed 'vmime::messaging' to 'vmime::net'. An alias has been
kept for compatibility with previous versions (its use should be considered
as deprecated).
2005-08-19 Vincent Richard <>
* exception.hpp: vmime::exception now inherits from std::exception.
2005-07-25 Vincent Richard <>
* Messaging folder: added a FETCH_IMPORTANCE flag to fetch the fields used
with 'misc::importanceHelper'.
2005-07-23 Vincent Richard <>
* POP3, IMAP, maildir: fixed getMessages() when default arguments are given:
no message were returned, instead of the real message count.
2005-07-15 Vincent Richard <>
* *attachment, messageParser: 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).
2005-07-13 Vincent Richard <>
* All files: added reference counting and smart pointers to simplify the
use of VMime objects. Please see README.refcounting for more information.
2005-07-06 Vincent Richard <>
* *contentHandler.{hpp|cpp}: added extractRaw() method to allow extracting
data without performing any decoding.
2005-06-22 Vincent Richard <>
* Started version 0.7.2.
2005-06-21 Vincent Richard <>
* Fixed compilation errors with g++ 4.0.
* defaultParameter.cpp: fixed a bug in RFC-2231 implementation.
2005-06-13 Vincent Richard <>
* word.cpp: fixed a bug in parsing, when the first character of word data
was encoded in QP (thanks to Wolf Jiang).
2005-06-03 Vincent Richard <>
* parameterizedHeaderField.{hpp|cpp}: fixed a memory leak in the
destructor (thanks to Rafael Fernandez).
2005-05-27 Vincent Richard <>
* messaging/*/*Message.{hpp|cpp}: added a 'peek' parameter to extract
message contents without marking the message as seen.
2005-05-19 Vincent Richard <>
* messaging/imap/IMAPFolder.cpp: fixed bug in subfolders enumeration.
* examples/example6.cpp: enhanced 'example6' into an interactive program to
show some of the features of the messaging module.
2005-05-15 Vincent Richard <>
* messaging/serviceInfos.{hpp|cpp}: changed getAvailableProperties() to
return 'serviceInfos::property' objects instead of strings. This permits
setting service properties in a more generic manner.
2005-05-03 Vincent Richard <>
* messaging/imap/IMAPFolder.cpp: fixed missing space in "STATUS" command +
parsing error in 'status_info'.
2005-04-30 Vincent Richard <>
* utility/childProcess.{hpp|cpp}: added a 'childProcess' class to help
with spawning child processes (used in 'sendmail' implementation).
2005-04-28 Stefan Uhrig <>
* README.msvc: added guide describing how to compile VMime using
Visual Studio .NET 2003
2005-04-27 Vincent Richard <>
* progressionListener.{hpp|cpp}: moved to 'vmime::utility' package since
this can be of general use.
* stream.{hpp|cpp}: added a bufferedStreamCopy() function which can
take a 'progressionListener' parameter.
* filteredStream.{hpp|cpp}: new feature added: filtered input and
output streams.
* Added 'sendmail' transport service for local delivery.
2005-04-19 Vincent Richard <>
* defaultParameter.cpp: fixed a bug in implementation of RFC-2231 (values
were cut if longer than maxLineLength, and no line wrapping occured).
2005-04-15 Vincent Richard <>
* url.{hpp|cpp}, urlUtils.{hpp|cpp}: fixed a lot of bugs in URLs parsing
and encoding/decoding + added unit tests.
2005-04-14 Vincent Richard <>
* url.{hpp|cpp}, urlUtils.{hpp|cpp}: moved 'url' and 'urlUtils' from
'vmime::messaging' namespace to 'vmime::utility' namespace.
2005-04-12 Vincent Richard <>
* Started version 0.7.1.
2005-04-12 Vincent Richard <>
* parameter.{cpp|hpp}, contentDispositionField.{cpp|hpp}: added support
for RFC-2231 (encoded word extensions). Changed 'filename' parameter
type from 'vmime::string' to 'vmime::word'. Default parameter type is
now vmime::word, and not vmime::string.
2005-04-09 Vincent Richard <>
* encoderB64.cpp: fixed a bug in Base64 decoding. Bytes to be decoded
were not correctly initialized.
2005-04-03 Vincent Richard <>
* messaging/*: moved IMAP, POP3, maildir and SMTP files to separate
2005-03-31 Vincent Richard <>
* misc/importanceHelper.{cpp|hpp}: added support for message importance:
"X-Priority:" and "Importance:" fields.
2005-03-28 Vincent Richard <>
* messaging/POP3Store.cpp: fixed POP3Store::sendPacket() to send "\r\n"
in the same packet as the request. This caused problems with some
servers (thanks to Donald Dade).
* SConstruct: modified 'msvc' target to generate automatically the
config file 'config.hpp.msvc'.
2005-03-27 Stefan Uhrig <>
* Added Windows platform handlers.
2005-03-27 Vincent Richard <>
* messageIdSequence.{cpp|hpp}: added a new basic type "messageIdSequence" for
a list of message-ids separated by CFWS (used in "References:" field, for
* SConstruct: added 'msvc' target to generate MSVC project files.
2005-03-25 Vincent Richard <>
* mdn/*.{cpp|hpp}: added support for Message Disposition Notifications (MDN),
as defined by RFC-3798 and RFC-1892. This is a very first implementation,
API is subject to changes...
* Some fixes for Visual C++/Windows.
2005-03-24 Vincent Richard <>
* Added 'HACKING' file.
2005-03-23 Vincent Richard <>
* messaging/POP3*: fixed incorrect message size. Fixed a bug in
deleteMessages() when 'to == -1' and last message not being
deleted (thanks to Stefan Uhrig).
* SConstruct: fixed compilation/linking problem with g++ and X86-64 on
static library: added -fPIC/-fpic in compiler flags.
* messaging/POP3*: added notifications.
* constants.{cpp|hpp}, contentTypeField.{cpp|hpp}: added support for
content types and parameters defined in RFC-1892.
2005-03-17 Vincent Richard <>
* base.{cpp|hpp}: renamed 'MIME_VERSION' to 'SUPPORTED_MIME_VERSION'.
* Added "Viewer" example in /examples/viewer: demonstrate the parsing
capabilities of VMime and it can help when debugging...
2005-03-16 Vincent Richard <>
* Fixed compilation problems on Solaris 9.
2005-03-15 Vincent Richard <>
* tests/parser/textTest.cpp: added more unit tests for 'text' class.
* text.{cpp|hpp}, word.{cpp|hpp}: moved word parsing from 'text' class
to 'word' class, which now inherits from 'component'.
2005-03-14 Vincent Richard <>
* removed singleton<> and singletonManager classes: useless and quite
confusing in Doxygen-generated documentation.
2005-02-06 Vincent Richard <>
* mailboxList.{cpp|hpp}: dropped protected inheritance which was not
appropriate for this type of composition.
2005-02-05 Vincent Richard <>
* parserHelpers.hpp: moved 'static' functions into 'parserHelpers' class.
2005-02-05 Vincent Richard <>
* platforms/posix/posixHandler.cpp: removed extra '::' before
numeric constants.
2005-02-05 Vincent Richard <>
* utility/md5.cpp: fixed forward use of swapUint32Array() with
gcc 3.3 (Apple).
2005-02-01 Vincent Richard <>
* text.cpp: fixed possible segfault when encoding is Base64 (typo).
2005-01-28 Vincent Richard <>
* Started version 0.6.4.
2005-01-28 Vincent Richard <>
* Splitted 'contentHandler' into three classes: 'emptyContentHandler',
'stringContentHandler' and 'streamContentHandler'.
* Fixed bugs with signed/unsigned char in 'parserHelpers'.
2005-01-15 Vincent Richard <>
* Fixed missing 'vmime/config.hpp' include when installing VMime
using 'make install'.
2005-01-13 Vincent Richard <>
* messaging/events.*: prefixed function names with 'get' + written
some documentation for functions.
2005-01-05 Vincent Richard <>
* Started version 0.6.3.
2005-01-04 Vincent Richard <>
* Added diagnostic error string for 'exceptions::connection_error'.
* Fixed a bug in 'posixSocket::connect()' that prevented connecting to
servers by specifying an IP address instead of a server name.
2005-01-03 Vincent Richard <>
* Fixed linking error on 'typeAdapter <string>::parse()' with g++ versions
older than 3.3.
2005-01-02 Vincent Richard <>
* Added unit tests for utility::path and bodyPart.
* Added 'utility::datetimeUtils' to provide some time-related functions.
* Fixed 'stringUtils' not in namespace 'utility'.
* Moved 'datetime::getDayOfWeek()' to 'datetimeUtils'.
2005-01-01 Vincent Richard <>
* Converted all C-style casts to C++-style casts.
* Added unit tests for utility::md5, utility::stringProxy and
2004-12-31 Vincent Richard <>
* Started version 0.6.2.
2004-12-27 Vincent Richard <>
* Added support for 'libtool'. All files needed for autoconf/automake
can be generated with SConstruct script, using the 'autotools'
target ("scons autotools"). These are also built and included
automatically in the distribution tarball ("scons dist").
2004-12-26 Vincent Richard <>
* Removed relative paths from #include's and moved all header files
to 'vmime/' directory.
* Renamed main VMime include from 'vmime' to 'vmime.hpp'. So, in your
program, you have to #include <vmime/vmime.hpp>.
* Added support for 'pkg-config'.
* Allow creating a service from an URL (session::getStore("url") and
2004-12-24 Vincent Richard <>
* Renamed class 'disposition' to 'contentDisposition' and the enum
namespace 'dispositionTypes' to 'contentDispositionTypes'.
2004-12-23 Vincent Richard <>
* maildir: when connecting to the store, create root directory on the
file system if it does not exist.
2004-12-22 Vincent Richard <>
* Fixed missing files in distribution (src/platform/*).
* Fixed empty 'COPYING' file.
* Started version 0.6.1.
2004-12-22 Vincent Richard <>
* Finished 'maildir' implementation. This is EXPERIMENTAL!
* Added a getCapabilities() function on 'vmime::messaging::store' to
quickly check which features are available.
* New functions in 'component': getParsedOffset(), getParsedLength()
and getChildComponents().
2004-12-19 Vincent Richard <>
* Added chaining in exception handling. vmime::exception::other() returns
the exception which is encapsulated in the current exception (if any).
This allows to retrieve the exception "stack" (for example, this is
used for 'maildir' implementation, where some functions return a
'filesystem_exception' encapsulated in a 'messaging_exception').
* Fixed bugs and memory leaks in POP3/IMAP/maildir implementations.
2004-12-17 Vincent Richard <>
* Made default platform handlers (currently, only "posix"). Source files
are in src/platforms/[platform-name].
To use a default platform handler, do the following:
- #include <vmime/platforms/[platform-name]/handler.hpp>
- call vmime::platformDependant::setHandler() with the appropriate class
- link your program with both 'libvmime' and 'libvmime-[platform-name]'
For example, to use the default platform handler for POSIX (GNU/Linux):
#include <vmime/platforms/posix/posixHandler.hpp>
int main()
// ...
and link your program with "-lvmime" and "-lvmime-posix".
2004-10-21 Vincent Richard <>
* A _LOT_ of cleaning/refactoring in VMime code:
- got rid of field types (only using field names now).
- removed iterators on 'header', 'text', 'addressList', 'mailboxGroup',
'propertySet' and 'bodyPart': use access functions instead (iterators
made the code difficult to understand). You can always use standard
iterators on the container returned by getFieldList(), and so on.
- migrated to get/set convention for accessors (most of time, just add
'get' or 'set' before method name, depending on what it does).
- dropped 'comp_t' typedef on 'datetime' (useless).
- moved a lot of code from header (.hpp) to implementation files (.cpp).
- made all objects cloneable and copiable at the 'component' level:
methods component::clone() and component::copyFrom().
- made a 'typeAdapter' to allow using fondamental/no-vmime types in
header field and parameter values.
- implicit 'operator=' on header fields to set value is not allowed
anymore: use setValue() instead or you will get a std::bad_cast
- 'textParameter' renamed to 'defaultParameter'.
- vmime::makeWordsFromText() is now vmime::text::newFromString().
- changed a lot of return type value from reference to pointer, to
to avoid confusion.
2004-10-05 Vincent Richard <>
* added clone() method on 'component' object.
2004-09-09 Vincent Richard <>
* IMAPFolder.cpp: fixed rename(): folder name is now updated.
2004-08-21 Vincent Richard <>
* charset.cpp: workaround (hack?) for different 'iconv' prototypes (they
may differ in the second parameter being 'const' or not).
2004-08-20 Vincent Richard <>
* renamed "messaging/folderPath" to "utility/path" for common use in
"messaging/folder" and "utility/file".
* moved "stream" and "stringProxy" into "utility" namespace.
* started to write some "JavaDoc-like" comments, for use with Doxygen.
2004-08-18 Vincent Richard <>
* stringProxy.hpp: fixed stringProxy::it_end() which returned wrong
value (typo...).
2004-07-26 Vincent Richard <>
* fileAttachment: fixed the encoding param (not set to default anymore)
and provided a new constructor to specify your own encoding.
2004-07-22 Vincent Richard <>
* wide-char support is disabled by default. To enable, set the flag
"with_wide_char_support=yes" on the SCons command line.
2004-07-08 Vincent Richard <>
* renamed messaging/POP3*, messaging/IMAP* and messaging/SMTP* classes
to follow the same convention as other class names.
2004-07-03 Vincent Richard <>
* moved some files to "utility" subdirectory ("vmime::utility" namespace).
2004-06-15 Vincent Richard <>
* contentHandler, htmlTextPart: Fixed some compilation issues with
g++ version < 3.4:
[error: declaration of `const vmime::encoding& encoding() const'
changes meaning of `encoding' from `class vmime::encoding'].
* Fixed errors in SConstruct with Windows NT (2k, XP...).
2004-05-26 Vincent Richard <>
* added methods receiveRaw() and sendRaw() on vmime::socket object. Do not
forget to implement it, or you will get a compile error.
2004-05-21 Vincent Richard <>
* added some unit tests in the "tests" directory. To run all the tests, 'cd'
to the "tests" directory, compile test programs by running "make" and then
execute the "" script.
* charset: added a convert() function to perform stream conversion.
2004-05-18 Vincent Richard <>
* encoder*: updated all encoders so they use input streams and output
streams instead of a in-memory string. You can use the stream adapters
(inputStreamStringAdapter and outputStreamStringAdapter) for your code
to continue working the old-fashioned way...
2004-05-17 Vincent Richard <>
* messaging/transport.hpp: added a "size" parameter to send() function.
2004-05-16 Vincent Richard <>
* body: body contents and data in text parts are now handled via a
proxy object: contentHandler. This allow more flexibility, including
providing data from an input stream instead of storing whole data in
memory into a string object. This also provide a big performance and
memory usage improvement. For more information, please see the comments
in the file "contentHandler.hpp".
2004-05-15 Vincent Richard <>
* all files: modified the parsing in depth (not using iterators anymore),
the code is clearer and faster.
* IMAPutils.cpp: corrected a bug (typo) in IMAPutils::dateTime().
2004-05-13 Vincent Richard <>
* all files: added a generate() method on vmime::component to generate
objects into an output stream (outputStream). This offers a large
performance and memory usage improvement when generating big messages.
* stream.cpp/.hpp: new objects "inputStream" and "outputStream" to
provide more flexibility than with standard C++ streams. There are
also adapters for standard i/o streams, provided for compatibility.
2004-05-08 Vincent Richard <>
* messaging: added a system of event notification (message change,
folder renamed, etc...). For more information about this, please
consult "src/messaging/events.hpp".
2004-05-03 Vincent Richard <>
* messaging: added a lot of useful features to message stores
(set/get message flags, message deletion, copy, rename folder,
adding messages, unique identifiers, MIME part/header fetch,
partial fetch...).
2004-04-30 Vincent Richard <>
* messaging/message.hpp: added a fetchPartHeader() method to
extract the header of a specific MIME part.
2004-04-25 Vincent Richard <>
* all files: removed (illegal) extra ';' after namespace
* all files: fixed some compilation errors with g++-3.4 (the
parser is more strict and more standard-compliant).
2004-04-24 Vincent Richard <>
* messaging/*: splitted "progressListener" into two objects:
"progressionListener" and "timeoutHandler". The last one is
used internally in VMime. The "progressionListener" parameter
is no more passed as argument to the constructor of a "service"
object. Instead, it can be given in argument to the functions
that use it:
- message::extract[Part]()
- folder::fetchMessages()
- transport::send()
2004-04-04 Vincent Richard <>
* messaging/folder.hpp: added a (optional) parameter "recursive"
to getFolders() to allow enumeration of all sub-folders
(that is, direct and indirect).
2004-04-03 Vincent Richard <>
* messaging/authenti[fi]cationInfos: renamed class
'authentificationInfos' to 'authenticationInfos'.
* exception.hpp: renamed class 'authentification_error' to
* messaging/SMTPtransport: renamed 'options.need-authentification'
to 'options.need-authentication'.
2004-04-02 Vincent Richard <>
* added basic IMAP support. This is EXPERIMENTAL.
2004-03-25 Vincent Richard <>
* messaging::folder::path: changed type of 'component' from 'string'
to 'word' to allow multiple charsets to be used in a path.
* implemented a noop() command on vmime::messaging::service class.
* messageParser.cpp: it is now possible to get more information on an
attachment using the "Content-Disposition" (use the attachmentInfo()
fonction to retrieve the "Content-Disposition" field related to
the attachment).
2004-03-24 Vincent Richard <>
* SMTPtransport.cpp: fixed a bug in send().
2004-02-19 Vincent Richard <>
* mailboxGroup.cpp: fixed a segfault when generating() an empty group
(eg. "undisclosed-recipient").
2004-02-17 Vincent Richard <>
* === MAJOR CHANGE === Removed old "network features". Now, this is called
"messaging system" and a new (incompatible) interface is provided.
2003-12-30 Vincent Richard <>
* encoderFactory.cpp/.hpp: added stuff to allow iterating through
registered encoders.
* encoder*.cpp/.hpp: changed the way options/results are set in encoders:
now, a vmime::propertySet is used. This provides more flexibility.
2003-12-25 Vincent Richard <>
* constants.cpp/.hpp: media types constants: removed "sub" namespace and
translated "sub::[TYPE]::[SUBTYPE]" to "[TYPE]_[SUBTYPE]".
2003-12-08 Vincent Richard <>
* constants.cpp/.hpp, dateTime.cpp/.hpp: translated all constants/enums
from lower-case to upper-case letters.
2003-12-04 Vincent Richard <>
* Created a new class for singleton. Derived all concerned class from
this new class. This concerns: "encoderFactory", "headerFieldFactory",
"parameterFactory", "options" and "textPartFactory".
2003-12-02 Vincent Richard <>
* Moved to SCons building system ( and dropped old
autoconf/automake system. Type 'scons' to build the library and use
'scons install' to install it on your system.
2003-12-01 Vincent Richard <>
* mailboxGroup.cpp: fixed a bug in typeid() comparison: changed
"typeid(parsedAddress)" to "typeid(*parsedAddress)" to test the
object dynamic type (the previous test was always false).
2003-10-24 Vincent Richard <>
* included some sample programs in the "examples/" directory. For a more
complete documentation, please visit: .
* all files: it is not possible to create header fields directly anymore
(ie. you cannot call the constructor directly); instead, you should use
the "headerFieldFactory" object.
2003-10-05 Vincent Richard <>
* all files: changed all calls 'std::isspace(???)' to '[vmime::]isspace(???)'
since no locale was passed (anyway, no locale is needed: text is ASCII).
2003-10-04 Kai Stammerjohann <>
* included a Visual C++ 7 solution/project for vmime: see "vmime.sln" and
"vmime.vcproj" in the root directory.
2003-09-22 Vincent Richard <>
* moved all constants (media types, charsets...) from base.cpp/.hpp to new
files constants.cpp/.hpp.
2003-09-21 Vincent Richard <>
* messageBuilder.cpp (construct): fixed algorithm for generating text parts.
Single and multiple text parts, with or without attachments are now handled
correctly (as recommended by the RFCs).
* bodyPart.cpp/.hpp, body.cpp/.hpp, header.cpp/.hpp: added clone() and
operator=() functions to be able to duplicate body parts.
* messageParser.cpp (findTextParts): handled the case in which the message
is not "multipart/*": we use the main part if its type is "text/*".
* messageParser.cpp (destructor): added code for deleting the text parts
created by the findTextParts() function.
2003-09-19 Bevan Collins <>
* encoderQP.cpp: fixed a bug in quoted-printable encoding: "=20\r\n" is
appended to the line ending with a space.
2003-09-13 Vincent Richard <>
* charset.cpp/.hpp: dropped internal conversion from charset name (string) to
charset type (enum). We keep only the name of the charset.
* base.cpp/.hpp: added string constants for some charsets.
2003-09-12 Vincent Richard <>
* messageParser.cpp (findAttachments): fixed the search for attachment
parts. The right test is "cdf.value().name() != dispositionTypes::_inline"
and not "cdf.value().name() != dispositionTypes::attachment"...
2003-09-11 Vincent Richard <>
* plainTextPart.cpp/htmlTextPart.cpp: fixed a bug in parse(): when getting
the "charset" parameter, "no_such_parameter" exception was not caught if
the parameter was not present.
2003-09-06 Vincent Richard <>
* base.cpp: added a special case when encoding to Quoted-Printable: lines
are no more limited to 76 characters (the maximum length recommended by
the RFC) if maxLineLength == lineLengthLimits::infinite. However, this
SHOULD NOT be used when generating mails (not RFC compliant).
2003-08-24 Vincent Richard <>
* mailbox.hpp: added "const" functions for name() and email().
2003-07-26 Vincent Richard <>
* charset.cpp: fixed a bug in "charset::iconvert()". Also, the
conversion is now done using a buffer, and not in one block.
2003-07-24 Vincent Richard <>
* receiveProtocol[POP3].hpp/.cpp: a socket factory can now be passed in
argument to the constructor so that it is possible to override the
use of the default factory (set in vmime::platformDependantHandler).
2003-07-21 Vincent Richard <>
* changed 'libdir' to install lib files in {PREFIX}/lib
instead of {PREFIX}/lib/vmime. However, include files remain in the
{PREFIX}/include/vmime directory.
2003-06-28 Vincent Richard <>
* base.hpp/.cpp: changed the return type of "libname()" and "libversion()"
from "string::value_type*" to "string".
2003-06-16 Vincent Richard <>
* platformDependant.hpp: added "getSocketFactory()" function to be used
with the new network features.
* modified the file to permit passing arguments to
the "configure" script:
. --disable-net: disable network support (new in 0.3.0)
. --enable-debug: enable debug mode (not used for now)
* started version 0.3.0: added network features: connection to mail
servers via POP3, IMAP... Related classes: "receiveProtocol*",
"serverInfos" and "socket", an abstract socket class.
2003-05-28 Vincent Richard <>
* messageId.cpp: added "vmime." at the beginning of random-generated
message-ids (to make them more unique).
2003-05-26 Vincent Richard <>
* all source files: replaced "_VMIME_xxxxx_HPP_INCLUDED_" macros with
"VMIME_xxxxx_HPP_INCLUDED". Names beginning with "_" (underscore) and
followed by an uppercase letter are reserved to the implementation
(see the C++ standard: Global names).
2003-05-18 Vincent Richard <>
* messageParser.cpp: added a message parser (to be used parallely with
messageBuilder). Extraction of attachment, plain text parts and HTML
text parts (with embedded objects) is supported.
2003-05-09 Vincent Richard <>
* body.cpp (generate): the default prolog & epilog text (as defined
in vmime::options) are not written anymore in sub-parts (only for
the "root" part). Added a "isRoot" member to vmime::header.
2003-05-08 Vincent Richard <>
* encoding.cpp (decide): added some code to choose "quoted-printable"
when there are lines with more than "lineLengthLimits::convenient"
characters (or with a '.' just after a '\n').
* base.cpp (makeWordsFromText): enhanced algorithm.
2003-05-04 Vincent Richard <>
* address.cpp, mailbox.cpp, mailboxGroup.cpp: added empty() function.
* messageBuilder.cpp (construct): some validity checks: we now check
there is one expeditor and at least one recipient.
2003-05-03 Vincent Richard <>
* First (beta) version released.
Jump to Line
Something went wrong with that request. Please try again.