Salve a tutti, ho un problema con il codice php.
Mi spiego, avrei bisogno di inviare un file allegato ad una mail tramite un form.
In rete ho recuperato questo script che funziona perfettamente con i file .doc, permette di inviare i file .jpeg che però non vengono ricevuti mentre i file .pdf li ricevo ma non riesco ad aprirli.
Posto il codice nella speranza che qualcuno riesca ad aiutarmi.
Il sito è su server aruba.
Mi spiego, avrei bisogno di inviare un file allegato ad una mail tramite un form.
In rete ho recuperato questo script che funziona perfettamente con i file .doc, permette di inviare i file .jpeg che però non vengono ricevuti mentre i file .pdf li ricevo ma non riesco ad aprirli.
Posto il codice nella speranza che qualcuno riesca ad aiutarmi.
Il sito è su server aruba.
PHP:
<html>
<head>
<title>MMKit Tutorial - Send mail with attach</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body bgcolor="#D2D2D2" leftmargin="3" topmargin="3" marginwidth="0" marginheight="0" text="#000000">
<?
function validate_upload($thefile) {
global $thefile_type, $thefile_name, $thefile_size;
$my_max_file_size = "3145728"; # in bytes
$registered_types = array(
"application/msword" => ".doc",
"application/octet-stream" => ".doc",
"application/pdf" => ".pdf",
"image/jpeg" => ".jpeg"
); # these are only a few examples, you can find many more!
$allowed_types = array("application/msword", "application/octet-stream", "application/pdf", "image/jpeg");
$start_error = "\n";
if ($thefile == "none") { # do we even have a file?
$error .= "\n- Nessun documento allegato.<br>";
} else { # check if we are allowed to upload this file_type
if ($thefile_size>$my_max_file_size) $error .= "\n- Il file allegato supera la dimensione massima consentita.<br>";
if (!in_array($thefile_type, $allowed_types)) {
$error .= "\n- Il file che hai inserito non è del tipo richiesto:
<br>\n";
while ($type = current($allowed_types)) {
$error .= "\n" . $registered_types[$type] . " (" . $type . ")<br>";
next($allowed_types);
}
$error .= "\n";
}
if ($error) {
$error = $start_error . $error . "\n";
return $error;
} else {
return false;
}
}
} # END validate_upload
?>
<font face="Arial, Helvetica, sans-serif" size="2"><br>
<?
if ($op=="invio") {
$error=0;
$msg="";
if ($nome=="") {
$error=1;
$msg.="- Il campo nome è vuoto.<br>";
}
if ($cognome=="") {
$error=1;
$msg.="- Il campo cognome è vuoto.<br>";
}
if ($email=="") {
$error=1;
$msg.="- Il campo email è vuoto.<br>";
}
if ($email!="" && !eregi("^[_\.0-9a-z-]+@([0-9a-z][0-9a-z-]+\.)+[a-z]{2,3}$",$email)) {
$error=1;
$msg.="- L'email inserita non è valida.<br>";
}
if ($commento=="") {
$error=1;
$msg.="- Il campo commento è vuoto.<br>";
}
$error_file="";
if (!$thefile || $thefile=="none" || $thefile=="") {
$error=1;
$msg.="- Non hai inserito il certificato.<br>";
} else $error_file = validate_upload($thefile);
if ($error==1 || $error_file!="") {
echo"<br><br>Attenzione! Si sono verificati i seguenti errori:<br>$msg<br>$error_file<br><a href=\"javascript:history.back()\">Clicca qui</a> per reinserire i dati.";
} else {
$emailto="[email protected]"; // INSERIRE L'EMAIL QUI!!
$data=date("j/m/Y");
$ora=date("h:i:s");
$headers = "MIME-Version: 1.0\n";
$headers .= "Content-Type: multipart/mixed; boundary=\"XX-1234DED00099A\"\n";
$headers .= "Content-Transfer-Encoding: 7bit\n";
$headers .= "From: $email\n";
$messaggio="--XX-1234DED00099A\n";
$messaggio.="Content-Type: text/plain; charset=iso-8859-1\n";
$messaggio.="Content-Transfer-Encoding: 7bit\n\r";
$messaggio.="Certificato inviato il $data alle $ora\n\r\nDati inseriti\n";
$messaggio.="Nome: $nome\n\rCognome: $cognome\n";
if ($telefono!="") $messaggio.="Telefono: $telefono\n";
$messaggio.="Email: $email\nCommento:\n$commento\n";
$oggetto_send="Invio Certificato";
$messaggio.="--XX-1234DED00099A\n";
$messaggio.="Content-Type: {$thefile_type}; name=\"certificato\"\n";
$messaggio.="Content-Transfer-Encoding: base64\n";
$messaggio.="Content-Description: \"Certificato\"\n";
$messaggio.="Content-Disposition: attachment\n\r";
$fp=@fopen($thefile, "r");
if ($fp) {
$data = fread($fp, filesize($thefile));
}
$curr = base64_encode($data);
$messaggio .= "$curr\n\r--XX-1234DED00099A--\n";
if (!mail($emailto, $oggetto_send, $messaggio, $headers)) {
echo"<br><b>Attenzione.</b><br>Si sono verificati degli errori durante l'invio della Email.<br>
Vi preghiamo di riprovare <a href=\"javascript: history.back()\">cliccando qui.</a><br>
Se l'errore persiste Vi invitamo a riprovare più tardi. Grazie.";
}
else {
$messaggio_risposta="Grazie per aver usato questo servizio.\n\rAbbiamo inviato il vostro certificato alla Segreteria competente.\n\r\n\rDati inseriti\n";
$messaggio_risposta.="Nome: $nome\n\rCognome: $cognome\n\r";
if ($telefono!="") $messaggio_risposta.="Telefono: $telefono\n\r";
$messaggio_risposta.="Commento:\n\r$commento\n\r\n\r";
$messaggio_risposta.="Distinti saluti,\n\r";
$oggetto2="Certificato inoltrato";
mail($email, $oggetto2, $messaggio_risposta,"From: NOMESITO <$emailto>");
echo "<br><b>Email inviata correttamente.</b><br>
<br>I dati inseriti sono i seguenti:<br><br>";
echo"Nome:<b> $nome </b><br>
Cognome:<b> $cognome</b><br>";
if ($telefono!="") echo"Telefono: <b>$telefono</b><br>";
echo"Email: <b>$email</b><br>Commento:<b> ".nl2br($commento)."</b><br>
<br><br>Grazie per aver usato questo servizio.";
}
}
} else {
?>
<br><br>Form per invio certificato<br><br>
<form enctype="multipart/form-data" method="post" action="<?=$PHP_SELF?>" name="contatti">
<table width="550" border="0" cellspacing="3" cellpadding="0">
<tr>
<td>Nome *</td>
<td>
<input type="text" name="nome" size="30">
</td>
</tr>
<tr>
<td>Cognome *</td>
<td>
<input type="text" name="cognome" size="30">
</td>
</tr>
<tr>
<td>Telefono</td>
<td>
<input type="text" name="telefono" size="30">
</td>
</tr>
<tr>
<td>Email *</td>
<td>
<input type="text" name="email" size="30">
</td>
</tr>
<tr>
<td>Allega il tuo certificato<br>(formato .doc - Max 3 Mb) *</td>
<td>
<input type="hidden" name="MAX_FILE_SIZE" value="3145728">
<input name="thefile" type="file" SIZE="35">
</td>
</tr>
<tr>
<td>Commento *</td>
<td>
<textarea name="commento" wrap="VIRTUAL" cols="30" rows="5"></textarea>
</td>
</tr>
<tr>
<td colspan="2">
<div align="center">
<input type="hidden" name="op" value="invio">
<input type="submit" name="Submit" value="Invia">
<input type="reset" name="Submit2" value="Reimposta">
</div>
</td>
</tr>
</table>
</form>
<font size="1">I campi con l'asterisco sono obbligatori.<br>
<?
}
?>
</font>
</table>
</body>
</html>
Ultima modifica di un moderatore: