Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    Da uno a due allegati via mail

    ciao a tutti, ho un form per l'invio di email con allegati, che funziona molto bene, però ora vorrei correggerlo pechè voglio poter uplodare due file invece di uno.

    Lo script che ho usato è questo:
    Codice PHP:
    <?php
    // Recupero il valore dei campi del form
    $destinatario $_POST['destinatario'];
    $mittente $_POST['mittente'];
    $oggetto $_POST['oggetto'];
    $messaggio $_POST['messaggio'];

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

    // Creo 2 variabili che riempirò più avanti...
    $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($filefilesize($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";
    }
    else
    {
      
    $msg $messaggio;
    }

    // Invio la mail
    if (mail($destinatario$oggetto$msg$headers))
    {
      echo 
    "

    Mail inviata con successo!</p>"
    ;
    }else{
      echo 
    "

    Errore!</p>"
    ;
    }
    ?>
    ...l'ho preso qualche giorno fa, qui su www.mrwebmaster.it

    mi funziona molto bene, e spero di riuscire a modificarlo per poter inviare due file invece di uno... però mi serve un vostro aiuto in quanto non sono per niente pratico di php...

    mi date una mano? è fattibile la modifica di questo script? o devo cambiare tutto?

    Grazie 1000

  2. #2
    Piccolo UP :quote:

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.