Pourquoi est-ce nécessaire en 2025 ? 🕒
Le courrier reste le principal canal de communication avec les clients et les partenaires. En fait, 60 à 80 % des e-mails entrants sont des courriels de routine : des confirmations, des questions répétitives, « bonjour, dites-moi... ». Le bot libère des heures par semaine, accélère la réponse à l'utilisateur et réduit la probabilité de « dépôt » des lettres.

Ce que nous allons construire ⚙️
Mini-bot sur IMAP + SMTP pour une réponse automatique de base.
Itinéraire par mots-clés (par exemple, « paiement », « coopération »).
Résumé « comment passer » à Gmail API (OAuth 2.0) pour la fiabilité.
Plan de déploiement : cron / APScheduler, journalisation, Docker.
Sécurité minimale : .env, mot de passe de l'application, limitation de fréquence.
Ci-dessous, la version de travail minimale.
# pip install python-dotenv
import os, imaplib, smtplib, email
from email.mime.text import MIMEText
from dotenv import load_dotenv
load_dotenv()
IMAP = os.getenv("IMAP_SERVER", "imap.gmail.com")
SMTP = os.getenv("SMTP_SERVER", "smtp.gmail.com")
EMAIL = os.getenv("EMAIL_ADDRESS")
PASS = os.getenv("EMAIL_PASSWORD") # Mot de passe d'application pour Gmail
def send_reply(to_addr:str, subject:str):
msg = MIMEText("Thank you! We have received your letter and will reply as soon as possible.")
msg["Subject"] = f"Re: {subject or ''}".strip()
msg["From"] = EMAIL
msg["To"] = to_addr
with smtplib.SMTP_SSL(SMTP, 465) as smtp:
smtp.login(EMAIL, PASS)
smtp.sendmail(EMAIL, [to_addr], msg.as_string())
with imaplib.IMAP4_SSL(IMAP) as imap:
imap.login(EMAIL, PASS)
imap.select("INBOX")
status, data = imap.search(None, '(UNSEEN)')
ids = data[0].split()
for msg_id in ids:
_, raw = imap.fetch(msg_id, "(RFC822)")
msg = email.message_from_bytes(raw[0][1])
sender = email.utils.parseaddr(msg.get("From",""))[1]
subj = msg.get("Subject","")
if sender:
send_reply(sender, subj)
# marquer comme lu
imap.store(msg_id, '+FLAGS', '\\Seen')💡 Conseil : pendant les tests, ajoutez « mode sec » (dry-run) pour enregistrer les actions au lieu d'un envoi réel.
Plus intelligent : réponses par mots-clés 🧭
La logique la plus simple : nous regardons le sujet et le corps de la lettre, nous choisissons un modèle de réponse.
KEYMAP = {
"payment": "Regarding payment: the invoice has been sent, the terms are 1-2 banking days. If you need an act, please reply to this letter.",
"cooperation": "Thank you for your interest! Please write briefly about your audience and format, and we will get back to you with a proposal.",
"Technical support": "Describe the playback steps and send screenshots/logs — we will help you promptly."
}
DEFAULT = "Thank you for your letter! We are in touch and will get back to you as soon as possible."
def choose_reply(subject:str, body:str) -> str:
text = f"{subject} {body}".lower()
for key, template in KEYMAP.items():
if key in text:
return template
return DEFAULTVous pouvez étendre à un simple « intent » : rechercher plusieurs clés, compter le « poids » des correspondances et choisir le meilleur modèle.
Déploiement et exploitation 🚀
Planificateur: cron,
APSchedulerou systemd-timer.Docker: fixez la version de Python et les dépendances, connectez
.envcomme secret.Journaux: niveau INFO pour un fonctionnement normal et WARNING/ERROR pour les pannes ; envoyez les erreurs dans Telegram/Slack.
Limitation de fréquence: ne répondez pas plus d'une fois par jour à l'adresse ; conservez un cache des « réponses des dernières 24 heures ».
A/B: testez les textes des réponses automatiques et l'objet de la lettre — cela affecte la communication ultérieure.
Sécurité et éthique 🔒
Gardez les secrets dans
.env, utilisez App Password ou OAuth 2.0, ne validez pas les jetons dans le dépôt.Ajoutez « vous avez reçu une réponse automatique » et un moyen de contacter la personne dans la réponse.
Gérez une liste blanche de domaines/adresses pour les actions automatiques ; laissez les e-mails controversés pour une analyse manuelle.
Respectez la politique du fournisseur de messagerie et la loi sur les données personnelles.
📊 Que peut faire un bot de messagerie en Python
Scénario | Ce que fait le bot | Avantages |
|---|---|---|
Réponse automatique | « Merci, nous avons reçu votre lettre » + délai d'attente | Supprime la routine, accélère la première réponse |
Filtration | Il met dans les dossiers : « paiement », « coopération », « assistance » | Boîte de réception sans chaos |
Transfert | Envoie des questions sur le paiement — au comptable, sur l'intégration — au support technique | Routage rapide |
Mots clés | Choisissez un modèle en fonction du contenu de la lettre | Réponses plus pertinentes |
Intégration avec CRM | Crée un prospect/une transaction, tire le contact | Entonnoir transparent |
Réponse de l'IA | Génère du texte via LLM à partir d'un bref résumé de la lettre | Ton humain, moins de travail manuel |

Idées d'amélioration 💡
Résumé de la lettre: extraire un résumé et le substituer dans la réponse.
Modèles avec variables: nom de l'expéditeur, numéro de commande, date limite.
Anti-boucle: ne pas répondre aux réponses automatiques / no-reply, vérifier les en-têtes
Auto-Submitted.Multilinguisme: définissez la langue de la lettre et sélectionnez un modèle.
📎 Stockez les modèles dans JSON/YAML et déployez les modifications sans publier de code.
Dans Codique nous rendons l'apprentissage de la programmation passionnant et compréhensible : nous avons des cours intéressants avec des tâches qui aident à améliorer les compétences étape par étape.
Et nous avons aussi un chaîne de télégram, où nous discutons d'idées intéressantes, partageons nos expériences et analysons ensemble les tâches, apprendre devient non seulement utile, mais aussi amusant.
Laissez un commentaire : de quel script de réponses automatiques avez-vous besoin : « paiement », « assistance », « coopération » ou quelque chose de votre choix ?
