[>a2403.html>] [<a2401.html<] [^a2.html^]
Qualcuno mi può descrivere configurazioni funzionanti di fetchmail e procmail per scaricare e smistare la posta?
---------
Ecco la mia configurazione. Qui c'è un esempio relativo allo scaricamento e allo smistamento dei miei messaggi dai diversi server di posta. I messaggi scaricati (qui c'è l'esempio della mailing list angolinux) possono essere spostati, reindirizzati o cancellati in base a filtri.
Io faccio tutto con uno script chiamato MAIL:
---------- BEGIN: /script/MAIL --------- #!/bin/bash # creo i file temporanei (a zero byte) per contare quante mail sono # arrivate. cat /dev/null > .angolinux.count # scarico la posta fetchmail -v # scrivo il report echo echo " +--------+" echo " | report |" echo " +--------+" echo echo "angolinux mail:`wc -w < ~/.angolinux.count`" # rimuovo i file temporanei di conteggio rm ~/.angolinux.count 2> /dev/null ---------- END: /script/MAIL ---------
nella mia directory home c'è il file .fetchmailrc
per dire a fetchmail come scaricare la posta tramite POP3 (server, login, pass, ecc.) e smistarla tra i vari utenti (nel mio caso sono io -oltre a root- l'unico utente):
---------- BEGIN: /home/fritz/.fetchmailrc --------- poll "mail.dada.it" proto pop3 user "fritz" with pass "CENSORED" is "fritz" here forcecr smtpaddress localhost poll "mail.mdsnet.it" proto pop3 user "fritz2" with pass "CENSORED" is "fritz" here forcecr smtpaddress localhost # così per tutti gli altri account pop3 [...] ---------- END: /home/fritz/.fetchmailrc ---------
e .procmailrc
:
---------- BEGIN: /home/fritz/.procmailrc --------- DATE=`date +%m-%y` PATH=/bin:/usr/bin:/usr/bin MAILDIR=$HOME/mail #you'd better make sure it exists DEFAULT=/usr/spool/mail/fritz LOGFILE=~/.log_procmail #recommended # -- BACKUP DI TUTTE LE MAIL IN backup/all.gz -- # quando si maneggia con la posta, è sempre meglio fare un backup # preventivo di tutto, per evitare di poter perderla a causa di una cattiva # configurazione. Queste due righe mi hanno salvato due volte appena ho iniziato a # giocare con procmail, causa cattiva impostazione e e-mail sparite. :0 c | gzip >> backup/all.$DATE.gz # -- ANGOLINUX -- # funziona così: se c'è una mail incrementa il file contatore di una # parola (1 o oblurasci sarebbe stato equivalente, poiché dopo # «wc -w» conta solo il numero di parole presenti) senza cancellarla, # poi una copia la mette nella cartella angolinux, e un'altra la mette come # backup (sì sono un po' paranoico, pena l'esperienza) nel file # backup/angolinux.$DATE.gz, che le salva in base al mese. :0 c * ^To.*angolinux@systems.it | echo 1 >> ~/.angolinux.count :0 Ac: angolinux :0 A: | gzip >> backup/angolinux.$DATE.gz [...] (tutte le altre mailing list) # -- MISC: tutte le altre -- # le mail che arrivano fino qui non appartengono a nessuna mailing list, # sono le mie personali, quindi lascio che il client (nel mio caso # Pine) le prenda da /var/spool/mail/fritz :0 c | echo 1 >> ~/.misc.count :0 Ac: | gzip >> backup/misc.$DATE.gz ---------- END: /home/fritz/.procmailrc ---------
questa è la mia configurazione, adatta per Pine, ma abbastanza uniforme per molti gestori di posta.
A rigor di cronaca, ecco il risultato del comando MAIL non connessi, quindi non scarica nulla, perché non riesce a connettersi al server pop3:
darkstar:~$ MAIL fetchmail: 5.1.2 querying mail.dada.it (protocol POP3) at Thu, 10 Feb 2000 17:21:27 +0100 (CET) fetchmail: POP3 connection to mail.dada.it failed: temporary name server error fetchmail: Query status=2 fetchmail: normal termination, status 2 [...] +--------+ | report | +--------+ angolinux mail: 0 n3wblist mail: 0 sppgroup mail: 0 blacksun mail: 0 bugtraq mail: 0 pizza_ml mail: 0 md_ml mail: 0 misc mail: 0
Come faccio a configurare Fetchmail in modo che scarichi anche la posta di altri utenti e la ridistribuisca (agli altri utenti)?
---------
defaults proto pop3 poll <POP3> user <ut1> pass <pass1> is <localhost> here mda \ "procmail -d <ut1>" poll <POP3> user <ut2> pass <pass2> is <localhost> here mda \ "procmail -d <ut2>" ...............
(procmail ti serve se vuoi filtrare la posta in diversi modi...)
Ovviamente i termini entro parentesi acute nascondono i corrispondenti valori reali. I valori POP3 saranno diversi, se i provider sono diversi.
Come si configura .fetchmailrc?
---------
Il mio file di configurazione (.fetchmailrc
) ha una serie di voci (una per ciascun server di posta, ovviamente) con il seguente aspetto:
#---------------------------- poll "pop.tiscalinet.it" protocol pop3 username "tuo_nomeutente_presso_tiscali" password "tua_password" #----------------------------
e con tale configurazione non ho problemi con alcuno dei server di posta che utilizzo.
Inoltre la riga di comando con cui viene avviato fetchmail è:
#
fetchmail -d 300
[Invio]
che controlla la presenza di posta sul server ogni 300 secondi. Spesso è necessario un pò di attesa (1 minuto circa) prima che fetchmail cominci effettivamente a scaricare la posta.
Qulacuno mi mostra i propri .fetchmailrc e .procmailrc funzionanti?
---------
fetchmailrc
poll pop.tiscalinet.it with proto POP3 user "user" password "pass" \ mda '/usr/bin/procmail -d %T'
.procmailrc
PATH=/bin:/usr/bin:/usr/bin MAILDIR=$HOME/mail #you'd better make sure it exists DEFAULT=$MAILDIR/altre #completely optional LOGFILE=$MAILDIR/log #recommended :0: * ^TOmioindirizzodiposta@mioprovider.it inbox
Cosa devo configurare il sistema per gestire i messaggi interni ad una rete locale con il dominio Internet? Se devo mandare un messaggio ad un mio collega e voglio inviarlo come utente@provider_Internet.it senza farlo però uscire dalla rete locale, cosa devo configurare?
---------
Devi modificare il sendmail.cf
in modo che includa la caratteristica use_cw. Quindi nel file sendmail.cw
scriverai i domini da trattare come locali. Per fare questo, dovrai però aver configurato anche un name server locale che gestisca per finta la zona provider_Internet.it, con il Mail eXchanger (l'host dedicato alla gestione della posta per un dominio indicato nei file di zona del bind con MX) che punta all'host del tuo server di posta locale e gli altri (www e altri, se esistono) che puntano ai loro effettivi IP Internet, onde evitare spiacevoli disguidi. Poiché per esempio utente@provider_Internet.it non corrisponderà all'utente locale utente, avrai bisogno di impostare anche la virtusertable del sendmail (con la caratteristica omonima nel sendmail.cf
) che ti permette di associare gli indirizzi virtuali a quelli locali esistenti, nella forma:
utente@provider_Internet.it utente_locale
(il separatore è un tab)
Utilizzando procmail, questi mi mette la posta in /var/spool/mail/enrico
. La vorrei in ~/Maildir
. Come faccio?
---------
Puoi risolvere facilmente creando un file .procmailrc
con:
$
touch .procmailrc
[Invio]
nella directory home dell'utente. Nel file, specificherai le variabili di ambiente che ti interessano, ad esempio:
PATH=3D/bin:/usr/bin:/usr/bin MAILDIR=3D$HOME/Maildir DEFAULT=3D$MAILDIR/mbox
Ad ogni avvio mi appare You have new mail , ma digitando 'mail' la risposta è command not found.
---------
Non hai installato il comando mail o un qualsiasi MUA, un semplice programma di posta elettronica. Se lo state facendo per root, è giusto così (per motivi di sicurezza è bene che root non usi programmi per la posta), e potete usare:
#
less /var/spool/mail/root
[Invio]
altrimenti è consigliabile installare un programma per la posta (non tanto mail, che è piuttosto poco intuitivo, quanto ad esempio mutt).
Ogni volta che accendo la macchina, durante l'avvio mi si blocca su sendmail e devo aspettare qualche minuto. È molto noioso, posso evitarlo?
---------
Se la macchina non è direttamente connessa alla rete, modifica il file /etc/hosts affinché contenga:
127.0.0.1 localhost
Se invece è connessa costantemente alla rete ed ha un IP fisso, sendmail si blocca se /etc/hosts contiene la riga:
127.0.0.1 localhost host_name
modificalo così:
127.0.0.1 localhost w.x.y.z host_name
Qual è l'indirizzo cui fare telnet per verificare la configurazione di sendmail relativamente all'antispamming?
---------
mail-abuse.org
Conosco il comando mail -s "soggetto del messaggio" ma poi non riesco a capire come fare per associare anche un testo al messaggio.
---------
$
mail utente@server -s "Soggetto del messaggio" < file.txt
[Invio]
oppure:
$
cat file.txt | mail -s "Soggetto del messaggio" utente@server
[Invio]
Vorrei spedire lo stesso messaggio allo stesso indirizzo ogni 30 minuti per un periodo indeterminato di tempo. Come posso fare?
---------
Lo puoi fare con questo script (shell tcsh):
#!/bin/tcsh touch go_on while(1) if (-f go_on) then mail indirizzo < file.in sleep 3 else break endif end
così, fino a quando non cancelli il file go_on
, ogni tre secondi verrà spedito un messaggio contenente il file file.in
(in cui puoi scrivere quello che vuoi) all'indirizzo che scrivi al posto di indirizzo.
Come faccio ad eliminare i duplicati dei messaggi di posta elettronica?
---------
Il programma formail ha un'opzione per togliere i duplicati, controllando la stringa di identificazione che viene via via memorizzata in un file temporaneo durante la scansione della mailbox.
In particolare, ecco lo script che ho costruito:
#!/usr/bin/bash > cache.tmp cp $1 $1.original formail -D 2000000 cache.tmp -s <$1 > x.tmp cp x.tmp $1 rm x.tmp
Lo script l'ho chiamato dedup. Occorre lanciarlo nella directory dove stanno le cartelle (in formato MBOX), tipicamente ~/Mail
, mettendo come argomento il nome della cartella stessa. Il parametro dopo -D rappresenta la dimensione massima (impostabile a piacere) che deve avere il file temporaneo.
Nel caso di più cartelle di posta, ecco qui un altro script che automatizza ogni cosa:
#!/usr/bin/bash export MAILDIR=~/Mail export PROGDIR=~/scripts cd $MAILDIR rm cmd rm .*.index ls -1 > lista awk '$1!="lista" && match($1,"dedup")==0 {printf("echo \042Esamino mailbox %s.\042\n$PROGDIR/dedup %s\n",$1,$1);}' lista > cmd chmod 755 cmd ./cmd rm -f cmd cache.tmp lista cd
ovviamente cambiando le directory secondo il proprio ambiente. Lo script, che ho chiamato dedup_all, in pratica prepara la lista delle cartelle, poi con awk crea uno script che richiama lo script mostrato prima per ogni cartella da ripulire. Alla fine dell'elaborazione, oltre alle cartelle ripulite, si hanno a disposizione anche le cartelle originali (qualora qualcosa fosse andato storto). Esse, col suffisso .original, possono benissimo essere cancellate se si vede che l'operazione è andata a buon fine.
Quale è la sintassi esatta del file .forward, per poter reindirizzare le e-mail che mi arrivano ad un indirizzo e-mail verso un altro indirizzo?
---------
devi specificare l'utente (o gli utenti separati da una virgola), se vuoi ad esempio che venga fatto un reindirizzamento completo imposta il file $HOME/.forward
a:
indirizzo destinatario
se invece vuoi un duplicato delle mail:
indirizzo1, indirizzo2
Come è possibile scegliere la signature in maniera casuale?
---------
Con sig_rotate.pl (su <http://www.Freshmeat.net>)
Ho una rete interna con gateway e server di posta sulla stessa macchina. Non riesco ad inviare la posta dall'interno della rete verso l'esterno; dal server invece, tutto funziona.
---------
Devi abilitare il relay per i client. Se non specificato diversamente, sendmail dovrebbe leggere gli ip abilitati nel file /etc/mail/relay-domains
. Se non ce l'hai, crealo e inserisci gli ip delle macchine che dovranno usare il gateway come server di posta.
Esempio:
192.168.1.1 192.168.1.2 192.168.1.3
Sto cercando di configurare mutt. Riesco a spedire i messaggi, ma se provo a scaricarli, ricevo il messaggio:
l'host POP non è stato definito.
In .fetchmailrc
ho messo:
poll popmail.iol.it proto pop3 user skywalker2 password miapassword keep
Perché non riesco?
---------
Utilizza questa sintassi:
poll popmail.iol.it proto POP3 user skywalker2 password "tua_password" is tua_login here
In questo modo le e-mail vanno direttamente nella mailbox del tuo utente.
Se invece intendi configurare mutt per scaricare direttamente dal server pop della iol, devi ricompilarlo col supporto per il pop e scrivere in .muttrc:
set pop_delete #per cancellare le mails dal server set pop_host="popmail.iol.it" set pop_port=110 set pop_pass="tua_pass" set pop_user="skywalker2
È possibile spedire un allegato con mutt da riga di comando?
---------
Sì, lo puoi fare con:
$
echo "testo messaggio" | mutt -a "nome_attachment" -s "soggetto" destinatario@dominio.net
[Invio]
Come si fa in mutt a cambiare la stringa di risposta (quella che dice "On Wed, 31 Feb 2010 xyz wrote" o qualcosa del genere)?
---------
Inserisci nel file ~/.muttrc
:
set attribution = "On %d, %n wrote"
Quando rispondo e cambio il soggetto del messaggio, vorrei che mutt aggiungesse [Was vecchiosoggetto] come fa pine. Come si fa?
---------
Inserisci nel file ~/.muttrc
:
set reply_regexp="^(re([\\[0-9\\]+])*|aw):[ \t]*"
Che cosa devo impostare per vedere i colori di mutt anche nel terminale grafico di Gnome?
---------
Prova a scrivere:
$
export TERM=linux
[Invio]
e poi lancia mutt.
Presto andrò in vacanza e vorrei che il computer scaricasse la posta. Vorrei che tutto funzionasse senza problemi e penso che Linux lo possa fare. (utilizzo fetchmail) Come?
---------
Un crontab chiama un solo script più o meno così:
#!/bin/sh pon while ! (/sbin/ifconfig | grep -q ppp0) do sleep 1 done fetchmail poff
dove pon è lo script che inizializza il collegamento, e poff chiude il collegamento. Lo script non fa altro che aspettare, scaricare la posta e chiudere il collegamento. Se non c'è posta il collegamento viene chiuso subito, e se ci sono problemi tecnici, fetchmail va in timeout dopo circa un minuto, dopo di che il collegamento viene comunque chiuso.
Mi capita talvolta di ricevere via e-mail degli allegati mime inseriti direttamente nel testo e quindi non decodificati automaticamente dal client e-mail.
---------
Non sono allegati mime ma uuencode e li decodifichi salvando il messaggio e usando il comando:
$
uudecode -o nomefile filesalvato
[Invio]
Vorrei chiedere due cose su postfix:
Come faccio a ricevere la posta in locale (tipo /etc/sendmail.cf
) perché mi restituisce il solito 'relay denied'.
Procmail non mi divide più le mail in base al mio file ~/.procmailrc
, devo impostare qualcosa in /etc/postfix/main.cf
? tipo:
mailbox_command = /some/where/procmail</p>
---------
Devi impostare la variabile $mynetworks in main.cf
. Oltre a mynetwork devi anche impostare la variabile $mydestination
# The mydestination parameter specifies the list of domains that this # machine considers itself the final destination for. # # The default is $myhostname + localhost.$mydomain. On a mail domain # gateway, you should also include $mydomain. Do not specify the # names of domains that this machine is backup MX host for. Specify # those names via the relay_domains or permit_mx_backup settings for # the SMTP server (see sample-smtpd.cf. # # The local machine is always the final destination for mail addressed # to user@[the.net.work.address] of an interface that the mail system # receives mail on (see the inet_interfaces parameter). # # Specify a list of host or domain names, /file/name or type:table # patterns, separated by commas and/or whitespace. A /file/name # pattern is replaced by its contents; a type:table is matched when # a name matches a lookup key. Continue long lines by starting the # next line with whitespace. # #mydestination = $myhostname, localhost.$mydomain
Ho una piccola rete e ho problemi con la posta elettronica. Se invio una e-mail al di fuori dell'intranet mi risponde che il server SMTP non riconosce il 'recipient' e mi chiede di modificarlo. Accetta soltanto e-mail verso altri utenti dello stesso server. Perché?
---------
Perché la versione di sendmail ha sicuramente un filtro chiamato anti-relay, perciò devi creare un file
/etc/sendmail.cR
e dichiararlo in /etc/sendmail.cf
.
in /etc/sendmail.cf
:
####### ######### ####### start antispamming rules ######### ####### ######### FR-o /etc/sendmail.cR Scheck_rcpt # anything terminating locally is ok R<$+@$=w> $@ OK R<$+@$=R> $@ OK # anything originating locally is ok R$* $: $(dequote "" $&{client_name} $) R$=w $@ OK R$=R $@ OK R$@ $@ OK # anything else i bogus R$* $#error $: "550 Relaing Denied" ####### ######### ####### end antispamming rules #########
mentre il file /etc/sendmail.cR
(nota la R maiuscola) deve avere la struttura
pc1.name.it [192.168.0.2] pc2.name.it [192.168.0.3] pc3.name.it [192.168.0.4] pc4.name.it [192.168.0.5]LDR --- Copyright © 1999-2000 Gaetano Paolone -- bigpaul @ pluto.linux.it