Linux Server

Inoltrare mail a più destinatari con Fetchmail

3 min di lettura
Inoltrare mail a più destinatari con Fetchmail

Inoltrare mail a più indirizzi (senza segnarle come lette)

Hai la necessità di smistare le mail in arrivo su una casella verso più collaboratori, ma vuoi che sulla Webmail originale i messaggi rimangano “Non Letti”?

In questa guida vedremo come usare Fetchmail per creare un sistema di inoltro intelligente che non “spamma” i tuoi colleghi con i messaggi vecchi e mantiene tutto pulito sul server remoto.


🛠 STEP 1: Creazione dell’utente dedicato

Per mantenere il sistema sicuro ed evitare conflitti di permessi, creiamo un utente di sistema che si occuperà esclusivamente di questa attività.

# Crea l'utente senza password (solo per uso interno)
useradd -m inoltromail

📝 STEP 2: Configurazione del file .fetchmailrc

Ora dobbiamo dire a Fetchmail come collegarsi al server. Creiamo il file di configurazione nella home del nuovo utente.

nano /home/inoltromail/.fetchmailrc

Copia e incolla il seguente contenuto (sostituisci le credenziali e gli indirizzi email):

set logfile /home/inoltromail/fetchmail.log

poll pop3.esempio.it with proto POP3 port 995
    uidl                    # Fondamentale per ricordare le mail già viste
    user "utente@esempio.it" there with password "TuaPassword"
    is "inoltromail" here
    keep                    # Lascia la mail originale sul server
    ssl
    sslproto "TLS1.2"
    mda "/usr/sbin/sendmail -i mail1@azienda.it mail2@azienda.it mail3@azienda.it"

⚠️ ATTENZIONE: I permessi devono essere blindati, altrimenti Fetchmail non partirà:

chmod 600 /home/inoltromail/.fetchmailrc
chown inoltromail:inoltromail /home/inoltromail/.fetchmailrc

🛑 STEP 3: Allineamento Storico (Evitiamo il disastro!)

Se la tua casella ha già centinaia o migliaia di messaggi, Fetchmail proverebbe a inoltrarli tutti al primo avvio. Segui questi passi per “marcare” le mail vecchie come già viste senza inviarle.

  1. Finto MDA: Modifica .fetchmailrc e cambia temporaneamente la riga mda in: mda "/bin/true"

  2. Sincronizzazione ID: Esegui il comando per scaricare solo gli ID:

    su -s /bin/bash -c "fetchmail -v" inoltromail

    Attendi che finisca. Questo creerà il file /home/inoltromail/.fetchids.

  3. Ripristino: Torna nel file .fetchmailrc e scrivi nuovamente la riga mda originale con i tuoi indirizzi email reali.

⏰ STEP 4: Automazione con Cron

Ora dobbiamo dire al sistema di controllare la mail ogni 5 minuti. Modifichiamo il Crontab di root:

crontab -e

Aggiungi questa riga alla fine:

*/5 * * * * su -s /bin/bash -c "/usr/bin/fetchmail -s" inoltromail > /dev/null 2>&1

🔍 STEP 5: Troubleshooting (Cosa fare se…)

Errore: “Another foreground fetchmail is running” Capita se il processo viene interrotto male. Risolvi così:

killall fetchmail
rm -f /home/inoltromail/.fetchmail.pid

Come vedo se sta lavorando correttamente? Monitora il log in tempo reale:

tail -f /home/inoltromail/fetchmail.log

Se vedi X messages (X seen), il sistema è allineato e aspetta solo l’arrivo della prossima mail!

Tip: Usando POP3 invece di IMAP, i messaggi rimangono “Non Letti” sul server (bustina chiusa), permettendo al titolare di vedere la notifica sulla webmail.