File size: 3,935 Bytes
56650d3
 
 
 
 
 
 
 
 
a5dfcf4
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
56650d3
 
a5dfcf4
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
---
title: MailFlow AI
emoji: πŸš€
colorFrom: blue
colorTo: indigo
sdk: docker
pinned: false
---

# MailFlow AI - Advanced Email Automation πŸš€

A highly attractive, GUI-based Python email automation tool designed for both beginners and advanced businesses. MailFlow AI is tailored for sending personalized emails to a list of contacts from an Excel/CSV file with optional attachments. It includes an intuitive web interface built using Flask and Tailwind CSS.

## Key Features

- **Beautiful GUI Interface**: Run the app locally and get a modern, interactive dashboard and campaign builder.
- **Dynamic Personalization**: Automatically insert variables like `{FirstName}` or `{CompanyName}` dynamically based on your contact sheet columns.
- **Smart Tracking**: Connects to your Excel file, tracking "Already Sent" vs "Pending" emails to prevent duplicate sends. 
- **Real-time Progress Bar**: Watch your emails send one by one with a live success/fail tracker.
- **Optional Attachments**: Super easy UI to mass-upload files like PDFs and Images to your emails.
- **Batch Processing**: Configurable delays to avoid your emails being flagged as spam.

## Quick Start (For Beginners & Pros)

### 1. Installation Requirements

1. Install Python (version 3.x).
2. Clone this repository to your computer.
3. Install the dependencies using terminal/command prompt:
```bash
pip install -r requirements.txt
```

### 2. How to Start the App GUI πŸ–₯️

Run the `app.py` script:
```bash
python app.py
```
After you press enter, open your web browser and navigate to exactly: **[http://127.0.0.1:5000](http://127.0.0.1:5000)**

### 3. Securing Your Gmail App Password (CRITICAL) πŸ”

Because of standard security rules, you **cannot** use your normal Gmail login password for automated email software. You need to quickly generate a special 16-character "App Password". 

**Here is exactly how to generate it (Takes 1 minute):**
1. Go to your [Google Account Dashboard](https://myaccount.google.com/).
2. On the left navigation panel, click **Security**.
3. Under the "How you sign in to Google" section, make sure **2-Step Verification** is turned ON.
4. Once 2-Step Verification is active, search for **App Passwords** in the top search bar (or find it at the bottom of the 2-step verification page).
5. Name the app password something recognizable, like `MailFlow AI`.
6. Click **Generate**.
7. Google will give you a **16-letter password** (e.g. `abcd efgh ijkl mnop`). 
8. Copy that password *without* spaces. This is the password you will paste into the GUI when making a new campaign!

### 4. Excel/CSV Contact Sheet Rules πŸ“Š

Before creating a campaign, make sure your Excel (.xlsx) or CSV file has columns for your data.
- **Email Column:** You can name your email column anything (e.g. `Email`, `RecipientEmail`, `Contact`). The app will dynamically detect it or let you choose it from a dropdown!
- You can add any custom columns you want! Example: `FirstName`, `Industry`.
- In the "Email Body Message" area of the GUI, just type `{FirstName}` and it will auto-populate that column's data for every single person.

*Note: The app will safely auto-create columns `EmailSent` and `DateSent` tracking to log its successful deliveries.*

---

## Technical Details (For Advanced Users)

- **Framework:** Python Flask (Backend) + HTML/JS/Tailwind CSS (Frontend)
- **Concurrency:** Uses asynchronous sequential dispatch over REST API to prevent browser timeouts for large email lists (`/api/send_next`).
- **Data Persistence:** Updates the specific `.xlsx`/`.csv` contact file locally on each iteration using an optimistic file-lock model so progress is instantly saved on hard drive.
- **SMTP Limitations:** Using Gmail SMTP, be cautious of Google's hard sending limits (approximately 500 emails/day for free accounts, 2000 for Google Workspace). We built-in a 1 second delay per email to prevent automated spam flags. 

License: MIT