2011-01-15 2 views
0

мне нужно найти способ, чтобы удалить абонентов от массовой рассылки PHP скрипт здесь есть скрипт:Помоги мне, чтобы удалить абонента из массы почты PHP скрипт

<?php 

$thisfile=basename(__FILE__, ".php"); 

$path = GSPLUGINPATH.'gs_massmail/lang/'; 
$filenames = getFiles($path); 
foreach ($filenames as $file) { 
if($file == $LANG.'.php') 
    $language_file = $file; 
} 

if($language_file == FALSE) 
$language_file = 'en_US.php'; 

require_once $path.$language_file; 

add_action('plugins-sidebar','createSideMenu',array($thisfile, 'Mass Mail')); 

function get_mass_mail_form(){ 
global $i18n; 
?> 
<form action="<?php get_page_url(); ?>" method="post" class="contactform" > 
    <?php set_mass_mail_page(); ?> 
    <p> 
    <input type="text" class="text" name="massmail[email]" value="e-mail" onFocus="doClear(this)" onBlur="doDefault(this)" /> 
    </p> 
    <p><input type="submit" class="submit" value="<?php echo $i18n['MM_SUBSCRIBE']?>" id="add-receiver" name="add-receiver" /></p> 
</form> 
<?php 
} 

function show_editor(){ 
global $i18n, $HTMLEDITOR; 
?> 
    <h3><?php echo $i18n['MM_SENDMAIL']?></h3> 
    <form method="post" class="sendmassmail"> 
    <p> 
    <b><?php echo $i18n['MM_SUBJECT']?></b> 
    <br /> 
    <input type="text" id="subject" name="subject" size="70"/> 
    </p> 
    <p> 
    <textarea id="post-content" rel="<?php echo $i18n['LABEL_PAGEBODY']; ?>" name="post-content"></textarea> 
    </p> 
    <p><input class="submit" type="submit" name="submitted" value="<?php echo $i18n['MM_SENDMAILTOALL']?>" /> &nbsp;&nbsp;<?php echo $i18n['OR']; ?>&nbsp;&nbsp; <a class="cancel" href="pages.php?cancel"><?php echo $i18n['CANCEL']; ?></a></p> 
    </form> 

    <?php 
    if (defined('GSEDITORHEIGHT')) { $EDHEIGHT = GSEDITORHEIGHT .'px'; } else { $EDHEIGHT = '500px'; } 
    if (defined('GSEDITORLANG')) { $EDLANG = GSEDITORLANG; } else { $EDLANG = 'en'; } 
    if (defined('GSEDITORTOOL')) { $EDTOOL = GSEDITORTOOL; } else { $EDTOOL = 'basic'; } 


    if ($EDTOOL == 'advanced') { 
    $toolbar = " 
     ['Bold', 'Italic', 'Underline', 'NumberedList', 'BulletedList', 'JustifyLeft','JustifyCenter','JustifyRight','JustifyBlock', 'Table', 'TextColor', 'BGColor', 'Link', 'Unlink', 'Image', 'RemoveFormat', 'Source'], 
      '/', 
      ['Styles','Format','Font','FontSize'] 
     "; 
    } else { 
    $toolbar = "['Bold', 'Italic', 'Underline', 'NumberedList', 'BulletedList', 'JustifyLeft','JustifyCenter','JustifyRight','JustifyBlock', 'Link', 'Unlink', 'Image', 'RemoveFormat', 'Source']"; 
    } 
    ?> 
    <?php if ($HTMLEDITOR != '') { ?> 
    <script type="text/javascript" src="template/js/ckeditor/ckeditor.js"></script> 
    <script type="text/javascript"> 
    var editor = CKEDITOR.replace('post-content', { 
      skin : 'getsimple', 
      forcePasteAsPlainText : true, 
      language : '<?php echo $EDLANG; ?>', 
      defaultLanguage : '<?php echo $EDLANG; ?>', 
      entities : true, 
      uiColor : '#FFFFFF', 
    height: '<?php echo $EDHEIGHT; ?>', 
      toolbar : 
      [ 
      <?php echo $toolbar; ?> 
    ] 
      //filebrowserBrowseUrl : '/browser/browse.php', 
      //filebrowserImageBrowseUrl : '/browser/browse.php?type=Images', 
      //filebrowserWindowWidth : '640', 
      //filebrowserWindowHeight : '480' 
     }); 
    </script> 
    <?php 
    } 
} 


