ciao ho realizzato un form mail in PHP che prende un allegato.
Mi funziona su tutti i browser tranne che su SAFARI, può essere che safari abbia qualche problema con gli allegati?!
Grazie, Davide
ciao ho realizzato un form mail in PHP che prende un allegato.
Mi funziona su tutti i browser tranne che su SAFARI, può essere che safari abbia qualche problema con gli allegati?!
Grazie, Davide
aggiungo che il problema mi è arrivato sul mac
il codice è questo :
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";
}
Si, anche io stavo impazzendo perchè non arrivava nulla inviato dal mac.![]()
Poi ho scoperto che da winzoz funziona!![]()
Qualcuno sa darmi una spiegazione?
Visto che ci troviamo.. sto cercando di modificare lo script per inviare più di un allegato ma ho problemi con i separatori. Chi può darmi una mano?
Grazie!![]()
guarda usa Phpmailer, e va tutto liscio
questo è il codice che ho usato
ma con qualche guida tutorial te lo sistemi insomma e tutto va liscio
$messaggio = new PHPmailer();
$messaggio->IsSMTP();
//$messaggio->Host='Host SMTP';
$messaggio->From=$mittente;
$messaggio->FromName =$nome;
$messaggio->AddAddress('TUA MAIL');
$messaggio->AddReplyTo($mittente);
$messaggio->Subject='TUO SOGGETTO';
$messaggio->Body="TUO MSG
";
if (is_uploaded_file($allegato)) {$messaggio->AddAttachment($_FILES['allegato']['tmp_name'],$_FILES['allegato']['name']);}
if(!$messaggio->Send()){
echo $messaggio->ErrorInfo;
}else{
echo 'Email inviata correttamente!';
}
$messaggio->SmtpClose();
unset($messaggio);
}