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

    Implementazione php per invio e-mail con allegato

    Ciao a tutti!

    Ho trovato su internet questo codice php per l'invio di una e-mail con allegato:

    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>"
    ;
    }
    ?>
    Premetto che di php non me ne intendo molto...Avrei la necessità di aggiungere a questo codice la possibilità di indicare nel testo della mail altre informazioni (che sono nome, cognome e indirizzo). Come faccio a dire a questo codice di scrivermi nel testo, oltre al messaggio che l'utente scriverà, quello che ha scritto nei campi nome, cognome e indirizzo?

    Grazie mille per l'aiuto che, sono certo, mi darete!

  2. #2
    Utente di HTML.it L'avatar di Fra2006
    Registrato dal
    Nov 2006
    Messaggi
    147
    Ovviamente io ho già aggiornato l'acquisizione dei nuovi dati. Mi serve solo sapere come posso inserirli nel testo della mail.

    Vi posto l'inizio del nuovo codice. Il resto è rimasto com'era.

    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'];

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    154
    Potresti fare:
    Codice PHP:
    $msg .= "Nome:".$_POST['nome'

  4. #4
    Utente di HTML.it L'avatar di Fra2006
    Registrato dal
    Nov 2006
    Messaggi
    147
    E per metterci anche il cognome e l'indirizzo?

  5. #5
    Utente di HTML.it L'avatar di Fra2006
    Registrato dal
    Nov 2006
    Messaggi
    147
    Questa istruzione dove dovrei inserirla?

    Codice PHP:
    $msg .= "Nome:".$_POST['nome'
    E per aggiungerci anche il cognome e l'indirizzo?

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.