Visualizzazione dei risultati da 1 a 6 su 6

Discussione: Invio email php non va

  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2017
    Messaggi
    3

    Invio email php non va

    Salve a tutti,
    da ore sto provando ogni tipo di soluzione ma non riesco in alcun modo ad inviare email con php: non ricevo errori, semplicemente le email non arrivano. Ho letto gli altri messaggi su questo forum, ho aggiunto il campo header (come giustamente suggerivano in molti), ma comunque niente.
    L'indirizzo della pagina è questo:
    http://www.uciimtorino.it/betaform/

    Copiaincollo qua sotto il codice.

    HTML:

    <!DOCTYPE html>
    <html>
    <head>
    <title>Contact form using Bootstrap 3.3.4</title>
    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
    <meta charset="utf-8">
    <meta http-equiv="content-type" content="text/html; charset=utf-8" />
    <link rel="stylesheet" href="css/bootstrap.min.css">
    <link rel="stylesheet" href="css/animate.css">
    </head>
    <body style="background-color: #7e7e7e">
    <div class="row">
    <div class="col-sm-6 col-sm-offset-3">
    <div class="well" style="margin-top: 10%;">
    <h3>Send me a message</h3>
    <form role="form" id="contactForm" data-toggle="validator" class="shake">
    <div class="row">
    <div class="form-group col-sm-6">
    <label for="name" class="h4">Name</label>
    <input type="text" class="form-control" id="name" placeholder="Enter name" required data-error="NEW ERROR MESSAGE">
    <div class="help-block with-errors"></div>
    </div>
    <div class="form-group col-sm-6">
    <label for="email" class="h4">Email</label>
    <input type="email" class="form-control" id="email" placeholder="Enter email" required>
    <div class="help-block with-errors"></div>
    </div>
    </div>
    <div class="form-group">
    <label for="message" class="h4 ">Message</label>
    <textarea id="message" class="form-control" rows="5" placeholder="Enter your message" required></textarea>
    <div class="help-block with-errors"></div>
    </div>
    <button type="submit" id="form-submit" class="btn btn-success btn-lg pull-right ">Submit</button>
    <div id="msgSubmit" class="h3 text-center hidden"></div>
    <div class="clearfix"></div>
    </form>
    </div>
    </div>
    </div>
    </body>
    <script type="text/javascript" src="js/jquery-1.11.2.min.js"></script>
    <script type="text/javascript" src="js/validator.min.js"></script>
    <script type="text/javascript" src="js/form-scripts.js"></script>
    </html>

    ***

    PHP:

    <?php
    $errorMSG = "";
    // NAME
    if (empty($_POST["name"])) {
    $errorMSG = "Name is required ";
    } else {
    $name = $_POST["name"];
    }
    // EMAIL
    if (empty($_POST["email"])) {
    $errorMSG .= "Email is required ";
    } else {
    $email = $_POST["email"];
    }
    // MESSAGE
    if (empty($_POST["message"])) {
    $errorMSG .= "Message is required ";
    } else {
    $message = $_POST["message"];
    }
    $EmailTo = "mio.indirizzo@gmail.com";
    $Subject = "New Message Received";
    // prepare email body text
    $Body = "";
    $Body .= "Name: ";
    $Body .= $name;
    $Body .= "\n";
    $Body .= "Email: ";
    $Body .= $email;
    $Body .= "\n";
    $Body .= "Message: ";
    $Body .= $message;
    $Body .= "\n";
    // send email
    $success = mail($EmailTo, $Subject, $Body, "From:".$email);
    // redirect to success page
    if ($success && $errorMSG == ""){
    echo "success";
    }else{
    if($errorMSG == ""){
    echo "Something went wrong";
    } else {
    echo $errorMSG;
    }
    }
    ?>

    ***

    (nel sorgente, l'indirizzo del destinatario è corretto...)

    In caso siano utili, ecco in breve gli altri file che vengono linkati:
    http://www.uciimtorino.it/betaform/css/animate.css
    http://www.uciimtorino.it/betaform/c...tstrap.min.css
    http://www.uciimtorino.it/betaform/js/form-scripts.js
    http://www.uciimtorino.it/betaform/j...-1.11.2.min.js
    http://www.uciimtorino.it/betaform/js/validator.min.js
    (se ritenete che servano, potete visualizzarli a parte...)

    Il form mi dice che il messaggio è stato inviato ("Messagge submitted")
    Che cosa sto sbagliando?
    Grazie mille a tutti quelli che mi daranno una mano!

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,503
    Benvenuto.
    Nel codice che hai scritto non ci sono gli header aggintivi che dici di aver messo.

    Assicurati che nella configurazione SMTP tu abbia impostato i dati giusti (nome utente, password, porta...) se non stai usando quelli di default dell'hosting su cui hai il sito.
    Ultima modifica di Alhazred; 23-01-2017 a 11:49

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2017
    Messaggi
    3
    L'header col mittente l'avrei inserito direttamente nella funzione (senza creare la variabile header):

    $success = mail($EmailTo, $Subject, $Body, "From:".$email);

    ...dici che può essere quello il problema? Meglio dichiarare una variabile $Header a parte?

    Piuttosto, in effetti non ho impostato da nessuna parte la configurazione SMTP... è una cosa che in effetti mi manca completamente (quindi potremmo avere trovato il problema). Come si fa?
    Grazie!

  4. #4
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,503
    Di header aggiuntivi ce ne sarebbero anche altri importanti da aggiungere: Reply-To ed X-Mailer, che i filtri antispam tengono molto in considerazione.

    Per la configurazione SMTP dovresti chiedere all'assistenza tecnica dell'hosting su cui hai il sito.
    Chiedi se è già tutto configurato sul server, oppure se lo devi fare tu.

  5. #5
    Utente di HTML.it
    Registrato dal
    Jan 2017
    Messaggi
    3
    Intanto ho modificato il php, ma non è cambiato nulla, purtroppo.

    <?php
    $errorMSG = "";
    // NAME
    if (empty($_POST["name"])) {
    $errorMSG = "Name is required ";
    } else {
    $name = $_POST["name"];
    }
    // EMAIL
    if (empty($_POST["email"])) {
    $errorMSG .= "Email is required ";
    } else {
    $email = $_POST["email"];
    }
    // MESSAGE
    if (empty($_POST["message"])) {
    $errorMSG .= "Message is required ";
    } else {
    $message = $_POST["message"];
    }
    $EmailTo = "indirizzo@gmail.com";
    $Subject = "New Message Received";
    $Headers = "From:".$email . "\r\n" .
    "Reply-To".$email . "\r\n" .
    "X-Mailer: PHP/" . phpversion();


    // prepare email body text
    $Body = "";
    $Body .= "Name: ";
    $Body .= $name;
    $Body .= "\n";
    $Body .= "Email: ";
    $Body .= $email;
    $Body .= "\n";
    $Body .= "Message: ";
    $Body .= $message;
    $Body .= "\n";
    // send email
    $success = mail($EmailTo, $Subject, $Body, $Headers);
    // redirect to success page
    if ($success && $errorMSG == ""){
    echo "success";
    }else{
    if($errorMSG == ""){
    echo "Something went wrong ";
    } else {
    echo $errorMSG;
    }
    }
    ?>

    ***

    Sulla Knowledge Base del server, ci sarebbero scritti i parametri da impostare:

    host: localhost
    porta: 25
    sicurezza: no
    username: email@dominio.tld
    password: la password dell'indirizzo email email@dominio.tld

    ...ma dove vanno impostati? Avete qualche idea? Devo creare una casella email sul mio dominio?

  6. #6
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,503
    Penso ti convenga usare PHPMailer, così puoi specificare i parametri di connessione.

    Esempio d'uso

Tag per questa discussione

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.