134 lines
3.4 KiB
Markdown
134 lines
3.4 KiB
Markdown
# Email Alerts System - Flask Deployment Guide
|
|
|
|
## Overview
|
|
This Flask web application provides a user-friendly interface for the Email Alerts System with configurable settings for time frames, email monitoring, and alert levels.
|
|
|
|
## Features
|
|
|
|
### ✅ Configurable Settings
|
|
- **Email Address**: Set which email to monitor for responses
|
|
- **Time Frames**: Add unlimited custom time frames for alerts (e.g., 1-24 hours, 24-48 hours, 48+ hours)
|
|
- **Email Range**: Configure how many days back to check emails (1-365 days)
|
|
- **Agency Domains**: Set which email domains indicate agency responses
|
|
|
|
### ✅ Web Interface
|
|
- **Dashboard**: View system status and process emails
|
|
- **Settings**: Configure all system parameters
|
|
- **Real-time Updates**: See processing results and thread status
|
|
|
|
## Installation
|
|
|
|
### 1. Install Dependencies
|
|
```bash
|
|
pip install -r requirements.txt
|
|
```
|
|
|
|
### 2. Environment Setup
|
|
Copy the example environment file and configure your settings:
|
|
```bash
|
|
cp env.example .env
|
|
```
|
|
|
|
Edit `.env` with your credentials:
|
|
```env
|
|
ZOHO_EMAIL=your-email@domain.com
|
|
ZOHO_APP_PASSWORD=your-app-password
|
|
GROQ_API_KEY=your-groq-api-key
|
|
TWILIO_ACCOUNT_SID=your-twilio-sid
|
|
TWILIO_AUTH_TOKEN=your-twilio-token
|
|
TWILIO_PHONE_NUMBER=your-twilio-phone
|
|
SECRET_KEY=your-secret-key-here
|
|
```
|
|
|
|
### 3. Run the Application
|
|
```bash
|
|
python run.py
|
|
```
|
|
|
|
The web interface will be available at: http://localhost:5000
|
|
|
|
## Usage
|
|
|
|
### Dashboard
|
|
- **Test Connection**: Verify email connectivity
|
|
- **Process Emails**: Run the email processing pipeline
|
|
- **Refresh Threads**: Update the list of threads needing alerts
|
|
|
|
### Settings
|
|
1. **Email Configuration**:
|
|
- Set the email address to monitor
|
|
- Configure how many days back to check emails
|
|
- Add agency domains (comma-separated)
|
|
|
|
2. **Time Frames**:
|
|
- Add unlimited custom time frames
|
|
- Set hours and alert levels for each frame
|
|
- Remove unwanted time frames
|
|
|
|
3. **Save Configuration**: All settings are automatically saved
|
|
|
|
## Configuration Examples
|
|
|
|
### Time Frames
|
|
```
|
|
1-24 hours: 24 hours, Level 1 (Normal)
|
|
24-48 hours: 48 hours, Level 2 (Urgent)
|
|
48+ hours: 72 hours, Level 3 (Critical)
|
|
Custom: 12 hours, Level 1 (Early warning)
|
|
```
|
|
|
|
### Email Range
|
|
- **7 days**: Standard monitoring
|
|
- **30 days**: Monthly monitoring
|
|
- **90 days**: Quarterly monitoring
|
|
|
|
### Agency Domains
|
|
```
|
|
projects@manaknightdigital.com
|
|
support@company.com
|
|
help@agency.com
|
|
```
|
|
|
|
## API Endpoints
|
|
|
|
- `GET /` - Dashboard
|
|
- `GET /settings` - Settings page
|
|
- `POST /update_settings` - Update configuration
|
|
- `POST /process_emails` - Process emails and send alerts
|
|
- `GET /get_threads` - Get threads needing alerts
|
|
- `GET /test_connection` - Test email connection
|
|
|
|
## Production Deployment
|
|
|
|
### Using Gunicorn
|
|
```bash
|
|
pip install gunicorn
|
|
gunicorn -w 4 -b 0.0.0.0:5000 app:app
|
|
```
|
|
|
|
### Using Docker
|
|
```dockerfile
|
|
FROM python:3.11-slim
|
|
WORKDIR /app
|
|
COPY requirements.txt .
|
|
RUN pip install -r requirements.txt
|
|
COPY . .
|
|
EXPOSE 5000
|
|
CMD ["gunicorn", "-w", "4", "-b", "0.0.0.0:5000", "app:app"]
|
|
```
|
|
|
|
## Troubleshooting
|
|
|
|
### Common Issues
|
|
1. **Connection Failed**: Check Zoho IMAP settings and app password
|
|
2. **No Alerts Sent**: Verify Twilio credentials and phone numbers
|
|
3. **AI Analysis Errors**: Check Groq API key and quota
|
|
|
|
### Logs
|
|
Check the console output for detailed error messages and processing results.
|
|
|
|
## Security Notes
|
|
- Use strong SECRET_KEY for production
|
|
- Enable HTTPS in production
|
|
- Restrict access to authorized users
|
|
- Regularly rotate API keys and passwords |