Impression automatique emails entrants : 3 méthodes (Règles, Services, Scripts)
L'impression automatique d'emails nécessite soit des règles côté client, des services d'automatisation cloud, soit des scripts personnalisés. Voici trois approches par niveau technique.
Méthode 1 : Règles client email (La plus simple, sans code)
Gmail (Web)
- Paramètres (engrenage) → Voir tous les paramètres → Filtres et adresses bloquées
- Créer nouveau filtre → De :
expediteur@domaine.com - Cocher « Appliquer le libellé » (créer « AImprimer ») → Créer filtre
- Installer connecteur Google Cloud Print (obsolète 2021) → utiliser Impression via Zapier/Make à la place
Outlook Desktop (Windows)
- Règles → Gérer règles et alertes → Nouvelle règle
- Appliquer aux messages reçus → De personnes spécifiques
- Action : « L'imprimer » (action intégrée)
- Sélectionner imprimante → Terminer
Thunderbird
- Filtres de messages → Nouveau → De :
expediteur@domaine.com - Action : « Imprimer le message » (nécessite module PrintingTools)
Méthode 2 : Services d'automatisation cloud (Sans code, multiplateforme)
Zapier / Make (anciennement Integromat)
- Déclencheur : Nouvel email (Gmail, Outlook, IMAP)
- Filtre : De, Objet, Libellé, A pièce jointe
- Action : « Imprimer document » → Google Cloud Print (hérité) / PrintNode / ezeep / PrinterLogic
- Ces services connectent cloud à imprimantes locale/réseau via agent
Microsoft Power Automate
- Intégré à Microsoft 365
- Déclencheur : « Quand un nouvel email arrive (V2) »
- Action : « Imprimer » (nécessite passerelle données locale + imprimante)
IFTTT
- Déclencheur email → Service impression (options limitées)
- Webhooks → serveur impression local (avancé)
Méthode 3 : Script personnalisé (Contrôle total, nécessite codage)
Exemple Python + IMAP
import imaplib, email, subprocess, os
IMAP_SERVER = 'imap.gmail.com'
EMAIL = 'vous@gmail.com'
PASSWORD = 'mot-de-passe-application' # Pas le mot de passe principal !
PRINTER = 'HP_LaserJet_Pro'
def print_unseen():
imap = imaplib.IMAP4_SSL(IMAP_SERVER)
imap.login(EMAIL, PASSWORD)
imap.select('INBOX')
status, msg_nums = imap.search(None, 'UNSEEN FROM "boss@company.com"')
for num in msg_nums[0].split():
status, data = imap.fetch(num, '(RFC822)')
msg = email.message_from_bytes(data[0][1])
# Sauver comme .eml, imprimer via lp/lpr
with open(f'/tmp/email_{num.decode()}.eml', 'wb') as f:
f.write(data[0][1])
subprocess.run(['lpr', '-P', PRINTER, f.name])
# Marquer lu
imap.store(num, '+FLAGS', '\\Seen')
imap.close()
imap.logout()
# Exécuter via cron/systemd timer toutes les 5 min
Prérequis
- Linux/macOS/WSL (pour
lpr/CUPS) - Mot de passe application (pas mot de passe principal) pour Gmail/Outlook
- Imprimante partagée via CUPS / IPP / réseau
- Gestion erreurs, journalisation, limitation débit pour production
Recommandation par cas d'usage
| Besoin | Meilleure méthode |
|---|---|
| Utilisateur unique, Outlook/Thunderbird | Règles client |
| Équipe, clients mixtes, imprimantes cloud | Zapier/Make + PrintNode |
| Volume élevé, logique personnalisée, sans cloud | Script Python sur serveur local |
| Gmail seulement, simple | Filtre Gmail + Zapier → PrintNode |
Note sécurité : Les emails imprimés créent des DCP physiques. Sécuriser emplacement imprimante, récupération immédiate, politique destruction.
