Newsgroup: it.comp.os.linux.iniziare
Titolo: Messaggi applicazioni via email interna.

Spesso le applicazioni inviano i messaggi d'errore
attraverso il MTA locale.
Altrettanto spesso se si è su una workstation a
ragione non munita di MTA per le mail interne si
potrebbe sperimentare che eventuali applicazione
che necessitano di questa possibilità non
funzionano cme dovrebbero.
Ora, il punto è che l'installazione/configurazione
di un siste MTA locale è dispendioso e inutile se
consideriamo un sistema con singolo utente.
Pertanto sendmail, postfix et similia non mi
sembrano la soluzione leggera e semplice che
potrebbe ampiamente bastare per una gestione
"banale" dei messaggi che un'applicazione vorrebbe
per esempio inviare a root...
Nello specifico, ultimamente sto cercando di far
funzionare due news server molto semplici: "sn" e
"noffle". Entrambi richiedono la presenza di un
MTA installato proprio perchè inviano messaggi
d'errore all'amministratore del sistema via mail.
Trovandomi su un sistema Slax, pensato per essere
una live, ma utilizzabile anche in pianta stabile,
non ho una configurazione completa come potrei
ritrovarmi su sistemi più standard.
Ricordo comunque che anche su slackware ero
riuscito ad evitare di installare sendmail,
nonostante a INN servisse un MTA per inviare
messaggi d'errore all'amministratore.
Vado amemoria, e non posso giurarci... Inoltre non
ricrodo cosa avevo messo invece di sendmail, forse
era un semplicissimo script...
Vista la memoria corta vi propongo la questione:
Cosa utilizzare per indurre quelle applicazioni ad
inviare mail in locale senza un MTA completo?

 inviare mail in locale senza un MTA completo?
Hai provato mail?  Ne esistono diverse versioni, tutte derivate da 
mail di BSD.  Non serve solo per leggere le mail e dovrebbe essere 
presente in tutte le distribuzioni.
$ > dir /usr/bin/mail*
lrwxrwxrwx 1 root root      5 Apr 20 18:20 /usr/bin/mail -> mailx*
-rwxr-xr-x 1 root root   2191 Jun  4  2006 /usr/bin/mail-files*
-rwxr-xr-x 1 root root  10512 Aug  6  2008 /usr/bin/mail.local*
lrwxrwxrwx 1 root root     18 Apr 20 18:41 /usr/bin/mailq -> 
/usr/sbin/sendmail*
-rwxr-xr-x 1 root root   2688 Jun  4  2006 /usr/bin/mailshar*
-rwxr-xr-x 1 root bin    5859 Sep 19  2006 /usr/bin/mailstat*
-rwxr-xr-x 1 root bin   48636 Feb 18  2004 /usr/bin/mailto*
-rwxr-xr-x 1 root bin    2464 Feb 18  2004 /usr/bin/mailto-hebrew*
-rwxr-xr-x 1 root root 290504 Apr 11  2008 /usr/bin/mailx*
Ciao
Giovanni
-- 
   A computer is like an air conditioner,
   it stops working when you open Windows.
   < 
http://giovanni.homelinux.net/
 >

 inviare mail in locale senza un MTA completo?
nullmailer ? ssmtp ? io mi trovo meglio con il secondo ...
http://a2.pluto.it/a2410.htm
-- 
Never try to teach a pig to sing.
It wastes your time and annoys the pig.

 presente in tutte le distribuzioni.
Bene, ho  installato mailx.
Ho provato ad aumandarmi una mail:
______________________
root@slax:~# mail root
Subject: prova
prova
.
EOT
root@slax:~# mail
No mail for root
______________________
Forse che non sia possibile autinviarsi mail?
Il pacchetto installato è:
____________________________________________________
root@slax:~# cat /var/log/packages/mailx-12.3-i486-1
PACKAGE NAME:     mailx-12.3-i486-1
COMPRESSED PACKAGE SIZE:     0K
UNCOMPRESSED PACKAGE SIZE:     470K
PACKAGE LOCATION: mailx-12.3-i486-1.tgz
PACKAGE DESCRIPTION:
mailx: mailx (a simple mail client)
[...]
FILE LIST:
./
install/
install/doinst.sh
install/slack-desc
etc/
etc/nail.rc.new
bin/
usr/
usr/doc/
usr/doc/mailx-12.3/
usr/doc/mailx-12.3/TODO
usr/doc/mailx-12.3/COPYING
usr/doc/mailx-12.3/AUTHORS
usr/doc/mailx-12.3/README
usr/doc/mailx-12.3/INSTALL
usr/doc/mailx-12.3/ChangeLog
usr/bin/
usr/bin/mailx
usr/man/
usr/man/man1/
usr/man/man1/mailx.1.gz
_______________________
Bò... bisognerà impostare anche qualcos'altro...

 Forse che non sia possibile autinviarsi mail?