function setup_mass_mail(){ 
    global $emailadresses; 
    global $_POST, $i, $b, $i18n; 

    $xmlfile = GSDATAPATH."other/massmail.xml"; 
    set_mass_mail_css(); 
    $v = getXML($xmlfile); 

    if(isset($_POST['submitted'])){ 
    if(strlen($_POST['subject']) == 0 || strlen($_POST['post-content']) == 0) 
    $err[] = $i18n['MM_SUBJECTANDMESSAGE']; 

    if(count($err) == 0){ 
    echo "<h3>".$i18n['MM_EMAILSTATUS']."</h3>"; 
    $server_name = getenv ("SERVER_NAME");  // Server Name 
    $request_uri = getenv ("REQUEST_URI");  // Requested URI 

    $from = '[email protected]'.substr($server_name, 4, strlen($server_name)); 

    if(isset($_POST['subject'])) 
    $subject = $_POST['subject']; //htmlentities($_POST['subject'], ENT_QUOTES, 'UTF-8'); 
    else 
    $subject = $i18n['MM_NEWSLETTERFROM'].$server_name; 

    $headers = "From: ".$from."\r\n"; 
    $headers .= "Return-Path: ".$from."\r\n"; 
    $headers .= "Content-type: text/html\r\n"; 

    if(get_magic_quotes_gpc()) 
    $body = stripslashes($_POST['post-content']); //htmlentities($_POST['post-content'], ENT_QUOTES, 'UTF-8'); 
    else 
    $body = $_POST['post-content']; 

    foreach ($v as $row => $value) { 
    if(mail($value->email,$subject,$body,$headers)) 
     $i++; 
    else 
     $b++; 
    } 
    echo '<p class="ok">'.$i18n['MM_MAILWASSENTTO'].' ('.$i.' '.$i18n['MM_OF'].' '.($b+$i).')<p>'; 
    } else { 
    echo '<p class="error">'.implode(".<br />", $err).'</p>'; 
    } 
    } 
    echo "<h3>".$i18n['MM_SUBSCRIBERS']."</h3>"; 
    if(file_exists($xmlfile)) { 
    echo '<table cellspacing="0" cellpadding="0"> 
    <tr> 
     <td> 
     '.$i18n['MM_DATE'].' 
     </td> 
     <td> 
     '.$i18n['MM_EMAIL'].' 
     </td> 
    </tr> 
    '; 
    foreach ($v as $row => $value) { 
    $emailadresses .= $value->email.';'; 
    echo '<tr>'; 
    echo '<td>'.date('Y-m-d', (int)$value->date).'</td>'; 
    echo '<td>'.$value->email.'</td>'; 
    echo '</tr>'; 
    } 
    echo '</table>'; 
    echo '<p><b>'.$i18n['MM_COMMASEPARATED'].':</b> <br />'.$emailadresses; 
    show_editor(); 
    } else { 
    echo $i18n['MM_NOREGSUBSCRIBERS']; 
    } 
} 

function set_mass_mail_css(){ 
echo ' 
<!-- CSS for Mass Mail plugin --> 
<style type="text/css"> 
    p.ok { 
    color: #3dc32b; 
    } 
    p.error { 
    color: #FF0000; 
    } 
</style>'; 
} 

function set_mass_mail_page(){ 
global $email; 
global $i18n; 
if (isset($_POST['add-receiver'])) { 
    set_mass_mail_css(); 
    $xmlfile = GSDATAPATH."other/massmail.xml"; 
    $email = $_POST['massmail']['email']; 
    $err = array(); 

    if(!check_email_address($_POST['massmail']['email'])){ 
    $err[] = $i18n['MM_EMAILWRONGFORMAT']; 
    } else { 
    if(file_exists($xmlfile)) { 
    $v = getXML($xmlfile); 
    foreach ($v as $row) { 
    if($row->email == $_POST['massmail']['email']){ 
     $err[] = $i18n['MM_EMAILALLREADYREG']; 
     break; 
    } 
    } 
    }  
    } 

    if(count($err) == 0){ 
    if (!file_exists($xmlfile)) { 
    $xml = @new SimpleXMLExtended('<?xml version="1.0" encoding="UTF-8"?><item></item>'); 
    } else { 
    $xmldata = file_get_contents($xmlfile); 
    $xml = new SimpleXMLExtended($xmldata); 
    } 
    $thislog = $xml->addChild('entry'); 
    $thislog->addChild('date', time()); 
    $thislog->addChild('email', $email); 
    $xml->asXML($xmlfile); 
    echo '<p class="ok">'.$i18n['MM_YOUARENOWSUBSCRIBER'].'</p>'; 
    } else { 
    echo '<p class="error">'.implode(".<br />", $err).'</p>'; 
    } 
} 
} 

?> 

благодаря

+1

Я думаю, вы должны указать, с чем вы хотите, чтобы мы вам помогли. Мы не собираемся писать код для вас или не выяснять, что ошибка в длинном фрагменте кода, если вы не потрудитесь сузить его. Расскажите, что вы пробовали до сих пор, и где вы застряли. –

ответ

0

Holy Moly.

Вы должны иметь возможность редактировать другой файл/massmail.xml, который создается через блокнот или любой другой текстовый редактор.

Если вы хотите отредактировать его programmitcally (на самом деле не слово), я считаю, что вы можете проходить через каждый узел XML, используя класс SimpleXMLExtended (как показано в вашем коде). Если возможно, вам следует рассмотреть возможность чтения узла по узлу, чтобы весь файл не был загружен в память.

В качестве примечания: Я настоятельно рекомендую не использовать XML для хранения списка рассылки. Было бы намного проще и эффективнее управлять, если бы вы использовали базу данных, такую ​​как MySQL (или SQLite, если вы настаиваете на ее хранении в файле).

 Смежные вопросы

  • Нет связанных вопросов^_^