Fabio Mosti
consulente informatico
stressato e bastardo

un semplicissimo mailer in php

20/03/2012 - un semplicissimo mailer in php
tags: PHP, programmazione

è sorprendente, nell'era in cui anche le lavatrici mandano delle mail, quanti siti web ancora esibiscano con orgoglio i loro form di «richiesta informazioni». Ora, intendiamoci, non è che io ce l'abbia a prescindere con i form di richiesta informazioni, possono essere anche molto utili, per esempio quando conducono l'utente tramite una procedura guidata a formulare una richiesta dotata di senso (o quasi) cosa che magari non riuscirebbe a fare se abbandonato solo soletto davanti al deserto bianco di una mail vuota.

Però è anche vero che l'utilità di un form del tipo «nome / cognome / mail / richiesta» è nulla, perché è semplicemente un «inviami una mail» travestito da form di richiesta informazioni. Non so se mi spiego. Questo argomento è trattato diffusamente in un mio articolo su come realizzare form di richiesta informazioni per siti web intelligenti, per cui non mi dilungherò oltre. Veniamo al punto.

Poniamo caso che abbiate il vostro bel form e vogliate semplicemente prendere i dati che invia, impacchettarli in una mail e farveli spedire direttamente nella vostra casella di posta. Sembra un compito facile e infatti è una cazzata, se sul vostro server è attivo php è sufficiente uno script di poche righe:

// inserire qui l'url della pagina a cui il mailer deve reindirizzare il visitatore
$paginaDiRitorno = 'www.vostrosito.boh/paginaTuttoOk.html';

// inserire qui l'indirizzo e-mail a cui volete che il mailer vi invii i dati del form
$indirizzoMailDestinazione = 'tizio@vostrosito.boh';

// assemblo i dati del modulo in un testo (più o meno) impaginato
foreach ( $_POST as $k => $v ) {
	$testo .= $k . '\n' . $v . '\n\n';
}

// imposto il mittente della mail presupponendo che nel form ci sia un campo 'mail'
$headers = 'From: ' . $_POST['mail'];

// invio la mail
mail ( $indirizzoMailDestinazione , 'contatto dal sito' , $testo , $headers );

// rimando il visitatore alla pagina dove lo ringrazio e gli dico che è tutto a posto
header ( 'Location: http://' . $paginaDiRitorno );

Ovviamente questo è uno script veramente minimale; a voler essere pignoli gli mancano almeno due cose, un controllo sui dati inseriti (campi obbligatori, formato dati, eccetera) e la redirezione su pagine diverse a seconda dell'esito del controllo dati (pagina «tutto ok» e pagina pagina «dati errati»).

Per applicazioni molto semplici questo script può comunque risparmiarvi un po' di lavoro, spero che a qualcuno possa essere utile... se invece vi serve qualcosa di più complesso contattatemi che ne parliamo ^_^

Warning: Illegal string offset 'codice' in /var/www/vhosts/videoart000003/httpdocs/_codice/_templates/_default_/_template.footers_pagina.php on line 10