Temo di aver risposto troppo in fretta.  Rileggendo la documentazione 
sembra che richieda sendmail che a sua volta richiede procmail.
Forse mailx può usare direttamente procmail per la consegna delle mail 
ma l'ho sempre usato così come viene configurato nella distribuzione e 
più di tanto non lo conosco.


 che dovrebbe ricevere questa fantomatica 'mail'?
Se ricordo bene il vecchio mailx faceva proprio questo, usando la 
mailbox come file di log.  Per gli ultimi 20 anni ho continuato ad 
usarlo in quel modo senza preoccuparmi troppo (e senza accorgermi) 
degli aggiornamenti. :-)


 dovrebbe ricevere questa fantomatica 'mail'?
Come funzionerebbe la faccenda?
Scusa ma non ho capito bene la storia del file di log.
A quanto pare più cerco di spulciare la documentazione
sul funzionamento del servizio email su linux, meno riesco a
concludere qualcosa di funzionante.  :-\
...forse ho capito, cioè tu intendi, invece di inviare la
mail in locale crea l'applicazione in modo che non utilizzi
la mail ma un più semplice file di log.
A me andrebbe anche bene, ma il problema è che alcuni
programmi come per esempio "sn", voglio proprio utilizzare
la mail in locale per mandare eventuali messaggi d'errore
all'amministratore del servizio.
E in quel caso penso di poterci fare poco se non mettere in
piedi un sistema funzionante di recapito mail locale.
Fermo restando questo, mi pare d'aver capito che questo
mailx così come il funzionamento corretto delle mail in
locale, presupponga la presenza d'un MDA installato e
configurato per bene.
Storicamente sendmail, ma ci sonovalide alternative
compatibili tipo exim, o qmail ma tutti e tre sembrano
troppo per quello che serve a me.
Poi ci sarebbe postfix che sembra molto "serio", veloce
sicuro ecc ecc, ma anche quello mi pare troppo per il mio
scopo.
Quanto diceva Giovanni, mi aveva fatto pensare che
installando mailx, la baracca avrebbe potuto stare in
piedi anche senza MDA.
Tuttavia non sembra così dalle prove che ho fatto.
Tra l'altro avevo anche installato nullmailer. prima
di mailx, anche lì sperando che bastasse. Ma non mi
ci ero sbattuto a fondo, inoltre non sono sicuro del
tutto che sia adatto allo scopo...
leggendo il messaggio di antonio 6sette penso di sì.
A quanto pare mailx, nell'invio della mail ad un altro
utente creato tanto per provare, non riesce...
__________________________________________________
root@slax:~# mail -s prova < messaggiodiprova joe
root@slax:~# su - joe
joe@slax:~$ mail
No mail for joe
________________
Mi sa tanto che il problema sta nella configurazione
di nullmailer... configurazione che praticamente non
ho ritoccato.
In ogni caso penso proprio che mailx non funzionerebbe
senza un MDA locale.
Comunque resta un buon programmino per testare se
effettivamente le email funzionano.

 effettivamente le email funzionano.
Vi pongo la seguente domanda:
mailx vuole un MDA locale che sia in grado di gestire la
mail localmente, cosě per esempio se joe utente del mio
sistema volesse inviare una mail a root mailx dovrebbe
consentirglielo agevolmente.
Ok.
Poniamo la questione in termini leggermente diversi.
mailx, richiederebbe "sendmail", ma oggigiorno di sostituti
di sendmail ve ne sono parecchi, tipo postfix, qmail, exim
ecc ecc.
Io stesso sul mio sistema pur non riuscendo per qualche
motivo ad inviare una banale mail "da root a joe", vedo
un eseguibile chiamato sendmail e ho verificato che fa
parte del pacchetto nullmailer:
____________________________________
# grep sendmail /var/log/packages/*
/var/log/packages/nullmailer-1.05-i486-1hb:usr/man/man1/sendmail.1.gz
/var/log/packages/nullmailer-1.05-i486-1hb:usr/sbin/sendmail
_____________________________________________________________
Ora lasciamo perdere per un attimo nullmailer e compagnia.
Cosa esattamente devo installare o cosa configurare per
avere una soluzione minimalissima che mi consenta di inviare
una mail da "root" a "joe" col comando mail?
Lo so, la domanda č presa larga, ma mi sento piuttosto
ignorante in materia...

 Ora lasciamo perdere per un attimo nullmailer e compagnia.
