Newsgroup: it.comp.os.linux.sys
Titolo: postfix non invia le mail in locale

Ho 2 pc, uno fa da mail server (dovrebbe visto che non e' ancora
perfetto) e un client. Non riesco a inviare mail dal server al client
(mentre riesco a inviare dal client al server). In pratica il problema
e' che il server invia all'smtp del provider anche le mail destinate al
client.
/etc/postfix/
main.cf
  (server)
queue_directory = /var/spool/postfix
command_directory = /usr/sbin
daemon_directory = /usr/lib/postfix
mail_owner = postfix
myhostname = p120.filuferru.domo
mydestination=$myhostname , localhost.$mydomain , $mydomain
mydomain = filuferru.domo
mynetworks=
127.0.0.0/8
, 
192.168.0.0/24
myorigin=$mydomain
mynetworks_style = host
disable_dns_lookups = yes
relayhost = 
mail.libero.it
sender_canonical_maps = hash:/etc/postfix/sender_canonical
alias_maps = hash:/etc/postfix/aliases
mailbox_command = /usr/bin/procmail
debug_peer_level = 2
debugger_command =
         PATH=/usr/bin:/usr/X11R6/bin
                  xxgdb $daemon_directory/$process_name $process_id &
                  sleep 5
                  biff=no
/etc/postfix/
main.cf
  (client)
queue_directory = /var/spool/postfix
command_directory = /usr/sbin
daemon_directory = /usr/lib/postfix
mail_owner = postfix
myhostname = athlon.filuferru.domo
mydestination=$myhostname , localhost.$mydomain , $mydomain
mydomain = filuferru.domo
mynetworks=
127.0.0.0/8
, 
192.168.0.0/24
myorigin=$mydomain
mynetworks_style = host
disable_dns_lookups = yes
relayhost = p120.filuferru.domo
sender_canonical_maps = hash:/etc/postfix/sender_canonical
alias_maps = hash:/etc/postfix/aliases
mailbox_command = /usr/bin/procmail
debug_peer_level = 2
debugger_command =
         PATH=/usr/bin:/usr/X11R6/bin
         xxgdb $daemon_directory/$process_name
         $process_id &
         sleep 5
         biff=no
Mi sembra che il server dovrebbe capire che athlon.filuferru.domo e' un
client locale ed evitare di mandare la mail all' smtp di libero.
grazie facc'ebburriccu
-- 
 ------------------------------------------------------------------------
| Powered by *Debian GNU/Linux 3.0* 	   Linux Registered User #297089 |
| <<UNIX is user friendly, it's just picky about who its friends are>>   |
 ------------------------------------------------------------------------

 disable_dns_lookups = yes
A che pro?
Torniamo al problema.
Innanzitutto bisogna che la linux box sappia chi sia athlon.filuferru.domo, 
ossia che il comando
        host athlon.filuferru.domo
ti restituisca l'indirizzo corretto di quella macchina.
Poi bisogna che postfix (con il comando mynetwoks) sappia che 
quell'indirizzo faccia parte di quelli per cui effettua il relaying.
Infine con
        relay_domains = $mydestination
bisogna che postfix sappia di essere il mail exchanger per quel dominio.
Ah: tutto ciň č valido *SOLO* se il mio raffreddore non ha oltrepassato il 
livello di guardia: non me ne rendo mai conto bene, ma quando (come ora) ho 
il raffreddore arrivo ad un punto in cui inizio a sparare cazzate senza 
accorgermene, spero di non portarti fuori strada... :-/
-- 
Ciao da Villo  -  GPG public key available


|Date: Tue, 21 Jan 2003 11:12:51 GMT
|Subject: postfix non invia le mail in locale
|
|Ho 2 pc, uno fa da mail server (dovrebbe visto che non e' ancora
|perfetto) e un client. Non riesco a inviare mail dal server al client
|(mentre riesco a inviare dal client al server). In pratica il problema
|e' che il server invia all'smtp del provider anche le mail destinate al
|client.
|
  A me riesce, ti dico in cosa la mia configurazione differisce dalla tua.
|/etc/postfix/
main.cf
  (server)
|
[...]
  Il server aziendale è Qmail, quindi passo.  Ma non è qui il problema.
