Invio mail con allegati multipli

Riccardo Contu

Utente Attivo
14 Lug 2019
25
0
1
Ciao a tutti,

sto provando a inviare una mail con allegati multipli tramite un form in cui gli allegati vengono caricati tramite

PHP:
<input type='file' id='allegati' name='allegati[]' multiple>

Lo script di invio mail invece è il seguente:

PHP:
$allegati = array($_FILES['allegati']['name']);
$a = '...';
$da = '...';
$obj = '...';
$testo_mail = '...';

 
$intestazioni = "From: " . $da;

  $rand = md5(time());
  $boundary = "==Multipart_Boundary_x{$rand}x";

  $intestazioni .= "\nMIME-Version: 1.0\n";
  $intestazioni .= "Content-Type: multipart/mixed;\n";
  $intestazioni .= " boundary=\"{$boundary}\"";
 
foreach ($allegati as $allegato){

  $attachment = $allegato;
  $attachment_type = '.jpg';
  $attachment_name = $allegato;

  $file = fopen($attachment,'rb');
  $data = fread($file, filesize($attachment));
  fclose($file);
  $data = chunk_split(base64_encode($data));

  $messaggio .= "Content-Type: text/plain; charset=\"iso-8859-1\"\n";
  $messaggio .= "Content-Transfer-Encoding: 7bit\n\n";
  $messaggio .= $testo_mail . "\n\n";
  $messaggio .= "--{$boundary}\n";

  $messaggio .= "Content-Disposition: attachment;\n";
  $messaggio .= " filename=\"{$attachment_name}\"\n";
  $messaggio .= "Content-Transfer-Encoding: base64\n\n";
  $messaggio .= $data . "\n\n";
  $messaggio .= "--{$boundary}\n";
}
 
  $messaggio .= "Content-Type: text/plain; charset=\"iso-8859-1\"\n";
  $messaggio .= "Content-Transfer-Encoding: 7bit\n\n";
  $messaggio .= $testo_mail . "\n\n";
  $messaggio .= "--{$boundary}\n";
 
if (mail($a, $obj, $messaggio, $intestazioni))
  { ecc. ecc

La mail viene inviata correttamente, non vengono però caricati gli allegati (che in questo caso sono immagini jpg)

Come allegati trovo solamente questi 2 file che non contengono nulla.

Immagine.jpg


Potreste darmi una mano?
 

Discussioni simili