allora, scusami ma ho sbagliato io ... nullmailer e ssmtp
li utilizzo su server che comunque mandano a server postfix
esterni ...
mi sembra che esmtp+procmail possano fare al caso tuo:
http://esmtp.sourceforge.net/manual.html
http://blogs.techrepublic.com.com/opensource/?p=232
ciao ...


 
http://blogs.techrepublic.com.com/opensource/?p=232
Grazie mille, proverò, poi faccio sapere.  ;-)

 Pertanto sendmail, postfix et similia non mi
]zac[
Se per locale intendi gli utenti della singola macchina con linux non c'� 
niente da configurare, � tutto gi� predisposto, se invece per locale intendi 
la rete locale di vari sistemi � obbligatorio installare e configurare un 
server mail (che � piuttosto facile da fare per un rete locale basta usare i 
tools di configurazione che spesso sono disponibili nelle varie 
distribuzioni o di terze parti con webadmin o simili).
L'idea per un sistema di mail una rete locale sia molto pi� semplice o 
banale rispetto alla rete internet � prendere un abbaglio piuttosto grosso, 
smtp + pop/imap � la struttura pi� semplice per scambiarsi messaggi.

 predisposto
Sì, intendo la macchina locale.
Intendo l'invio di una mail dall'utente johnny all'utente
root, per capirci...
Intendo l'invio di un messaggio d'errore o una notifica di
un programma via mail a root.
Non intendo insomma una rete.
Quando dici che è già tutto configurato cosa intendi:
- intendi che installo linux e comunque sia la posta è
  configurata?
- oppure intendi che se installo sendmail o postfix, non
  devo poi configurarli per questo scopo?
Penso che intendi la seconda. Acneh perchè sto sperimentando
come la prima affermazione non sarebbe corretta.

 come la prima affermazione non sarebbe corretta.
Installi la distribuzione, crei l'utente e non serve fare niente altro.
Il server di posta è utilizzato da sempre nei sistemi unix per lo scambio 
dei messaggi (per esempio per tutte le utilità di sistema che vengono 
avviate da crontab).
Infatti sendmail/postfix/etc. vengono sempre installati e attivati di 
default in tutte le distribuzioni.
E tutto quello che si deve semplicemente fare è creare un utente e usare 
mail per leggere e inviare la posta.
Se invece si usa un client grafico, come per esempio kmail, basta solo 
impostarlo per usare il file/directory Mail dell'utente (quello che viene 
letto dal comando mail).
Sempre che manualmente non si installi il server di posta, che se ne cambi 
la configurazione (per esempio per usare le maildir invece dei mail file), e 
naturalmente, bug e disastri vari.
P.S. Pensaci su, che cosa c'è da configurare localmente? niente, visto che 
localhost c'è su tutti i sistemi, la directory /var/spool/mail o l'uso di 
/home/.Mail c'è su tutti i sistemi, al massimo massimo e teoricamente, si 
potrebbe dover creare la directory o file mail per il nuovo utente (se non 
dovesse avvenire automaticamente).

 dovesse avvenire automaticamente).
