Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    [PhpMailer] Script corretto, non invia email.

    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.
    Ideabile - Web Design
    Me on Flickr
    http://www.flickr.com/photos/m3kh

    Soit qui mal y pense...

  2. #2
    Utente bannato L'avatar di Ht28
    Registrato dal
    May 2006
    Messaggi
    1,544
    Prova a farne uno semplice così http://www.allwebfree.it/articolo_php_mail.php

  3. #3
    Grazie per il consiglio, prima che mi arrivasse la risposta ci stavo già lavorando.
    Comunque con la semplice funzione mail() tutto ok. Ciò però non mi solleva il morale, visto che phpmailer rimane comunque un ottimo e in futuro le sue funzioni mi tornerebbero utili.

    Comunque per ringrazziare il supporto dono il mio script finale.
    Codice PHP:
    <?
    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;

    $nome_c $_POST['nome_c'];
    $mail_c $_POST['li_c'];
    $oggetto_c $_POST['oggetto_c'];
    $messaggio_c $_POST['messaggio_c'];
    $ip $_SERVER['REMOTE_ADDR'];
    $from "From:" $nome_c "<".$mail_c."> \n";

    if (
    $nome_c && $mail_c && $oggetto_c && $messaggio_c){
    $pattern="^[^@ ]+@[^@ ]+\.[^@ \.]+$";
    if (!
    ereg($pattern,$mail_c)){
        
    $smarty->display('email.tpl');}
    else{

    $messaggio "Nome: " $nome_c "\n\n";
    $messaggio .= "Oggetto: " $oggetto_c "\n";
    $messaggio .= "Messaggio: " $messaggio_c "\n\n";
    $messaggio .= "IP:" $ip "\n";

    if(
    mail('xxx@xxx.xxx'$oggetto_c$messaggio$from)){
        
    $smarty->display('successo.tpl');
    }else{
        
    $smarty->display('error.tpl');
        }
    }
    }
    else{
        
    $smarty->display('corr.tpl');
    }
    ?>
    Ideabile - Web Design
    Me on Flickr
    http://www.flickr.com/photos/m3kh

    Soit qui mal y pense...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.