Koozali.org: home of the SME Server

Fetchmail

Offline marco.delia

  • *****
  • 164
  • +0/-0
Fetchmail
« on: January 17, 2009, 01:54:14 PM »

Salve a tutti, ho da poco installato sme server versione 7.4 ed ho bisogno di una mano.
Volevo configurere il multi-drop (fetchmail)

1) Ho bisogno di poter scaricare la posta dal mio server secondario ogni 3 massimo 5 minuti e non 15 come è impostato ora di default.

2) Dato che sto facendo solo delle prove, vorrei che la posta rimanesse sul server secondario invece di scaricarla definitivamente, c'è un modo?

3)  vorrei inserire 2 header di distribuzione, poichè ho notato che quando arrivano messaggi in CCN fetchmail fa un po' di confusione.

Scusatemi se apro un nuovo Topic, ho girato un po' tra i forum ma non ho trovato niente a riguardo.
potete aiutarmi?
Grazie mille
Marco D'Elia

.... qui non si scrive .... :P

Online Stefano

  • *
  • 10,894
  • +3/-0
Re: Fetchmail
« Reply #1 on: January 17, 2009, 03:26:05 PM »
Salve a tutti, ho da poco installato sme server versione 7.4 ed ho bisogno di una mano.

ciao e ben arrivato

Quote
Volevo configurere il multi-drop (fetchmail)
1) Ho bisogno di poter scaricare la posta dal mio server secondario ogni 3 massimo 5 minuti e non 15 come è impostato ora di default.

nel pannello "cambia configurazione ricezione e-mail" puoi cambiare l'intervallo, mettendolo a 5 minuti.. per mettere meno devi mettere mano ai template creandotene uno ad hoc [1].. ma non è consigliato.. fare il polling delle caselle di posta "ossessivamente" ogni due minuti è mal visto da certi isp

se hai la necessità di avere la posta in real-time, setta SME affinchè diventi il server di posta (record MX) per il dominio che ti interessa

Quote
2) Dato che sto facendo solo delle prove, vorrei che la posta rimanesse sul server secondario invece di scaricarla definitivamente, c'è un modo?

allora.. dal pannello web no, ed a quanto ne so non è possibile farlo nemmeno settando ad hoc delle variabili [1]
puoi però installare un pannello (un "contrib") digitando:

Code: [Select]
yum --enablerepo=smecontribs install smeserver-fetchmail

nella console come root.. avrai un pannello dove potrai settare utente per utente (ergo no multi-drop) le caselle di posta da scaricare, potendo mettere il flag di lasciare copia sul server

Quote
3)  vorrei inserire 2 header di distribuzione, poichè ho notato che quando arrivano messaggi in CCN fetchmail fa un po' di confusione.

per fare questo devi necessariamente costruirti un template ad hoc [1]

Quote
Scusatemi se apro un nuovo Topic, ho girato un po' tra i forum ma non ho trovato niente a riguardo.
potete aiutarmi?
Grazie mille
Marco D'Elia

allora.. rinnovandoti il benvenuto sul forum, ti invito (se non l'hai già fatto) a leggere BENE la documentazione (i "guru" dicono "twice", almeno 2 volte..)

[1] se i concetti di template, variabili ecc non ti sono chiari, leggi la documentazione e, in questo caso, il manuale dello sviluppatore; questo ti permettrà di capire cosa sta dietro a SME e di ricavarne il massimo

altra raccomandazione: usa sempre il Search prima di postare (anche se a quanto dici lo hai già fatto ;-))

ultimo: se vuoi/puoi, leggi qui e "segnati"

Ciao
Stefano

Offline marco.delia

  • *****
  • 164
  • +0/-0
Re: Fetchmail
« Reply #2 on: January 17, 2009, 03:49:27 PM »
Grazie Stefano della celere risposta, appena posso farò le dovute prove.

vado al link
.... qui non si scrive .... :P

Offline marco.delia

  • *****
  • 164
  • +0/-0
Re: Fetchmail
« Reply #3 on: January 19, 2009, 07:44:32 PM »
Ciao Stafano,
grazie per il tuo aiuto.
Ho seguito i tuoi consigli, la situazione è migliorata di molto, ma non è ancora ottimale.

Questa è la configurazione funzionante del mio multi-drop che uso con CC

