Visualizzazione risultati 1 fino 3 di 3

Discussione: [PHP e Upload]Form per inviare e-mail con allegati usando la funzione mail()

  1. #1
    pokestudio non è connesso Altervistiano Junior
    Data registrazione
    16-01-2004
    Residenza
    127.0.0.1
    Messaggi
    547

    Lightbulb [PHP e Upload]Form per inviare e-mail con allegati usando la funzione mail()

    Ciao,
    vorrei sapere come si inseriscono allegati in una mail tramite un form e usando la funzione mail() di php. Questo include un upload?
    Grazie
    Dal server 5 con amore

  2. #2
    Guest

    Predefinito

    Per inviare una e-mail con attachment devi fare così:

    -----------------------------------------------
    $mail_boundary = md5(uniqid(time()));
    $mail_headers = "From: pippo@pluto.it\n";
    $mail_headers .= "Reply-To: pippo@pluto.it\n";
    $mail_headers .= "X-Priority: 1 (Highest)\n";
    $mail_headers .= "MIME-Version: 1.0\r\n";
    $mail_headers .= "Content-type: multipart/mixed; boundary=\"$mail_boundary\"";
    $mail_headers .= "\r\n\r\n";
    $mail_headers .= "This is a multi-part message in MIME format. ";
    $mail_headers .= "\r\n\r\n";
    #$mail_headers .= "X-Mailer: PHP/" . phpversion();

    ### attenzione questa parte la devi utilizzare se il tuo file è nel tuo spazio web ####
    $userfile = "tuofile.doc";
    $fp = fopen($userfile, "r");
    $file = fread($fp, filesize($userfile));
    $file = chunk_split(base64_encode($file));
    #### fine ####

    $mail_body = "--$mail_boundary\n";
    $mail_body .= "Content-type:text/plain; charset=US-ASCII\r\n";
    $mail_body .= "Content-transfer-encoding:8 bit\r\n\r\n";
    $mail_body .= "bla bla bla,\n";
    $mail_body .= "bla bla bla\n";
    $mail_body .= "--$mail_boundary\n";
    $filename = basename($userfile);
    $mail_body .= "Content-type:application/octet-stream; name=$filename\r\n";
    $mail_body .= "Content-transfer-encoding:base64\r\n\r\n";
    $mail_body .= $file . "\r\n\r\n";
    $mail_body .= "--$mail_boundary--\r\n";

    $ris = mail("$email", $subject, $mail_body, $mail_headers);
    -------------------------------------------------------

    Per quanto riguarda la parte del form non dovrebbe essere difficile...
    dal tuo form prendi le info in questo modo:

    $data = addslashes(fread(fopen($_FILES['file']['tmp_name'], 'rb'), $_FILES['file']['size']));
    $file_name = $_FILES['file']['name']; #importante
    $file_type = $_FILES['file']['type']; #importante
    $file_size = $_FILES['file']['size'];

    In $data hai il contenuto del file... le altre variabili si intuiscono bene....

    Il form deve fare una cosa del genere:
    <?
    <form action=\"{$_SERVER['PHP_SELF']}\" method=\"POST\" enctype=\"multipart/form-data\">
    <input type=\"file\" name=\"file\" size=\"40\">
    <input type=\"submit\" value=\"Invia il file\" name=\"invia\">
    </form>
    ?>

    Naturalmente gli altri pezzi li devi mettere a posto tu... all'incirca il giochino funziona così

    Ciao

  3. #3
    pokestudio non è connesso Altervistiano Junior
    Data registrazione
    16-01-2004
    Residenza
    127.0.0.1
    Messaggi
    547

    Predefinito

    Grazie :grin:
    Dal server 5 con amore

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •