Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2006
    Messaggi
    346

    NewsLetter - Impostare contatore invio temporizzato

    Salve a tutti!
    Dal titolo spero sia chiaro di cosa necessito.
    inizio con illustrare lo script che ho creato per inviare la news in questione.
    Scelta la news che può essere in html oppure no, può aver eun allegato oppure no, scelgo i destinatari che possono essere:
    1- tutti (dui tutte le categorie)
    2- tutti quelli appartenenti ad una categoria specificata
    3- indirizzo scelto

    a questo punto mando alla funzione manda_mail i seguenti valori

    Codice PHP:
    <?php
    function manda_mail($des$oggetto$corpo$estensione$id) {
    /*
    $des=categoria di destinatari(in questo caso tutti)
    $oggetto=oggetto news
    $corpo=il corpo della news( html oppure testo semplice)
    $estensione= estensione dell'allegato (se presente sarà .pdf, .doc, .jpg,... sennò sarà vuota)
    $id= id della news selezionata
    */

    if ($des=="tutti") {
        
    //nella query seguente seleziono tutti gli indirizzi email
                
    $query mysql_query("SELECT distinct(email) FROM newsletter ORDER BY id");
                
    // estraggo nella variabile un indirizzo alla volta
                
    while ($data=mysql_fetch_array($query))    
                {             
                
    $indirizzo_email $data["email"];
                    
    $mess=$corpo;            
    /*Nella variabile $mess va inserito tutto il codice html che comporrà il corpo dell'email che si vuole inviare. Come nell'esempio si possono utilizzare                     anche i fogli di stile.*/ 
    $e=$indirizzo_email/*Inserire l'indirizzo email a cui si vuole spedire l'email*/ 
    $ogg=$oggetto/*Inserire l'oggetto dell'email da spedire*/ 
    $mittente="pippo@waldisney.it"/*Inserire l'indirizzo email che verrà visulaizzato come mittente dell'email*/ 
    $reply="pippo@waldisney.it"/*Inserire l'indirizzo email a cui verranno inviate le risposte all'email inviata*/ 
    $path="allegati/lettera_".$id."/allegato.".$estensione;
        
        if (
    $estensione!=""){        //utilizzo questa funzione per ricavarmi l'estensione del file
            
    $c_array explode("/",$path);
            
    // estraggo l'ultimo valore  --> estensione del file
            
    $allegato array_pop($c_array);
            
    $titolo="$allegato"/*Inserire il nome che si vuole dare all'allegato*/ 
            
    $f$path/*Inserire l'indirizzo del file che si vuole inviare come allegato*/ 
            
    $filetype="application/pdf"/*Inserire il formato MIME del file da allegare
            --> qui di seguito trovo la lista mime dalla quale selezionare l'impostazione corretta                            [url]http://www.asahi-net.or.jp/en/guide/cgi/mimetype.html[/url]  <--
                inserire il giusto mime a seconda del file da allegare*/ 
        
    }
                
    $intestazioni "From: $mittente\nReply-To: $reply\nX-Mailer: Sismail Web Email Interface\nMIME-version: 1.0\nContent-type: multipart/mixed;\n boundary=\"Message-Boundary\"\nContent-transfer-encoding: 7BIT\nX-attachments: $titolo"

                
    $body_top "--Message-Boundary\n"
                
    $body_top .= "Content-type: text/html; charset=iso-8859-1\n"
                
    $body_top .= "Content-transfer-encoding: 7BIT\n"
                
    $body_top .= "Content-description: Mail message body\n\n"
            
                
    $msg_body $body_top $mess
        if (
    $estensione!=""){
                
    $filez fopen($f"r"); 
                
    $contents fread($filezfilesize($f)); 
                
    $encoded_attach chunk_split(base64_encode($contents)); 
                
    fclose($filez); 
        }
                
    $msg_body .= "\n\n--Message-Boundary\n"
                
    $msg_body .= "Content-type: $filetype; name=\"$titolo\"\n"
                
    $msg_body .= "Content-Transfer-Encoding: BASE64\n"
                
    $msg_body .= "Content-disposition: attachment; filename=\"$titolo\"\n\n"
                
    $msg_body .= "$encoded_attach\n"
                
    $msg_body .= "--Message-Boundary--\n"
                
                
                if(
    mail($e,$ogg,$msg_body$intestazioni))    {
                    
    ?>    
                    <font color="#FF00FF" > <? echo "Spedito a ".$indirizzo_email."
    "
    ?></font>
                    <?    }  
                    else {
                    
    ?>
                    <font color="#FF0000"><?    echo "Errore nell'invio email a:".$indirizzo_email."
    "
    ?></font>
                <?  
               
                 }     
    // CHIUSURA DEL CICLO WHILE
            
    if ($estensione!=""){
              
    // echo "allegati/lettera_".$id."/allegato.".$estensione."
    ";
              // echo "
    allegati/lettera_".$id;
               unlink("
    allegati/lettera_".$id."/allegato.".$estensione);
               rmdir("
    allegati/lettera_".$id);
               
    $sql = "UPDATE letter SET estensione=' ' where id '" . $id ."' ";
               
    $result = mysql_query($sql) or die("Errore durante l'aggiornamento al database");
            }
        }        // CHIUSURA DELL' 
    IF
        
    }
    //chiudo la funzione manda mail

    ?>
    spero di aver commentato bene ogni singola parte.
    La domanda è:
    come suddivido gli indirizzi in modo che lo script non vada in time out??
    Ho pensato... li inserisco tuttiin un array... e poi contando l'array..ogni 50-100 indirizzi invio, ma ciò mi comporta una modifica sostanziale all'intero script...
    Chi sa consigliarmi un metodo per ovviare alla problematica di time-out??
    Grazie

  2. #2
    Utente di HTML.it
    Registrato dal
    Jul 2006
    Messaggi
    346

    modifico o lo faccio nuovo?

    dite che dovrei rifare lo script intero.... o adattarne uno gie fatto (se ne trovano di veramente carini in giro), e abbandonare questo
    Cioè.... per quello che serve a me...è anche troppo, l'unica cosa che devo cercare di risolvere è far sì che invii la news letter a tutti gli indirizzi senza andare ad intasarmi il server.
    Ho a possibilità di regolare tutte le impostazioni che voglio suil server, perchè alla fine è un servizio che utiliszzo qui all'interno dell'ufficio, e cmq...una volta che gira bene qui in ufficio non dovre aver grossi problemi a farlo girare anche sul server online.
    Come posso fare per inserire un contatore...in modo che temporizzzi gli invii...dopo ogni fetch...
    Volevo evitare di mettere indirizzi in ccb.
    Chi mi da una mano nel modificarlo??
    grazie a tutti colore che vorranno!

  3. #3
    Utente di HTML.it
    Registrato dal
    Jul 2006
    Messaggi
    346
    mhh... ok... e se invece di chiedervi come modificarlo...vi chiedessi un esempio su come temporizzare un invio multiplo di mail dove gli indirizzi sono presi da un db? avete un qualche esempio da potermi mostrare??

  4. #4
    Utente di HTML.it
    Registrato dal
    Jul 2006
    Messaggi
    346
    up...

  5. #5
    Utente di HTML.it
    Registrato dal
    Jul 2006
    Messaggi
    346
    Ok! per il momento lo lascio in sospeso, e mi sono scaricato phplist, molto funzionale, ma per ciò che necessito è anche troppo.
    Cmq se riesco a risolvere quel problema...torno di sicuro al mio bello script

    Sono tanto così dal sistemarlo...
    ACCETTO consigli e suggerimenti da tutti coloro che vorranno dare supporto

    Grazie

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.