PDA

View Full Version : [php]invio email automatica


$te
07-05-2008, 10:03
in un sito, la pag "contattaci" ha un form per contattarmi via email, ecco il codice:

<?php

//inclusione della configurazione
include_once("config.inc")
?>


<form method="post" action="?mail_proc.php">
<table border="0" cellpadding="0" cellspacing="0" width="100%" bgcolor="#FFFFFF">
<tr>
<td width="100%">
<table width="100%" cellspacing="0" border="1" bordercolor="#CCCCCC" cellpadding="0">


<tr bordercolor="#CCCCCC">
<td valign="top" width="30%" height="50">
<div align="center"><b><font color="#006699" face="Verdana, Arial, Helvetica, sans-serif" size="1"><br>
Email mittente:</font></b></div>
</td>
<td valign="top" width="70%" height="50">
<div align="center"><font face="Verdana, Arial, Helvetica, sans-serif" size="1">
<br>
<input type="text" name="mittente" size="32" style="background-color: #F2F2F2; border-style: solid; border-color: #cccccc">
</font></div>
</tr>
<tr bordercolor="#CCCCCC">
<td valign="top" width="30%" height="50">
<div align="center"><b><font color="#006699" face="Verdana, Arial, Helvetica, sans-serif" size="1"><br>
Oggetto: </font></b></div>
</td>
<td valign="top" width="70%" height="50">
<div align="center"><font face="Verdana, Arial, Helvetica, sans-serif" size="1">
<br>
<input type="text" name="oggetto" size="32" style="background-color: #F2F2F2; border-style: solid; border-color: #cccccc">
</font></div>
</tr>
<tr bordercolor="#CCCCCC">
<td valign="top" width="30%">
<div align="center"><b><font color="#006699" face="Verdana, Arial, Helvetica, sans-serif" size="1"><br>
Messaggio: </font></b></div>
</td>
<td valign="top" width="70%">
<div align="center"><font face="Verdana, Arial, Helvetica, sans-serif" size="1"><br>
<textarea cols="32" style="background-color: #F2F2F2; border-style: solid; border-color: #cccccc" rows="6" name="messaggio"></textarea>
<br>
<br>
</font></div>
</td>
</tr>
<tr bordercolor="#CCCCCC">
<td valign="top" width="30%">
<div align="center"><b><font color="#006699" face="Verdana, Arial, Helvetica, sans-serif" size="1"><br>
Firma: </font></b></div>
</td>
<td valign="top" width="70%">
<div align="center"><font face="Verdana, Arial, Helvetica, sans-serif" size="1"><br>
<input type="text" name="firma" size="32" style="background-color: #F2F2F2; border-style: solid; border-color: #cccccc">
<br>
<br>
</font></div>
</td>
</tr>
<?php
if($invia_ip=="si")
{
echo "<input type=\"hidden\" name=\"ip\" value=\"".$_SERVER['REMOTE_ADDR']."\">\n";
}

if($testo_ip=="si")
{
echo "<tr>";
echo "<td colspan=\"2\" valign=\"top\" bordercolor=\"#CCCCCC\" height=\"50\">\n";
echo "<font face=\"Verdana, Arial, Helvetica, sans-serif\" size=\"1\"><br>\n";
echo "<center><font color=\"red\">Nota: </font> Il tuo Indirizzo IP &egrave; ".$_SERVER['REMOTE_ADDR'].". Sar&agrave; registrato per sicurezza e sar&agrave; segnalato alle autorit&agrave; competenti in caso di necessit&agrave.</center>\n";
echo "</font></div>\n";
echo "</td>\n";
echo "</tr>";
}
?>
<tr>
<td colspan="2" valign="top" bordercolor="#CCCCCC" height="50">
<div align="center">
<font face="Verdana, Arial, Helvetica, sans-serif" size="1"><br>
<input type="submit" name="invia" value="Invia">
&nbsp;
<input type="reset" value="Cancella" name="reset">
</font></div>
</td>
</tr>
</table>
</table>
</form>

il file config.in:

<?php

// Indirizzi dei destinatari. //Descrizione dei destinatari
// Potete aggiungerne a piacimento //Per evitare errori di visualizzazione
//evitare di mettere virgole nei nomi

$destinatario[0] = "[email protected]"; $descrizione[0] = "STEP";

// Possibilità inserire altri destinatari da parte dell'utente (si|no)

$destinatario_pers = "no";


// Inviare l'indirizzo IP insieme alla mail? (si|no)

$invia_ip = "si";


// Visualizzare un testo di avviso del fatto che l'ip sar?registrato? (si|no)

$testo_ip = "no";

function nbsp($input)
{
$output = str_replace(" ", "&nbsp", $input);
return $output;
}
?>

il file mail_proc.php:

<?php

include("config.inc");

?>

<?php
// Controllo
$destinatario[0] = "[email protected]";