|
|/etc/postfix/
main.cf
  (client)
|
|queue_directory = /var/spool/postfix
|command_directory = /usr/sbin
|daemon_directory = /usr/lib/postfix
|mail_owner = postfix
|
|myhostname = athlon.filuferru.domo
  Qui, ho solo l'hostname, non il FQDM (fully qualified domain name):
myhostname = aselli
|mydestination=$myhostname , localhost.$mydomain , $mydomain
  Io ho anche localhost, oltre a localhost.$mydomain .
|mydomain = filuferru.domo
|mynetworks=
127.0.0.0/8
, 
192.168.0.0/24
  D'accordo.
|myorigin=$mydomain
  Io ho:
myorigin = $myhostname
|mynetworks_style = host
  Lasciato il default.
|disable_dns_lookups = yes
|relayhost = p120.filuferru.domo
|sender_canonical_maps = hash:/etc/postfix/sender_canonical
|alias_maps = hash:/etc/postfix/aliases
|mailbox_command = /usr/bin/procmail
|debug_peer_level = 2
|debugger_command =
|         PATH=/usr/bin:/usr/X11R6/bin
|         xxgdb $daemon_directory/$process_name
|         $process_id &
|         sleep 5
|         biff=no
|
|
|Mi sembra che il server dovrebbe capire che athlon.filuferru.domo e' un
|client locale ed evitare di mandare la mail all' smtp di libero.
|grazie facc'ebburriccu
|
  Non ho il tempo/ voglia di approfondire il valore delle differenze sulla
documentazione, per favore fai tu, sperimenta dopo esserti fatto una copia di
backup del tuo 
main.cf
 e vedi se riesci a sbrogliare la matassa.
  Sandro
-- 
Bellum se ipsum alet
       La guerra nutre se stessa
Livio, Ab urbe condita, XXXIV,9

 accorgermene, spero di non portarti fuori strada... :-/
grazie dell'aiuto, sei stato molto gentile, provo e ti faccio sapere 


   Sandro
grazie, ti faro' sapere


 questo mancava completamente (e mi sa che e' la cosa piu' importante)
Ora funziona?
-- 
Ciao da Villo  -  GPG public key available
                  Ferrara LUG 
http://ferrara.linux.it
                  Revome "+nospam" for email replies

 Ora funziona?
No. Oggi su 
postfix.org
 leggevo un po' di documentazione, con
difficolta' non tanto dettate dalla lingua, ma dalla non padronanza di
termini e concetti relativi al networking. Comunque difficolta' a parte,
ho capito che e' _necessaria_ la  tabella di transport, in assenza della
quale postfix manda tutto a 
mail.libero.it
 (e in effetti e' vero, non
consegna in locale). Ora magari mi sbaglio, comunque ho scritto il mio
/etc/postfix/transport :
filuferru.domo  :
*           smtp: ........
te lo risparmio perche' son sicuro che e' pieno di cavolate...per i
suddetti problemi non ho ben capito la sintassi del file. (ho dato anche
#postmap /etc/postfix/transport ma nulla)
grazie mille


 consegna in locale).
Ti posso assicurare che non ho mai dovuto cipollare con la transport, almeno 
per le normali installazioni standard di postfix.


 macchina come server pop3.
