📝 Description
This Python script automates email follow-ups based on contact data from structured CSV files.
It analyzes each entry, filters those eligible for a reminder, and sends a message accordingly — either as a new email or a reply to the last one sent.
Main features:
🗂️ CSV parsing with
pandas
⏱️ Filtering logic: more than 10 days since last contact
📧 Dynamic email sending with
smtplib
📥 IMAP querying to fetch last sent email and reply using
In-Reply-To
💾 Manual storage in the Sent folder
🔐 Secure environment-based configuration
This makes it a fully autonomous, flexible, and realistic emailing automation tool.
🧠 What I learned with it
✉️ Email automation in Python
I deepened my knowledge of SMTP and IMAP, understanding how to craft and send MIME-compliant messages, handle authentication securely, and interact directly with mail servers.
📊 Data filtering and cleaning
I applied data analysis principles with pandas
to filter and validate CSV entries with real-world constraints: null values, invalid formats, etc.
🔐 DevOps & security hygiene
I implemented .env
management using python-dotenv
, configured .gitignore
, and even used git-filter-repo
to purge sensitive data from Git history to correct a team member's mistake.
🧠 Practical scripting
Built a clean and interactive CLI script that makes real decisions based on user input, error states, and live server responses — just like in production.