-
[PHP] Invio mail
Salve a tutti, spero sia la sezione giusta... Ecco il mio problema:
ho creato uno script di invio mail in PHP ma sono due giorni che non riesco a capire perchè non funzioni. L'ho confrontato con un altro e non credo ci sia qualcosa di sbagliato nel mio. Vi incollo:
Codice HTML:
<center>
<form method="post" action="?ind=affiliazione_invio">
<table border="0" width="200">
<tr>
<td width="80">Destinatario</td>
<td width="120" align="right"><input class="i1" type="text" size="28" name="destinatario" readonly="readonly" value="crecker@hotmail.it"></td>
</tr>
<tr>
<td width="80">Nickname</td>
<td width="120" align="right"><input class="i1" type="text" size="28" name="nick"></td>
</tr>
<tr>
<td width="80">Email</td>
<td width="120" align="right"><input class="i1" type="text" size="28" name="mail"></td>
</tr>
<tr>
<td width="80">Oggetto</td>
<td width="120" align="right"><input class="i1" type="text" size="28" name="oggetto" readonly="readonly" value="Affiliazione"></td>
</tr>
<tr>
<td width="80">URL sito</td>
<td width="120" align="right"><input class="i1" type="text" size="28" name="url"></td>
</tr>
<tr>
<td width="80">Banner 88x31</td>
<td width="120" align="right"><input class="i1" type="text" size="28" name="banner"></td>
</tr>
<tr>
<td colspan="2" align="center"><textarea class="a1" rows="5" cols="42" name="messaggio">Messaggio</textarea></td>
</tr>
<tr>
<td colspan="2" align="center"><input class="button" type="submit" value="Invia"> <input class="button" type="reset" value="Cancella"></td>
</tr>
</table>
</form>
</center>
Codice PHP:
<?PHP
print '<div class="menu">«affiliazione»</div>';
if($_POST[nick] == NULL Or $_POST[mail] == NULL Or $_POST[url] == NULL Or $_POST[banner] == NULL Or $_POST[messaggio] == NULL Or $_POST[messaggio] == "Messaggio")
{
print '<font color="orange">Tutti i campi sono obbligatori!</font><br><a href="javascript:history.back()">Torna indietro</a>';
}
else
{
$destinatario = $_POST[destinatario];
$nickname = $_POST[nick];
$email = $_POST[mail];
$oggetto = $_POST[oggetto];
$url = $_POST[url];
$banner = $_POST[banner];
$messaggio = $_POST[messaggio];
$header = "From:<".$email.">";
$corpo = "Destinatario: ".$destinatario."\nNickname: ".$nickname."\nEmail: ".$email."\nOggetto: ".$oggetto."\nURL sito: ".$url."\nBanner 88x31: ".$banner."\n\nMessaggio:\n".$messaggio;
mail("$destinatario","$oggetto","$corpo","$header");
print '<font color="lightgreen">La tua richiesta è stata inviata con successo!</font><br><a href="javascript:history.back()">Torna indietro</a>';
print "<br><br><b>Destinatario:</b> ".$destinatario."<br><b>Nickname:</b> ".$nickname."<br><b>Email:</b> ".$email."<br><b>Oggetto:</b> ".$oggetto."<br><b>URL sito:</b> ".$url."<br><b>Banner 88x31:</b> ".$banner."<br><br><b>Messaggio:</b><br>".$messaggio;
}
?>
-
Codice PHP:
<?PHP
print '<div class="menu">«affiliazione»</div>';
if(empty($_POST['nick']) || empty($_POST['mail']) || empty($_POST['url']) || empty($_POST['banner']) || empty($_POST['messaggio']) || empty($_POST['messaggio']) || $_POST['messaggio']== "Messaggio")
{
print '<font color="orange">Tutti i campi sono obbligatori!</font><br><a href="javascript:history.back()">Torna indietro</a>';
}
else
{
$destinatario = $_POST['destinatario'];
$nickname = $_POST['nick'];
$email = $_POST['mail'];
$oggetto = $_POST['oggetto'];
$url = $_POST['url'];
$banner = $_POST['banner'];
$messaggio = $_POST['messaggio'];
$header = "From: ".$email." ";
$corpo = "Destinatario: ".$destinatario."\nNickname: ".$nickname."\nEmail: ".$email."\nOggetto: ".$oggetto."\nURL sito: ".$url."\nBanner 88x31: ".$banner."\n\nMessaggio:\n".$messaggio;
mail($destinatario,$oggetto,$corpo,$header);
print '<font color="lightgreen">La tua richiesta è stata inviata con successo!</font><br><a href="javascript:history.back()">Torna indietro</a>';
print "<br><br><b>Destinatario:</b> ".$destinatario."<br><b>Nickname:</b> ".$nickname."<br><b>Email:</b> ".$email."<br><b>Oggetto:</b> ".$oggetto."<br><b>URL sito:</b> ".$url."<br><b>Banner 88x31:</b> ".$banner."<br><br><b>Messaggio:</b><br>".$messaggio;
}
Prova ora....ma il codice che hai usato è molto sporco....
-
No, niente da fare....
Ho provato anche a mettere così:
Codice PHP:
mail($_POST['destinatario'],$oggetto,$corpo,$header);
Ma non va :\
Grazie comunque.
-
E' sbagliato l'header
Sostituisci
Codice PHP:
$header = "From:<".$email.">";
con
Codice PHP:
$header = "From: ".$email."\r\n";
Inoltre, alla fine dello script, controllerei anche il valore di ritorno della funzione mail
Codice PHP:
if(mail($destinatario,$oggetto,$corpo,$header))
echo "Ok";
else echo "Errore nell'invio";
-
A parte l'header che ho provveduto a correggere, ho provato lo script su un altro sito (sempre AlterVista) e funziona perfettamente mentre sul mio no!
Qualcuno ha qualche idea su quale potrebbe essere il problema? :(