Pagina 15 di 26 primaprima ... 5 13 14 15 16 17 25 ... ultimoultimo
Visualizzazione dei risultati da 141 a 150 su 255
  1. #141

    BCC con PHPMailer

    Salve,
    Ho letto la pillola molto interessante, vorrei aggiungere la mia esperienza a proposito sul BCC di PHPMailer.

    Piccola premessa, ho visto che sul sito di PHPmailer, esiste uno script apposito per la "semplice" form (PHPMailer-FE (Form2Email)) non ho approfondito la lettura, in quando ho usato la prima volta PHPmailer per conto di un cliente e dove il server non permette di usare la funzione mail() utilizzo al "volo" PHPmailer.

    Per avere il BCC con PHPmailer inizializzo due volte la classe, per fare un lavoro pulito dovrei usare la funzione clone() ma non essendo bravo a "manovrare" sulle classi ho trovato la scorciatoia.

    di seguito posto il codice del file che invia le due mail per una migliore comprensione:

    Codice PHP:
    <?php 
    ob_start
    ();
    session_start();
    if (!isset(
    $_SESSION['contatto']) || $_SESSION['contatto'] != 'contatto' )
    {
        
    session_unset();
        
    session_destroy();
        
    header('Location:' 'contattaci.php');
    }

    // connessione al db...
    include('include/db.inc.php');

    // connessione alle variabili che mi servono
    include('include/variabili.php');

    if (isset(
    $_POST['cnt']) && $_POST['cnt'] == $_SESSION['captcha'])
    {
        
    //controllo per verificare che tutti i campi abbiano un valore
        
    if ( empty($_POST['nome_ric']) || empty($_POST['cognome_ric']) || empty($_POST['email']) || empty($_POST['note']) )
        {
            if (empty(
    $_POST['nome_ric']))
            { 
                
    $_SESSION['messaggio_mail1'] = '<div id="mess_form" class="errore">Manca:il tuo Nome</div>';
            }

            if (empty(
    $_POST['cognome_ric']))
            { 
                
    $_SESSION['messaggio_mail2'] = '<div id="mess_form" class="errore">Manca:il tuo Cognome</div>';
            }

            if (empty(
    $_POST['email']))
            { 
                
    $_SESSION['messaggio_mail3'] = '<div id="mess_form" class="errore">Manca:la tua email</div>';
            }

            if (empty(
    $_POST['note']))
            { 
                
    $_SESSION['messaggio_mail4'] = '<div id="mess_form" class="errore">Manca:il testo del messaggio</div>';
            }

            if (empty(
    $_POST['cnt']))
            { 
                
    $_SESSION['messaggio_mail5'] = '<div id="mess_form" class="errore">Manca:il testo di controllo</div>';
            }

            if (
    $_POST['privacy'] == 'non_accetto')
            { 
                
    $_SESSION['messaggio_mail6'] = '<div id="mess_form" class="errore">Manca:il consenso per la Privacy.</div>';
            }

            if(isset(
    $_SERVER['HTTP_REFERER']))
            {
                
    header ('Location:' "{$_SERVER['HTTP_REFERER']}");
                return;
            }
        } 
        else 
        {
            
    // Serve per mettere trim() ad ogni valore passato dalla form! Urgleeeeee!!!
            
    foreach ($_POST as $Chiave => $Valore)
            {
                
    $_POST[$Chiave] =  trim($Valore);
            }

            
    // data completa dell'invio del messaggio...
            
    $timestamp time();

            
    $sql "INSERT into {$tab_richieste} SET
                nome_ric        ='
    {$_POST['nome_ric']}',
                cognome_ric        ='
    {$_POST['cognome_ric']}',
                email            ='
    {$_POST['email']}',
                note            ='
    {$_POST['note']}',
                data_ric        ='
    {$timestamp}'
                "
    ;
            
    $result mysql_query($sql$connessione) or die("Error #" mysql_errno() . ":" mysql_error());

            
    $msg "Salve, questo messaggio è generato in automatico.\n\n";
            
    $msg .= "Richiesta da {$_POST['nome_ric']}\n\n";
            
    $msg .= "---------- inizio informazioni personali ------------\n\n";
            
    $msg .= "Nome:\t\t{$_POST['nome_ric']}\n";
            
    $msg .= "Cognome:\t{$_POST['cognome_ric']}\n";
            
    $msg .= "Email:\t\t{$_POST['email']}\n\n";
            
    $msg .= "---------- fine informazioni personali ------------\n\n";
            
    $msg .= "---------- inizio nota ------------\n\n";
            
    $msg .= "{$_POST['note']}\n\n";
            
    $msg .= "---------- fine nota --------------\n\n";
            
    $msg .= "Appena possibile ti contatteremo o evaderemo la tua richiesta.\n";
            
    $msg .= "A presto!\n";
            
    $msg .= "$nome_cliente\n";


            
    // levo gli slash...
            
    $msg stripslashes($msg);

            
    /* fine dati che mi servono nelle form */

                    //  includo la classe di PHPmailer...
            
    include('phpmailer23/class.phpmailer.php');

            
    //  inizalizzo la classe...    
            
    $mail = new PHPMailer();
            
    // imposto  il metodo per inviare la mail, uso SMTP, sendmail non funziona...
            
    $mail->isSMTP(true);
            
    $mail->Mailer "smtp";    
            
    $mail->Host ="smtp.miodominio.it"// non uso l'autenticazione via SMTP
            // imposto da "chi" parte la mail
            
    $mail->From "noreply@$nome_cliente";    
            
    // imposto un nome per l'invio... altrimenti leggerò Root User 
            
    $mail->FromName "noreply@$nome_cliente";            
            
    // imposto il mittente della mail
            
    $mail->AddAddress("{$_POST['email']}");
            
    // metto anche il sender per evitare eventuali blocchi spam...
            
    $mail->Sender "noreply@$nome_cliente";
            
    // non voglio email con HTML
            
    $mail->IsHTML(false);
            
    // inserisco il Subject 
            
    $mail->Subject "Richiesta da {$_POST['nome_ric']}";
            
    // compongo il testo della mail...
            
    $mail->Body "$msg";

            if(!
    $mail->Send())
            {
                echo 
    "Message could not be sent. 

    "
    ;        // lo usiamo per il debug
                
    echo "Mailer Error: " $mail->ErrorInfo;    // come sopra...
                
    exit;
            }

            
    // modo veloce per avere il BCC
            //  inizalizzo la classe...    
            
    $mail = new PHPMailer();
            
    // imposto  il metodo per inviare la mail, uso SMTP, sendmail non funziona...
            
    $mail->isSMTP(true);
            
    $mail->Mailer "smtp";    
            
    $mail->Host ="smtp.miodominio.it"// non uso l'autenticazione via SMTP
            // imposto da "chi" parte la mail
            
    $mail->From "noreply@$nome_cliente";    
            
    // imposto un nome per l'invio... altrimenti leggerò Root User 
            
    $mail->FromName "noreply@$nome_cliente";            
            
    // imposto il mittente della mail
            
    $mail->AddAddress("$mail_resp_tec");    // modo ambigui per avere il BCC    
            // metto anche il sender per evitare eventuali blocchi spam...
            
    $mail->Sender "noreply@$nome_cliente";
            
    $mail->IsHTML(false);
            
    // inserisco il Subject 
            
    $mail->Subject "Richiesta da {$_POST['nome_ric']}";
            
    // compongo il testo della mail...
            
    $mail->Body "$msg";

            if(!
    $mail->Send())
            {
                echo 
    "Message could not be sent. 

    "
    ;        // lo usiamo per il debug
                
    echo "Mailer Error: " $mail->ErrorInfo;    // come sopra...
                
    exit;
            }


            
    //se è andato tutto a buon fine mostro un messaggio di conferma e faccio il redirect alla pagina di contatto
            
    $_SESSION['messaggio_mail'] = "<div id=\"mess_modifica\" class=\"successo\">Grazie per averci contattato.

                A breve riceverai copia della tua richiesta,  all'indirizzo e-mail che hai indicato nel modulo.
    </div>"
    ;
            
    header ('Location:' $_SERVER['HTTP_REFERER']);
            return;
        } 
    }
    else
    {
        
    $_SESSION['messaggio_mail'] = "<div id=\"mess_modifica\" class=\"errore\">Controlla i dati inseriti.</div>";
        if(isset(
    $_SERVER['HTTP_REFERER']) && $_SERVER['HTTP_REFERER'] != '')
        {
            
    header ('Location:' $_SERVER['HTTP_REFERER']);
        }
        else
        {
            
    header ('Location:' 'contattaci.php');
        }
    }
    ob_end_flush();
    ?>
    Non sono riuscito a trovare informazioni per far funzionare correttamente AddReplyTo e AddBCC, se qualcuno sa come fare sarebbe interessante da aggiungere.
    A presto!

  2. #142
    Utente di HTML.it
    Registrato dal
    Mar 2009
    Messaggi
    32
    Be intanto grazie mille per la guida.
    Una domanda.
    Meglio indicare un nome del server che conosciamo per invio della mail o usare quello impostato a default.
    Si può impostare out.alice.it giusto?

  3. #143
    Normalmente imposto il server di posta collegato al dominio in uso, non ho mai provato con un server di un provider.

    Per usare il server di uscita di alice, leggi sulla documentazione come puoi imposta l'uscita attraverso SMTP con autenticazione.

    Se non ricordo male, in questa "pillola" qualcuno scriveva che aveva utilizzato il server di uscita di gmail.com

    Ciao.

  4. #144
    Utente di HTML.it
    Registrato dal
    Mar 2009
    Messaggi
    32
    ma io se non lo imposto e lasci i setaggi di default con cosa li invia?
    Come il metodo mail() ?

  5. #145
    Ciao, Phpmailer può usare mail(), smpt, sendmail e qmail. ...Non per essere scortese, lettura della documentazione e ricerca su forum/google l'hai fatta?

  6. #146
    Utente di HTML.it
    Registrato dal
    Mar 2009
    Messaggi
    32
    caro lostin ho letto ho letto. Nella prima pagina di questo post mtx_maurizio spiega molto bene phpmailer e lo ringrazio per la guida.

    Se scrivo è perchè non capisco bene queste parole.

    Definizione del sistema di invio.

    Definizione del sistema di invio. Se non altrimenti specificato, PHPmailer eseguirà l’invio tramite la funzione mail di php (notate che a sua volta la funzione mail si appoggia a SMTP sui sistemi windows o a sendmail sui sistemi linux; si veda in proposito il file di configurazione di php). Con la proprietà Mailer potremo decidere di utilizzare ad esempio il sistema SMTP bypassando di fatto la funzione mail ed utilizzando un qualsiasi server SMTP al quale siamo autorizzati ad accedere.
    Cioè i casi sono due:
    1_se non specifico niente usa la funzione mail e quindi in windows usa smtp e in sistema linux usa sendmail
    2_ posso specificare un server smtp, cioè il server smtp del mio spazio hosting? ma smtp di windows è un'altra cosa?

    Scusa se non capisco o non so queste cose.
    Hoi cercato ma non ho trovato spiegato bene questo punto. se a qualcuno va' di spiegarmi lo rigrazio.

  7. #147
    Utente di HTML.it
    Registrato dal
    Mar 2009
    Messaggi
    32
    Originariamente inviato da lostinflower
    Normalmente imposto il server di posta collegato al dominio in uso
    Ecco appunto, di solito si fa così? cioè metto il server del dominio.

  8. #148
    Ciao, scusa il ritardo mi sono preso qualche giorno di vacanza.

    1) la cosa più semplice da fare è utilizzare sempre il servizio di "posta" collegato al dominio
    2) verifica del sistema e dei servizi che puoi avere sul server es: linux, PHP 5.XX, MySQL etc
    3) verifica il funzionamento di mail(), a seconda della versione di PHP potrebbe non funzionare, e alcuni provider bloccano l'uso di mail() per evitare il possibile uso da parte di "spammer"

    Normalmente, si usa PHPmailer per evitare problemi di invio al posto di mail()

    Nella guida avrai letto i riferimenti a "SMTP mailer win32" e "sendmail", sono i riferimenti ai mail server, cioè quei "programmi" - passami il termine - che ti permettono di inviare mail con vari protocolli.

    L'SMTP è un protocollo per inviare messaggi di posta elettronica, la confusione potrebbe essere dovuta al riferimento "SMTP mailer win32" che dovrebbe stare per "sistema generico di invio mail per Win32"

    Spero di essere stato chiaro in poche righe.

  9. #149
    Utente di HTML.it
    Registrato dal
    Mar 2009
    Messaggi
    32
    certo! grazie molto gentile.
    In pratica volevo un consiglio su come procedere.
    Ho capito che, dopo aver testato la funzione mail, uso le impostazioni per inviare con i server del mio spazio hosting.

    Altro dubbio:
    Io usavo mail() ma mi aggiungeva tutte / nei collegamenti per esempio. Mi cambiava il codice quindi e gli toglieva la funzionalità.
    QUesto è dovuto ad un errore suo? O sbagliavo qualcosa io? ho seguito varie guide per creare una mail html con php.
    Comunque mi dite che tutti usano PHPMailer, non lo sapevo, mi sono adeguato

  10. #150
    Probabilmente dovresti usare stripslashes()

    Anche se vedere il codice sarebbe meglio.

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.