Stampa Automatica Email in Arrivo: 3 Metodi (Regole, Servizi, Script)
La stampa automatica delle email richiede regole lato client, servizi di automazione cloud o scripting personalizzato. Ecco tre approcci per livello tecnico.
Metodo 1: Regole Client di Posta (Più Facile, Nessun Codice)
Gmail (Web)
- Impostazioni (ingranaggio) → Vedi tutte le impostazioni → Filtri e Indirizzi Bloccati
- Crea nuovo filtro → Da:
mittente@dominio.com - Spunta "Applica etichetta" (crea "DaStampare") → Crea filtro
- Installa connettore Google Cloud Print (deprecato 2021) → usa invece Stampa via Zapier/Make
Outlook Desktop (Windows)
- Regole → Gestisci Regole e Avvisi → Nuova Regola
- Applica ai messaggi che ricevo → Da persone specifiche
- Azione: "Stampa" (azione integrata)
- Seleziona stampante → Completa
Thunderbird
- Filtri Messaggi → Nuovo → Da:
mittente@dominio.com - Azione: "Stampa Messaggio" (richiede componente aggiuntivo PrintingTools)
Metodo 2: Servizi di Automazione Cloud (Senza Codice, Multipiattaforma)
Zapier / Make (ex Integromat)
- Attivatore: Nuova Email (Gmail, Outlook, IMAP)
- Filtro: Da, Oggetto, Etichetta, Ha Allegato
- Azione: "Stampa Documento" → Google Cloud Print (legacy) / PrintNode / ezeep / PrinterLogic
- Questi servizi collegano cloud a stampanti locali/reti tramite agente
Microsoft Power Automate
- Integrato in Microsoft 365
- Attivatore: "Quando arriva una nuova email (V2)"
- Azione: "Stampa" (richiede gateway dati locale + stampante)
IFTTT
- Attivatore email → Servizio stampa (opzioni limitate)
- Webhooks → server di stampa locale (avanzato)
Metodo 3: Script Personalizzato (Controllo Totale, Richiede Codifica)
Esempio Python + IMAP
import imaplib, email, subprocess, os
IMAP_SERVER = 'imap.gmail.com'
EMAIL = 'tu@gmail.com'
PASSWORD = 'password-app' # Non la password principale!
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])
# Salva come .eml, stampa tramite 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])
# Segna come letto
imap.store(num, '+FLAGS', '\\Seen')
imap.close()
imap.logout()
# Esegui tramite cron/timer systemd ogni 5 minuti
Requisiti
- Linux/macOS/WSL (per
lpr/CUPS) - Password app (non password principale) per Gmail/Outlook
- Stampante condivisa tramite CUPS / IPP / rete
- Gestione errori, logging, limitazione velocità per produzione
Raccomandazione per Caso d'Uso
| Esigenza | Metodo Migliore |
|---|---|
| Singolo utente, Outlook/Thunderbird | Regole client |
| Team, client misti, stampanti cloud | Zapier/Make + PrintNode |
| Alto volume, logica personalizzata, niente cloud | Script Python su server locale |
| Solo Gmail, semplice | Filtro Gmail → Zapier → PrintNode |
Nota di sicurezza: le email stampate creano PII fisico. Posiziona la stampante in luogo sicuro, ritiro immediato, politica di distruzione.