if($invia=="Invia" and isset($destinatario[0]))
{
echo "<div style=\"border-left-color: Black; border-left-style: solid; border-left-width: 1px; border-right-color: Black; border-right-style: solid; border-right-width: 1px; border-top-color: Black; border-top-style: solid; border-top-width: 1px; border-bottom-color: Black; border-bottom-style: solid; border-bottom-width: 1px; background-color: #E7E7E7; padding: 3px; width: 95%;\">
";
echo "<b>Risultato spedizione:</b><br>";
// Creazione del corpo della mail
if(isset($ip))
{
$corpo = $messaggio."\n\n".$firma."\n\nL'indirizzo IP del mittente: ".$ip."\n";
}
else
{
$corpo = $messaggio."\n\n".$firma."\n ";
}
// Headers
$headers = "X-Mailer: DT_formmail\r\n";
if(isset($mittente))
{
$headers .= "From: ".$mittente."\r\n";
}
// Ciclo per l'invio ai destinatari predefiniti
// Creazione dell'indice per il ciclo
$i = 0;
// Ciclo
if(isset($destinatario[0]))
{
$esploso = explode(",","STEP1");
$invio = mail($esploso[0], $oggetto, $corpo, $headers);
if($invio)
{
echo "Messaggio inviato correttamente a \"".$esploso[0]."\"<br>\n";
}
else
{
echo "Errore nell'invio del messaggio a \"".$esploso[0]."\"<br>\n";
}
// Incremento dell'indice

}
// Invio a destinatario "altro"
if(isset($altro) and isset($dest))
{
if($altro!="")
{
$invio = mail($altro, $oggetto, $corpo, $headers);
if($invio)
{
echo "Messaggio inviato correttamente a \"".$altro."\"<br>\n";
}
else
{
echo "Errore nell'invio del messaggio a \"".$altro."\"<br>\n";
}
}
}
elseif(!isset($destinatario[0]))
{
echo "Errore nell'invio del messaggio alla casella specificata in \"Altro\". Non &egrave possibile spedire una mail ad una casella personalizzata se non si spedisce anche ad una di quelle predefinite.";
}
}
elseif($invia!="Invia")
{
echo "Errore. Il form non &egrave; stato inviato correttamente";
}
elseif(!isset($destinatario[0]))
{
echo "Errore. Non ?tato selezionato alcun destinatario.";
}
else
{
echo "Errore non definito";
}
echo "</div>";
echo "<br><br>";
include("mail.php");
?>



Quando avevo messo in linea la pag, funzionava alla perfezione. Oggi ho provato a scrivermi, ma non funziona!! e non ho toccato nulla!!
sapete dirmi come mai?
la pag in questione é: www.step1.altervista.org

grazie,ciao

$te
07-05-2008, 15:45
nessuna idea nemmeno d primo acchito? xké il mio grande problema é che prima funzionava:P

ianaz
07-05-2008, 15:58
Credo proprio che nessuno abbia voglia di guardare tutto quel codice, senza offesa ;)

$te
07-05-2008, 16:03
hehe...hai ragione:P lo immaginavo infatti...allora io direi ke il problema deve essere qui:

?php
// Controllo
$destinatario[0] = "[email protected]";

if($invia=="Invia" and isset($destinatario[0]))
{
echo "<div.....ecc.">
";
echo "<b>Risultato spedizione:</b><br>";
// Creazione del corpo della mail
if(isset($ip))
{
$corpo = $messaggio."\n\n".$firma."\n\nL'indirizzo IP del mittente: ".$ip."\n";
}
else
{
$corpo = $messaggio."\n\n".$firma."\n ";
}
// Headers
$headers = "X-Mailer: DT_formmail\r\n";
if(isset($mittente))
{
$headers .= "From: ".$mittente."\r\n";
}
// Ciclo per l'invio ai destinatari predefiniti
// Creazione dell'indice per il ciclo
$i = 0;
// Ciclo
if(isset($destinatario[0]))
{
$esploso = explode(",","STEP1");
$invio = mail($esploso[0], $oggetto, $corpo, $headers);
if($invio)
{
echo "Messaggio inviato correttamente a \"".$esploso[0]."\"<br>\n";
}
else
{
echo "Errore nell'invio del messaggio a \"".$esploso[0]."\"<br>\n";
}
}
// Invio a destinatario "altro"
if(isset($altro) and isset($dest))
{
if($altro!="")
{
$invio = mail($altro, $oggetto, $corpo, $headers);
if($invio)
{
echo "Messaggio inviato correttamente a \"".$altro."\"<br>\n";
}
else
{
echo "Errore nell'invio del messaggio a \"".$altro."\"<br>\n";
}
}
}
elseif(!isset($destinatario[0]))
{
echo "Errore nell'invio del messaggio alla casella specificata.";
}
}
elseif($invia!="Invia")
{
echo "Errore. Il form non &egrave; stato inviato correttamente";
}
elseif(!isset($destinatario[0]))
{
echo "Errore. Non ?tato selezionato alcun destinatario.";
}
else
{
echo "Errore non definito";
}
echo "</div>";
echo "<br><br>";
include("mail.php");
?>

texerasmo
07-05-2008, 16:07
prova a fare un po di debug

per vedere se hai dei pb con il sendmail

fai un test

<?php
$to = "[email protected]";
$subject = "Hi!";
$body = "Hi,\n\nHow are you?";
if (mail($to, $subject, $body)) {
echo("<p>Message successfully sent!</p>");
} else {
echo("<p>Message delivery failed...</p>");
}
?>


se l'email arriva è un pb di condice php.

Devi fare un po di debug :)

vedi se tutti i parmatri arrivano
se l'indirizzo emial è corretto
eccc

$te
07-05-2008, 16:15
l'email arriva!!!
quindi devo guardare il codice...xo non ci trovo niente di sbagliato:P:muro:

ndakota
07-05-2008, 17:11
mettilo tra tag code.. così è impossibile (aver voglia di) leggerlo..