Visualizzazione risultati 1 fino 7 di 7

Discussione: Form Mail (problemi con la ricezione)

  1. #1
    popoworld non è connesso Utente giovane
    Data registrazione
    14-12-2006
    Messaggi
    32

    Predefinito Form Mail (problemi con la ricezione)

    Rieccomi alla carica per un altro "problemino" a me ignoto.

    Dopo 'enne' tentativi di riuscire ad inserire un Form-Mail nelle mie paginette senza riuscirvi, poiché non me ne funzionava neppure uno seppur ricopiando minuziosamente il codice già scritto ... Finalmente ne ho beccato uno (forse scritto per gli "ignoranti" come me) che funziona, ma... seppur, ripeto, funziona tutto, mi avvisa se non scrivo nei campi, mi avvisa se non può spedire la Mail e mi avvisa se la Mail l'ha spedita (e la spedisce pure dove gli ho detto io ... fantastico) quello che non capisco è perchè:
    1°) la Mail ricevuta ha come mittente "Apache"
    2°) Si legge quello che viene scritto nella textarea ma non vengono riportati in alcun luogo i campi con il "nome" e con la "Mail del mittente"

    Forse dovrei variare qualcosa ?
    ...se vi posto il codice magari è meglio, eh ?

    ...Questo è il pezzo di codice PHP ad inizio pagina:

    Codice PHP:
    <?php
    //raccogliamo le variabili inviate
    $nome=$_POST['nome'];
    $email=$_POST['email'];
    $messaggio=$_POST['messaggio'];
    $Submit=$_POST['Submit'];
    //controlliamo che sia stato inviato il form
    if($Submit=='Invia!'){
    //controlliamo che siano stati inseriti tutti i dati
    if(!empty($nome) and !empty($email) and !empty($messaggio)){
    //inviamo l'email
    $mail=mail("popoworld@altervista.org", "Messaggio dalla Guida", $messaggio);
    //controlliamo che la mail sia stata inviata correttamente
    if($mail){
    //messaggio in caso di successo
    $ok="Email inviata!<br /><br />";
    }
    else{
    //messaggio in caso di errore
    $errore="<b>Non è stato possibile inviare l'email, riprova.</b><br /><br />";
    }
    }
    else{
    //messaggio in caso di campi mancanti
    $errore="<b>Tutti i campi sono obbligatori!</b><br /><br />";
    }
    }
    ?>
    ...Questa è la stringa in PHP inserita subito prima del FORM :

    Codice PHP:
    <?php if(isset($errore)){ echo $errore; }else{ if(isset($ok)){ echo $ok; } } ?>
    ...E questa, finalmente, è la struttura del FORM :

    Codice HTML:
    <form name="mailform" method="post" action="<? $_SERVER['PHP_SELF'] ?>">
    <table class="mess" summary = "text">
    <tr> <td rowspan="4"> <textarea name="messaggio" cols="30" rows="6">Inserisci il tuo messaggio qui..</textarea> </td>
    <td> Nome </td> </tr>
    <tr> <td> <input class="mess" type="text" name="nome" /> </td> </tr>
    <tr> <td> Email </td> </tr>
    <tr> <td> <input class="mess" type="text" name="email" /> </td> </tr>
    <tr> 
    <td> <input type="reset" name="Submit2" value="Cancella" /> </td>
    <td> <input type="submit" name="Submit" value="Invia!" /> </td> 
    </tr>
    </table>
    </form>
    Grazie mille a chi avrà la pazienza di sbattersi per risolvere i problemi altrui.

  2. #2
    L'avatar di andreafallico
    andreafallico non è connesso Super Moderatore
    Data registrazione
    02-06-2009
    Messaggi
    1,981

    Predefinito

    Per aggiungere l'email del mittente e altri campi(additional headers) puoi leggere qui: Mail e qui: E-mail......

  3. #3
    popoworld non è connesso Utente giovane
    Data registrazione
    14-12-2006
    Messaggi
    32

    Predefinito

    Cioè, mica ho capito tanto bene...

    per leggere il nome del mittente io dovrei aggiungere al codice PHP questa stringa:
    Codice PHP:
    $header .= "From: Inviante <inviante@dominio.org>\n";
    ...Ma io mica conosco l'indirizzo di posta di chi mi dovrebbe spedire la Mail...

    ...Comunque nel FORM creato i campetti ci sono tutti e due: quello della Mail e quello del Nome ... solo non capisco perchè non mi appaiono nella Mail che mi arriva.

  4. #4
    L'avatar di andreafallico
    andreafallico non è connesso Super Moderatore
    Data registrazione
    02-06-2009
    Messaggi
    1,981

    Predefinito

    Devi scrivere così:
    Codice PHP:
    $header .= "From: ".$nome." <".$email.">\r\n";
    $mail=mail("popoworld@altervista.org", "Messaggio dalla Guida", $messaggio, $header);
    Ultima modifica di andreafallico : 05-11-2009 alle ore 19.51.34

  5. #5
    popoworld non è connesso Utente giovane
    Data registrazione
    14-12-2006
    Messaggi
    32

    Predefinito

    Citazione Originalmente inviato da andreafallico Visualizza messaggio
    Devi scrivere così:
    Codice PHP:
    $header .= "From: ".$nome." <".$email.">\r\n";
    $mail=mail("popoworld@altervista.org", "Messaggio dalla Guida", $messaggio, $header);
    Uhuhhh... "forse ci siamo" : ora come mittenete mi appare il nome che viene inserito nel campo NOME e, tra parentesi, se ci passo sopra col mouse, mi appare l'indirizzo di posta che viene scritto nel campo MAIL ...
    In teoria, volessi fare il contrario, dovrei sostituire la stringa che hai scritto tu con questa:
    Codice PHP:
    $header .= "From: ".$email." <".$nome.">\r\n";
    giusto ?

  6. #6
    L'avatar di andreafallico
    andreafallico non è connesso Super Moderatore
    Data registrazione
    02-06-2009
    Messaggi
    1,981

    Predefinito

    Non saprei, perchè ci sono delle specifiche(RFC 2822, RFC...) da rispettare leggi qui: mail.
    Comunque tu prova lo stesso.

  7. #7
    popoworld non è connesso Utente giovane
    Data registrazione
    14-12-2006
    Messaggi
    32

    Predefinito

    Oookey, ci proverò... in ogni caso va benissimo anche così, eh (sono uno che si accontenta) ... Grazie mille per l'aiuto.

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •