/ //

Inviare email con PHP - GM Multimedia

Vai ai contenuti

Menu principale:

Inviare email con PHP

Guida PHP



Inviare email con PHP
         La funzione PHP con cui inviare email si chiama mail(), il più semplice esempio d’invio è:
				mail('email@destinatario.it', 'oggetto della mail', 'contenuto del messaggio');
         Con tre semplici parametri possiamo inviare una mail con oggetto e contenuto ad un destinatario. Questa la mail che arriverà al nostro destinatario:
Figura 1. Invio della mail.  

         La firma della funzione è la seguente:
				mail($to, $subject, $message, $headers, $parameters);
         La funzione restituisce un booleano che indica se l'invio è andato a buon fine o meno. Non è tutto qui, però. Vediamo quali sono tutte le opportunità che ci mette a disposizione la funzione mail().


Inviare email a destinatari multipli
         Il parametro $to può essere una stringa con un solo destinatario oppure più destinatari separati da virgola. Avendo la necessità di inviare la stessa email a diversi destinatari, quindi, il codice è il seguente:
				$receivers = implode(' ,', [
				    'Mario Rossi ',
				    'Luca Bianchi ',
				]);
				mail($receivers, 'oggetto della mail', 'contenuto del messaggio');
         Possiamo notare che i destinatari non sono solo indirizzi email, questo perché il campo $to è compatibile con lo standard RFC 2822 e quindi supporta i seguenti formati:
  • user@example.com
  • user@example.com, anotheruser@example.com
  • User <a href=”mailto:user@example.com”>user@example.com</a>
  • User <a href=”mailto:user@example.com”>user@example.com</a>, Another User <a href=”mailto:anotheruser@example.com”>anotheruser@example.com</a>
         Il risultato dell'invio sarà:
Figura 2. Invio della mail a destinatari multipli.



Aggiugere destinatario in copia conoscenza nascosta
         Inviare una mail a più destinatari potrebbe avere i suoi svantaggi, se volessimo impostare uno o più CCN (copia conoscenza nascosta) possiamo definire un header come nel seguente esempio:
				$headers[] = 'Bcc: dymissy86@gmail.com';
				mail('email@destinatario1.it', 'oggetto della mail', 'contenuto del messaggio', implode("\r\n", $headers));


Inviare email in HTML
         I due esempi che abbiamo appena visto inviano la mail in formato testo. Questo vuol dire che non è possibile personalizzare il markup della mail. Per abilitare il supporto all'HTML abbiamo bisogno di impostare il content-type adatto:
				$message = '
				    <html>
				        <head>
				            <title>Benvenuto</title>
				        </head>
				        <body>
				            <h1>Benvenuto sul sito</h1>
				            <p>La registrazione è stata effettuata con successo.</p>
				        </body>
				    </html>
				';
				$headers[] = 'MIME-Version: 1.0';
				$headers[] = 'Content-type: text/html; charset=utf-8';
				mail('email@destinatario1.it', 'Benvenuto sul sito', $message, implode("\r\n", $headers));
Figura 3. Invio della mail HTML a destinatari multipli.

         Inviare una mail da un form di contatto
         Vediamo un esempio pratico di come utilizzare le informazioni viste finora creando un form di contatto. Iniziamo dal codice HTML necessario:
				<!DOCTYPE html>
				<html>
				  <head>
				    <meta charset="utf-8">
				    <title>Contact Form</title>
				  </head>
				  <body>
				    <form action="send.php" method="post">
				      <input type="text" name="name" placeholder="Il tuo nome completo" /><br>
				      <input type="email" name="email" placeholder="Il tuo indirizzo email" /><br>
				      <input type="subject" name="subject" placeholder="Oggetto" /><br>
				      <textarea name="message" rows="8" cols="80" placeholder="Il tuo messaggio"></textarea><br>
				      <input type="submit" />
				    </form>
				  </body>
				</html>
         A questo punto andiamo a creare il file send.php che si occuperà di inviare una mail di conferma all'utente e una mail con i contenuti inseriti dall'utente a noi:
				<?php
				$adminEmail = 'admin@admin.com';
				$userEmail = filter_var($_POST['email'], FILTER_SANITIZE_EMAIL);
				$userMessage = '
				  <html>
				    <head>
				      <title>Grazie per averci contattato</title>
				    </head>
				    <body>
				      <h1>Grazie per averci contattato</h1>
				      <p>La tua richiesta è stata inoltrata. Ti risponderemo al più presto.</p>
				      <p>Lo Staff</p>
				    </body>
				  </html>
				';
				$adminMessage = "
				  <html>
				    <head>
				      <title>Contatto dal sito web</title>
				    </head>
				    <body>
				      <h1>Contatto dal sito web</h1>
				      <ul>
				        <li>Nome: {$_POST['name']}</li>
				        <li>Oggetto: {$_POST['subject']}</li>
				        <li>Messaggio: {$_POST['message']}</li>
				      </ul>
				    </body>
				  </html>
				";
				$headers[] = 'MIME-Version: 1.0';
				$headers[] = 'Content-type: text/html; charset=utf-8';
				mail($userEmail, 'Richiesta di contatto effettuata con successo', $userMessage, implode("\r\n", $headers));
				mail($adminEmail, 'Richiesta di contatto dal sito web', $adminMessage, implode("\r\n", $headers));
				echo "Messaggio inviato con successo";
Visitatori online:
Sei il nostro visitatore n°:
© - Copyright 2015. - Tutti i diritti riservati - G.M. Multimedia
Torna ai contenuti | Torna al menu