If you only want to convert .mbox files to XML using the DArcMailXml or CmdDArcMailXml programs, then you do not need a database. But if you want to search an account for messages, view message content, and export message subsets, then you need the DArcMail program and database. The DArcMail program will work with either MySQL or Sqlite3 as the database.
When executed, the DArcMail program will look for either a MySQL database or a Sqlite3 database depending on the value of a single variable in the file dm_defaults.py:
The values of the variable DB_METHOD can be changed in a text editor.DB_METHOD='MYSQL' or DB_METHOD='SQLITE'
MySQL is an open-source client-server SQL database. It is maintained by Oracle Corporation but the MySQL Community Server is licensed without cost. Installation is not very difficult, but installation and maintenance do require some experience in administering a full-featured database system.
- All data in a MySQL database is stored in files controlled by the MySQL database engine.
- Any user access requires a MySQL userid and password, and the userid must have been granted the privileges required for a given kind of access (select, update, create, delete).
- In the MySQL implementation of DArcMail, data for all loaded email accounts is stored in the same set of tables. Since MySQL does not implement row-level access privileges, a MySQL userid that can access the email data for one email account can access the email data for all email accounts that have been loaded.
Sqlite3 is a widely-used, open-source, light-weight SQL database. Like the proprietary Microsoft Access, Sqlite3 is a file-based system, with all the data for a single database being contained in a single host file. Application-programming interface (API) libraries to the Sqlite3 database engine (written in C) are freely available in current programming languages (Java, Python, Perl, C, C++, Ruby). As there are no database installation or maintenance procedures, there is no requirement for database administration experience.
- The Sqlite3 API does not require a userid and password to access data. Rather, access privileges to a Sqlite3 database file are determined by the privileges that the host operating system has granted to a host-defined userid for the given Sqlite3 database file.
- Since a single host Sqlite3 file is a standalone database, it is possible to have multiple instances of the DArcMail database scheme, each containing the data for a single email account. Or all email accounts could be stored in a single Sqlite3 file. Or multiple Sqlite3 files could each contain multiple email accounts.
- An Sqlite3 database file can be stored anywhere in the host file system, and it can be moved, copied, or deleted using ordinary operating system commands (assuming the user has the appropriate privileges).