il mio caso e' il secondo e il server pop3 installato e' courier-pop3.
In realta' io ho 2 macchine linux, pero' la tua mail mi ha dato l'idea
di provare cosa succede con win e allora ho collegato il portatile di un
mio amico per una prova: funziona perfettamente! si collega al server
pop3 che sta su p120.filuferru.domo e scarica la posta, mentre col
client debian non fa (si collega con fetchmail scarica la posta ma alla
fine la posta finisce nello spool in uscita del server diretta verso
mail.libero.it
).
Il problema e' sicuramente di uno dei 2 postfix, ma non ho capito se
quello del server o quello del client.
Forse del client che la reinvia sul server? perche' fetchmail del client
dopo aver scaricato la posta la consegna a postfix (sempre del client) vero?
solo che postfix (client) anziche metterla su
/var/spool/mail/nome_utente la reivia al server.
Pero', di contro, c'e' anche il problema che se mando una mail dal
server al client (utenti locali) me la ritrovo direttamente in uscita
verso mail.libero, e questo sembrerebbe un problema del postfix del
server. Dal client al server invece la mail locale arriva.
Riposto i 
main.cf
:
**********Client***************
queue_directory = /var/spool/postfix
command_directory = /usr/sbin
daemon_directory = /usr/lib/postfix
mail_owner = postfix
myhostname = athlon.filuferru.domo
mydestination=$myhostname , localhost.$mydomain , $mydomain
mydomain = filuferru.domo
mynetworks=
127.0.0.0/8
, 
192.168.0.0/24
myorigin=$myhostname
mynetworks_style = host
disable_dns_lookups = yes
relayhost = 192.168.1.2
sender_canonical_maps = hash:/etc/postfix/sender_canonical
alias_maps = hash:/etc/postfix/aliases
mailbox_command = /usr/bin/procmail
debug_peer_level = 2
debugger_command =
         PATH=/usr/bin:/usr/X11R6/bin
         xxgdb $daemon_directory/$process_name $process_id & sleep 5
biff=no
********Server********************
queue_directory = /var/spool/postfix
command_directory = /usr/sbin
daemon_directory = /usr/lib/postfix
mail_owner = postfix
myhostname = p120.filuferru.domo
mydestination=$myhostname , localhost.$mydomain , $mydomain
mydomain = filuferru.domo
mynetworks=
127.0.0.0/8
, 
192.168.0.0/24
myorigin=$mydomain
mynetworks_style = host
disable_dns_lookups = yes
relayhost = 
mail.libero.it
sender_canonical_maps = hash:/etc/postfix/sender_canonical
alias_maps = hash:/etc/postfix/aliases
mailbox_command = /usr/bin/procmail
debug_peer_level = 2
debugger_command =
         PATH=/usr/bin:/usr/X11R6/bin
                  xxgdb $daemon_directory/$process_name $process_id &
                  sleep 5
                  biff=no
grazie 


 grazie
Ripeto: de nada. :-)
Se non ci si aiuta fra di noi...


 Allora il problema è del client.
Ho abbandonato momentaneamente l'idea di fare il server (pop e smtp), e
voglio concentrarmi a risolvere il problema che i miei 2 pc
p120.filuferru.domo e athlon.filuferru.domo non scambiano posta in
locale (fra utenti delle 2 macchine) ma inviano entrambi la posta
all'smtp di libero: secondo me risolto questo problema funziona pure la
configurazione del server (e comunque e' meglio risolvere un problema
per volta).
Riposto i 
main.cf
:
**********athlon***************
queue_directory = /var/spool/postfix
command_directory = /usr/sbin
daemon_directory = /usr/lib/postfix
mail_owner = postfix
myhostname = athlon.filuferru.domo
mydestination=$myhostname , localhost.$mydomain , $mydomain
mydomain = filuferru.domo
mynetworks=
127.0.0.0/8
, 
192.168.1.0/24
myorigin=$myhostname
mynetworks_style = host
disable_dns_lookups = yes
relayhost = [
mail.libero.it
]
sender_canonical_maps = hash:/etc/postfix/sender_canonical
alias_maps = hash:/etc/postfix/aliases
mailbox_command = /usr/bin/procmail
debug_peer_level = 2
debugger_command =
         PATH=/usr/bin:/usr/X11R6/bin
         xxgdb $daemon_directory/$process_name $process_id & sleep 5
biff=no
********p120********************
queue_directory = /var/spool/postfix
command_directory = /usr/sbin
daemon_directory = /usr/lib/postfix
mail_owner = postfix
myhostname = p120.filuferru.domo
mydestination=$myhostname , localhost.$mydomain , $mydomain
mydomain = filuferru.domo
mynetworks=
127.0.0.0/8
, 
192.168.1.0/24
myorigin=$myhostname
mynetworks_style = host
disable_dns_lookups = yes
relayhost = [
mail.libero.it
]
sender_canonical_maps = hash:/etc/postfix/sender_canonical
alias_maps = hash:/etc/postfix/aliases
mailbox_command = /usr/bin/procmail
debug_peer_level = 2
debugger_command =
         PATH=/usr/bin:/usr/X11R6/bin
                  xxgdb $daemon_directory/$process_name $process_id &
                  sleep 5
                  biff=no
