Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it L'avatar di Fra2006
    Registrato dal
    Nov 2006
    Messaggi
    147

    Codice PHP per invio e-mail con allegato

    Ciao a tutti!

    Io ho questo codice che uso per l'invio di una semplice mail con un allegato. Così com'è funziona. Ora però ho la necessità di inserirci nuove informazioni. Vi inserisco il codice php:

    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>"


    ?>
    Per inserire nel testo della mail che invio il nome, il cognome e l'indirizzo che istruzioni dovrei inserire? E dove nel codice?

    Io all'inizio ho indicato queste istruzioni per caricare i dati del form di compilazione della mail:

    Codice PHP:
    <?php 
    // Recupero il valore dei campi del form 
    $destinatario $_POST['destinatario']; 
    $nome $_POST['nome']; 
    $cognome $_POST['cognome']; 
    $mittente $_POST['mittente']; 
    $indirizzo $_POST['indirizzo']; 
    $oggetto $_POST['oggetto']; 
    $messaggio $_POST['messaggio'];
    É corretto?

    Spero che sappiate aiutarmi! Ho abbastanza urgenza! Grazie mille per l'aiuto!

  2. #2
    Devi inserire il testo del messaggio nella variabile $msg proprio come hai fatto

    $msg .= $messaggio . "\n\n";

  3. #3
    Utente di HTML.it L'avatar di Fra2006
    Registrato dal
    Nov 2006
    Messaggi
    147
    Ma così mi scrive nel testo della mail solamente quello che è indicato nel campo messaggio...
    A me servirebbe che oltre al contenuto del campo messaggio mi inserisse anche il contenuto del campo nome, del campo cognome e del campo indirizzo.

  4. #4
    Inserisci anche

    $msg .= $nome . "\n\n";
    $msg .= $cognome . "\n\n";
    ....

  5. #5
    Utente di HTML.it L'avatar di Fra2006
    Registrato dal
    Nov 2006
    Messaggi
    147
    Grazie mille! Funziona!

    Ho un'ultima richiesta, giuro che è l'ultima , se volessi aggiungere più di un allegato? Cosa devo scrivere e dove devo scriverlo nel codice?

  6. #6
    Utente di HTML.it L'avatar di Fra2006
    Registrato dal
    Nov 2006
    Messaggi
    147
    Scusate ragazzi ma ho una certa urgenza di completare questo lavoro e purtroppo da solo non riesco a far inserire più di un allegato alla mail...

    Avete dei suggerimenti da darmi?

    Avrei proprio bisogno di una mano...Grazie mille per l'aiuto!

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.