Come inviare mail con il linguaggio PHP. Funzione mail();
ALLWEB free
Web Directory Script Linguaggi
Italiano Inglese Tutte
 
 24 Apr 2014
aggiungi in preferiti  
Home    Mappa directory    Script




Inviare mail con php:

In alcuni casi il webmaster si può trovare di fronte alla necessità di inviare mail per comunicare dei dati, ad esempio confermare alcune scelte del navigatore, informare su nuovi contenuti, o addirittura soltanto per mettere in collegamento fra loro due navigatori.

Per operare in tal senso il linguaggio PHP ci mette a disposizione una funzione apposita:
mail();

Tramite questa funzione è possibile inviare mail in automatico o a comando.


Codice di base:

<?
$a="mail@destinatario.it";
$oggetto="oggetto mail";
$messaggio="messaggio mail";
mail($a, $oggetto, $messaggio);
?>
In questo caso la mail arriva con mittente anonimo, ammesso che il vostro fornitore di spazio web sia abilitato per spedire mail senza intestazioni (è sempre possibile rintracciare il mittente.)
Per inserire più destinatari è necessario inserire gli indirizzi separati da una virgola, ma all'arrivo delle mail tutti vedranno l'indirizzi a cui saranno spedite le mail.


Mail con intestazioni:

Le intestazioni sono informazioni aggiuntive che il webmaster vuole inserire nel messaggio, potrete capire quali leggendo l'esempio riportato sotto.
Per spedire le intestazioni dobbiamo inserire una nuova variabile dopo il messaggio:
<?
$a="indirizzo_mail@destinatario.it";
$oggetto="oggetto mail";
$messaggio="messaggio mail";
$intestazioni= "From:staff@allwebfree.itrn";
$intestazioni .= "Reply-To:staff@allwebfree.itrn";
$intestazioni .= "X-Mailer: PHP/".phpversion();
mail($a, $oggetto, $messaggio, $intestazioni);
?>
Da notare i punti dopo $intestazioni

Potevamo scrivere anche una riga unica:
$intestazioni= "From:staff@allwebfree.itrn"."Reply-To:staff@allwebfree.itrn"."X-Mailer: PHP/".phpversion();
Tuttavia è meno comprensibile e soggetta ad errori grammaticali (NON deve avere più spazi di quelli che vedete nell'esempio o provocherete un errore).


Per non inserire direttamente l'indirizzo mail dovete scrivere così:
Esempio con due destinatari:
<?
$a="dest <mail@dest.it>,dest2 <mail@dest2.it>";
$oggetto="oggetto mail";
$messaggio="messaggio mail";
$intestazioni= "From:allwebfree<staff@allwebfree.it>rn";
$intestazioni .= "Reply-To:allwebfree<staff@allwebfree.it>rn";
$intestazioni .= "X-Mailer: PHP/" . phpversion();
mail($a, $oggetto, $messaggio, $intestazioni);
?>
In questo caso negli header della mail mostrerete solo il testo non compreso fra i tag < >


Destinatari multipli:

Come abbiamo visto è sufficente inserire più indirizzi separati da una virgola per spedire la solita mail a più destinatari, tuttavia la procedura è sconsigliabile perché tutti potrebbero vedere gli indirizzi internet a cui spedite la mail.
Per questo motivo suggeriamo di inserire gli indirizzi in un array, oppure in un database e di inserire la funzione mail dentro un ciclo while o for, variando ogni volta la variabile del destinatario.
In pratica il funzionamento che adottano le newsletter.