e' corretto mynetworks=
127.0.0.0/8
, 
192.168.1.0/24
, o e' 
mynetworks=
127.0.0.0/8
, 
192.168.0.0/24
 ?
forse il problema e' che le destination sono (per athlon ad esempio): 
athlon.filuferru.domo ,localhost.filuferru.domo e filuferru.domo
quindi magari non vede p120.filuferru.domo come una destination locale, 
ho provato allora:
mydestination=$myhostname ,localhost.$mydomain ,$mydomain,p120.filuferru.domo  
ma nulla.
Il problema e': dati 2 pc con woody, entrambi che gestiscono da soli la posta 
con postfix (poi si pensera' a farne uno dei 2 il server) che invia all'smtp di 
libero, come si fa per far si che gli utenti dei 2 pc possano fra loro comunicare
senza che la posta "esca fuori dalla LAN" (il che oltre ad essere stupido, non 
funzionerebbe perche' ho un dominio inventato).
Tu dici che basta scrivere un corretto 
main.cf
 e nient'altro?
ciao


 mynetworks=
127.0.0.0/8
, 
192.168.0.0/24
 ?
come sono i tuoi IP, 192.168.1.x (va bene la prima) o 192.168.0.x (va
bene la seconda)?
correggi la riga:
mynetworks_style = host in mynetworks_style = subnet
mydestination=$myhostname , localhost.$mydomain , $mydomain      # va
bene cosě
Inizia a capire se le cose funzionano senza file virtual e
sender_canonical, poi se ti servono li ripristini
Ti mando il mio 
main.cf
 funzionante
#
main.cf
queue_directory = /var/spool/postfix
command_directory = /usr/sbin
daemon_directory = /usr/libexec/postfix
mail_owner = postfix
myhostname = p120.filuferru.domo
mydomain = filuferru.domo
myorigin = $mydomain
inet_interfaces = all
mydestination = $myhostname, localhost.$mydomain, $mydomain
mynetworks_style = subnet
mynetworks = 
192.168.0.0/24
, 
127.0.0.0/8
relay_domains = $mydestination
relayhost = [212.34.224.130]   
# metti l'indirizzo IP di 
mail.libero.it
, non il nome, se hai messo 
# disable_dns_lookups = yes
alias_maps = hash:/etc/postfix/aliases
debug_peer_level = 2
debugger_command =
	 PATH=/usr/bin:/usr/X11R6/bin
	 xxgdb $daemon_directory/$process_name $process_id & sleep 5
sendmail_path = /usr/sbin/sendmail.postfix
newaliases_path = /usr/bin/newaliases.postfix
mailq_path = /usr/bin/mailq.postfix
setgid_group = postdrop
manpage_directory = /usr/share/man
sample_directory = /usr/share/doc/postfix-1.1.11/samples
readme_directory = /usr/share/doc/postfix-1.1.11/README_FILES
alias_database = hash:/etc/postfix/aliases
default_transport = smtp
defer_transports = smtp   # se hai una connessione dial up
disable_dns_lookups = yes
# questi due abilitali in seguito, quando verificherai che tutto
# funziona
# sender_canonical_maps = hash:/etc/postfix/sender_canonical
# virtual_maps = hash:/etc/postfix/virtual

 lavorare come server.
Ok, come primo passo voglio far si che p120 riesca a gestire la posta locale, 
in seguito pensero' alla posta che viene dall'esterno.
Per cui tutte le mail locali (di tutti i client) devono finire al server
(per questo basta mettere sui client relayhost = 192.168.1.2, nel mio caso
ovviamente, corretto?).
Sin qui ci sono (ho modificato 
main.cf
 con tutte le indicazioni che mi 
hai suggerito e la posta finisce sul server).
Ho solo un client, athlon, (woody), per cui le prove le faccio tra due
utenti dello stesso client. Ho creato sul server gli stessi utenti che
ho sul client e quando l'utente A manda all'utente B una mail, questa
finisce su /var/spool/mail/B del server (p120). Ora B deve prendersi quella
mail, per cui serve un server pop3 che giri su p120. Ho provato courier,
ma quando il fetchmail di B si connette a courier ci sono problemi col
formato Maildir:
B@athlon:~$ fetchmail -v
fetchmail: 5.9.11 querying 192.168.1.2 (protocol POP3) at Thu Jan 30 19:02:36 2003: poll started
fetchmail: POP3< +OK Hello there.
fetchmail: POP3> USER B
fetchmail: POP3< +OK Password required.
fetchmail: POP3> PASS *
fetchmail: POP3< -ERR Maildir: No such file or directory
fetchmail: Maildir: No such file or directory
fetchmail: Authorization failure on 
B...@192.168.1.2
fetchmail: POP3> QUIT
fetchmail: 5.9.11 querying 192.168.1.2 (protocol POP3) at Thu Jan 30 19:02:36 2003: poll completed
fetchmail: Query status=3 (AUTHFAIL)
fetchmail: normal termination, status 3
ora a parte la mia ignoranza sul formato Maildir (cercando su google ho capito
che consiste nell'avere un file per ogni mail anziche' tutte le mail su
un'unico file), mi chiedo come si realizza solitamente la cosa: bisogna
lasciare la posta nello spool degli utenti, oppure e' meglio far si che procmail
la sposti da un'altra parte. Magari sarebbe comodo un utente (chiamiamolo postino)
che prende in consegna tutta la posta (con fetchmail scarica anche quella che
viene dall' esterno).....
grazie


grazie
La posta locale di ogni utente sta bene nello spool dell' utente
medesimo, finchč allo stesso non salta la voglia di scaricarsela con
il suo bravo mail reader. (a meno che tu non voglia redirigere la mail
di certi utenti "speciali" su altri utenti e gli alias non ti bastino)
Se poi vuoi distribuire la posta che viene da fuori con criteri piů
complessi di account esterno => utente locale (che č quello che fa
fetchmail) devi usare procmail
fai una cosa alla volta, altrimenti capirci qualcosa diventa difficile
ciao

 Mi sembra che dal portatile del tuo amico con Win funzionasse.
si funzionava perfettamente, infatti io ho sempre pensato che il
problema fosse del postfix o del fetchmail sul client
B@athlon:~$ cat .fetchmailrc
poll 192.168.1.2 with proto POP3 timeout 60
user B there with password psw is B here
e' corretto?

mi sono un po' perso. A me piace usare mutt+fetchmail+postfix+procmail: 
li ho sempre usati e funzionano molto bene, mi smistano la posta delle 
liste che seguo ecc. I casini sno arrivati quando ho deciso di fare il 
server di posta...spero di riuscirci, in ogni caso sul client che uso per 
la posta non vorrei rinunciare a mutt+fetchmail+postfix+procmail, perche' 
mi ci sono abituato e fanno tutto cio' che mi serve (specialmente procmail 
mi e' utilissimo, anche contro lo spam che butto su /dev/null)
Ciao e grazie


Ciao e grazie
Non ho letto tutto il thread che mi e` sembrato quantomeno confuso, e
non ho voglia di rileggermelo, cmq provo a darti una checklist
semplificata per risolvere i tuoi problemi (se ho capito):
TERMINOLOGIA:
non usiamola a caso. server, client, ecc, hanno significati ben precisi.
diversamente si aggiunge confusione a confusione.
SITUAZIONE:
se ho capito hai una piccola rete con due pc. immagino che i due pc
facciano cose _diverse_ e che abbiano utenti con scopi diversi (anche se
identici).
spedire posta da un utente di un pc all'altro non e` un problema di
"configurazione", bensi di come funziona smtp.
in modo semplice si dice che il demone smtp che invia contatta il dns
per sapere chi e` il mail exchanger per quel dato dominio/macchina (il
record mx).
la verita` e` che diverse implementazioni di demoni smtp fanno questo
nei modi piu` diversi (e non sempre con la libreria di resolv della
macchina, o con un ordine diverso).
DNS:
se non hai voglia/interesse a installare un dns ora devi cmq
_permettere_ ai sistemi di gestire l'informazione.
uno *sporco trucco* che puoi utilizzare in una conf semplice, e`
impostare alias di tipo: 
user1@macchina:   user1@[ip_della_macchina]
definire un indirizzo come utente@[10.0.0.1] (e` un esempio), permette
di _aggirare_ la necessita` di avere un mx. va impostato sulla macchina
che _invia_ (e l'utente deve esistere dall'altra parte, ovviamente).
SOFTWARE:
non ci sono _preclusioni_ al sw da utilizzare avendo una logica. ma da
quello che ho letto mi sembra che tu sapessi come desideravi avere le
conf dei vari mutt, procmail ecc.
hope useful.
-- 
        A bleeding heart can be hell on the carpeting.
Maurizio - Tannoiser - Lemmo
Founder Member of ERLUG (Emilia Romagna Linux User Group)
http://erlug.linux.it

 che _invia_ (e l'utente deve esistere dall'altra parte, ovviamente).
ho capito. Francamente io pensavo che bastasse impostare l'indirizzo IP
della macchina server come smtp_server nei parametri di configurazione
del client; in effetti ho fatto una prova con un portatile di un amico e
ho messo nella configurazione di outlook l'indirizzo del mio server
alla voce pop server e smtp server: spediva e scaricava perfettamente.
Sul mio pc ho tradotto questo mettendo su postfix  relayhost=
192.168.1.2...
Comunque mi sono scocciato, se mi dici che la cosa
migliore (e gia' me l'hanno consigliato anche altri) e mettere su bind
col record mx (che mi evita tutti i problemi di far capire ai client
dove deve andare a finire la posta in uscita ecc ecc), mollo tutto e
installo bind. Tanto sono troppo inesperto e i trucchetti, tipo quello
che mi hai suggerito tu dell'alias, mi porterebbero confusione e
complicazioni: meglio fare le cose in maniera rigorosa. Ora mi studio
bind, dopodiche' ritorno al server di posta.
grazie cacciavite


bind, dopodiche' ritorno al server di posta.
piu` che altro poco educativo e troppo "trouble oriented".
-- 
The UNIX Guru's view of sex: 
unzip; strip; touch; finger; mount; fsck; more; yes; umount; sleep.


 proprio invece, _giustamente_ invia la mail all'smtp locale.
che sarebbe il postfix su athlon
ciao e grazie

grazie cacciavite
Ti consiglio di non addentrarti per ora in una configurazione di bind
(che non è semplice) anche perchè con i settaggi di postfix che hai ne
puoi fare a meno.
Come sono i tuoi due resolv.conf?
che istruzioni hanno, search nomedominio e nameserver xxx.xxx.xxx.xxx
o solo la seconda?
se su athlon metti nel virtual B...@filuferru.domo ->
B...@localhost.filuferru.domo funziona?

, relay=192.168.1.2[192.168.1.2], delay=0, status=sent (250 Ok:
queued as A028F18EE)


 queued as A028F18EE)
se ho capito bene i log, la mail viene rimandata al mittente (
cacci...@despammed.com
), 
solo che l' smtp di libero non l'accetta perche' ha un dominio non
registrato (@athlon.filuferru.domo) e allora mi arriva la mail di
notifica di "mancata consegna", o sbaglio?
Grazie cacciavite


killfile, gli altri si regolino come credono.
il motivo te l' ho spiegato, poi vedi tu. 
Posso solo dirti che capisco l'esigenza di osservare delle regole su Usenet: 
se mi fanno delle _giuste_ osservazioni le tengo in considerazione e vedo di 
provvedere (se ben ricordi quando mi avevi fatto notare che avevo una signature 
da 5 righe anziche' da 4 l'avevo ridotta) per rispetto verso gli altri e verso 
me stesso, visto che qua mi hanno sempre aiutato.


 riporti tutto cio' che chiunque puo' ugualmente leggere.
ripeto e' un thread confuso (colpa mia): non posso "crocifiggervi"
facendovi rileggere un thread confuso e ridondante. Forse la soluzione
era riaprinne un altro o forse studiare meglio da documentazione di
postfix e cercare di risolvere da solo...solo che ci sto sbattendo la
testa e non ci riesco.
Comunque ho capito il tuo consiglio.
