Smistare i messaggi mail: come gestire le email
Con questa lezione impareremo a creare un sistemaintelligente per lo smistamento dei messaggi ricevuti da unform-mail.
Supponiamo di voler permettere all'utente di potercontattare lo staff del nostro sito per quattro motiviessenziali, per esempio: informazioni generali,pubblicità, scambio link e segnalazione errori e divoler fare in modo che le email vengano così smistate:informazioni generali a info@dominio.it, pubblicità apubblicita@dominio.it, scambio link a scambiolink@dominio.ite segnalazione errori a errori@dominio.it.
Le funzioni principali che coinvolgeremo inquest'applicazione sono essenzialmente due:mail() (che come ben sappiamo ci permette diinviare email dal web) e switch(), cheeffettua una determinata azione anzichè un'altrascegliendo in base al valore che l'utente associa allavariabile in quel determinato istante. Quandoun'istruzione switch viene eseguita, viene calcolatal'espressione associata; se il valoredell'espressione corrisponde a quello di unacase associata, il flusso di controllo passaalla case specificata, altrimenti si passa ad eseguirel'azione di default(default:).
Per quel che riguarda la nostra applicazione ci servirannoessenzialmente due pagine: vediamo la prima sulla quale nonmi dilungherò molto, dato che si tratta di un sempliceform:
<form action="contattaci.php" method="post" name="mail" id="mail"><table width="80%" border="0" align="center" cellpadding="0" cellspacing="0"><tr><td class="center">Inserisci l'indirizzo presso il quale ricontattarti * </td></tr><tr><td><div align="center"><input name="indirizzo" type="text" id="indirizzo" size="40" maxlength="60"></div></td></tr><tr><td> </td></tr><tr><td class="center">Oggetto del messaggio:</td></tr><tr><td><div align="center"><select name="oggetto" id="oggetto"><option value="informazioni">Informazioni</option><option value="pubblicita">Pubblicità</option><option value="scambio_link">Scambio link</option><option value="segnalazione_errore">Segnalazione errori</option></select></div></td></tr><tr><td> </td></tr><tr><td class="center">Corpo del messaggio: </td></tr><tr><td><div align="center"><textarea name="corpo" cols="40" rows="7" id="corpo"></textarea></div></td></tr><tr><td><div align="center"><input type="submit" name="Submit" value="Invia"><input type="reset" name="Submit2" value="Pulisci"></div></td></tr></table></form>
Successivamente passiamo alla seconda partedell'applicazione che sarà quella checambierà il destinatario della mail in baseall'oggetto specificato. E' necessario che questapagina si chiami contattaci.php
<?php//dichiaro la variabile 'modulo'$modulo = @$_POST['oggetto'];//Effettuo lo switch sulla variabile 'modulo'switch($modulo){//caso 'informazioni'case 'informazioni':$mail_mittente = $_POST['indirizzo'];$mail_destinatario = "info@dominio.it";$mail_oggetto = $_POST['oggetto'];$mail_corpo = $_POST['corpo'];if (mail($mail_destinatario, $mail_oggetto, $mail_corpo, "From: $mail_mittente")){echo "Messaggio inviato con successo al destinatario";}else{echo "Errore... Nessun messaggio inviato.";}break;//caso 'pubblicità'case 'pubblicita':$mail_mittente = $_POST['indirizzo'];$mail_destinatario = "pubblicita@dominio.it";$mail_oggetto = $_POST['oggetto'];$mail_corpo = $_POST['corpo'];if (mail($mail_destinatario, $mail_oggetto, $mail_corpo, "From: $mail_mittente")){echo "Messaggio inviato con successo al destinatario";}else{echo "Errore... Nessun messaggio inviato.";}break;//caso 'scambio link'case 'scambio_link':$mail_mittente = $_POST['indirizzo'];$mail_destinatario = "scambiolink@dominio.it";$mail_oggetto = $_POST['oggetto'];$mail_corpo = $_POST['corpo'];if (mail($mail_destinatario, $mail_oggetto, $mail_corpo, "From: $mail_mittente")){echo "Messaggio inviato con successo al destinatario";}else{echo "Errore... Nessun messaggio inviato.";}break;//caso 'segnalazione errori'case 'segnalazione_errore':$mail_mittente = $_POST['indirizzo'];$mail_destinatario = "errori@dominio.it";$mail_oggetto = $_POST['oggetto'];$mail_corpo = $_POST['corpo'];if (mail($mail_destinatario, $mail_oggetto, $mail_corpo, "From: $mail_mittente")){echo "Messaggio inviato con successo al destinatario";}else{echo "Errore... Nessun messaggio inviato.";}break;//caso 'default'default:include("index.php");break;}?> Il codice è commentato a sufficienza e persemplicità ne vedremo solo uno in dettaglio,commentandolo qui di seguito:
//caso 'informazioni'case 'informazioni':$mail_mittente = $_POST['indirizzo']; //dichiaro la mail del mittente$mail_destinatario = "info@dominio.it"; //dichiaro la mail del destinatario$mail_oggetto = $_POST['oggetto']; //dichiaro l'oggetto della mail$mail_corpo = $_POST['corpo']; //dichiaro il corpo della mailif (mail($mail_destinatario, $mail_oggetto, $mail_corpo, "From: $mail_mittente")) //creo la funzione mail(){echo "Messaggio inviato con successo al destinatario"; //avviso che la mail e' andata a buon fine}else{echo "Errore... Nessun messaggio inviato."; //avviso che la mail NON e' andata a buon fine}
- Articolo precedente Trasferire un file tramite FTP
- Articolo successivo Formattare il testo di una textarea