Già è quello che ho pensato anch'io però
ommetti un "particolare":
ci sono tantissime distribuzioni linux.
Per esempio adesso stoutilizzando slax, che è votata
ad essere una live, tuttavia si puòutilzzare anche
stabilmente.
La sto utilizzando perchè ho in mente di riorganizzare
l'hd in termini di ripartizionamento e aggiornamento
del SO.
Siccome la faccenda va per le lunghe, s'è rivelato
necessario mettersi comodi.
Ti posso assicurare che non vi è compreso alcun MTA
se non quello incluso in KMail. Almeno di default.
Da qui la necessità di capire un po' cosa gira sotto il
cofano.
Ho provato esmtp e pare proprio funzionare, ma devo capirlo
maeglio. Se funziona bene è una buona alternativa per chi
voglia preservare le abitudini delle applicazioni
unix-style, ma perchè no, avere anche un sistema di posta
verso il proprio smarthost offerto dall'ISP.
Di default tutte le mail i cui destinatari che includono
"@dominio" vengono inviate allo smarthost esterno, anche se
sono "@localhost".
Invece funziona il comando:
# mail johnny -s subbject < prova.txt
Tuttavia ci dovrebbe essere un'opzione di configurazione
capace di indurre esmtp a vedere l'indirizzo
johnny@localhost (e tutti quelli analoghi) come locale.
Ma come ho detto devo leggere meglio.

 se non quello incluso in KMail. Almeno di default.
]zac[
??? kmail è un client mail, non è un MTA
http://it.wikipedia.org/wiki/Mail_server
Al massimo potrebbe essere che sia possibile configurare kmail (o altri 
client mail) per scrivere direttamente nel file mail del destinatario della 
mail (ma credo che sia una possibilità molto improbabile).

 Ma come ho detto devo leggere meglio.
Sono due cose totalmente diverse gli utenti di localhost da quelli del 
dominio esterno/internet.
Ribadisco, per gli utenti di localhost non c'è niente da fare (se non 
evitare di pasticciare la configurazione), per inviare le e-mail 
all'esterno/su-internet, basta solo impostare l'indirizzo del server smtp 
che il provider mette a disposizone come relay/external-server (o simile) 
nella configurazione del server mail di linux (sendmail, postfix, ecc.) che 
sicuramente è già installato e configurato.
Di solito c'è un tools che consente di impostare il server mail esterno in 
pochi secondi.
esmtp non lo conosco, posso solo dirti che molto probabilmente non hai 
motivo di utilizzarlo.

 # mail johnny -s subbject < prova.txt
]zac[
Questo sembra un errore di configurazione del nome dell'host (hostname -f 
deve restituire qualcosa come cccc.bbbb.aa) e/o del nome del dominio che il 
server mail deve gestire (il nome del dominio deve essere bbbb.aa (identico 
a quello restituito da hostname -f)).
In sintesi non utilizzare un FQN nella configurazione del sistema (per 
esempio usare il solo localhost) � una pessima idea se si gestiscono dati da 
o per l'esterno del proprio sistema.

 says
# that 127.0.0.1
# should NEVER be named with the name of the machine.  It
# causes problems
# for some (stupid) programs, irc and reputedly talk. :^)
#
# For loopbacking.
127.0.0.1       localhost
# This next entry is technically wrong, but good enough to
# get TCP/IP apps
# to quit complaining that they can't verify the hostname on
# a loopback-only
# Linux box.
127.0.0.1       
slax.example.net
 slax
# End of hosts.
________________
Secondo me, il fatto di riconoscere ogni indirizzo che
comprenda la parte "@dominio" come esterno e quindi cercare
di contattarne il server smtp � un limite del programma
esmtp.
In effetti esmtp sembra quasi pi� un client smtp piuttosto
che un server:
"""""""""""""""""""""""""""""""""""""""""""
Esmtp is a send-only  sendmail emulator for
machines which normally retrieve their mail
from a centralized mailhub using programs
such as fetchmail.
""""""""""""""""""
Per� ha la funzionalit� di interagire col mail spool locale
attraverso un MDA (le prove che ho fatto includono procmail)
______________________________
root@slax:~# cat /etc/esmtprc
hostname = localhost
mda = "/usr/bin/procmail -d %T"
_______________________________
in altre parole nella situazione attuale non ho un
demone smtpd in ascolto sulla calssica porta 25.
esmtp viene richiamato dal MUA tipo malix attraverso
un link simbolico a /usr/sbin/sendmail, al momento
dell'invio della mail.
Poi se l'indirizzo destinatario � comprensivo di
"@qualcosa", allora cercher� di collegarsi all'hub
esterno cio� lo smarthost, il nostro account presso
il servizio mail dell'ISP o altro...
Se invece il destinatario � un nome allora se l'utente
esiste entra in gioco procmail che ne riempir� lo spool
corrispondente intendendo l'utente come facente perte dell
macchina/systema locale.
-
Detto questo, per�, leggendo il manuale del file di
configurazione, ho dei dubbi sulla comprensione di
una voce:
""""""""""""""""""""""""""""""""""
hostname
Set SMTP host and service (port).
The format is:
host.example.org
[:service]
With  no  whitespace  surrounding the colon
if service is specified. service may be a
name from /etc/services or a decimal port
number.  If not specified the port defaults
to 587.
Note (from libESMTP documentation): the
default port number is set to 587 since this
is the port that should be used for mail
submission, see RFC 2476.
By choosing this default now, the API does
not change behavior unex-pectedly in the
future as use of the new standard becomes
commonplace. The host-port notation simplifies
things for the application, the user can type
"localhost:smtp" or "localhost:25" where  the
application expects a host name.
"""""""""""""""""""""""""""""""""
Io l'ho settato a "localhost" come si vede da
sopra, per� non ne sono cos� convinto.

 che un server:
]zac[
Posso solo darti informazioni generiche, su come ho sempre visto configurati 
i server mail, esmtp non lo conosco nemmeno di nome (oltre a dire che 
secondo me non c'č motivo di utilizzarlo non posso andare).