set daemon 60
set bouncemail
set properties ""

poll mail.press4web.it
envelope "X-MDRcpt-To:"
envelope "X-Rcpt-To:"
protocol pop3 no dns
localdomains miodominio.it
username hostmaster@miodominio.it password password
to * here
smtphost localhost

poi dirmi come la registro in smeserver?
c'è una piccola guida (possibilmente in italiano) da seguire modificare i template?
.... qui non si scrive .... :P

Online Stefano

  • *
  • 10,894
  • +3/-0
Re: Fetchmail
« Reply #4 on: January 19, 2009, 10:50:36 PM »
Questa è la configurazione funzionante del mio multi-drop che uso con CC

CC=? ClarkConnect?

Quote
Code: [Select]
set daemon 60
set bouncemail
set properties ""

poll mail.press4web.it
envelope "X-MDRcpt-To:"
envelope "X-Rcpt-To:"
protocol pop3 no dns
localdomains miodominio.it
username hostmaster@miodominio.it password password
to * here
smtphost localhost

poi dirmi come la registro in smeserver?

allora.. posto che tu non abbia installato il contrib che ti ho indicato, puoi dare un'occhiata al file /etc/fetchmail.. come avrai modo di vedere la struttura è simile.. puoi, per il momento, modificare quel file a mano..

Quote
c'è una piccola guida (possibilmente in italiano) da seguire modificare i template?

ad essere sinceri, no..
se non ricordo male su questo forum ci dovrebbe essere un mio post dove spiego brevemente come funziona il sistema.. prova a cercare..

ciò detto, ti consiglio, per il momento, di guardare i file in /etc/e-smith/template/etc/fetchmail per capire con cosa hai a che fare :-)

infine, ci sarebbe una soluzione "molto sporca", che però al momento non suggerisco perchè diseducativa..

Ciao
Stefano

Offline marco.delia

  • *****
  • 164
  • +0/-0
Re: Fetchmail
« Reply #5 on: January 20, 2009, 12:12:38 AM »
Quote
CC=? ClarkConnect?
Si, mi riferivo a Clarkconnect, è semplicissimo da configurare ed era perfetto per un utonto come me, ma oggi ho deciso di evolvermi.

Quote
allora.. posto che tu non abbia installato il contrib che ti ho indicato
non l'ho fatto per non perdere la possibilità di usare il multi-drop e l'idea di creare tutti gli utenti a mano per non perdere la posta non mi faceva impazzire.

Quote
puoi dare un'occhiata al file /etc/fetchmail.. come avrai modo di vedere la struttura è simile.. puoi, per il momento, modificare quel file a mano..
modificando a mano il file /etc/fetchmail il template non lo aggiorna (o aggiusta) ad ogni riavvio della macchina o del servzio?

Quote
Quote

    c'è una piccola guida (possibilmente in italiano) da seguire modificare i template?

ad essere sinceri, no..
se non ricordo male su questo forum ci dovrebbe essere un mio post dove spiego brevemente come funziona il sistema.. prova a cercare..

Ho trovato una piccola, ma piccolissima spiegazione qui
http://forums.contribs.org/index.php/topic,39169.0.html

che ne pensi se il manuale lo traduciamo tutti un po' basta solo un super visionatore che potresti essere tu.
.... qui non si scrive .... :P

Offline Fumetto

  • *
  • 899
  • +1/-0
Re: Fetchmail
« Reply #6 on: January 20, 2009, 01:01:30 AM »
Mi prenoto per tradurre... :P

Online Stefano

  • *
  • 10,894
  • +3/-0
Re: Fetchmail
« Reply #7 on: January 20, 2009, 12:49:22 PM »
Si, mi riferivo a Clarkconnect, è semplicissimo da configurare ed era perfetto per un utonto come me, ma oggi ho deciso di evolvermi.

bravo :)

Quote
modificando a mano il file /etc/fetchmail il template non lo aggiorna (o aggiusta) ad ogni riavvio della macchina o del servzio?

viene modificato solo se modifichi da web le sue impostazioni oppure se "scateni" un evento invocandolo.. al riavvio questo file non viene aggiornato..

Quote
Ho trovato una piccola, ma piccolissima spiegazione qui
http://forums.contribs.org/index.php/topic,39169.0.html

