Ciao ragazzi.
Sono sempre qui inceppato in qualche problema. Questa volta non riesco a trovare il motivo del mal funzionamento.
Il codice che inserisco qui sotto va a buonfine ma l'email non arriva.
Codice PHP:
<?
//Questo è smarty, il template engine che servirà per l'impaginazione.
require '../libs/Smarty.class.php';
$smarty = new Smarty;
$smarty->template_dir = '../templates/';
$smarty->compile_dir = '../templates_c/';
$smarty->config_dir = '../configs/';
$smarty->chace_dir = '../cache/';
$smarty->compile_check = true;
//Qui ci sono le variabili prese dal form
$nome_c = $_POST['nome_c'];
$mail_c = "From:" . $_POST['li_c'];
$oggetto_c = $_POST['oggetto_c'];
$messaggio_c = $_POST['messaggio_c'];
$ip=$_SERVER['REMOTE_ADDR'];
//Questo controlla che i campi obbligatori siano compilati
if ($nome_c && $mail_c && $oggetto_c && $messaggio_c){
//Questo controlla che l'email sia scritta correttamente, in caso contrario lo porta ad'una pagina d'errore.
$pattern="^[^@ ]+@[^@ ]+\.[^@ \.]+$";
if (!ereg($pattern,$mail_c)){
$smarty->display('email.tpl');}
else{
//Qui c'è il testo del messaggio
$messaggio = "Nome: " . $nome_c . "\n";
$messaggio .= "Oggetto: " . $oggetto_c . "\n\n";
$messaggio .= "Messaggio: " . $messaggio_c . "\n\n";
$messaggio .= "IP:" . $ip . "\n\n";
//Qui ci sono le prime configurazioni della classe PhpMailer
require 'class.phpmailer.php';
$mail = new PHPMailer();
$mail->Mailer = "sendmail";
$mail->Sendmail = "/usr/sbin/sendmail -t -i";
//Qui sotto ho gli estremi dell'email
$mail->AddAddress("xxx@xxx.xx");
$mail->From = $mail_c;
$mail->FromName = $nome_c;
$mail->Subject = $oggetto_c;
$mail->Body = $messaggio;
//Se va a buon fine stampa il successo
if($mail->Send()){
$smarty->display('successo.tpl');
}
//In caso contrario l'errore
else{
$smarty->display('error.tpl');
}
}
}
//Questo se alcuni campi sono rimasti vuoti
else{
$smarty->display('corr.tpl');
}
?>
Non riesco a capire dovè l'errore, comunque sia non arriva nessuna email e le pagine vengono stampate correttamente.
Grazie ancora.