Guida Php – Inviare email

Inviare una e-mail con PHP è molto semplice, ma costruendo applicazioni di un certo livello vi occorrerà senzaltro dover inviare e-mail in formati particolari e con uno o più allegati.

Per fare questo useremo la funzione nativa mail(), che si può tranquillamente gestire dando un’occhiata alla documentazione ufficiale.

Lo scopo principale di questo capitolo quindi, è quello di fornirvi le conoscenze per poter gestire anche e-mail più complesse, ad esempio in formato HTML con più file allegati.

Vediamo ora il prototipo della funzione mail() :

bool mail ( string destinatario, string oggetto, string messaggio [, string header_addizionali [, string parametri_addizionali]] )

Per inviare una e-mail standard è quindi sufficiente il codice che segue :

<?php

$inviata = mail("john.doe@domain.com", "Oggetto del messaggio", "Testo del messaggio");

if ($inviata) echo "Email inviata con successo";
else echo "Errore durante l'invio dell'email";

?>

Per inviare e-mail più complesse invece, sarà necessario specificare un’intestazione (header) passandola per parametro alla funzione mail().

Nell’header dell’e-mail è possibile specificare dei parametri per stabilire svariate impostazioni, vediamo le principali :

  • MIME-VersionIndica quale standard viene usato
  • Content-TypeIndica di che tipo è il contenuto del messaggio
  • Content-Transfer-EncodingStabilisce il metodo da utilizzare per rappresentare i dati (es. 7bit)
  • FromIndica il mittente del messaggio
  • Reply-ToSpecifica l’e-mail predefinita a cui rispondere
  • CcIndirizzi a cui inviare l’e-mail in copia carbone
  • BccIndirizzi a cui inviare l’e-mail in copia carbone
  • DateData di invio dell’e-mail
  • X-MailerSoftware utilizzato per l’invio dell’e-mail

Il codice dell’esempio seguente si occuperà di inviare una e-mail in formato HTML, impostando come mittente l’indirizzo mittente@dominio.it :

<?php

define("EOL", "rn");

$header = "MIME-Version: 1.0" . EOL;
$header .= "Content-Type: text/html" . EOL;
$header .= "From: mittente@dominio.it";

$object = "Oggetto del messaggio";

$message = "Linea 1<br />Linea 2<br />Linea 3";

mail("posta@realizzazione-sito.info", $object, $message, $header);

?>

Per garantire un corretto funzionamento dello script è necessario separare i parametri dell’header con un EOL (End Of Line), che deve corrispondere ai due caratteri di escape rn, anche se alcuni sistemi Unix potrebbero funzionare con il solo n.

Eseguendo lo script soprastante si ottiene questo risultato.

E’ possibile inoltre specificare più destinatari per la stessa e-mail senza agire sull’header, ma semplicemente separando gli indirizzi con una virgola.

<?php

$destinatari = "Mario Rossi <mario.rossi@dominio.it>, Luca Verdi <luca.verdi@dominio.it>";
$destinatari .= ", John Doe <john.doe@domain.com>";

mail($destinatari, "Oggetto", "Messaggio");

?>

Non è obbligatorio racchiudere gli indirizzi fra i tag < >, ma è necessario se volete assegnare un nome al proprietario dell’indirizzo.

Nel prossimo capitolo vedremo come è possibile inviare e-mail con file allegati.

Versione originale dell’articolo

Lezione Precedente -> Guida Php – Classi per l’upload di file

Lezione Successiva -> Guida Php – Inviare email con allegati

Tags: , ,

Lascia un Commento

Connect with Facebook