amznMailConverter/README.md
2024-11-08 19:00:23 +01:00

103 lines
3.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Amazon Kindle Email PDF Downloader
This project is a Python daemon that connects to your Gmail account, searches for unread emails from "Amazon Kindle Support" containing PDF download links, and automatically downloads the PDFs to a specified local directory if they dont already exist. The script runs as a background service and checks for new emails at a specified interval.
## Features
- Automatically reads unread emails from Gmail.
- Searches for emails from "Amazon Kindle Support" with PDF download links.
- Parses the email to extract the actual PDF download link.
- Downloads the PDF file and saves it to a local `data` directory.
- Runs as a daemon, checking for new emails periodically.
## Requirements
- Python 3.7+
- Google API credentials for Gmail API access
- Gmail API access enabled in Google Cloud Console
## Installation
1. **Clone the Repository**:
```bash
git clone https://github.com/yourusername/amznMailConverter.git
cd amznMailConverter
```
2. **Install Dependencies**:
```bash
pip install -r requirements.txt
```
The `requirements.txt` should include:
```plaintext
google-auth
google-auth-oauthlib
google-auth-httplib2
google-api-python-client
requests
beautifulsoup4
python-daemon # Only if using the daemon library
```
3. **Set Up Google API Credentials**:
- Create a project in the [Google Cloud Console](https://console.cloud.google.com/).
- Enable the Gmail API.
- Download the OAuth 2.0 Client Credentials JSON file, rename it to `credentials.json`, and place it in the project root directory.
4. **Authorize Access**:
- On first run, the script will prompt you to authorize Gmail API access. Follow the instructions in the browser to grant permissions.
- After authorization, a `token.json` file will be generated to store your access token.
## Usage
To run the script as a daemon, use one of the following methods:
### 1. Using Python Daemon Library (Recommended for Simplicity)
```bash
python3 email_pdf_downloader.py
```
The script will run in the background, checking for new emails every 5 minutes.
### 2. Using Systemd (Linux)
1. **Create a Systemd Service**:
- Create a file `/etc/systemd/system/email_reader.service`:
```ini
[Unit]
Description=Email PDF Downloader Daemon
[Service]
ExecStart=/usr/bin/python3 /path/to/email_pdf_downloader.py
Restart=always
User=your_username
WorkingDirectory=/path/to/project
[Install]
WantedBy=multi-user.target
```
2. **Enable and Start the Service**:
```bash
sudo systemctl daemon-reload
sudo systemctl enable email_reader.service
sudo systemctl start email_reader.service
```
3. **Check Status**:
```bash
sudo systemctl status email_reader.service
```
## Configuration
- **SCOPES**: OAuth scopes for Gmail API access.
- **SEARCH_QUERY**: Query to filter emails by sender ("Amazon Kindle Support").
- **SCRIPT_DIR**: Base directory where files are saved.
- **Interval**: The script is set to check for new emails every 5 minutes (300 seconds). You can adjust this interval in the `run_daemon` function in `email_pdf_downloader.py`.
## Logging
Logging information (success messages, errors) is printed to the console or saved to `systemd` logs when running as a systemd service.
## License
This project is licensed under the MIT License.