- Home
- Categorie
- Coding e Sistemistica
- PHP
- Problema funzione mail
-
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.
-
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.
-
Spesso dipende anche dal server smtp che usi ( quale usi? ), e si, come dice il mod, anche dalla formattazione del campo from.
-
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´ è stato un errore nell´ invio dell´ 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]
-
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