Funzione mail() in PHP
Definizione e uso
La funzione mail() ti permette di inviare email direttamente dallo script.
Se la consegna dell'email viene accettata con successo, viene restituito true, altrimenti false.
Sintassi
mail(to,subject,message,headers,parameters)
Parametro | Descrizione |
---|---|
to | Obbligatorio. Specifica il destinatario dell'email. |
subject | Obbligatorio. Specifica l'oggetto dell'email. Questo parametro non può contenere caratteri di nuova riga. |
message | Obbligatorio. Specifica il messaggio da inviare. |
headers | Obbligatorio. Specifica intestazioni aggiuntive come From, Cc e Bcc. |
parameters | Obbligatorio. Specifica i parametri aggiuntivi del programma sendmail. |
Spiegazione
In message I parametri specificati devono essere separati da un LF (\n) tra le righe. Ogni riga non può superare i 70 caratteri.
(Sotto Windows) Quando PHP si connette direttamente al server SMTP, se viene trovato un punto alla fine di una riga, viene eliminato. Per evitare questo problema, sostituisci il punto singolo con due punti.
<?php $text = str_replace("\n.", "\n..", $text); ? >
Suggerimenti e commenti
Commento:Ricorda che l'accettazione della consegna dell'email non significa necessariamente che l'email sia arrivata a destinazione.
Esempio
Esempio 1
Inviare una email semplice:
<?php $txt = "First line of text\nSecond line of text"; // Se una riga supera i 70 caratteri, utilizzare wordwrap(). $txt = wordwrap($txt,70); // Inviare email mail("somebody@example.com","My subject",$txt); ? >
Esempio 2
Inviare un'email con intestazioni aggiuntive:
<?php $to = "somebody@example.com"; $subject = "My subject"; $txt = "Hello world!"; $headers = "From: webmaster@example.com" . "\r\n" . "CC: somebodyelse@example.com"; mail($to,$subject,$txt,$headers); ? >
Esempio 3
Invia una email HTML:
<?php $to = "somebody@example.com, somebodyelse@example.com"; $subject = "Email HTML"; $message = " <html> <head> <title>Email HTML</title> </head> <body> <p>Questa email contiene tag HTML!</p> <table> <tr> <th>Nome proprio</th> <th>Nome</th> </tr> <tr> <td>Bill</td> <td>Gates</td> </tr> </table> </body> </html> "; // Quando si invia un'email HTML, è sempre necessario impostare il content-type $headers = "MIME-Version: 1.0" . "\r\n"; $headers .= "Content-type:text/html;charset=iso-8859-1" . "\r\n"; // Più intestazioni $headers .= 'From: <webmaster@example.com>' . "\r\n"; $headers .= 'Cc: myboss@example.com' . "\r\n"; mail($to,$subject,$message,$headers); ? >