Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2009
    Messaggi
    181

    Problema eseczuione cli

    Salve,
    non capisco dove sbaglio:in pratica voglio che il server mandi una serie di email in background dopo l'invio del form.
    Da quanto vedo non riesco nemmeno a cancellaree il file temporaneo con le informazioni.
    Questa è la struttura:
    codice:
    Main
        Swift
        config
            tmpinfo.txt
        admin
            sendmail.php
    Già che ci sono esiste un metodo per visualizzare gli errori del cli?
    Questo è codice:
    Codice PHP:
    <?php
    if(isset($_POST['sendmail'])){
            if(
    $_POST['shtb']=='no'){
                
                
    $c=count($_POST['semail']);
                
    $c2=count($mailist);
                for(
    $i=0;$i<$c;$i++){
                    if(
    is_int($_POST['semail'][$i]))
                        
    $mailist[$i]=$mailist[$_POST['semail'][$i]];
                }
                for(
    $i=$c;$i<$c2;$i++)
                    unset(
    $mailist[$i]);
            }
            
    $bod=normalize_str(rtrim(preg_replace('/\s+/',' ',$_POST['message'])));
            
    $footer=normalize_str(rtrim(preg_replace('/\s+/',' ',$_POST['footerfn'])));
            
    $manip="<html><body>".$bod.'<div id="footer" style="display:block;clear:both;width:100%;position:relative;margin:10px 0;border-top:1px solid #000">'.$footer;
            
    file_put_contents('../config/tmpinfo.txt',$manip."\n".serialize($mailist)."\n".$_POST['sender']."\n".$_POST['object']."\n".$var[11]."\n".$var[12]."\n".$var[13]."\n".$var[14]."\n".$var[15]);
            
    chmod('../config/tmpinfo.txt',0644);
            
    $ex="php -f ".rtrim(dirname(__FILE__))."/sendmail.php";
            
            if (
    substr(php_uname(), 07) == "Windows")
                
    pclose(popen("start /B "$ex"r")); 
            else 
                
    shell_exec($ex " > /dev/null &");  
    }
    ?>
    e questo è lo script:
    Codice PHP:
    <?php
            
    require_once dirname(dirname(__FILE__)).'/Swift/lib/swift_required.php';
            
    $readfile=dirname(dirname(__FILE__)).'/config/tmpinfo.txt';
            
    $info=file($readfileFILE_IGNORE_NEW_LINES FILE_SKIP_EMPTY_LINES);
            
    unlink($readfile);
            
    $manip=$info[0];
            
    $mailist=unserialize($info[1]);
            
    $message Swift_Message::newInstance();
            
    $message->setFrom($info[2]);
            
    $message->setSubject($info[3]);
            
    $message->setContentType('text/html; charset=ISO-8859-1');    
            
    $transport Swift_SendmailTransport::newInstance('/usr/sbin/sendmail -t');
            
    $mailer Swift_Mailer::newInstance($transport);
            
            if(isset(
    $info[7]) && isset($info[8]) && $info[7]!=null && $info[8]!=null$mailer->registerPlugin(new Swift_Plugins_AntiFloodPlugin($info[7], $info[8]));
            
    $count=count($mailist);
            
            if(
    rtrim($info[4])=='yes'){
                for(
    $i=0;$i$count;$i++){
                    
    $unlink="

    Click [url='http://"
    .$info[5].$info[6]."unsubscribe.php?mail=".$mailist[$i]."&id=".(($i+1)*8)."']here[/url] if you want to unsubscribe</p></div></body></html>";
                    
    $message->setBody($manip.$unlink);
                    
    $message->setTo($mailist[$i]);
                    
    $mailer->send($message);
                }
            }else{    
                
    file_put_contents('out.txt','no');
                
    $manip=$manip."</div></body></html>";
                
    $message->setBody($manip);
                for(
    $i=0;$i$count;$i++){
                    
    $message->setTo($mailist[$i]);
                    
    $mailer->send($message);
                }
            }
    ?>
    Grazie

  2. #2
    bei script, complimenti


    e il problema sarebbe? un "non funziona" senza manco uno straccio di debug mi pare un pò pochino
    IP-PBX management: http://www.easypbx.it

    Old account: 2126 messages
    Oldest account: 3559 messages

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2009
    Messaggi
    181
    Non mi diceva nulla, anzi se provavo a mettere un output mi restituiva la pagina chiamante.
    Comunque alla fine ho scoperto che al posto di
    codice:
    php -f
    (che uso per inviare email ad una data ben precisa da cronjob) devo usare
    codice:
    php-cli
    poichè chiamo l'exec_shell da una pagina php(almeno credo sia questa la spiegazione)

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.