+ Rispondi al messaggio
Visualizzazione dei risultati da 1 a 3 su 3

PHP mail send con form html

  1. #1
    motoboy non è in linea Scribacchino
    Ciao a tutti, fino ad oggi usavo un form.html + un semplice sendmail.php per la compilazione dei dati e la gestione della posta, ovvero solo spedire la posta

    vi posto tutto

    FORM.HTM

    <form method="post" action="send1.php" name="modulo">
    <p align="center"><font face="Franklin Gothic Medium"><font color="#000066">Nome e Cognome o Ragione Sociale:</font><font color="#000099">&nbsp;</font></font>
    <input type="text" name="nome" size="30">
    <br>
    <font color="#000066" face="Franklin Gothic Medium">Inserisci il tuo indirizzo di posta elettronica:</font>
    <input type="text" name="email" size="30"><br>
    <br>
    <font face="Franklin Gothic Medium" color="#000066">inserisci il commento o la 
    richiesta</font></p>
    <p align="center"><textarea rows="10" cols="30" name="messaggio">
    </textarea>
    <br>
    <input type="submit" value="Invia">
    <input type="reset" value="Cancella"></p>
    </form>
    
    poi qui c'è il SEND1.PHP

    
    <?PHP
    // Processo di recupero dei dati 
    $nome = $_POST['nome'];
    $email = $_POST['email'];
    $messaggio = nl2br($_POST['messaggio']);
    // Processo di controllo [Opzionale] 
    if ($nome == null)
    {
    print "Errore: &egrave; necessario compilare il campo 'Nome e cognome'";
    }
    else
    {
    if ($email == null)
    {
    print "Errore: &egrave; necessario compilare il campo 'Indirizzo e-mail'";
    }
    else
    {
    if ($messaggio == null)
    {
    print "Errore: &egrave; necessario compilare il campo 'Messaggio'";
    }
    else
    {
    // Processo di configurazione dell'email
    // [Destinatario, mittente, ecc] 
    $mail_to = "me@libero.it";
    $mail_from = $email;
    $mail_subject = "Contatto dal web da parte di $nome";
    $mail_body = "<p><font color=#000000>$messaggio</font></p>";
    // Intestazioni HTML
    $mail_in_html = "MIME-Version: 1.0\r\n";
    $mail_in_html .= "Content-type: text/html; charset=iso-8859-1\r\n";
    $mail_in_html .= "From: <$mail_from>";
    // Processo di invio 
    if (mail($mail_to, $mail_subject, $mail_body, $mail_in_html))
    {
    print "La ringraziamo per averci scritto! Cordiali Saluti";
    }
    else
    {
    print "Errore";
    
    }
    }
    }
    }
    ?>
    

    come mai, ho inserito FORM e SEND su diversi HOSTING a PAGAMENTO che gestisco e su HOSTING GRATUITI COME ALTERVISTA
    e non fungono?

    Vi ringrazio anticipatamente
    ℹ️ Leggi di più su motoboy ...

  2. #2
    L'avatar di Master85
    Master85 non è in linea Moderatore Globale Ultimo blog: Eclipse: Un IDE per PHP e Python
    Quote Originariamente inviato da motoboy Visualizza il messaggio
    come mai, ho inserito FORM e SEND su diversi HOSTING a PAGAMENTO che gestisco e su HOSTING GRATUITI COME ALTERVISTA
    e non fungono?
    Ciao motoboy,
    l'argomento relativo all'invio della posta elettronica è in stretta relazione proprio con la configurazione del server. Non è assolutamente un problema del PHP, dipende dal fornitore dei servizi di Hosting (in questo caso dovresti contattare loro).

    Inoltre dalle poche informazioni che hai fornito in merito al non-funzionamento del codice possiamo dirti veramente poco. Un semplice "e non fungono" non è sufficiente a capire il tipo di problema. Bisogna essere più precisi.

    Esistono diversi classi scritte in PHP che consentono di inviare la posta elettronica contattando un altro server, esterno a quello che ospita il nostro il sito. Qui trovi qualcosa: class.smtp.php - PHPMailer - PHP Classes e anche qui, ma se effettui diverse ricerche per la rete troverai tantissime altre soluzioni.

    Se hai bisogno di delucidazioni riguardo l'utilizzo di una delle soluzioni precedentemente indicate, torna pure a trovarci.


  3. #3
    motoboy non è in linea Scribacchino
    Tornando a noi, ho trovato in rete questo codice PHP
    ma naturalmente me lo sono modificato, inserendo delle variabili che recuperano i dati dalla FORM.HTML, dove ho inserito il POST a questo.
    Tutto funziona, però vorrei che compilando un campo chiamato CORPO, in questo caso $messaggio, mi spedisca anche quello che scrivo. Spero di essermi fatto capire. Come potrei procedere?

    sicuramente devo eliminare la parte :

    //define the body of the message.

    fino qui

    $message = ob_get_clean();


    <?php
    //define the receiver of the email
    $to = 'me@libero.it';
    // dichiaro il messaggio
    $messaggio = nl2br($_POST['messaggio']);
    //define the subject of the email
    $subject = 'Test HTML email';
    // definiamo la mail
    $email = $_POST['email']; 
    //create a boundary string. It must be unique 
    //so we use the MD5 algorithm to generate a random hash
    $random_hash = md5(date('r', time())); 
    //define the headers we want passed. Note that they are separated with \r\n
    $headers = "From: $email\r\nReply-To: $email";
    //add boundary string and mime type specification
    $headers .= "\r\nContent-Type: multipart/alternative; boundary=\"PHP-alt-".$random_hash."\""; 
    //define the body of the message.
    ob_start(); //Turn on output buffering
    ?>
    --PHP-alt-<?php echo $random_hash; ?>  
    Content-Type: text/plain; charset="iso-8859-1" 
    Content-Transfer-Encoding: 7bit
    
    Hello World!!! 
    This is simple text email message. 
    
    --PHP-alt-<?php echo $random_hash; ?>  
    Content-Type: text/html; charset="iso-8859-1" 
    Content-Transfer-Encoding: 7bit
    
    <h2>Hello World!</h2>
    <p>This is something with <b>HTML</b> formatting.</p> 
    
    --PHP-alt-<?php echo $random_hash; ?>--
    <?
    //copy current buffer contents into $message variable and delete current output buffer
    $message = ob_get_clean();
    //send the email
    $mail_sent = @mail( $to, $subject, $message, $headers );
    //if the message is sent successfully print "Mail sent". Otherwise print "Mail failed" 
    echo $mail_sent ? "Mail sent" : "Mail failed";
    ?>
    
    spero di avere maggiori delucidazioni, il resto mi starebbe anche bene

    Come vedete nell'headers sono già riuscito a sostituire il campo con $email

    grazie ancora
    ℹ️ Leggi di più su motoboy ...

+ Rispondi al messaggio

Potrebbero interessarti anche ...

  1. Form Mail html /php
    Da artemis79 nel forum PHP
    Risposte: 2
    Ultimo Post: 07-09-2010, 23:16
  2. Problema invio mail in html da form
    Da gabriele86 nel forum PHP
    Risposte: 1
    Ultimo Post: 16-02-2010, 10:29
  3. [HTML]E-mail
    Da fabrizio23 nel forum HTML, CSS e JavaScript
    Risposte: 6
    Ultimo Post: 29-03-2009, 19:19
  4. [HTML]Spedire e-mail tramite form
    Da fabrizio23 nel forum HTML, CSS e JavaScript
    Risposte: 2
    Ultimo Post: 09-12-2008, 17:04
  5. [HTML]Creare form e inviarli tramite email in html
    Da vt1980 nel forum HTML, CSS e JavaScript
    Risposte: 4
    Ultimo Post: 22-09-2008, 12:40