venerdì 28 gennaio 2011

Configurare exim4 per mandare la posta attraverso Gmail

Logcheck è un ottimo strumento per tenere sotto controllo i logs di Ubuntu: ne fa un riassunto salvando solo le righe importanti, e ce lo posta all'indirizzo che definiamo nella sua configurazione.

L'installazione di logcheck possiamo farla da synaptic (il Gestore Pacchetti), per la configurazione invece potete trovare una buona guida qui (la prima pagina riguarda l'installazione su Debian; dalla seconda pagina viene trattata la configurazione, che si adatta tranquillamente anche ad Ubuntu).

Già, ma che c'entra logcheck con exim4? C'entra, c'entra, per il semplice fatto che installando logcheck, Ubuntu installa anche, come dipendenza, il pacchetto exim4 per gestire le email riassuntive che dovrà mandarvi; e potrebbe capitarvi, come è successo a me, che non vi basti che quei messaggi vengano spediti al vostro indirizzo locale (come fa di default), ma vorreste piuttosto che vi vengano consegnati al vostro indirizzo Gmail, cosi' da poterli controllare anche quando non siete davanti al vostro pc.

Come fare?

La procedura non è delle più semplici, ma se seguirete le mie istruzioni passo passo, raggiungeremo insieme il nostro scopo.

Fatevi sempre una copia dei files che andrete ad editare, prima di modificarli e salvarli.

Pronti? Procediamo.

Fase 1

  • da terminale, digitate sudo dpkg-reconfigure exim4-config
  • si aprirà un wizard, che vi guiderà passo passo nella configurazione di exim4; in questa guida eviterò di citare le pagine (come la prima che vi appare) nelle quali dovete solo dare un OK per andare avanti, tanto non si può fare altro e quindi non potete sbagliarvi
  • alla prima scelta che si presenta, scegliamo posta inviata tramite uno «smarthost»; ricevuta via SMTP o fetchmail
  • nella pagina successiva vi verrà richiesto il nome di dominio della macchina locale, ovvero quella parte di nome che segue la @ in qualsiasi indirizzo locale (esempio: se il vostro indirizzo locale è pippo@miocomputer, il dominio è miocomputer). Per intenderci, il vostro indirizzo locale è quello che appare dietro il prompt dei comandi quando aprite un terminale, il mio (Nirvanalx) lo potete vedere nell'immagine che segue. Ad ogni modo, il wizard dovrebbe farvelo trovare già pronto, quindi basta dare un Invio


  • la domanda successiva riguarda gli indirizzi IP sui quali attendere connessioni SMTP in ingresso: qui dovete rispondere 127.0.0.1
  • nella pagina dopo (Altre destinazioni per conto delle quali accettare posta) potete lasciare il campo in bianco, quindi premete Invio
  • stessa cosa per il campo successivo (Sistemi per i quali fare il «relay»): lasciate il campo in bianco e premete Invio
  • subito dopo vi verrà chiesto l'indirizzo IP o hostname per lo «smarthost» in uscita: qui dovete inserire smtp.gmail.com::587
  • alla domanda successiva (Omettere il mail name locale dai messaggi in uscita?) rispondete NO
  • dopo un paio di invii, vi verrà richiesto se mantenere al minimo il numero di richieste DNS (dial-on-demand), anche qui dovete rispondere NO
  • alla richiesta di modalità di consegna per la posta locale scegliete Formato mbox in /var/mail/
  • poi vi chiederà se dividere la configurazione in molti piccoli file, rispondete NO
  • l'ultima richiesta (Destinatari della posta di root e postmaster) potete lasciarla in bianco e premere Invio
  • a questo punto il wizard terminerà e verrà riavviato in automatico il servizio di mail (MTA)

Bene, è finita? Vi piacerebbe... ora possiamo passare alla

Fase 2

  • sempre da terminale con permessi di root, editate il file /etc/exim4/exim4.conf.template digitando

          gksu gedit /etc/exim4/exim4.conf.template &

  • trovate la riga ".ifdef DCconfig_smarthost DCconfig_satellite", e in quella sezione (prima della riga ".endif") aggiungete le seguenti righe


          send_via_gmail:
             driver = manualroute
             domains = ! +local_domains
             transport = gmail_smtp
             route_list = * smtp.gmail.com


         se nel file che state editando trovate qualsiasi altro smarthost che
         contenga la riga "domains = ! +local_domains", dovete cancellare
         o commentare (con # all'inizio della riga) tutte le righe che lo
         riguardano, come nell'immagine che segue


  • trovate la riga "begin authenticators", e aggiungeteci sotto le seguenti righe
          gmail_login:
              driver = plaintext
              public_name = LOGIN
              client_send = : <indirizzo gmail> : <password>

         sostituendo i campi "<indirizzo gmail>" e "<password>" con i vostri dati
  • cercate se ci sono altri authenticators che contengono la stessa riga "public_name = LOGIN", se esistono cancellateli o commentateli
  • cercate il commento
         "### transport/30_exim4-config_remote_smtp_smarthost"

          e aggiungete sotto, in quella sezione

          gmail_smtp:
              driver = smtp
              port = 587
              hosts_require_auth = $host_address
              hosts_require_tls = $host_address
  • in fondo al file, esiste una sezione che comincia con questa riga
          ".ifndef AUTH_CLIENT_ALLOW_NOTLS_PASSWORDS"

          e finisce dopo 31 righe con un ".endif": bene, questa sezione va tutta
          cancellata o commentata (attenzione che di quelle righe ce ne sono
          due, partite a commentare dalla prima), come potete vedere nel
          prossimo screenshot


  • Salvate e chiudete il file

E ora siamo pronti a passare alla prossima fase (tranquilli, abbiamo quasi finito):

Fase 3
  • da terminale, eseguite sudo update-exim4.conf
  • e infine eseguite sudo /etc/init.d/exim4 restart

Se non notate messaggi di errore, vuol dire che tutto è andato bene: ora il vostro exim4 è pronto per spedire la posta via Gmail
Per provarne velocemente il funzionamento, spedite una mail da riga di comando e poi controllate nella vostra casella Gmail se la ricevete:

echo "Ciao come va?" | mail -s "Saluti" <indirizzo gmail>

Non vi rimane che configurare in logcheck (o in qualsiasi altro programma usi exim4 per spedire la posta) il vostro indirizzo Gmail come destinatario dei messaggi.

Nota importante, ricordatevi che Gmail consente di spedire un massimo di 100 messaggi al giorno per ogni account usando SMTP, quindi occhio a non esagerare!

Nessun commento:

Posta un commento