Sulle distribuzione derivate da Red Hat il programma di posta installato di default è sendmail. Vediamo quali sono i passi per poter inviare posta all'esterno.
La direttiva SMART_HOST dice a sendmail di reindirizzare tutta la posta in uscita attraverso un altro server invece di consegnarla direttamente. Per modificare la configurazione di sendmail occorre avere il pacchetto sendmail-cf. Per sapere se è installato usiamo il comando:rpm -qa |grep sendmail-cf
Se non è presente possiamo installarlo con il comando:yum install -y sendmail-cf
Ora possiamo modificare il file di configurazione /etc/mail/sendmail.mc e decommentare la riga dove compare la stringa SMART_HOST.
NOTA BENE: I commenti hanno una forma assurda del tipo "dnl #"
Prima della modifica
dnl define(`SMART_HOST',`smtp.your.provider')Dopo la modifica
define(`SMART_HOST',`postaserver.mio.it')A questo punto si può ricostruire il file sendmail.cf con il comando seguente
m4 sendmail.mc > sendmail.cf
forzare il server a rileggere la configurazione e testare il tutto
service sendmail reload
mail -s "Test" mioindirizzo@ciao.it
NOTA: per uscire dalla composizione basta scrivere un punto "." in una riga vuota e dare invio.
18 commenti
Ciao, stavo cercando un modo per poter inviare la posta utilizzando l'accoppiata sendmail + thunderbird, e così ho trovato il tuo blog.
Ho provato ad eseguire i tuoi passaggi: ma purtroppo non sono riuscito a mandare via le mail.
Quando provo a lanciare il comando
mail -s "Test" mioindirizzo@ciao.it
la bash non risponde.
Poi lancio ctrl-C e riprende ad andare, ma la mail non viene inviata.
Hai qualche idea di cosa possa essere?
Ciao yos
In realtà è il funzionamento corretto.
Dopo che hai dato il comando "mail", scrivi il tuo messaggio di prova, per chiuderlo scrivi un "." in una riga vuota.
Fammi sapere.
In realtà è il funzionamento corretto.
Hai ragione, scusami! Non avevo capito il funzionamento del comando "mail" :(
A parte questo, ho provato a seguire le tue istruzioni: nel file sendmail-cf ho inserito la riga
define(`SMART_HOST',`mail.jumpy.it')
(e tolta quella originale)
ho lanciato
#m4 sendmail.mc > sendmail.cf
(in /etc/mail)
riavviato sendmail
#/etc/init.d/sendmail reload
Provato a lanciare la mail al mio indirizzo, tutto sembra andare bene, ma la posta non arriva :|
Ho dato un'occhiata a file di log: nell'ultima riga compare:
dsn=4.0.0, stat=Deferred: Connection timed out with mail.jumpy.it.
Sicuramente non è un problema di iptables : avevo lanciato
#iptables -F
Visto che come adsl uso alice, il problema può essere dovuto al fatto che il server smtp di jumpy, sia configurato per rifiutare le richieste di mail provenienti da indirizzi IP non appartenenti a jumpy stessa?
Ciao yos
PS Una piccola curiosità: se i commenti nel file di sendmail.mc hanno la forma
dnl #
quando hai scritto la frase:
Prima della modifica
dnl define(`SMART_HOST',`smtp.your.provider')
non manca un cancelletto ??
Temo anche io che sia un problema di Jumpy. Puoi fare un test ulteriore con un qualsiasi client grafice, ad es. Thunderbird o Evolution.
Quanto alla curiosità:il file sendmail-mc di sendmail è delirio puro e vale come commento anche il solo "dnl". Ripeto: delirio puro.
Ho fatto alcune prove: ho utilizzato come smtp, anche i server di tiscali, ma non ho ottenuto nulla.
Allora ho usato quello di alice (out.alice.it),
Prima ho provato ad utilizzare tale server, nelle impostazioni di thunderbird: e funziona!! (anche se poi non riesco a fare delle connessioni cifrate, ma solo in chiaro: quindi niente TLS e niente SSL)
poi ho provato ad inserire la riga out.alice.it nel file sendmail.mc, ed aggiungendo anche la riga:
sendmail:localhost:allow
in /etc/hosts.allow
sistemando il file /etc/hosts (con il nome del mio pc e dell'indirizzo ip che ho assegnato alla scheda di rete) come avevo letto qui
ed adesso funziona, anche sendmail!
----
ho appena fatto un'altra prova: ho commentato le righe che avevo aggiunto ai file hosts ed hosts.allow ma mantenendo la riga
define(`SMART_HOST',`out.alice.it')
in sendmail.mc: continua a funzionare.
Concludendo credo che il problema era causato dal fatto che il server smtp di jumpy (ricordo che ho account di posta su jumpy) accettava le mie mail solo se mi connettevo utilizzando come ISP jumpy!!
Ora che utilizzo alice, devo utilizzare l'smtp di alice.
Mi sbalgierò, ma questa è almeno la spiegazione che mi sono dato.
Se qualcuno ne sa di più... è benvenuto :)
io quando arrivo a
mail -s "Test" mioindirizzo@ciao.it
mi dice: -bash: mail: command not found
cosa posso fare?
Quale distribuzione stai usando?
Redhat Linux Fedora 9
Puoi provare a installarlo, da terminale, come root, dai il comando "yum install mailx" (mailx è il pacchetto che contiene il comando)
In realtà però al posto di mail puoi usare un client di posta qualsiasi (chiaramente dopo averlo configurato per usare il sendmail locale) ad es. mutt o pine da riga di comando o qualcosa di grafico come kmail o evolution...
grazie mille. Si è installato correttamente.
Per inviare una email a a.xin90@gmail.com devo fare cosi:
mail -s "Prova" a.xin90@gmail.com
??
Sì. Dai il comando che hai scritto. Dopo l'invio scrivi la tua mail e infine per uscire scrivi un "." in una riga vuota e batti invio.
fatto ma non invia la posta
Il servizio sendmail è attivo? Per verificarlo dai il comando "service sendmail status" (senza doppi apici). In caso contrario avvialo con "service sendmail start". Prova anche a usare il comando mailq per sapere che ne è stato della tua prova.
Ottimo post. In tre comandi ho risolto il problema che avevo, quando altri blog dicevano di modificare un mondo di righe :D
Fa piacere. Comunque sendmail resta una brutta bestia!
Ciao ragazzi! avrei bisogno di un aiuto per configurare il sendmail.
ho installato sul mio server due istanze di majordomo(gestore di mailing list) con due domini differenti. ho provato a modificare il file di configurazione sendmail.mc in modo tale che possa riconoscere i due domini, ma senza successo.
questo è il mio sendmail.mc:
define(`SMART_HOST', `smtp.accountname.it')
dnl #
define(`confDEF_USER_ID', ``8:12'')dnl
dnl define(`confAUTO_REBUILD')dnl
define(`confTO_CONNECT', `1m')dnl
define(`confTRY_NULL_MX_LIST', `True')dnl
define(`confDONT_PROBE_INTERFACES', `True')dnl
define(`PROCMAIL_MAILER_PATH', `/usr/bin/procmail')dnl
define(`ALIAS_FILE', `/etc/aliases')dnl
define(`ALIAS_FILE', `/etc/majordomo.aliases')dnl
define(`ALIAS_FILE', `/etc/majordomoelliot.aliases')dnl
define(`STATUS_FILE', `/var/log/mail/statistics')dnl
define(`UUCP_MAILER_MAX', `2000000')dnl
define(`confUSERDB_SPEC', `/etc/mail/userdb.db')dnl
define(`confPRIVACY_FLAGS', `authwarnings,novrfy,noexpn,restrictqrun')dnl
define(`confAUTH_OPTIONS', `A')dnl
define(`confTRUSTED_USERS',`majordomoelliot')dnl
define(`confTRUSTED_USERS',`majordomo')dnl
LOCAL_DOMAIN(`domainA.com')dnl
LOCAL_DOMAIN(`domainB.com')dnl
FEATURE(always_add_domain)dnl
FEATURE(`masquerade_entire_domain')dnl
FEATURE(`masquerade_envelope')dnl
MASQUERADE_AS(`domainA.com')dnl
MASQUERADE_DOMAIN(`domainA.com')dnl
MASQUERADE_AS(`domainB.com')dnl
MASQUERADE_DOMAIN(`domainB.com')dnl
MAILER(smtp)dnl
MAILER(procmail)dnl
dnl MAILER(cyrusv2)dnl
saprete gentilmente dirmi come andrebbe modificato il seguente file per far si che funzioni.
Ciao a tutti, vorrei innanzitutto fare i complimenti a chi ha creato questa pagina, perchè queste istruzioni sono veramente molto chiare, e mi hanno reso la vita decisamente più semplice qualche tempo fa, però purtroppo vanno bene per configurare sendmail con un smtp senza autenticazione.
Purtroppo ora i nuovi server smtp telecom richiedono l'autenticazione. Come si può impostare anche la username e password su sendmail, in modo che tutte le e-mail inviate tramite di esso al server smtp telecom vengano autenticate con la stessa user e pass (quelle fornite al cliente business che usa la linea ovviamente)?
Grazie anticipate.
Grazie mille, articolo ben spiegato.
Ciao!
Posta un commento