no, non era quello..  :)

sarò breve e.. circonciso :)

allora.. SME, a differenza di tutte (non sono a conoscenza di cose simili) le altre distribuzioni linux, ha uno strato sw tra l'interfaccia web ed i file di configurazione..

questi ultimi sono generati "alla bisogna" sulla base di template (a loro volta spezzettati in frammenti) e di dati memorizzati nei db

i template sono in /etc/e-smith/templates/* e, come potrai vedere, la struttura delle direcorty sotto quel punto è identica a quella degli omologhi file di conf in /etc, /home ecc (non sempre, ci sono delle eccezioni)

i db sono in /home/e-smith/db/ e sono dei file di testo formattati opportunamente

l'interfaccia web o opportuni comandi da shell permettono di elaborare i dati nei db e, tramite gli eventi (il famoso signal-event nome-evento), di modificare i file di configurazione, di abilitare/disabilitare i servizi e così via

questa infrastruttura permette di fare il backup di pochissimi dati (i db pesano poche decine di k) e di poter ripristinare un server esattamente come era in poco tempo (naturalmente devi anche fare il backup dei dati degli utenti ecc :wink: )

inoltre, è stata prevista la possibilità di customizzare il sistema in modo da adattarlo  alle esigenze più specifiche.. proprio come nel tuo caso

quindi adesso, come dimostrazione/lezione pratica, ti faccio modificare i template ed i db per ottenere quello che vuoi :)

poi starà a te studiarti il sistema

se digiti
Code: [Select]
config show fetchmail

dovresti avere qualcosa del tipo:
Code: [Select]
fetchmail=service
    FreqOffice=every15min
    FreqOutside=every15min
    FreqWeekend=every15min
    Method=multidrop
    SecondaryMailAccount=popaccount
    SecondaryMailEnvelope=X-Rcpt-To:
    SecondaryMailPassword=poppassword
    SecondaryMailServer=mail.myisp.xxx
    status=enabled

allora.. adesso inseriamo una nuova variabile
Code: [Select]
config setprop fetchmail SecondaryMailEnvelope2 X-MDRcpt-To:

se ridai il comando show, vedrai che la nuova variabile è stata inserita correttamente
Code: [Select]
[root@smeserver ~]# config show fetchmail
fetchmail=service
    FreqOffice=every15min
    FreqOutside=every15min
    FreqWeekend=every15min
    Method=multidrop
    SecondaryMailAccount=popaccount
    SecondaryMailEnvelope=X-Rcpt-To:
    SecondaryMailEnvelope2=X-MDRcpt-To:
    SecondaryMailPassword=poppassword
    SecondaryMailServer=mail.myisp.xxx
    status=enabled

a questo punto dobbiamo modificare il comportamento del template..

andiamo in /etc/e-smith/templates/etc/fetchmail e vediamo il contenuto
Code: [Select]
[root@smeserver ~]# cd /etc/e-smith/templates/etc/fetchmail
[root@smeserver fetchmail]# ls -la
total 20
drwxr-xr-x   2 root root 4096 Nov 25 00:17 .
drwxr-xr-x  72 root root 4096 May 31  2001 ..
-rw-r--r--   1 root root  261 Jul 22  2005 20disabled
-rw-r--r--   1 root root  721 Jun 19  2003 50ETRN
-rw-r--r--   1 root root 1964 Dec 26  2007 50multi-drop
lrwxrwxrwx   1 root root   51 Nov 25 00:17 template-begin -> /etc/e-smith/templates-default/template-begin-shell

ok.. esiste un frammento di template che si occupa del multidrop

a questo punto lo modifichiamo.. ma non direttamente (non si fa MAI).. prima creiamo una directory analoga in /etc/e-smith/templates-custom e ci copiamo dentro il frammento

Code: [Select]
[root@smeserver fetchmail]# mkdir -p /etc/e-smith/templates-custom/etc/fetchmail
[root@smeserver fetchmail]# cp ./50multi-drop /etc/e-smith/templates-custom/etc/fetchmail/
[root@smeserver fetchmail]# cd /etc/e-smith/templates-custom/etc/fetchmail
[root@smeserver fetchmail]# ls -la
total 12
drwxr-xr-x  2 root root 4096 Jan 20 12:22 .
drwxr-xr-x  3 root root 4096 Jan 20 12:22 ..
-rw-r--r--  1 root root 1964 Jan 20 12:22 50multi-drop

adesso che siamo nella directory giusta sotto templates-custom, editiamo il file con pico
Code: [Select]
pico 50multi-drop

e quello che vediamo è uno script in perl.. riporto qui le parti a noi interessanti

Code: [Select]
  my $envelopeSpec =
            $fetchmail{"SecondaryMailEnvelope"};
        my $SecondaryMailServer =
            $fetchmail{"SecondaryMailServer"};
        my $SecondaryMailAccount =
            $fetchmail{"SecondaryMailAccount"};
        my $SecondaryMailPassword =
            $fetchmail{"SecondaryMailPassword"};
        $envelopeSpec = defined $envelopeSpec ?
                "envelope "$envelopeSpec" " : "";
....

 $OUT .= " ";
        $OUT .= "poll $SecondaryMailServer ";
        $OUT .= $envelopeSpec;
        $OUT .= "    protocol $protocol ";

in pratica, come puoi vedere, lo script preleva le variabili dal db e le schiaffa in un file

adesso modifichiamo il file "alla bisogna" (le righe inserite hanno davanti -> che naturalmente NON è da mettere)
Code: [Select]
        my $envelopeSpec =
            $fetchmail{"SecondaryMailEnvelope"};
->     my $envelopeSpec2 =
->          $fetchmail{"SecondaryMailEnvelope2"};
        my $SecondaryMailServer =
            $fetchmail{"SecondaryMailServer"};
        my $SecondaryMailAccount =
            $fetchmail{"SecondaryMailAccount"};
        my $SecondaryMailPassword =
            $fetchmail{"SecondaryMailPassword"};
        $envelopeSpec = defined $envelopeSpec ?
                "envelope "$envelopeSpec" " : "";
->      $envelopeSpec2 = defined $envelopeSpec2 ?
->              "envelope "$envelopeSpec2" " : "";
....

 $OUT .= " ";
        $OUT .= "poll $SecondaryMailServer ";
        $OUT .= $envelopeSpec;
->     $OUT .= $envelopeSpec2;
        $OUT .= "    protocol $protocol ";

chiudi il file e lo salvi

adesso vediamo la "magia"

il file /etc/fetchmail prima della modifica (senza l'header che ho segato):
Code: [Select]
# multi-drop configuration; fetchmail retrieves all mail from a remote POP mailbox:

/usr/bin/fetchmail --syslog --silent --auth password --fetchmailrc - <<EOF

set postmaster "postmaster@mycompany.local"
set bouncemail
set properties ""

poll mail.myisp.xxx
envelope "X-Rcpt-To:"
    protocol POP3
    no dns
    localdomains mycompany.local
       username "popaccount" password "poppassword" to * here
           smtphost 127.0.0.200
           fetchall
           forcecr

EOF

ok.. adesso espandiamo il template:
Code: [Select]
expand-template /etc/fetchmail

e vediamo come è cambiato il file:
Code: [Select]
# multi-drop configuration; fetchmail retrieves all mail from a remote POP mailbox:

/usr/bin/fetchmail --syslog --silent --auth password --fetchmailrc - <<EOF

set postmaster "postmaster@mycompany.local"
set bouncemail
set properties ""

poll mail.myisp.xxx
envelope "X-Rcpt-To:"
envelope "X-MDRcpt-To:"
    protocol POP3
    no dns
    localdomains mycompany.local
       username "popaccount" password "poppassword" to * here
           smtphost 127.0.0.200
           fetchall
           forcecr

EOF

fatto..

e tale modifica rimarrà anche se cambio le impostazioni da web..

l'approccio è estendibile a tutti i template/variabili

spero che l'esempio sia stato illuminante su cosa significhi il templating dei fle di conf su SME :)

Quote
che ne pensi se il manuale lo traduciamo tutti un po' basta solo un super visionatore che potresti essere tu.

se avete tempo/voglia, va benissimo.. occhio che il manuale per sviluppatori (dove si trattano questi argomenti) è abbastanza tosto :wink:

Ciao

Stefano
« Last Edit: January 20, 2009, 09:01:51 PM by Stefano a.k.a. nenonano »