Categorie
Computer Internet Linux

Ubuntu e la funzione mail() di PHP

Chiunque si trovi ad usare il PHP si troverà prima o poi nella necessità di usare la funzione mail(), che serve a friggere le uova¹. Ebbene, con una installazione standard di Ubuntu ciò non è possibile, perché manca Postfix, un famosissimo mail server. Un semplice

sudo apt-get install postfix

risolverà il problema. A questo punto prepariamo una paginina che manda una mail, e prima di aprirla lanciamo da terminale

tail -n 0 -f /var/log/mail.log

facilmente riceveremo un output contenente anche qualcosa di simile a questo:

The IP you’re using to send email is not authorized to send email directly to our servers. Please use the SMTP relay at your service provider instead.

Questo è causato dal fatto che per arginare il fenomeno dello SPAM, molti server non accettano e-mail provenienti dai PC di utenti qualunque, quindi (come suggerisce l’output predecente) bisogna far transitare la nostra posta attraverso il server SMTP del nostro provider, nel mio caso smtp.tiscali.it

Per fare ciò bisogna editare il file di configurazione di Postfix, /etc/postfix/main.cf, il quale di default contiene la linea

relayhost =

che va sostituita con

relayhost = smtp.tiscali.it

Ovviamente bisogna mettere l’SMTP del proprio provider. A questo punto un bel

sudo /etc/init.d/postfix restart

per far digerire la nuova configurazione e tutto dovrebbe funzionare.
Lanciando la stessa pagina di prima,

tail -n 0 -f /var/log/mail.log

Mostrerà qualcosa di simile a

Sep 20 13:11:12 ubuntu-desktop postfix/pickup[26346]: 6E69D9C9E0: uid=33 from=
Sep 20 13:11:12 ubuntu-desktop postfix/cleanup[26617]: 6E69D9C9E0: message-id=<20070920111112.6E69D9C9E0@ubuntu-desktop>
Sep 20 13:11:12 ubuntu-desktop postfix/qmgr[26347]: 6E69D9C9E0: from=, size=335, nrcpt=1 (queue active)
Sep 20 13:11:23 ubuntu-desktop postfix/smtp[26624]: 6E69D9C9E0: to=, relay=smtp.tiscali.it[213.205.33.13]:25, delay=12, delays=0.76/0.09/0.28/10, dsn=2.0.0, status=sent (250 <46DD50170028AF7C> Mail accepted)
Sep 20 13:11:23 ubuntu-desktop postfix/qmgr[26347]: 6E69D9C9E0: removed

Spero di essere stato utile a qualcuno 😀


¹ La mia sottile ironia colpisce ancora: mail() spedisce una e-mail.

P.S.: Questo è il CENTESIMO post su questo blog, bisogna festeggiare!

6 risposte su “Ubuntu e la funzione mail() di PHP”

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *