🪟 Windows TippsThe Gemini desktop app is now available for Windows(11.09.2026 um 17:06 Uhr)
🪟 Windows TippsHeader and Footer not showing in Excel(14.09.2026 um 22:43 Uhr)
🕵️ SicherheitslückenBurn Out, Or Fade Away(14.09.2026 um 14:25 Uhr)
🪟 Windows TippsKB5129194 Windows 11 26H1 Out of Band Update - Deskmodder.de(14.09.2026 um 19:25 Uhr)
🪟 Windows TippsThe Gemini desktop app is now available for Windows(11.09.2026 um 17:06 Uhr)
🪟 Windows TippsHeader and Footer not showing in Excel(14.09.2026 um 22:43 Uhr)
🕵️ SicherheitslückenBurn Out, Or Fade Away(14.09.2026 um 14:25 Uhr)
🪟 Windows TippsKB5129194 Windows 11 26H1 Out of Band Update - Deskmodder.de(14.09.2026 um 19:25 Uhr)

🔧 Programmierung 🕛 vor 4 Monaten 4 Min Lesezeit
0

Automate Your Email Inbox With Python: 5 Scripts That Actually Work

↗ Quelle (dev.to)
🗣️ Stimme:
📑 Inhaltsübersicht

Most people spend 2-3 hours per day on email. Python can cut that to 30 minutes.



Here are 5 email automation scripts that work in production — not toy examples.






1. Smart Email Sorter (Zero Inbox in Seconds)






CODE
import imaplib
import email

def smart_sort_inbox(rules):
"""
Automatically sort emails based on custom rules.
rules = [
{
'from_contains': 'newsletter', 'action': 'archive', 'label': 'Newsletters'},
{
'subject_contains': 'invoice', 'action': 'label', 'label': 'Finance'},
]
"""
mail = imaplib.IMAP4_SSL('imap.gmail.com')
mail.login('[email protected]', 'app_password')
mail.select('INBOX')

_, message_numbers = mail.search(None, 'UNSEEN')

sorted_count = {}
for num in message_numbers[0].split():
_, msg_data = mail.fetch(num, '(RFC822)')
msg = email.message_from_bytes(msg_data[0][1])

sender = str(msg.get('From', '')).lower()
subject = str(msg.get('Subject', '')).lower()

for rule in rules:
matched = False
if 'from_contains' in rule and rule['from_contains'] in sender:
matched = True
if 'subject_contains' in rule and rule['subject_contains'] in subject:
matched = True

if matched:
label = rule['label']
sorted_count[label] = sorted_count.get(label, 0) + 1
mail.copy(num, label)
if rule['action'] == 'archive':
mail.store(num, '+FLAGS', '\\Deleted')
break

mail.expunge()
mail.close()
return sorted_count






Time saved: 45 minutes/week.






2. Auto-Reply to Common Questions



Every business gets the same 10 questions repeatedly. Automate the responses:




CODE
import re
from typing import Optional

FAQ_RESPONSES = {
r'(pricing|cost|how much|price|rates)': """
Hi {name},

Thanks for reaching out! Our pricing starts at $99/month.
I
'll follow up with more details. What's your use case?

Best, {signature}
""",
r'(refund|money back|cancel)': """
Hi {name},

We have a 30-day money-back guarantee, no questions asked.
Reply with your order number to process a refund.

Best, {signature}
"""
}

def get_auto_reply(subject: str, body: str, sender_name: str) -> Optional[str]:
combined = f"{subject} {body}".lower()
for pattern, response in FAQ_RESPONSES.items():
if re.search(pattern, combined):
return response.format(name=sender_name, signature="Your Name")
return None






Result: 80% fewer manual replies needed.






3. Follow-Up Sequence Automation



Never forget to follow up again:




CODE
import sqlite3
from datetime import datetime, timedelta

class FollowUpManager:
def __init__(self, db_path='followups.db'):
self.db = sqlite3.connect(db_path)
self._init_db()

def _init_db(self):
self.db.execute('''
CREATE TABLE IF NOT EXISTS followups (
id INTEGER PRIMARY KEY,
email TEXT, name TEXT, context TEXT,
sequence_step INTEGER DEFAULT 0,
next_followup TIMESTAMP,
status TEXT DEFAULT
'active'
)
''')
self.db.commit()

def add_followup(self, email, name, context):
"""Start a 3-touch follow-up sequence: Day 3, Day 7, Day 14"""
self.db.execute(
'INSERT INTO followups (email, name, context, next_followup) VALUES (?, ?, ?, ?)',
(email, name, context, (datetime.now() + timedelta(days=3)).isoformat())
)
self.db.commit()

