mailsql all changes logs

mailsql all changes logs

Change log index

Version 0.4


Change in the database

The database was using blob to store messages and long one were truncated. The script was changed to create the database properly.

folder2sql utility: new

This utility is a migration tool. It reads a normal email folder and import it on the SQL database. It works like this

folder2sql --domain domain --user user folder

It is installed in /usr/lib/linuxconf/lib

vdeliver_sql and large message

Larger message (megabytes) are now supported. There is still a limit imposed by the mysql client library.

vpop3d_sql and IP less

vpop3d_sql now works like vpop3d and vimap. It accepts a user account id like user@some_domain and identifies the SQL vdomain using this information. So you can have all you SQL mail domains on a single IP.

Version 0.5


vimap_sql: work in progress

There is now a vimap_sql added. It is not completed yet. It is started as a service, not on demand like vpop3d_sql (or other imap server). the service name is vimap_sql. At some point, it will be multi-client/multi-threaded, explaining this design.

To better support IMAP, the SQL database schema was changed, so if you have working setup, it will have to be re-install. I did not write any conversion utility as I don't think anyone has this in production yet. If this is not the case, let me know. The change involves the folder field in the messages table. It has been changed to folderid as a int and another table, folders have been created to provide the ids.

This change involves also the account creation process. A folder named inbox must be created for every account in the folders table.

vpop3d_sql: 2 greating

When connecting to the vpop3d_sql server, we were getting two greatings in some cases. A missing break statement.

Version 0.7


database format changed

The database changed to support domain aliases (not account aliases) (several domain pointing to one).

fallback destination

This was not yet implemented. It now works. This is a account or full email address used to deliver mail when the target of a message do not correspond to any alias or account.

Managing accounts

This was incomplete. You could only create new accounts. Now you can edit back old accounts. The administration module is shaping...

Bug fixes

vpop3d_sql, missing empty line

vpop3d_sql was not generating the empty line between the header and the body.

Version 0.9


Using a different MySQL server

The previous version were using the database mailsql on the server localhost and there were no way to specify a user/password. Now you configure it and the module, vpop3d_sql, vdeliver_sql and vimap_sql (still unfinished) are using the settings.

A new dialog was created to enter those settings.

Bug fixes

vpopd_sql: Support IP less mode

The vpop3d_sql was improperly supporting the IP less mode. It was simply exiting. Now the greeting line tells you you are running in IP less mode (because the reverse look-up of the target IP does not match any domain).

Version 0.13


folder2sql: enhancements

The folder2sql utility let you import an email folder in flat file format into MySQL. You can specify the domain, the user and the target folder (by default inbox).

Maximum message size

Using MySQL 3, the maximum message size is roughly 16 megs. With MySQL 4, there is no limit. In both case, you must configure your server so it accepts large query (set the max_allowed_packet in /etc/my.cnf).

mailsql can handle any message size, but you must configure it on a per domain basis.

Module command line

The module has the --deldomain command line. This deletes a domain and all user accounts and folders from the SQL database.

User account management

The administrative part is now fairly complete. You can create SQL email accounts and for each enter the following information:

  • User ID
  • User name
  • Enable/Disable the delivery of new messages.
  • Enable message retrieval.
  • Maximum folder size.
  • Expiration date.
  • Password.

user2sql utility: new

The user2sql import user account into SQL from unix password files. It work for virtual email domains as well. Everything is imported including the password.


expiration date

The database schema was modified to include creation and expiration date. The expiration date is specified at the domain level and on a per user basis. User without an expiration date inherit the domain date.

Existing database will need to be changed.