Today, we committed a big change into VMime codebase. We implemented preliminary support for RFC-6532 (Internationalized Email Headers), which is the (future) replacement for RFC-2047. We added support for IDN (Internationalized Domain Name) and EAI (Email Address Internationalization).
As a lot of MUAs and MSAs do not support this yet, the feature is not enabled by default (and, to be honest, we need to test this thoroughly in VMime before using it in production code). To enable it from your code, just configure the default generation context:
In the meantime, we also added message generation/parsing context and charset conversion options, to provide a better control to the user on how the messages are parsed/generated. Have a look at Doxygen-generated documentation to know more about this.
Hi, here are some news from the front!
We migrated the build system to CMake. SCons is still usable, but should be used only for development purposes. Please note that autotools scripts should now be generated with CMake, as it has been removed from SCons script.
Thanks to the help of Mehmet Bozkurt, VMime now supports OpenSSL for SSL/TLS features, in addition to the existing support for GnuTLS.
We hope these new features will make deployment of VMime easier.
VMime’s source code repository is now hosted at GitHub. It can be checked out through anonymous access with the following instruction:
git clone git://github.com/kisli/vmime
We also have updated Issue Tracker from the previous one on SourceForge.
We are proud to announce VMime 0.9.1 release, which includes all bug fixes and features from the last two years (yeah, I know this looks like eternity, but don’t worry, VMime is still regularly maintained!).
- Fixed a lot of compilation issues on some platforms
- Fixed message parsing and generation issues
- Better support for encoding
Thanks to all who contributed to this release, and those using VMime! We are working hard to provide the Open Source world with a powerful and reliable mail library since more than 10 years!
By popular demand, it is now possible to handle time out during connection to IMAP, POP3 and SMTP servers.
There is nothing to change in your code to enjoy this new feature, at least if you already set a time out handler on the store (
vmime::net::store::setTimeoutHandler). The same time out handler is used for connection and for data exchange after the connection has been opened.
Please note: for now, this is only available in VMime SVN, revision 559, and for POSIX platforms (this feature is not yet supported on Windows).
Hi VMime users!
Let’s focus today on a new feature in VMime 0.9. Until now, when you wanted to “explore” the contents of a vmime::net::message (that is, a message hosted on a IMAP or a POP3 store), you had to extract it entirely, or to use low-level
extract() functions on the message object.
Since the current development release of May 18th, there is a new helper function that will let you access the remote message like a “normal” vmime::message, and actually download the message data only when it is required (this only works for IMAP).
// Connect to the IMAP store
vmime::ref <vmime::net::session> sess = vmime::create <vmime::net::session>();
vmime::ref <vmime::net::store> store = sess->getStore(storeURL);
// Open the INBOX
vmime::ref <vmime::net::folder> folder = store->getDefaultFolder();
// Get the first message in the INBOX
vmime::ref <vmime::net::message> msg = f->getMessage(1);
// Construct the parsed message (a few data, header and structure,
// is actually downloaded from the IMAP server)
vmime::ref <vmime::message> parsedMsg = msg->getParsedMessage();
// Here, extract() will actually download message data from the server
That’s all folks! Update your source tree to the latest SVN head to enjoy this new feature.
Some users fequently ask me how to connect to GMail SMTP service with VMime. You have to connect to server using SMTP protocol ( SMTPS), and set the connection.tls property to true to initiate a secured connection using STARTTLS.
The following code is known to work:
vmime::ref <vmime::net::transport> tr = session->getTransport(url);
To connect to IMAP on GMail, use the following code:
vmime::ref <vmime::net::store> store = session->getStore(url);
For those using VMime on Windows platform, someone has written a HOWTO to get VMime compiled, with all its dependencies, using MinGW. It’s there: HOWTO: Compiling libvmime on MinGW/MSYS.
Hello VMime users!
Thanks to László Vadócz, a possible segfault in
stringUtils::countASCIIchars() has been fixed. A patch is available.
There was another major issue with body contents not generating when using
streamContentHandler: EOF condition was not reset correctly when
stream::reset() was called. The patch is available here.
VMime has been relicensed under the GNU General Public License version 3. So, this will be the default license starting from version 0.9.1 (which is currently in development).
Additionally, due to a lot of demand, and to support development, VMime is now available under dual-licensing:
- GNU GPL v3 for Free and Open Source projects. This is the default license for VMime.
- Commercial license, for proprietary software. This license is available for purchase.
Please consult Licensing Overview and Dual-Licensing Model for more information about this.