Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2014
    Messaggi
    17

    creare form per invio mail

    Buonasera a tutti,
    ho provato a cercare un po' sul forum ma purtroppo non ho trovato nulla che risolvesse il mio problema.
    Non so quasi nulla di programmazione però ho trovato un tutorial per poter creare una form per l'invio di mai dal mio sito.

    Vi allego il codice:

    In html ho scritto:
    <form action="invio.php" method="post" id="modulo">
    <table>
    <tr>
    <td>Il Suo indirizzo e-mail*</td>
    <td><label>
    <input name="mail" type="text" id="mail" />
    </label></td>
    </tr>
    <tr>
    <td>Oggetto*</td>
    <td><label>
    <input name="object" type="text" id="object" />
    </label></td>
    </tr>
    <tr>
    <td>Messaggio*</td>
    <td>
    <textarea name="body" cols="30" rows="5" id="body"></textarea>
    </td>
    </tr>
    <tr>
    <td><label></label>
    </td>
    <td><label>
    <input type="submit" name="submit" id="submit" value="Invia" /> <input type="reset" name="cancella" id="cancella" value="Ripristina" />
    </label></td>
    </tr>
    </table>
    </form>


    in php ho scritto:

    <?php

    if ((trim($_POST['object']) != "") && (trim($_POST['body']) != "")) {
    $to = " /n miamail@yahoo.it";
    $headers = "From: " . $_POST['mail'] . "\n";

    $subject = "soggetto..";


    $body = "Contenuto del modulo:\n\n";

    $body .= "Inviata da: " . trim(stripslashes($_POST["mail"])) . "\n";

    $body .= "Oggetto: " . trim(stripslashes($_POST["object"])) . "\n"; //oggetto del messaggio
    $body .= "testo: " . trim(stripslashes($_POST["body"])) . "\n"; //messaggio


    // invio mail
    mail($to, $subject, $body, $headers); // SE L'INOLTRO E' ANDATO A BUON FINE...

    echo "La mail è stata inviata con successo. Grazie per averci contattato";

    } else {// altrimenti
    echo "Deve compilare la form prima di inviare.";

    }

    ?>


    Appena provo mi dice che la mail è stata inviata con successo ma non ricevo nulla

    Potete aiutarmi? Grazie mille...

  2. #2
    puoi mettere il codice dentro ai tag <code></code>?
    cosi riesco a capire bene il codice

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2014
    Messaggi
    17
    Certo, scusami
    allora, in html ho scritto:
    codice HTML:
    <form action="invio.php" method="post" id="modulo">
    <table>
    <tr>
    <td>Il Suo indirizzo e-mail*</td>
    <td><label>
    <input name="mail" type="text" id="mail" />
    </label></td>
    </tr>
    <tr>
    <td>Oggetto*</td>
    <td><label>
    <input name="object" type="text" id="object" />
    </label></td>
    </tr>
    <tr>
    <td>Messaggio*</td>
    <td>
    <textarea name="body" cols="30" rows="5" id="body"></textarea>
    </td>
    </tr>
    <tr>
    <td><label></label>
    </td>
    <td><label>
    <input type="submit" name="submit" id="submit" value="Invia" /> <input type="reset" name="cancella" id="cancella" value="Ripristina" />
    </label></td>
    </tr>
    </table>
    </form>
    e in php ho scritto:

    codice HTML:
    <?php
    
    if ((trim($_POST['object']) != "") && (trim($_POST['body']) != "")) { 
    $to = " /n miamail@yahoo.it";
    $headers = "From: " . $_POST['mail'] . "\n";
    
    $subject = "soggetto..";
    
    
    $body = "Contenuto del modulo:\n\n";
    
    $body .= "Inviata da: " . trim(stripslashes($_POST["mail"])) . "\n"; 
    
    $body .= "Oggetto: " . trim(stripslashes($_POST["object"])) . "\n"; //oggetto del messaggio
    $body .= "testo: " . trim(stripslashes($_POST["body"])) . "\n"; //messaggio
    
    
    // invio mail
    mail($to, $subject, $body, $headers); // SE L'INOLTRO E' ANDATO A BUON FINE...
    
    echo "La mail è stata inviata con successo. Grazie per averci contattato";
    
    } else {// altrimenti
    echo "Deve compilare la form prima di inviare.";
    
    }
    
    ?>

  4. #4
    il problema risiede nel SMTP.
    questo form lo inserisci su un sito web online ?
    io ho effettuato la prova in locale e l'errore è il seguente :

    Warning: mail() [function.mail]: Failed to connect to mailserver at "localhost" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() in C:\xampp\htdocs\mail_html.it\index.php on line 32
    La mail è stata inviata con successo. Grazie per averci contattato

    Cio vuol dire che su Xampp non è previsto un protocollo SMTP per l' invio della mail.
    Ma se lo fai su un dominio online, basta modificare il file php.ini cambiando l'SMTP.


    Se questo script e in locale puoi utilizzare la classe PHP MAILER...


    Dimmi solo se e online o in locale

  5. #5
    Utente di HTML.it
    Registrato dal
    Jan 2014
    Messaggi
    17
    Intanto grazie per la veloce risposta.

    è in locale, sto facendo intanto le prove con mamp, non mi da nessun errore, mi dice mail inviata con successo ma non arriva nessuna mail..
    Di quello che hai scritto non ho capito molto, non me ne intendo di php :/ cosa sarebbe un protocollo SMTP?

    Grazie ancora

  6. #6
    l'SMTP è il protocollo di comunicazione della mail del tuo gestore ADSL. Se vuoi inviare una mail devi inserire l'SMTP del tuo operatore ADSL.
    che operatori hai ?

    All'interno del codice PHP scrivi :

    <?php
    phpinfo();
    if((trim($_POST['object'])!="")&&(trim($_POST['body'])!="")){
    $to
    =" /n miamail@yahoo.it";
    $headers
    ="From: ". $_POST['mail']."\n";

    $subject
    ="soggetto..";


    $body
    ="Contenuto del modulo:\n\n";

    $body
    .="Inviata da: ". trim(stripslashes($_POST["mail"]))."\n";

    $body
    .="Oggetto: ". trim(stripslashes($_POST["object"]))."\n";//oggetto del messaggio
    $body
    .="testo: ". trim(stripslashes($_POST["body"]))."\n";//messaggio


    // invio mail
    mail
    ($to, $subject, $body, $headers);// SE L'INOLTRO E' ANDATO A BUON FINE...

    echo
    "La mail è stata inviata con successo. Grazie per averci contattato";

    }else{// altrimenti
    echo
    "Deve compilare la form prima di inviare.";

    }

    ?>


    Vedrai una schermata personalizzata di php. Cerca Configuration File (php.ini) Path


  7. #7
    Utente di HTML.it
    Registrato dal
    Jan 2014
    Messaggi
    17
    Come operatore ho fastweb.. Intendi quello vero?

    Ok, ho trovato Configuration File (php.ini) Path.
    ​Ora come dovrei muovermi?

  8. #8
    scusami ho sbagliato.
    devi cercare Loaded Configuration File
    vicino avrai un percorso del tipo
    C:\xampp\php\php.ini;

    una volta preso il file devi cercare :

    [mail function]
    ; For Win32 only.
    ; http://php.net/smtp
    SMTP = smtp.net.vodafone.it --> Qui metterai out.fastweb.it
    ; http://php.net/smtp-port
    smtp_port = 25

    Non sono convinto al 100% che funzioni

  9. #9
    Utente di HTML.it
    Registrato dal
    Jan 2014
    Messaggi
    17
    Non mi fa aprire il file .ini.
    Non pensavo fosse una proceduta così "complicata" (per me ovviamente, che non mastico php.)
    Secondo te è l'unica soluzione possibile?

  10. #10
    ma in realta il file è php.ini ... e se non lo vedi e un file nascosto.

    L'alternativa sarebbe utilizzare la classe phpmailer che è molto piu semplice e potente.

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.