imap-json-fetcher/README.md

2.5 KiB

IMAP JSON Fetcher

Setup

Before running the imap-json-fetcher, ensure that you have configured the necessary environment variables. This script uses these variables to securely connect to your IMAP server and fetch emails from a specified mailbox.

Required Environment Variables

Set the following environment variables in your system:

  • IMAP_HOST: The address of your IMAP server, including the port if necessary (e.g., imap.example.com:993).
  • IMAP_USERNAME: Your email account username.
  • IMAP_PASSWORD: Your email account password.
  • IMAP_FOLDER: The specific folder to monitor for new emails. If not specified, the script defaults to monitoring the "INBOX".

You can set these variables in a Unix-like environment using the following commands:

export IMAP_HOST="your_imap_server_address"
export IMAP_USERNAME="your_username"
export IMAP_PASSWORD="your_password"
export IMAP_FOLDER="your_folder_name"  # Optional, defaults to "INBOX"

Running the Script

Navigate to the dist directory where the binary is compiled, and run the script using the following command:

./imap-json-fetcher

Docker Container Example

For running in a Docker container, you might set it up like this, passing the environment variables into your container. Replace specifics to fit your architecture and environment settings:

docker run --env IMAP_HOST=$IMAP_HOST \
           --env IMAP_USERNAME=$IMAP_USERNAME \
           --env IMAP_PASSWORD=$IMAP_PASSWORD \
           --env IMAP_FOLDER=$IMAP_FOLDER \
           --name imap-json-fetcher \
           your_docker_image

This command assumes that you've built a Docker image named your_docker_image that encapsulates your application.

Output

The imap-json-fetcher listens for new emails arriving in the specified IMAP folder. For each new email, it extracts relevant data and saves this information in separate JSON files. The inclusion of the IMAP_FOLDER environment variable allows flexibility in choosing which folder to monitor, beyond just the default "INBOX".

File Naming Convention

Output files are named using a timestamp to ensure uniqueness: email-yyyyMMdd-HHmmss.json. This format prevents overwriting files and helps in organizing data chronologically.

Flexibility in Folder Selection

The IMAP_FOLDER environment variable provides users the flexibility to monitor various folders within their email account, such as "Sent", "Archive", or custom labels, depending on their specific requirements.