- Home
- Categorie
- Coding e Sistemistica
- Coding
- Invio Email
-
Invio Email
Mi serve un aiuto per questo invio email non riesco a trovare il problema e mail la invia non mi da errore ma non arriva nella posta.
[PHP]<?php // Recupero il valore dei campi del form $nome = $_POST['nome']; $mittente = $_POST['mittente']; $allegato = $_POST['allegato']; $telefono = $_POST['telefono']; $messaggio = $_POST['messaggio'];
// Valorizzo le variabili relative all'allegato $allegato = $_FILES['allegato']['tmp_name']; $allegato_type = $_FILES['allegato']['type']; $allegato_name = $_FILES['allegato']['name'];
// Creo 2 variabili che riempirò più avanti... $headers = "From: " . $mittente; $msg = "";
// Verifico se il file è stato caricato correttamente via HTTP // In caso affermativo proseguo nel lavoro... if (is_uploaded_file($allegato)) { // Apro e leggo il file allegato $file = fopen($allegato,'rb'); $data = fread($file, filesize($allegato)); fclose($file);
// Adatto il file al formato MIME base64 usando base64_encode $data = chunk_split(base64_encode($data));
// Genero il "separatore" // Serve per dividere, appunto, le varie parti del messaggio. // Nel nostro caso separerà la parte testuale dall'allegato$semi_rand = md5(time()); $mime_boundary = "==Multipart_Boundary_x{$semi_rand}x"; // Aggiungo le intestazioni necessarie per l'allegato $headers .= "\nMIME-Version: 1.0\n"; $headers .= "Content-Type: multipart/mixed;\n"; $headers .= " boundary="{$mime_boundary}"";
// Definisco il tipo di messaggio (MIME/multi-part) $msg .= "This is a multi-part message in MIME format.\n\n";
// Metto il separatore $msg .= "--{$mime_boundary}\n";
// Questa è la parte "testuale" del messaggio $msg .= "Content-Type: text/plain; charset="iso-8859-1"\n"; $msg .= "Content-Transfer-Encoding: 7bit\n\n"; $msg .= $messaggio . "\n\n";
// Metto il separatore $msg .= "--{$mime_boundary}\n";
// Aggiungo l'allegato al messaggio $msg .= "Content-Disposition: attachment;\n"; $msg .= " filename="{$allegato_name}"\n"; $msg .= "Content-Transfer-Encoding: base64\n\n"; $msg .= $data . "\n\n"; // chiudo con il separatore $msg .= "--{$mime_boundary}--\n"; } else { $msg = $messaggio; }
// Invio la mail $imposta = ini_set("sendmail_from", "[email protected]");if (!$imposta) { print "Non posso impostare sendmail_from!<br>\n"; }if (mail($mittente, $telefono, $messaggio, $allegato, $headers)) { echo "<p>Mail inviata con successo!</p>"; }else{ echo "<p>Errore!</p>"; } ?>
<br><center><a href="javascript: history.back()">torna indietro</a></center>[HTML]<form action="formmail.php" method="POST" ><input type="hidden" name="destinatario" value="[email protected]"><table border="0" cellspacing="5" cellpadding="5"><tr><td>Cognome e Nome:</td><td><input type="text" name="nome" size="40" maxlength="40" value=""></td></tr><tr><td>E-mail:</td><td><input type="text" name="mittente" size="40" maxlength="40" value=""></td></tr><tr><td>Telefono:</td><td><input type="text" name="Telefono" size="40" maxlength="40" value=""></td></tr><tr><td valign="middle">Inserisca<br>il suo <br>desiderio</td><td><textarea name="messaggio" rows="8" cols="40"></textarea></td></tr> <td>Documentazzione:</td> <td><input type="file" name="allegato" /></td></tr><tr><tr><td></td><td><input type=submit value="Invia i Dati"><input type=reset value="Annulla"></td></tr></table></form>[/HTML]
[/PHP]