Ora che avete praticamente tutti gli strumenti per iniziare a mettere le mani sul vostro sito personale in HTML e trasformarlo in un sito dinamico PHP, vediamo come fare una delle cose a cui di solito siete maggiormente interessati, ovvero l’invio di email tramite le vostre pagine web.
PHP fornisce nella sua distribuzione standard, quindi senza bisogno di installare moduli aggiuntivi, una funzione di mailing che vi permette di inviare email in maniera automatica. La funzione si chiama mail() e il suo funzionamento è strettamente legato alla configurazione del sistema operativo in cui è installato il web server. Il comportamento di questa funzione è infatti influenzato dalle impostazioni di php.ini, ossia il file di configurazione principale dell’interprete.
Le opzioni impostabili sono queste:
- sendmail_from : il mittente di default per le email inviate
- sendmail_path : l’indirizzo nel sistema dell’eseguibile sendmail, o di uno dei suoi wrapper, per esempio il wrapper sendmail per qmail.
Se il parametro sendmail_from può essere benissimo lasciato vuoto, perchè il mittente si può impostare anche in fase di invio, è assolutamente necessario che sendmail_path contenga un path valido nel vostro sistema all’eseguibile di sendmail (che ovviamente deve essere già configurato e funzionante), altrimenti l’invio delle email fallirà .
Nel 99% degli hosting online non potrete modificare i valori di php.ini, ma non preoccupatevi perchè in questo caso la configurazione impostata dal vostro hoster sarà sicuramente funzionante e non vi dovrete preoccupare di questo aspetto.
La configurazione in ambiente Windows è differente, gli utenti di questo sistema possono fare riferimento qui per la configurazione di mail().
Ora passiamo ad un bell’esempio(Scarica il codice):
Queste poche righe di codice coprono praticamente tutto quello che c’è da dire di questo argomento, data la sua semplicità , ora facciamone una piccola analisi.
Nelle variabili $dest, $cc, $bcc, $oggetto e $msg non c’è nulla di nuovo, avrete già capito che sono rispettivamente:
- il destinatario della mail; destinatari multipli devono essere separati da “,”
- destinatari in CC
- destinatari in BCC
- oggetto della mail
- testo del messaggio
La cosa che potrebbe essere più ostica per gli utenti alle prime armi è la composizione delle intestazioni del messaggio, ossia la variabile $int che vedete sopra. L’intestazione contiene molte informazioni, alcune essenziali, altre invece “superflue”; in ogni caso, quelle che vi ho specificato sarebbe buona norma utilizzarle sempre.
Le prime due righe servono a specificare il mime versione e il content type del messaggio (maggiori informazioni qui), vi basti sapere che se scrivete una mail con solo testo, il content tipe giusto è text/plain, se invece la scrivete utilizzando dei tag html dovete mettere text/html. Il charset iso-8859-1 corrisponde al nostro (detto anche LATIN1), il quale per esempio supporta anche le lettere accentate e i simboli tipici della lingua italiana.
Nel comporre l’intestazione bisogna stare particolarmente attenti a non sbagliarne il contenuto perchè il server di invio email potrebbe rifiutare il vostro messaggio se l’intestazione non è correttamente formattata, di conseguenza prestate particolare attenzione alla sintassi e a separare ogni riga dell’intestazione con i caratteri \r\n .
Nota: Alcuni MTA (server di posta) , hanno dei problemi se il primo parametro della funzione mail viene specificato nella forma “Nome
Nella prossima lezione vedremo un’altro esempio pratico di facile utilizzo e di indubbia utilità , continuate a seguirci!
LEZIONI PRECEDENTI:
11 Dicembre 2007: Introduzione
17 Dicembre 2007: Installazione di una piattaforma LAMP su Ubuntu Linux
18 Dicembre 2007: Dentro l’HTML
20 Dicembre 2007: E tu di che tipo sei?
7 Gennaio 2008: Operiamo?
10 Gennaio 2008: Ed ecco gli Array
17 Gennaio 2008: Controllare l’esecuzione (1)
25 Gennaio 2008: Controllare l’esecuzione (2)
4 Febbraio 2008: Le Funzioni (1)
6 Febbraio 2008: Le Funzioni (2)
11 Febbraio 2008: Lo scambio dei dati
14 Febbraio 2008: Le Sessioni
di Rocco Zanni - TuxJournal.net
Rocco Zanni Blog