Posto il codice che utilizzo, se l'unico modo per mandare in allegato un file pdf e immagini è usare php mailer stravolgo il codice. Grazie
Codice PHP:
if (is_uploaded_file($allegatopdf))
{
$filez = fopen($allegatopdf, "r");
$contents = fread($filez, filesize($allegatopdf));
$encoded_attach = chunk_split(base64_encode($contents));
fclose($filez);
//$contents = chunk_split(base64_encode($contents));
}
else
{
echo 'Upload non eseguito';
}
$header = "From: $newsfrom\n";
$header .= "Bcc: $indirizzo\n";
$header .= "X-Mailer: $newsmailer\n";
$boundary = "==String_Boundary_x" .md5(time()). "x";
$boundary2 = "==String_Boundary2_y" .md5(time()). "y";
$header .= "MIME-Version: 1.0\n";
$header .= "Content-type: multipart/mixed;\n";
$header .= " boundary=\"Message-Boundary\"\n";
$header .= "Content-transfer-encoding: 7BIT\n";
$header .= "X-attachments: $nomeAllegatopdf";
$messaggio = $newsnohtml;
$messaggio = "--Message-Boundary\n";
$messaggio .= "Content-type: text/html; charset=iso-8859-1\n";
$messaggio .= "Content-transfer-encoding: 7BIT\n";
$messaggio .= "Content-description: Mail message body\n\n";
$messaggio .= $pagina;
//$messaggio .= "</BODY></HTML>";
$messaggio .= "\n\n--Message-Boundary\n";
$messaggio .= "Content-type: $filetypepdf; name=\"$nomeAllegatopdf\"\n";
$messaggio .= "Content-Transfer-Encoding: BASE64\n";
$messaggio .= "Content-disposition: attachment; filename=\"$nomeAllegatopdf\"\n\n";
$messaggio .= "$encoded_attach\n";
$messaggio .= "--Message-Boundary--\n";
$messaggio .= stripslashes(html_entity_decode($pagina));
$messaggio .= "\n";
// chiusura della sezione multipart/alternative
$messaggio .= "--$boundary2--\n";
// seconda sezione del multipart/related contenente l'immagine
// per ogni valore nell'array $allegato inserisco il codice per allegarlo all'email
$numallegato = 0;
if ($immagine):
foreach ($immagine as $allegato):
//echo $allegato.'
'.$nomeimmagine;
//die;
// salvo l'immagine in una directory temporanea sul server
// $allegato è il percorso dell'immagine
//$numallegato è la variabile che inserisco nel codice al posto dell'immagine
$numallegato = $numallegato + 1;
// e mi scrivo il codice da inserire nell'email
$messaggio .= "--$boundary\n";
$messaggio .= "Content-ID: <immagine". $numallegato. ">\n";
$messaggio .= "Content-Type: image/jpeg\n";
$messaggio .= "Content-Transfer-Encoding: base64\n\n";
$file = fopen($allegato,'rb');
$data = fread($file,filesize($allegato));
fclose($file);
$data = chunk_split(base64_encode($data));
$messaggio .= "$data\n\n";
endforeach;
endif;
if (isset($fileallegato) & $fileallegato != ""):
// mi scrivo il codice da inserire nell'email per inserire un allegato
$messaggio .= "--$boundary\n";
$messaggio .= "Content-Transfer-Encoding: base64\n\n";
$file = fopen($fileallegato,'rb');
$data = fread($file,filesize($fileallegato));
fclose($file);
$data = chunk_split(base64_encode($data));
$messaggio .= "$data\n\n";
endif;
// chiusura della sezione multipart/related
$messaggio .= "--$boundary--\n";
// e finalmente invio l'email (i destinatari sono in Bcc, ovvero conoscenza nascosta
// per non visualizzare i reali destinatari dela newsletter
if ($attenzionedi):
$indirizzo = "$indirizzo ($attenzionedi)";
endif;
if( @mail($indirizzo, $titolo, $messaggio, $header) ) $esitoinvio .= $indirizzo . ', ';
else $$esitoinvio .= "Errore nell'invio della newsletter!";
// Chiusura della connessione