| 18 commenti ]


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

Anonimo ha detto... @ ottobre 05, 2008 1:36 AM

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

hipst3r ha detto... @ ottobre 05, 2008 2:45 PM

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.

yos ha detto... @ ottobre 06, 2008 12:47 AM

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 ??

hipst3r ha detto... @ ottobre 06, 2008 10:10 AM

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.

Anonimo ha detto... @ ottobre 06, 2008 5:04 PM

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 :)

casabompreco ha detto... @ marzo 11, 2009 11:34 PM

io quando arrivo a
mail -s "Test" mioindirizzo@ciao.it

mi dice: -bash: mail: command not found

cosa posso fare?

hipst3r ha detto... @ marzo 13, 2009 10:12 AM

Quale distribuzione stai usando?

casabompreco ha detto... @ marzo 16, 2009 8:57 PM

Redhat Linux Fedora 9

hipst3r ha detto... @ marzo 17, 2009 5:58 PM

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...

casabompreco ha detto... @ marzo 17, 2009 7:26 PM

grazie mille. Si è installato correttamente.
Per inviare una email a a.xin90@gmail.com devo fare cosi:
mail -s "Prova" a.xin90@gmail.com
??

hipst3r ha detto... @ marzo 18, 2009 8:28 AM

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.

casabompreco ha detto... @ aprile 20, 2009 10:06 PM

fatto ma non invia la posta

hipst3r ha detto... @ aprile 20, 2009 11:46 PM

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.

Anonimo ha detto... @ gennaio 25, 2010 11:16 AM

Ottimo post. In tre comandi ho risolto il problema che avevo, quando altri blog dicevano di modificare un mondo di righe :D

hipst3r ha detto... @ gennaio 25, 2010 2:53 PM

Fa piacere. Comunque sendmail resta una brutta bestia!

Lean ha detto... @ ottobre 15, 2010 6:49 PM

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.

Carlo ha detto... @ agosto 31, 2011 12:08 AM

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.

Anonimo ha detto... @ agosto 24, 2012 10:26 AM

Grazie mille, articolo ben spiegato.
Ciao!

Posta un commento