• User

    Problema funzione mail

    Ragazzi sto creando una pagina contatti.
    Ho creato lo script php e come prova o implemetato questo codice:

    
    <?php
    $nome = $_POST['nome'];
    $ragsoc = $_POST['rag_soc'];
    $email = $_POST['email'];
    $ntel = $_POST['ntel'];
    $msg = $_POST['msg'];
    
    
    mail("[email protected]", "mesaggio da " . $ragsoc, $msg , "From: ". $email);
    
    ?>
    
    

    A prescindere dal fatto che nn ci sia nessun controllo, quando l'email viene inviata termina direttamente tra la posta indesiderata.
    Qualcuno mi puo aiutare?
    Grazie. 😉


  • ModSenior

    Ciao LS05,

    i motivi possono essere tanti, può anche non dipendere dallo script.
    Supponendo che dipenda dallo script, metti nel From un indirizzo @dominio.ext dove dominio.ext è il dominio dal quale invii l'email.


  • Super User

    Spesso dipende anche dal server smtp che usi ( quale usi? ), e si, come dice il mod, anche dalla formattazione del campo from.


  • User

    Ciao avevo problemi simile anch'io le prime volte con la funzione mail, ti do la mia, come studio "anche se non e il massimo:)", ha anche il controllo dell'email
    comferma.php
    [php]
    $mittente = ltrim(rtrim(strip_tags(stripslashes($_POST['email']))));
    $mittente_ok = eregi("^[_a-z0-9+-]+(.[_a-z0-9+-]+)*@[a-z0-9-]+(.[a-z0-9-]+)+$",$mittente);
    if($mittente_ok == true)
    {
    //variabili globali provenienti dal form;

     $nome = ltrim(rtrim(strip_tags(stripslashes($_POST['nome']))));
     $cognome = ltrim(rtrim(strip_tags(stripslashes($_POST['cognome']))));
     $oggetto = ltrim(rtrim(strip_tags(stripslashes($_POST['oggetto']))));
     $testo= ltrim(rtrim(strip_tags(stripslashes($_POST['testo']))));
    
    
     $mail_to = "[email protected] "; //destinatario
     $body = "Richiesta da $cognome";
     $headers  = "Decodifica\r";
     $headers .= "Content-Type: text/html; charset=UTF-8";
     $headers .= "\r\nMessaggio inviato da:\r $cognome $nome\r E-mail: $mittente\r Oggetto: $oggetto\r Info: $testo";
    
     $sito = "Info Contatti [email protected]"; //mittente
     $mit = "From: <$sito>";
     if($nome=="" || $cognome=="" || $oggetto=="" || $testo=="")
     {
     echo "<p style=\"color:red; font-weight:bold; text-align:center;\">Errore nella compilazione dei dati. <br />Si prega di ricontrollarli ed inserire tutti i campi obbligatori.<br /><br />";
     echo "<a href=\"javascript:history.go(-1)\" title=\"Torna indietro\">Torna indietro.</a></p>";
     }
     else
     {
      if(mail($mail_to, $body, $headers, $mit))
      {
       echo "<p style=\"text-align:center;\"> E-mail inviata correttamente!!!<br />Grazie per avermi contattato, rispondero' appena possibile.</p>";
      }
      else
      {
    echo "<p>
      <p style=\"color:red; font-weight:bold;\">C&acute &egrave; stato un errore nell&acute invio dell&acute E-mail.<br />Si prega di riprovare. Grazie<br /><br />";
    echo "<a href=\"javascript:history.go(-1)\" title=\"go back\">Torna indietro</a></p>
     </p>";
      }
     }
    }
    
     elseif ($mittente_ok == false)
     {
      echo "<p style=\"color:red; font-weight:bold; text-align:center;\">Errore nella compilazione dell'E-mail mittente. <br /><br />";
      echo "<a href=\"javascript:history.go(-1)\" title=\"Torna indietro\">Torna indietro.</a></p>";
     }
    

    [/php]


  • User

    Ho corretto cosi:

    
    <?php
    $nome = $_POST['nome'];
    $ragsoc = $_POST['rag_soc'];
    $email = $_POST['email'];
    $ntel = $_POST['ntel'];
    $msg = $_POST['msg'];
    $intestazioni= "From:".$email."<".$email.">rn";
    $intestazioni .= "Reply-To:".$email."<".$email.">rn";
    $intestazioni .= "X-Mailer: PHP/" . phpversion();
    
    if(eregi("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$", $email))
    {
        mail("[email protected]", "Mesaggio da: " . $ragsoc, $msg , "From: ". $email, $intestazioni);
        header("location: selection.php?nome=luca"); 
    }else
    {
        echo("<script type=\"text/javascript\">alert(\"Indirizzo email errato!\"); history.go(-1)</script>"); 
    } 
    
    
    ?>
    
    

    Grazie per i suggerimenti raga 😉