+ Rispondi alla Discussione
Risultati da 1 a 12 di 12

Form contatti formattato alla ricezione

Ultimo Messaggio di Zambros il:
  1. #1
    User Newbie
    Data Registrazione
    Jun 2012
    Località
    Rapolano Terme
    Messaggi
    7

    Form contatti formattato alla ricezione

    Salve a tutti,
    Non so precisamente se questa è la categoria giusta per iniziare questa discussione ma adesso vi spiego il mio problema, così se ci fosse bisogno la sposterò immediatamente.
    Avrei bisogno di creare un form contatti su un sito web, dove è possibile che il visitatore possa introdurre il suo Nome,Cognome,Indirizzo,Data di nascita e tante altre informazioni.
    Il mio problema giunge quando il proprietario del sito riceve la mail, perché dovrebbe visualizzare tutte le info. non sotto forma di lista ma formattate come in una lettera.

    Grazie per l'attenzione.

  2. #2
    User L'avatar di Zambros
    Data Registrazione
    Jun 2012
    Località
    Vicenza/Verona
    Messaggi
    20
    Segui Zambros su Twitter Aggiungi Zambros su Google+ Aggiungi Zambros su Facebook
    Se usi PHP per l'invio della email ti consiglio PHPMailer, per i campi ti basta un semplice form php con i campi che desideri. Con l'azione post del pulsante troverai nelle variabili $_POST i dati che puoi riutilizzare come meglio credi.

  3. #3
    User Newbie
    Data Registrazione
    Jun 2012
    Località
    Rapolano Terme
    Messaggi
    7
    Ok grazie. Sto seguendo il tuo consiglio ed ho scaricato PHPMailer Version 2.0 dal sito sourceforge.net/projects/phpmailer/files/phpmailer%20for%20php4/v2.0.0/.

    Successivamente ho trovato una guida su come utilizzare PHPMailer: mrwebmaster.it/php/articoli/inviare-email-classe-phpmailer_631.html

    Alla Pagina 3 della guida,con il titolo "Inviare email in formato HTML con PHPMailer", suggerisce questo codice:


    <?require "phpmailer/class.phpmailer.php";$messaggio = new PHPmailer();$messaggio->IsSMTP();//settiamo su true il metodo che indica alla classe //il formato HTML$messaggio->IsHTML(true);$messaggio->Host='Host SMTP';//intestazioni e corpo dell'email$messaggio->From='info@mittente.it';$messaggio->AddAddress('info@destinatario.it');$messaggio->AddReplyTo('info@mittente.it'); $messaggio->Subject='Prova formato HTML';//inseriamo i tag HTML e i CSS per formattare il messaggio$messaggio->Body = '<html>
    <body>
    <head>
    <style>';$messaggio->Body .= '.up{background-color:#FF0000;color:#000000;font-size:12px}';$messaggio->Body .= '.down{color:#FF0000;text-align:left;font-size:15px}';$messaggio->Body .= '</style></head>';$messaggio->Body .= '<center><table><tr><td class="up">Ciao!!</td></tr>';$messaggio->Body .= '<tr><td class="down">ciao!!!</td></tr></table></center>';$messaggio->Body .= '</body></html>';//parte relativa all'invioif(!$messaggio->Send()){ echo $messaggio->ErrorInfo; }else{ echo 'Email inviata correttamente!';}$messaggio->SmtpClose();unset($messaggio);?>


    Adesso,quest'ultimo, deve essere scritto nella mia pagina index.html, dove metterò i text box opportuni per l'utilizzo del form contatti, oppure deve essere inserito in un file di configurazione di PHPMailer?

  4. #4
    User L'avatar di Zambros
    Data Registrazione
    Jun 2012
    Località
    Vicenza/Verona
    Messaggi
    20
    Segui Zambros su Twitter Aggiungi Zambros su Google+ Aggiungi Zambros su Facebook
    Intanto il file deve avere estensione .php altrimenti non eseguirà il codice server.
    Ecco un esempio veloce

    Pagina index.html
    Codice HTML:
    <form method="POST" action="mailManager.php" enctype="multipart/form-data">  
    <table>    
       <tr> 
         <td>Nome</td> 
         <td><input class="text" type="text" name="nome" size="20"></td>    
       </tr> 
       <tr> 
         <td>Cognome</td>     
         <td><input class="text" type="text" name="cognome" size="20"></td>    
       </tr>    
       <tr>      
         <td>Email</td>      
         <td><input class="text" type="text" name="email" size="20"></td>    
       </tr>    
       <tr>      
         <td>Messaggio</td>      
         <td><textarea rows="2" name="messaggio" cols="20"></textarea></td>    
        </tr>    
        <tr>      
          <td>File</td>     
          <td><input type="file" name="allegato"></td>    
        </tr>    
        <tr>      
           <td>&nbsp;</td>      
           <td><input type="submit" value="Invia" name="sub"><input type="reset" value="Annulla" name="res"></td>    
         </tr>   
    </table>  
    </form>
    pagina mailManager.php
    Codice PHP:
    <?php          
       
    require_once('class.phpmailer.php');          
       
    //upload dell'allegato          
          
    if (!move_uploaded_file($_FILES['allegato']['tmp_name'], $_FILES['allegato']['name'])) 
           {                    
                echo 
    "Errore nel caricamento dell'immagine";          
           }           
           else{              
                  
    //invio mail              
              
    $mail = new PHPMailer();                                                                                        
              
    $mail->SetFrom($_POST['email'],$_POST['nome']."".$_POST['cognome']);  //mittente      
              
    $mail->AddAddress("destinatario@dominio.com""Nome destinatario"); //destinatario             
              
    $mail->Subject    "Invio mail da form";     //oggetto         
              
    $mail->Body $_POST['messaggio'];     //corpo del messaggio         
              
    $mail->AddAttachment($_FILES['allegato']['name']);  //allegato appena caricato sul server         

             
    if(!$mail->Send())              
            {                    
                echo 
    "Messaggio non inviato! <p>";                   
                echo 
    "Errore: " $mail->ErrorInfo;                   
                exit;              
           }                   
             echo 
    "Message inviato con successo";           
         }  

    ?>



  5. #5
    User Newbie
    Data Registrazione
    Jun 2012
    Località
    Rapolano Terme
    Messaggi
    7
    Ho copiato il codice che mi hai postato e questi sono i file che ho creato:

    index.html

    Codice HTML:
    <html> <head> <title> Prova php mailer </php></title> </head> <body> <form method="POST" action="mailManager.php" enctype="multipart/form-data"> <table> <tr> <td>Nome</td> <td><input class="text" type="text" name="nome" size="20"></td> </tr> <tr> <td>Cognome</td> <td><input class="text" type="text" name="cognome" size="20"></td> </tr> <tr> <td>Email</td> <td><input class="text" type="text" name="email" size="20"></td> </tr> <tr> <td>Messaggio</td> <td><textarea rows="2" name="messaggio" cols="20"></textarea></td> </tr> <tr> <td>File</td> <td><input type="file" name="allegato"></td> </tr> <tr> <td>&nbsp;</td> <td><input type="submit" value="Invia" name="sub"><input type="reset" value="Annulla" name="res"></td> </tr> </table> </form> </body></html>
    mailerManager.php

    Codice PHP:
    <?php             require_once('phpmailer/class.phpmailer.php');             //upload dell'allegato                if (!move_uploaded_file($_FILES['allegato']['tmp_name'], $_FILES['allegato']['name']))        {                                echo "Errore nel caricamento dell'immagine";                 }                  else{                            //invio mail                        $mail = new PHPMailer();                                                                                                  $mail->SetFrom($_POST['email'],$_POST['nome']."".$_POST['cognome']);  //mittente                $mail->AddAddress("torna9125@gmail.com", "Marco Tornani"); //destinatario                       $mail->Subject    = "Invio mail da form";     //oggetto                   $mail->Body = $_POST['messaggio'];     //corpo del messaggio                   $mail->AddAttachment($_FILES['allegato']['name']);  //allegato appena caricato sul server         
             
    if(!$mail->Send())                      {                                echo "Messaggio non inviato! <p>";                               echo "Errore: " $mail->ErrorInfo;                               exit;                     }                            echo "Message inviato con successo";                }  
    ?>
    Ho caricato tutto sul mio server. Dopo aver compilato tutti i campi ed aver caricato l'immagine wedding_head_table_4.jpg, al momento che premo invio mi compare questo errore:


    Warning: move_uploaded_file(wedding_head_table_4.jpg) [function.move-uploaded-file]: failed to open stream: Permission denied inD:\Inetpub\webs\esseaserviceit\mailManager.php on line 4

    Warning: move_uploaded_file() [
    function.move-uploaded-file]: Unable to move 'C:\PHP\upload\php2348.tmp' to 'wedding_head_table_4.jpg' inD:\Inetpub\webs\esseaserviceit\mailManager.php on line 4
    Errore nel caricamento dell'immagine

    NE SAI QUALCOSA???





  6. #6
    User L'avatar di Zambros
    Data Registrazione
    Jun 2012
    Località
    Vicenza/Verona
    Messaggi
    20
    Segui Zambros su Twitter Aggiungi Zambros su Google+ Aggiungi Zambros su Facebook
    Prima di passare a oltre ti pongo la domanda:
    Serve che l'utente carichi un file?
    Se si è un problema di permessi che dovresti vedere sulla cartella temporanea C:\PHP\upload\php2348.tmp
    Se no ti basta togliere la parte di attach e togliere il componente input "file" su index.html.

    Ultima domanda intetpub mi sa tanto di IIS, per caso son solo prove locali o stai facendo andare PHP sotto server windows?

  7. #7
    User Newbie
    Data Registrazione
    Jun 2012
    Località
    Rapolano Terme
    Messaggi
    7
    Si,ho bisogno anche che carichi un immagine. Sto provando il tutto su un server windows... Quindi devo dare i permessi alla cartella upload. Provo un pò e poi ti faccio sapere. Grazie

  8. #8
    User Newbie
    Data Registrazione
    Jun 2012
    Località
    Rapolano Terme
    Messaggi
    7
    Adesso che ho cancellato,sia nel file.html che nel file.php,il codice che riguardava l'inserimento di un file, mi da il seguente errore: Fatal error: Call to undefined method PHPMailer::SetFrom() in D:\Inetpub\webs\esseaserviceit\mailManager.php on line 7

    Ti posto anche il codice del file mailManager.php attuale:

    Codice PHP:
    <?php          
       
    require_once('phpmailer/class.phpmailer.php');          
      
                        
                  
    //invio mail              
              
    $mail = new PHPMailer();                                                                                        
              
    $mail->SetFrom($_POST['email'],$_POST['nome']."".$_POST['cognome']);  //mittente      
              
    $mail->AddAddress("torna9125@gmail.com""Marco Tornani"); //destinatario             
              
    $mail->Subject    "Invio mail da form";     //oggetto         
              
    $mail->Body $_POST['messaggio'];     //corpo del messaggio         
              
    $mail->AddAttachment($_FILES['allegato']['name']);  //allegato appena caricato sul server         


             
    if(!$mail->Send())              
            {                    
                echo 
    "Messaggio non inviato! <p>";                   
                echo 
    "Errore: " $mail->ErrorInfo;                   
                exit;              
           }                   
             echo 
    "Message inviato con successo";           
         


    ?>

  9. #9
    User L'avatar di Zambros
    Data Registrazione
    Jun 2012
    Località
    Vicenza/Verona
    Messaggi
    20
    Segui Zambros su Twitter Aggiungi Zambros su Google+ Aggiungi Zambros su Facebook
    L'errore dice che la classe
    PHPMailer
    non contiene il metodo
    SetFrom()
    dovresti verificare se nel file
    phpmailer/class.phpmailer.php
    trovi tale metodo (che è di base di phpmailer, quindi c'è forse qualcos'altro.)
    Inoltre nel file php che mi hai incollato c'è ancora il codice riguardante l'allegato.

  10. #10
    User Newbie
    Data Registrazione
    Jun 2012
    Località
    Rapolano Terme
    Messaggi
    7
    Buongiorno,
    Grazie per il consiglio. Il mio file class.phpmailer.php non contiene il metodo SetFrom() ma il metodo var $From,dove ho messo il mio indirizzo. E' la solita cosa?
    Mi sono accorto anche che la variabile Host,che dovrebbe contenere l'host smtp è scritta così: var $Host = 'localhost'; Io non so cosa metterci avendo un account gmail.

    Questa è la parte di configurazione SMTP nel file class.phpmailer.php:

    Codice PHP:
    /////////////////////////////////////////////////  // PROPERTIES FOR SMTP  /////////////////////////////////////////////////
      /**   * Sets the SMTP hosts.  All hosts must be separated by a   * semicolon.  You can also specify a different port   * for each host by using this format: [hostname:port]   * (e.g. "smtp1.example.com:25;smtp2.example.com").   * Hosts will be tried in order.   * @var string   */  
    var $Host        'localhost';
      
    /**   * Sets the default SMTP server port.   * @var int   */  var $Port        25;
      
    /**   * Sets the SMTP HELO of the message (Default is $Hostname).   * @var string   */  var $Helo        '';
      
    /**   * Sets connection prefix.   * Options are "", "ssl" or "tls"   * @var string   */  var $SMTPSecure "";
      
    /**   * Sets SMTP authentication. Utilizes the Username and Password variables.   * @var bool   */  var $SMTPAuth     false;
      
    /**   * Sets SMTP username.   * @var string   */  var $Username     '';
      
    /**   * Sets SMTP password.   * @var string   */  var $Password     '';
      
    /**   * Sets the SMTP server timeout in seconds. This function will not   * work with the win32 version.   * @var int   */  var $Timeout      10;
      
    /**   * Sets SMTP class debugging on or off.   * @var bool   */  var $SMTPDebug    false;
      
    /**   * Prevents the SMTP connection from being closed after each mail   * sending.  If this is set to true then to close the connection   * requires an explicit call to SmtpClose().   * @var bool   */  var $SMTPKeepAlive false;
      
    /**   * Provides the ability to have the TO field process individual   * emails, instead of sending to entire TO addresses   * @var bool   */  var $SingleTo false

  11. #11
    User Newbie
    Data Registrazione
    Jun 2012
    Località
    Rapolano Terme
    Messaggi
    7
    Zambros! ho risolto il problema Fatal error: Call to undefined method PHPMailer::SetFrom() inD:\Inetpub\webs\esseaserviceit\mailManager.php on line 7, aggiornando la versione di PHPMailer alla 5.1 che ho trovato a questo link sourceforge.net/projects/phpmailer/files/phpmailer%20for%20php5_6/PHPMailer%20v5.1/. Purtroppo non ho risolto del tutto il mio problema perchè adesso mi da questo errore SMTP Error: Could not connect to SMTP host. SMTP Error: Could not connect to SMTP host. Puoi aiutarmi? Io vorrei che mi arrivino le informazioni compilate nel form, alla mia posta su gmail.

  12. #12
    User L'avatar di Zambros
    Data Registrazione
    Jun 2012
    Località
    Vicenza/Verona
    Messaggi
    20
    Segui Zambros su Twitter Aggiungi Zambros su Google+ Aggiungi Zambros su Facebook
    Ecco
    L'errore è semplicemente dato dal login che fai con SMTP dovresti mettere i valori giusti:

    Esempio GMAIL
    $Host= "smtp.gmail.com";
    $port = "465";
    $SMTPSecure = "ssl";
    $SMTPAuth = true;
    $Username = "TUAEMAIL@gmail.com";
    $Password= "TUAPASSWORD";

+ Rispondi alla Discussione

^ Permessi di Scrittura

  • Tu non puoi inviare nuove discussioni
  • Tu non puoi inviare risposte
  • Tu non puoi inviare allegati
  • Tu non puoi modificare i tuoi messaggi
  •  
  • Il codice BB è Attivato
  • Le faccine sono Attivato
  • Il codice [IMG] è Attivato
  • Il codice [VIDEO] è Attivato
  • Il codice HTML è Disattivato
  • Trackbacks Attivato
  • Pingback Attivato
  • Refback Attivato

SEO by vBSEO 3.6.0 PL2 ©2011, Crawlability, Inc.