Name: Michael Hoy
Company: Hoy Chrissinger Vallas, PC
Contact Information
Phone: +1 775 432 5582
Website: nevadalaw.com
E-Mail: mhoy@nevadalaw.com
Location: Reno Nevada USA
Platform: Mac
Program to handle voluminous emails in civil discovery.
Basic schematic design:
Create SQLite database (specs below)
Interface to specify source folder (to ingest emails), destination folders for renamed emails and attachments, and target number of emails in case to pad file name with leading zeros.
Loop through a source folder containing .eml files
For each .eml file, extract key data from the email and add to the emails table (see table columns below)
Add each recipient to the related recipients table
Save the .eml file in a destination file. The file name will be a unique sequence number that is saved in the emails table
For each attachment in the email, save the attachment in an attachments destination folder with a file name (zero-padded) 000000-file name used in the email
End loop
Emails table:
ID (integer, unique sequence number)
From Name
From Address
Date
Time
Time offset
Subject
Text (plain text only, not rtf or html formatted – will be used for text searching)
Recipients table: (one email to many attachments)
ID
Email_ID (relates to Emails table)
To Name
To Address
(Note: Yes, I can see the efficiency of just one table of unique recipients with a table that joins many:many emails and recipients)
Attachments table (many emails to many attachments)
ID
Email_ID (relates to Emails table)
File Name
Parameters table
Case
Source folder
Destination_EML folder
Destination_Attachments folder
Target scope (integer, number of expected emails in case)
Programming specifications:
Prefer Xojo for Mac, but I understand the limits of the built-in email functions. If necessary, I will pay for Chillkat or similar library to easily open the .eml files
Alternatively, program in .net (VB, C#, or C++)
I will need the source code for maintenance, generating reports, etc.
At this point, this is for internal use. If I decide to commercialize, I will negotiate a royalty or one-time purchase of rights to reuse the code commercially.