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

    Problema con invio email da php

    Ciao a tutti,
    è argomento già molto trattato ma mi trovo ad affrontare un nuovo problema a cui non ho trovato risposta da nessuna parte.
    Questo script è stato scritto per l'invio di curriculum esclusivamente in formato .doc, ho capito come inserire altri formati senza troppi problemi, visto che la maggior parte dei curriculum ora gira in pdf, ma il problema è che lo script in automatico rinomina i file inviati in curriculum.doc

    A me questa funzione non interessa, ma proprio non riesco a capire come toglierla, mi va bene anche bene che rinomini il file ma almeno che lasci l'estensione giusta...

    Anche il fatto di selezionare solo determinati formati di file è una funzione che eliminerei volentieri, ma quella è il meno, al limite aggiungo io i vari formati...

    Grazie, vi scrivo tutto il codice qui sotto:


    <html>
    <head>
    <title>Send mail with attach</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    </head>
    <body bgcolor="#D2D2D2" leftmargin="3" topmargin="3" marginwidth="0" marginheight="0" text="#000000">
    <?
    function validate_upload($thefile) {
    global $thefile_type, $thefile_name, $thefile_size;
    $my_max_file_size = "102400"; # in bytes

    $registered_types = array(
    "application/msword" => ".doc",
    "application/octet-stream" => ".doc"
    ); # these are only a few examples, you can find many more!
    $allowed_types = array("application/msword", "application/octet-stream");
    $start_error = "\n";
    if ($thefile == "none") { # do we even have a file?
    $error .= "\n- Nessun documento allegato.
    ";
    } else { # check if we are allowed to upload this file_type
    if ($thefile_size>$my_max_file_size) $error .= "\n- Il file allegato supera la dimensione massima consentita.
    ";
    if (!in_array($thefile_type, $allowed_types)) {
    $error .= "\n- Il file che hai inserito non &egrave; del tipo richiesto:

    \n";
    while ($type = current($allowed_types)) {
    $error .= "\n" . $registered_types[$type] . " (" . $type . ")
    ";
    next($allowed_types);
    }
    $error .= "\n";
    }
    if ($error) {
    $error = $start_error . $error . "\n";
    return $error;
    } else {
    return false;
    }
    }
    } # END validate_upload
    ?>
    <font face="Arial, Helvetica, sans-serif" size="2">

    <?
    if ($op=="invio") {
    $error=0;
    $msg="";
    if ($nome=="") {
    $error=1;
    $msg.="- Il campo nome è vuoto.
    ";
    }
    if ($cognome=="") {
    $error=1;
    $msg.="- Il campo cognome è vuoto.
    ";
    }
    if ($email=="") {
    $error=1;
    $msg.="- Il campo email è vuoto.
    ";
    }
    if ($email!="" && !eregi("^[_\.0-9a-z-]+@([0-9a-z][0-9a-z-]+\.)+[a-z]{2,3}$",$email)) {
    $error=1;
    $msg.="- L'email inserita non è valida.
    ";
    }
    if ($commento=="") {
    $error=1;
    $msg.="- Il campo commento è vuoto.
    ";
    }
    $error_file="";
    if (!$thefile || $thefile=="none" || $thefile=="") {
    $error=1;
    $msg.="- Non hai inserito il curriculum.
    ";
    } else $error_file = validate_upload($thefile);
    if ($error==1 || $error_file!="") {
    echo"

    Attenzione! Si sono verificati i seguenti errori:
    $msg
    $error_file
    <a href=\"javascript:history.back()\">Clicca qui</a> per reinserire i dati.";
    } else {
    $emailto="la mia email"; // INERIRE L'EMAIL QUI!!
    $data=date("j/m/Y");
    $ora=date("h:i:s");

    $headers = "MIME-Version: 1.0\n";
    $headers .= "Content-Type: multipart/mixed; boundary=\"XX-1234DED00099A\"\n";
    $headers .= "Content-Transfer-Encoding: 7bit\n";
    $headers .= "From: $email\n";

    $messaggio="--XX-1234DED00099A\n";
    $messaggio.="Content-Type: text/plain; charset=iso-8859-1\n";
    $messaggio.="Content-Transfer-Encoding: 7bit\n\r";

    $messaggio.="Curriculum inviato il $data alle $ora\n\r\nDati inseriti\n";
    $messaggio.="Nome: $nome\n\rCognome: $cognome\n";
    if ($telefono!="") $messaggio.="Telefono: $telefono\n";
    $messaggio.="Email: $email\nCommento:\n$commento\n";
    $oggetto_send="Invio Curriculum";


    $messaggio.="--XX-1234DED00099A\n";
    $messaggio.="Content-Type: application/octet-stream; name=\"curriculum.doc\"\n";
    $messaggio.="Content-Transfer-Encoding: base64\n";
    $messaggio.="Content-Description: \"Curriculum\"\n";
    $messaggio.="Content-Disposition: attachment\n\r";

    $fp=@fopen($thefile, "r");
    if ($fp) {
    $data = fread($fp, filesize($thefile));
    }
    $curr = base64_encode($data);
    $messaggio .= "$curr\n\r--XX-1234DED00099A--\n";
    if (!mail($emailto, $oggetto_send, $messaggio, $headers)) {
    echo"
    Attenzione.
    Si sono verificati degli errori durante l'invio della Email.

    Vi preghiamo di riprovare <a href=\"javascript: history.back()\">cliccando qui.</a>

    Se l'errore persiste Vi invitamo a riprovare più tardi. Grazie.";
    }
    else {
    $messaggio_risposta="Grazie per averci contattato.\n\rIl vostro curriculum è stato inoltrato al responsabile del personale.\n\r\n\rDati inseriti\n";
    $messaggio_risposta.="Nome: $nome\n\rCognome: $cognome\n\r";
    if ($telefono!="") $messaggio_risposta.="Telefono: $telefono\n\r";
    $messaggio_risposta.="Commento:\n\r$commento\n\r\n \r";
    $messaggio_risposta.="Distinti saluti,\n\r";
    $oggetto2="Curriculum inoltrato";
    mail($email, $oggetto2, $messaggio_risposta,"From: Prova prova <$emailto>");
    echo "
    Email inviata correttamente.


    I dati inseriti sono i seguenti:

    ";
    echo"Nome: $nome

    Cognome: $cognome
    ";
    if ($telefono!="") echo"Telefono: $telefono
    ";
    echo"Email: $email
    Commento: ".nl2br($commento)."



    Grazie per averci contattato.";
    }
    }

    } else {
    ?>


    Form per invio curriculum


    <form enctype="multipart/form-data" method="post" action="<?=$PHP_SELF?>" name="contatti">
    <table width="550" border="0" cellspacing="3" cellpadding="0">
    <tr>
    <td>Nome *</td>
    <td>
    <input type="text" name="nome" size="30">
    </td>
    </tr>
    <tr>
    <td>Cognome *</td>
    <td>
    <input type="text" name="cognome" size="30">
    </td>
    </tr>
    <tr>
    <td>Telefono</td>
    <td>
    <input type="text" name="telefono" size="30">
    </td>
    </tr>
    <tr>
    <td>Email *</td>
    <td>
    <input type="text" name="email" size="30">
    </td>
    </tr>
    <tr>
    <td>Allega il tuo curriculum
    (formato .doc - Max 100 Kb) *</td>
    <td>
    <input type="hidden" name="MAX_FILE_SIZE" value="102400">
    <input name="thefile" type="file" SIZE="35">
    </td>
    </tr>
    <tr>
    <td>Commento *</td>
    <td>
    <textarea name="commento" wrap="VIRTUAL" cols="30" rows="5"></textarea>
    </td>
    </tr>
    <tr>
    <td colspan="2">
    <div align="center">
    <input type="hidden" name="op" value="invio">
    <input type="submit" name="Submit" value="Invia">
    <input type="reset" name="Submit2" value="Reimposta">
    </div>
    </td>
    </tr>
    </table>
    </form>
    <font size="1">I campi con l'asterisco sono obbligatori.

    <?
    }
    ?>
    </font>

    </table>
    </body>

    </html>

  2. #2
    Sono riuscito più o meno a risolvere il problema del rinominamento del file, obbligando chi compila il form a fornirmi anche il formato del file.

    Il problema è che il file che arriva via email è come danneggiato, i JPG arrivano incompleti e non funzionanti ... sapete aiutarmi?

    Grazie

  3. #3
    Salve a tutti,
    scusate se riprendo questo vecchio post ma forse (finalmente) sono riuscito a trovare uno script che più si avvicina alle mie esigenze ma dovrei riuscire a risolvere il problema illustrato precedentemente.
    Il problema dei file nominati tutti nello stesso modo credo sia dovuto a questo:
    Codice PHP:
    $messaggio.="Content-Type: application/octet-stream; name=\"curriculum.doc\"\n"//questo è il problema
    $messaggio.="Content-Transfer-Encoding: base64\n";
    $messaggio.="Content-Description: \"Curriculum\"\n";
    $messaggio.="Content-Disposition: attachment\n\r"
    ma come risolverlo?
    Grazie

  4. #4
    Salve a tutti,
    qualcuno potrebbe aiutarmi?

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.