Dada Mail File Formats
Dada Mail Specific File Formats
The File Formats for much of Dada Mail's list settings, archives, etc are very basic. Having other programs read the information and use it should be relatively easy.
List Subscribers
Currently, Dada Mail is shipped with support for three different types of backends for the subscription list. They are:
Postgres
Dada Mail also supports a Postgres based subscription list backend.
The specific table schema is described in the dada/extras/SQL/dada_subscribers.sql file in the Dada Mail distribution.
email_id
is an auto-generated ID number
email
Holds the actual email address
list
Holds the listshortname the email address is subscribed to
list_type
Holds either, list, black_list or <invite_list> (see the PlainText docs above)
list_status
Almost always is set to, 1. Setting it to something else won't have an affect you may intend.
MySQL
Dada Mail also supports a MySQL based subscription list backend.
The specific table schema is described in the ada/extras/SQL/dada_subscribers.mysql file in the Dada Mail distribution.
The fields in the schema play the same role as what's described for Postgres, although their structure is slightly different, given the differences of the two SQL products.
See Also:
DADA::MailingList::Subscribers
https://dadamailproject.com/support/documentation-11_22_0/MailingList_Subscribers.pm.html
List Settings
Currently, Dada Mail is shipped with support for three different types of backends for the List Settings. They are:
Postgres
Dada Mail also supports a Postgres based list settings backend.
The specific table schema is described in the dada/extras/SQL/dada_settings.sql file in the Dada Mail distribution.
list
The list shortname associated with the list setting.
setting
The Name of the list setting
value the value of the list setting
MySQL
Dada Mail also supports a MySQL based list settings backend.
The specific table schema is described in the ada/extras/SQL/dada_settings.mysql file in the Dada Mail distribution.
The fields in the schema play the same role as what's described for Postgres, although their structure is slightly different, given the differences of the two SQL products.
See Also:
DADA::MailingList::Settings
https://dadamailproject.com/support/documentation-11_22_0/MailingList_Settings.pm.html
DADA::MailingList::Settings::Db
https://dadamailproject.com/support/documentation-11_22_0/MailingList_Settings_Db.pm.html
DADA::MailingList::Settings::baseSQL
https://dadamailproject.com/support/documentation-11_22_0/MailingList_Settings_baseSQL.pm.html
DADA::MailingList::Settings::MySQL
https://dadamailproject.com/support/documentation-11_22_0/MailingList_Settings_MySQL.pm.html
Message Archives
Currently, Dada Mail is shipped with support for three different types of backends for the message archives. They are:
Postgres
Dada Mail also supports a Postgres based archive backend.
The specific table schema is described in the dada/extras/SQL/dada_archives.sql file in the Dada Mail distribution.
list
The list shortname associated with the archived message.
archive_id
Similar to the keys of the DBM-based backend.
subject
The Subject of the message. This field is not necessarily filled in as the, raw_msg contains this information as well. Part of the table for backwards-compatibility.
message
A simplified version of the Message Body. Not necessarilly filled in, as the raw_msg field contains this information as well. Part of the table for backwards-compatibility
format
A simplified version of the Message Content-Type. Not necessarilly filled in, as the raw_msg field contains this information as well. Part of the table for backwards compatibility.
raw_msg
Containts the complete email message, including the email message headers.
A main advantage of using the SQL-based backend is that it suffers from almost none of the shortcomings of the DBM-based backend, save for the message-id collision problem.
MySQL
Dada Mail also supports a MySQL based archive backend.
The specific table schema is described in the ada/extras/SQL/dada_archives.mysql file in the Dada Mail distribution.
The fields in the schema play the same role as what's described for Postgres, although their structure is slightly different, given the differences of the two SQL products.
See Also:
DADA::MailingList::Archives
https://dadamailproject.com/support/documentation-11_22_0/MailingList_Archives.pm.html
DADA::MailingList::Archives::Db
https://dadamailproject.com/support/documentation-11_22_0/MailingList_Archives_Db.pm.html
DADA::MailingList::Archives::baseSQL
https://dadamailproject.com/support/documentation-11_22_0/MailingList_Archives_baseSQL.pm.html
DADA::MailingList::Archives::MySQL
https://dadamailproject.com/support/documentation-11_22_0/MailingList_Archives_MySQL.pm.html
DADA::MailingList::Archives::PostgreSQL
https://dadamailproject.com/support/documentation-11_22_0/MailingList_Archives_PostgreSQL.pm.html
Backups
By default, automated backups are created for the List Settings, Archives and Schedules backends.
The List Settings are automatically backed up if the backend is the DBM file.
The List Archives are automatically backed up if the backend is the DBM file.
The List Schedules are automatically backed up if the backend is the DBM file.
Backups are not made for the subscription lists.
Backups are not made for any of the SQL backends.
The backups are file-based and OS platform neutral.
By default, these backups are stored in the directory set in the Config.pm variable, $BACKUPS. If this variable isn't explicitly set, the directory set in the $FILES variable is used.
The format seems complex at first, but is really quite simple:
Each list has its own directory, named after the list's short name. The contents of this directory will be three other directories, named, archives, schedules and settings - named appropriately for what information they save.
Contained in any one of those directories is a list of more directories, named after the UNIX time() they were created.
In any one of these directories is a list of files. Each file is named after the name of the key and its contents are the values from that key.
You can reload/reset your list archives/schedules/settings by visiting the following URL in your web browser:
http://example.com/cgi-bin/dada/mail.cgi?flavor=restore_lists
Where, http://example.com/cgi-bin/dada/mail.cgi
Is the URL of your Dada Mail installation.
For more information, see the dada/DADA/App/GenericDBFile/Backup.pm Perl module.
You can set how many copies of backups you'd like to save in the Config.pm variable, %BACKUP_HISTORY
https://dadamailproject.com/support/documentation-11_22_0/global_variables.pod.html#_backup_history
Usage Logs
The Dada Mail usage logs are saved wherever you've set the Config.pm variable, $PROGRAM_USAGE_LOG
The format is fairly free-form, but does follow some conventions, for example (Instead of newlines, tabs are used):
[Tue Jan 16 22:07:54 2007]
listshortname
127.0.0.1
Subscribed to dadatest.list
email1@example.com
[Tue Jan 16 22:07:54 2007] Apache-style date of the action
listshortname the list's shortname of the list being worked with
127.0.0.1 the IP Address that the action was started by
Subscribed to dadatest.list the action itself
email1@example.com More information about the action, in this case, the email subscribed.
For more information:
https://dadamailproject.com/support/documentation-11_22_0/Logging_Usage.pm.html
Error Logs
The Dada Mail error logs are saved whereer you've set the Config.pm variable, $PROGRAM_ERROR_LOG.
The format is fairly free-form, but usualy has a Apache-style date stamp, followed by the error/warning reported by the program.
Session Information
Dada Mail has two methods it can use to keep state for administrative control panel sessions.
By default, it uses the CPAN CGI::Session module and supports the following CGI::Session backends:
PlainText
Db (Berkeley DB File, in this case)
MySQL
PostgreSQL
The other method is currently known as, "Classic" and is basically the system that was in place before we moved to the CGI::Session module.
This method using no temporary session keeping file, but rather keeps all information in the web browser's cookie. Because this information includes a password (encrypted), it's not suggested that you use this method, but it's there for backwards compatibility.
See Also:
CGI::Session
http://search.cpan.org/~markstos/CGI-Session/lib/CGI/Session.pm
dada/DADA/App/Session.pm