def get_due_followups(self):
cursor = self.db.execute(
'SELECT * FROM followups WHERE next_followup <= ? AND status = ? AND sequence_step < 3',
(datetime.now().isoformat(), 'active')
)
return cursor.fetchall()






Time saved: 30 minutes/week. Conversion rate improvement: significant.






4. Email Analytics Without Paying for Tools






CODE
import imaplib
import email
from collections import defaultdict
from datetime import datetime, timedelta

def get_email_analytics(days_back=30):
mail = imaplib.IMAP4_SSL('imap.gmail.com')
mail.login('[email protected]', 'app_password')
mail.select('INBOX')

stats = {
'total_received': 0,
'by_sender_domain': defaultdict(int),
'by_hour': defaultdict(int),
'top_senders': defaultdict(int),
}

since_date = (datetime.now() - timedelta(days=days_back)).strftime('%d-%b-%Y')
_, nums = mail.search(None, f'SINCE {since_date}')

for num in nums[0].split():
_, data = mail.fetch(num, '(RFC822.HEADER)')
msg = email.message_from_bytes(data[0][1])

sender = str(msg.get('From', ''))
domain = sender.split('@')[-1].replace('>', '').strip() if '@' in sender else 'unknown'

stats['total_received'] += 1
stats['by_sender_domain'][domain] += 1
stats['top_senders'][sender] += 1

stats['top_senders'] = sorted(stats['top_senders'].items(), key=lambda x: x[1], reverse=True)[:10]
return stats









5. Unsubscribe Bot






CODE
import re
from collections import defaultdict

def find_unsubscribe_links(mail_client, max_emails=100):
"""Find all unsubscribe links in your inbox."""
_, nums = mail_client.search(None, 'ALL')
nums = nums[0].split()[-max_emails:]

unsubscribe_map = defaultdict(list)

for num in nums:
_, data = mail_client.fetch(num, '(RFC822)')
msg = email.message_from_bytes(data[0][1])
sender = str(msg.get('From', ''))

body = ''
if msg.is_multipart():
for part in msg.walk():
if part.get_content_type() == 'text/html':
body = str(part.get_payload(decode=True))
break

links = re.findall(r'href=[\'"]([^\'"]*unsubscribe[^\'"]*)[\'"]',
body, re.IGNORECASE)
if links:
unsubscribe_map[sender].extend(links)

return unsubscribe_map









The Result



Set these 5 scripts up once. Then your inbox practically runs itself. Five scripts, one weekend of setup, years of saved time.



Want 42 more scripts for invoicing, client reporting, social media scheduling, inventory tracking, and business metrics? It's all in the Python Business Automation Toolkit: https://lukassbrad.gumroad.com/l/ugeka

Vollständiger Original-Bericht
Ausführliche Details, Code-Beispiele & Hersteller-Stellungnahme auf dev.to.
↗ Original-Artikel auf dev.to lesen
Wie bewertest du diesen Beitrag?
1 Klick Feedback
Teilen mit Netzwerk & Team:

Community-Analysen & Experten-Meinungen 0

Verfasse deine eigene Analyse, teile Workarounds oder diskutiere diesen Vorfall im Blog.
Noch keine Community-Analyse verfasst. Markiere einen Textabschnitt oder klicke oben auf Eigene Analyse verfassen“!
Community Pulse: Relevanz-Einschätzung
1 Klick Experten-Votum
🔴 Akute Relevanz 0%
🟡 In Evaluierung 0%
🟢 Keine Auswirkung 0%
Spannende Innovation 0%
Verwandte Story-Cluster & Quellen (Vektor-KI)
Port 8095 Engine
1 Quelle
The Gemini desktop app is now available for Windows
1 Quelle
Header and Footer not showing in Excel
1 Quelle
Burn Out, Or Fade Away
Ähnliche Beiträge
🔍 Verwandte News

Auch interessante Nachrichten Automate Your Email Inbox With Python: 5 Scripts That Actually Work

Thematisch verwandte Begriffe: Automate, Your, Email, Inbox · 6 Treffer

Laden...

Videos werden geladen ...

Laden...

Beiträge werden geladen ...

Laden...

Videos werden geladen ...

Laden...

Beiträge werden geladen ...

Laden...

Videos werden geladen ...

Laden...

Beiträge werden geladen ...

Laden...

Videos werden geladen ...

Laden...

Beiträge werden geladen ...

Laden...

Videos werden geladen ...