/chronicle-email

Email importer for chronicle-etl

Primary LanguageRubyMIT LicenseMIT

Chronicle::Email

Gem Version

Extract and work with your email using the command line with this plugin for chronicle-etl.

Usage

# Install chronicle-etl and this plugin
$ gem install chronicle-etl
$ chronicle-etl plugins:install email

Extracting email from IMAP

For Gmail accounts, you can create an app password; your email address is your username.

# Save username and password
$ chronicle-etl secrets:set imap username foo@gmail.com
$ chronicle-etl secrets:set imap password APPPASSWORD

# Then, retrieve your email from the last five days
$ chronicle-etl --extractor email:imap --schema chronicle --since 5d

# If you don't want to save your credentials as a secret, you can just pass
# them to the extractor directly
$ chronicle-etl --extractor email:imap --schema chronicle --since 5d --loader json \
    --extractor-opts username:foo@gmail.com --password:APPPASSWORD

Processing email from an .mbox file

The MBOX format is used to archive an email mailbox. Google Takeout exports emails from gmail in this format.

# Retrieve the subject lines of all emails in test.mbox
$ chronicle-etl --extractor email:mbox --input ~/Downloads/inbox.mbox --fields subject

Available Connectors

Extractors

imap

Extractor for importing recent emails from an IMAP server.

Settings
  • since: Retrieve emails since this date
  • until: Retrieve emails until this date
  • username
  • password
  • host: (default: imap.gmail.com)
  • port: (default: 993) Use 143 for unencrypted connections
  • mailbox: (default: "[Gmail]/All Mail")
  • search_query: When using Gmail, you can pass in a search query (from:foo has:attachment) to filter messages by

For accessing Gmail, you can create a one-time app password. Your email address is your username.

mbox

Extractor for importing emails from an MBOX file

Settings
  • input: A path to an .mbox file

Transformers

email

Transform an email (in the form of a string) into Chronicle Schema

Settings
  • body_as_markdown: (default: false) Whether to convert the email body into markdown
  • remove_signature: (default: true) Whether to attempt to strip out the email signature (using the email_reply_parser gem)