Scriptory
Bulk Outlook email import
Export any number of messages from Outlook into ~/Seafile/buffer/mail/. Outlook's subject-based
filenames and numeric collision suffixes do not matter; the importer reads each email's headers and
content hash.
Import all new messages:
~/Seafile/tower/repo/scriptory/import-outlook-mail.py
The default canonical destination is ~/Seafile/doc/job/Parallels/mail/. Messages are grouped by
the year and month of the email's Date header. A normal filename is
YYYYMMDD-HHMMSSZ-subject.eml; the timestamp is normalized to UTC when the header includes a
timezone. A short SHA-256 suffix is added only if a different message already has the same generated
filename. Unknown or invalid dates are stored under unknown-date/.
The importer regenerates index.csv from the archive with the full SHA-256, selected normalized
header values, and archive path. Its duplicate rules are:
- An existing SHA-256 is an exact duplicate and is skipped.
- A repeated
Message-IDwith different bytes is preserved and reported as a variant. - A repeated subject alone is not a duplicate.
Each new message is copied to a temporary file beside its final destination, SHA-256 verified, and
then published without overwriting an existing file. Files in ~/Seafile/buffer/mail/ are never
modified or deleted. Clear the buffer manually only after confirming that Seafile has synchronized
the canonical archive.
Only .eml files are imported. Other files are reported as unsupported, left untouched, and cause a
nonzero exit so they are not missed before the buffer is cleared. To use different directories:
~/Seafile/tower/repo/scriptory/import-outlook-mail.py \
--source /path/to/export \
--archive /path/to/archive