[PHP] Inviare mail con piu immagini allegate

Alex@1983

Utente Attivo
9 Mag 2015
105
1
18
Ciao a tutti,

volevo chiedervi supporto per l'invio di più immagini allegate ad una mail.

Io utilizzo lo script che vi riporto di seguito, e funziona benissimo! ... se ad essere allegata è una sola immagine.

Ma per allegarne due , ad esempio , come posso fare ?

Ho provato a modificare lo script raddoppiando le definizioni degli allegati ... ho googolato in giro .... ma proprio non saprei....

Mi date una mano ?

Ecco lo script che utilizzo io:

PHP:
// Recupero il valore dei campi del form
$destinatario = "xxx@zzz.it,";
$mittente = "pippo@ciao.it";
$oggetto = "xxxxxxx";

// Valorizzo le variabili relative all'allegato
$allegato = $_FILES['foto']['tmp_name'];
$allegato_type = $_FILES['foto']['type'];
$allegato_name = $_FILES['foto']['name'];

// Creo altre due variabili ad uno interno
$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"
  $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/html; 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; filename=\"{$allegato_name}\"\n";
  $msg .= "Content-Transfer-Encoding: base64\n\n";
  $msg .= $data . "\n\n";

  // chiudo con il separatore
  $msg .= "--{$mime_boundary}--\n";
}
// se non è stato caricato alcun file
// preparo un semplice messaggio testuale
else
{
 $msg = $dascrivere;
 //$nome_mittente = "aaaaaa";                                                                                                                       
//$mail_mittente = "pippo@ciao.it";                                                                                                                   
//$mail_destinatario = "xxx@zzzzz.it";                                                         
                                                                                                                                                                                                          
//$mail_oggetto = "nnnnnnnnnn";                                                                                                                             
//$mail_corpo = $dascrivere;                                                                                                                                                     
                                                                                                                                                                                                        
$headers = "MIME-Version: 1.0\r\n";                                                                                                                                     
$headers .= "From: pippo@ciao.it>\r\n";                                                             
$headers .= "Content-Type: text/html; charset=\"iso-8859-1\"\r\n";                                                         
$headers .= "Content-Transfer-Encoding: 7bit\r\n";                                                                                                             
//$headers .= "From: <$mail_mittente>";                                                                       
}

// Invio la mail
if (mail($destinatario, $oggetto, $msg, $headers))
{
  echo "<p>Mail inviata con successo!</p>";
}else{
  echo "<p>Errore!</p>";
}
 

Max 1

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
29 Feb 2012
3.933
292
83

Alex@1983

Utente Attivo
9 Mag 2015
105
1
18
Certo Max 1,

non volevo essere insistente ....

ne tanto meno credevo che qualcuno "dovesse" rispondermi ...

e' solo ... "l'ansia della curiosità" e la voglia di cercare di risolvere l'inghippo e veder finalizzato il mio "progettino"

tutto qui
 

Alex@1983

Utente Attivo
9 Mag 2015
105
1
18
Insomma .... non cè proprio nessuno che ha una soluzione al "problema" .... io continuo a googolare ... ma non ne vengo a capo....
 

Max 1

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
29 Feb 2012
3.933
292
83
Te l'ho già detto se qualcuno vuole rispondere non ha bisogno delle tue sollecitazioni. Alla prossima chiudo