Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/yanivhaliwa/email-ai
https://github.com/yanivhaliwa/email-ai
automation command-line cron cronjob email-scheduling email-sender gmail google-api gpt oauth openai
Last synced: about 2 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/yanivhaliwa/email-ai
- Owner: YanivHaliwa
- Created: 2024-10-04T21:21:56.000Z (3 months ago)
- Default Branch: master
- Last Pushed: 2024-10-20T15:35:16.000Z (3 months ago)
- Last Synced: 2024-10-20T17:49:20.910Z (3 months ago)
- Topics: automation, command-line, cron, cronjob, email-scheduling, email-sender, gmail, google-api, gpt, oauth, openai
- Language: Python
- Homepage:
- Size: 9.77 KB
- Stars: 1
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: readme.md
Awesome Lists containing this project
README
# Gmail Automation Interaction Toolkit:## Automated Emailing with OpenAI Integration and Command-Line Email Management
### `emi.py` - Email Interaction Tool
This script allows users to read from and send emails via the command line, offering functionality to interact with their Gmail in a more flexible manner.
#### Key Features:
- **Read Emails**: Can fetch and display emails with options to specify how many emails to read.
- **Send Emails**: Provides a command-line interface to send emails, allowing users to input the recipient, subject, and body.
- **Argument Parsing**: Uses argparse to handle input options, making it easy to integrate into other scripts or workflows.for more scripts using GPT for translation and subtitle check here: [Subtitle Management Tools section in the main README](https://github.com/YanivHaliwa/Linux-Stuff/tree/master?tab=readme-ov-file#subtitle-management-tools).
#### Usage:
- **Read Emails**: Use the `-r` flag to read emails. You can specify the number of emails to read as an argument.
- **Send Emails**: Use the `-s` flag followed by the recipient's email address to send an email. The script will prompt for the subject and message body.#### Example Command:
```bash
# Read the latest 5 emails
python emi.py -r 5# Send an email
python emi.py -s [email protected]
```### `autogmail.py` - Automated Email Sender with OpenAI Integration
This script automates sending emails using Gmail through a scheduled task (like a cron job). It uses the Google API to authenticate and send emails, and OpenAI's API to generate dynamic email content.
#### Key Features:
- **OpenAI Content Generation**: Leverages OpenAI's GPT model to create email content based on a predefined prompt.
- **Automated Email Dispatch**: Configured to send emails at specific intervals using scheduling tools like crontab.
- **Custom Email Configuration**: Users can set their email address, subject, and utilize dynamic content in the body.#### Usage:
- **Setup**: Ensure `credentials.json` and `token.pickle` are placed in the same directory as the script.
- **Configuration**: Modify the email parameters within the script to match your sender and recipient details.
- **Scheduling**: Add the script to your crontab or another scheduler to run at your desired frequency.#### Example Cron Setup:
```bash
# Run every day at 9 AM
0 9 * * * /usr/bin/python3 /path/to/autogmail.py
```# Google API Authentication Setup
This guide provides a step-by-step process for setting up Google API authentication for your Python projects using `credentials.json` and `token.pickle`.
## Prerequisites
- A Google Cloud account
### Step 1: Google Cloud Project Setup
1. **Open Google Cloud Console**: Visit the [Google Cloud Console](https://console.cloud.google.com/apis/dashboard).
2. **Create or Select a Project**: If you haven't already created a project:
- Click on the project dropdown next to the Google Cloud Platform logo.
- Click **New Project**, give it a name, and click **Create**.### Step 2: Enable APIs
1. **Enable Gmail API**:
- Navigate to the [Gmail API page](https://console.cloud.google.com/apis/library/gmail.googleapis.com?project=email-392618).
- Click **Enable** to activate the Gmail API for your project.### Step 3: Configure Credentials
1. **Navigate to Credentials**:
- Go to the **Credentials** tab on the left sidebar in the Google Cloud Console.
2. **Create OAuth Client ID**:
- Click **Create credentials** and select **OAuth client ID**.
- Choose **Desktop app** as the Application type.
- Click **Create**.
- In the window that appears, click **Download JSON**.
- Rename the downloaded file to `credentials.json`.
- Move this file to the same folder location as your Python script.## Security Note
Keep your `credentials.json` and `token.pickle` secure, especially if you are using shared machines or deploying your application publicly. Consider using environment variables or other methods to protect sensitive information.