59 lines
2.5 KiB
Markdown
59 lines
2.5 KiB
Markdown
# 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:
|
|
|
|
```bash
|
|
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:
|
|
|
|
```bash
|
|
./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:
|
|
|
|
```bash
|
|
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.
|