Invio mail con allegati da directory

Riccardo Contu

Utente Attivo
14 Lug 2019
25
0
1
Buongiorno,

ho la necessità sul mio sito di recuperare un file da una cartella presente sullo spazio web e inviarlo via mail come allegato. Sto utilizzando il seguente codice:

PHP:
$email=$_POST['email'];
$bolla_tecnico=$_POST['bolla_tecnico'];

$a = '$email';
$da = 'Magazzino';
$obj = 'Consegna';
$testo = 'Testo';

$intestazioni = "From: " . $da;
  $messaggio = "";

  $file = fopen('/cartella/$bolla_tecnico','rb');
  $data = fread($file, filesize('/cartella/$bolla_tecnico'));
  fclose($file);
  $data = chunk_split(base64_encode($data));
  $rand = md5(time());
  $boundary = "==Multipart_Boundary_x{$rand}x";
 
  $intestazioni .= "\nMIME-Version: 1.0\n";
  $intestazioni .= "Content-Type: multipart/mixed;\n";
  $intestazioni .= " boundary=\"{$boundary}\"";
 
  $messaggio .= "This is a multi-part message in MIME format.\n\n";
  $messaggio .= "--{$boundary}\n";
  $messaggio .= "Content-Type: text/plain; charset=\"iso-8859-1\"\n";
  $messaggio .= "Content-Transfer-Encoding: 7bit\n\n";
  $messaggio .= $testo . "\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 = $testo;
 

if (mail($a, $obj, $messaggio, $intestazioni))
  {
  echo "Messaggio inviato con successo.";
  }else{
  echo "Si è verificato un errore nell'invio.";
  }

Tramite la variabile $bolla_tecnico passo il nome del file pdf da allegare, es: 'modello.pdf'

Ricevo correttamente la mail e compare anche il simbolo di allegato nell'anteprima, ma quando vado ad aprirla non è presente alcun allegato. Potreste darmi una mano?
 

Discussioni simili