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

    errore invio email dal sito

    Salve,
    ho un problema con uno script in php apparentemenre semplice ma che purtroppo mi sta facendo dannare..

    lo script dovrebbe permettere all'utente di inserire il suo indirizzo email ed altri sei indirizzi email, i primi tre obbligatori e gli altri tre facoltativi.

    dopo di che dovrebbe inviare un messaggio preimpostato che ha come mittente l'indirizzo email dell'utente.

    ho provato a caricare il tutto su diversi hosting, sia gratuiti che a pagamento il problema rimane.

    nel migliore dei casi ho come risposta l'errore per il fallito invio dell'email, nel peggiore dei casi invece lo script sembra proprio muto.. non da nessun risultato.

    mi hanno detto che probabilmente il problema potrebbe essere nella configurazione del file php.ini ed ho contattato il fornitore dell'hosting per sapere se era possibile cambiare configurazione ma mi hanno risposto che la funzione mail() è funzionante pertanto il problema sta nel sorgente php.

    io purtroppo non sono riuscito a trovare nulla di anomalo.. se potreste aiutarmi voi ve ne sarei grato..

    vi scrivo di seguito le tre pagine dello script:

    index.html
    Codice PHP:
    <html>
     <
    head
     <
    title>Invio NewsLetter</title>
     <
    script type="text/javascript" src="controlli.js"></script>
     </head>
     <body>
         <form action="inviaMail.php" method="post" name="mail">
             <table>
             <tr>
                 <td>mittente:</td>
                 <td><input type="text" name="mittente"></td>
                 <td>obbligatorio</td>
             </tr>
              <tr>
                 <td>email 1 *</td>
                 <td><input type="text" name="email1"></td>
                 <td>obbligatorio</td>
             </tr>
              <tr>
                 <td>email 2 *</td>
                 <td><input type="text" name="email2"></td>
                 <td>obbligatorio</td>
             </tr>
              <tr>
                 <td>email 3 *</td>
                 <td><input type="text" name="email3"></td>
                 <td>obbligatorio</td>
             </tr>
              <tr>
                 <td>email 4</td>
                 <td><input type="text" name="email4"></td>
                 <td>facoltativa</td>
             </tr>
              <tr>
                 <td>email 5</td>
                 <td><input type="text" name="email5"></td>
                 <td>facoltativa</td>
             </tr>
              <tr>
                 <td>email 6</td>
                 <td><input type="text" name="email6"></td>
                 <td>facoltativa</td>
             </tr>
              <tr>
                 <td align="center" colspan="3">
                     <input type="button"onClick="controllo();" value="invia">
                 </td>
             </tr>
             </table>
         </form>
     </body>
     </html> 
    inviaMail.php
    Codice PHP:
    <?php  echo "Ciao [b]$mittente[/b]
    "
    ;
       
    // costruiamo alcune intestazioni generali
     
    $header "From: $mittente \n";
      
    // generiamo la stringa che funge da separatore
     
    $boundary "==String_Boundary_x" .md5(time()). "x";
      
    // costruiamo le intestazioni che specificano
      // un messaggio costituito da più parti alternative
     
    $header .= "MIME-Version: 1.0\n"$header .= "Content-Type: multipart/alternative;\n";
     
    $header .= " boundary=\"$boundary\";\n\n";
     
    // questa parte del messaggio viene visualizzata
     // solo se il programma non sa interpretare
     // i MIME poiché è posta prima della stringa boundary
     
    $messaggio "QUI CI VA IL MESSAGGIO PER I CLIENT EMAIL CHE NON SUPPORTANO L'HTML \n\n";
      
    // inizia la prima parte del messaggio in testo puro
     
    $messaggio .= "--$boundary\n"$messaggio .= "Content-Type: text/plain; charset=\"iso-8859-1\"\n";
     
    $messaggio .= "Content-Transfer-Encoding: 7bit\n\n";
     
    $messaggio .= "Messaggio in formato testo(sembra che funzioni).\n\n";
      
    // inizia la seconda parte del messaggio in formato html
     
    $messaggio .= "--$boundary\n";
     
    $messaggio .= "Content-Type: text/html; charset=\"iso-8859-1\"\n"$messaggio .= "Content-Transfer-Encoding: 7bit\n\n";
     
    $messaggio .= "<html><body>

    Questo messaggio è in formato [i]html[/i],                 sembra che tutto funzioni.</p>

    Visita il sito <a href=\"http://www.google.it\">[url]www.google.it[/url]</a></p></body></html>\n"
    ;
      
    // chiusura del messaggio con la stringa boundary
     
    $messaggio .= "--$boundary--\n";  $subject "saluti in php";
           if (
    $email1 != '') {
             if( @
    mail("$email1"$subject$messaggio$header) ) echo "e-mail a $email1 inviata con successo!
    "
    ;
             else echo 
    "errore nell'invio dell'e-mail a $email1!
    "
    ;
         }
         if (
    $email2 != '') {
             if( @
    mail("$email2"$subject$messaggio$header) ) echo "e-mail a $email2 inviata con successo!
    "
    ;
             else echo 
    "errore nell'invio dell'e-mail a $email2!
    "
    ;
         }
         if (
    $email3 != '') {
             if( @
    mail("$email3"$subject$messaggio$header) ) echo "e-mail a $email3 inviata con successo!
    "
    ;
             else echo 
    "errore nell'invio dell'e-mail a $email3!
    "
    ;
         }
         if (
    $email4 != '') {
             if( @
    mail("$email4"$subject$messaggio$header) ) echo "e-mail a $email4 inviata con successo!
    "
    ;
             else echo 
    "errore nell'invio dell'e-mail a $email4!
    "
    ;
         }
         if (
    $email5 != '') {
             if( @
    mail("$email5"$subject$messaggio$header) ) echo "e-mail a $email5 inviata con successo!
    "
    ;
             else echo 
    "errore nell'invio dell'e-mail a $email5!
    "
    ;
         }     if (
    $email6 != '') {
             if( @
    mail("$email6"$subject$messaggio$header) ) echo "e-mail a $email6 inviata con successo!
    "
    ;
             else echo 
    "errore nell'invio dell'e-mail a $email6!
    "
    ;
         }  
    ?>
    controlli.js
    Codice PHP:
    function controllo(){ messaggio="";
       if (
    document.mail.email1.value.length==){
         
    messaggio=messaggio "email 1: campo obbligatorio\n";
     }
     if (
    document.mail.email1.value.length>){
         if ((
    document.mail.email1.value.indexOf("@")<0) || (document.mail.email1.value.indexOf(".")<0)){
             
    messaggio=messaggio "email 1: campo non valido\n";
         } }
     if (
    document.mail.email2.value.length==){
         
    messaggio=messaggio "email 2: campo obbligatorio\n";
     }
     if (
    document.mail.email2.value.length>){
         if ((
    document.mail.email2.value.indexOf("@")<0) || (document.mail.email2.value.indexOf(".")<0)){
             
    messaggio=messaggio "email 2: campo non valido\n";
         } } 
    if (
    document.mail.email3.value.length==){
         
    messaggio=messaggio "email 3: campo obbligatorio\n";
     }
     if (
    document.mail.email3.value.length>){
         if ((
    document.mail.email3.value.indexOf("@")<0) || (document.mail.email3.value.indexOf(".")<0)){
             
    messaggio=messaggio "email 3: campo non valido\n";
         } } 
    if (
    document.mail.email4.value.length>){
         if ((
    document.mail.email4.value.indexOf("@")<0) || (document.mail.email4.value.indexOf(".")<0)){
             
    messaggio=messaggio "email 4: campo non valido\n";
         } }
     if (
    document.mail.email5.value.length>){
         if ((
    document.mail.email5.value.indexOf("@")<0) || (document.mail.email5.value.indexOf(".")<0)){
             
    messaggio=messaggio "email 5: campo non valido\n";
         } } if (
    document.mail.email6.value.length>){
         if ((
    document.mail.email6.value.indexOf("@")<0) || (document.mail.email6.value.indexOf(".")<0)){
             
    messaggio=messaggio "email 6: campo non valido\n";
         } } 
    if(
    messaggio=="") {
        
    document.mail.action "inviaMail.php";
        
    document.mail.submit(); } else{ alert(messaggio); } } 
    grazie.

  2. #2
    Utente di HTML.it
    Registrato dal
    Feb 2005
    Messaggi
    356
    ma ti sei scordato di prendere i dati da $_POST? o lo script che hai postato non è completo?
    Jekkil

  3. #3
    no no.. quello che ho postato e' la copia/incolla del sorgente che ho io e che non mi funziona..
    cos'e' che manca? purtroppo non mastico php..

    a me avevano detto che era testato e funzionante ma evidentemente non e' cosi.

  4. #4
    Utente di HTML.it
    Registrato dal
    Feb 2005
    Messaggi
    356
    quando richiami uno script mediante un form html, i dati vengono passati in due modi, o post o get, così come specificato nel tag form, nel tuo caso post.

    Quindi i dati vengono messi nella variabile $_POST e da li poi devono essere ripresi nel tuo script, quindi come prima cosa devi fare qualcosa del genere;

    Codice PHP:
    <?php echo "Ciao [b]$mittente[/b]
    "


    $mittente $_POST['mittente'];
    $email1 $_POST['email1'];
    $email2 $_POST['email2'];
    $email3 $_POST['email3'];
    $email4 $_POST['email4'];
    $email5 $_POST['email5'];
    $email6 $_POST['email6'];

    //qui va il resto del tuo script
    in questo modo recuperi i dati passati tramite form...
    Jekkil

  5. #5
    la tua spiegazione non fa una virgola.. e la pratica conferma la teoria!

    sono commosso...

    per adesso ti offro un caffè virtuale \_/ç
    se un giorno potro' contraccambiare la tua cortesia, lo faro' volentieri.

  6. #6
    Utente di HTML.it
    Registrato dal
    Feb 2005
    Messaggi
    356
    grazie buon proseguimento!
    Jekkil

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.