Verzeichnisstruktur phpBB-2.0.0


Veröffentlicht
03.04.2002

So funktioniert es


Auf das letzte Element klicken. Dies geht jeweils ein Schritt zurück

Auf das Icon klicken, dies öffnet das Verzeichnis. Nochmal klicken schließt das Verzeichnis.
Auf den Verzeichnisnamen klicken, dies zeigt nur das Verzeichnis mit Inhalt an

      (Beispiel Datei-Icons)

Auf das Icon klicken um den Quellcode anzuzeigen

admin_mass_email.php

Zuletzt modifiziert: 09.10.2024, 12:51 - Dateigröße: 5.78 KiB


 001  <?php
 002  /***************************************************************************
 003  *                             admin_mass_email.php
 004  *                              -------------------
 005  *     begin                : Thu May 31, 2001
 006  *     copyright            : (C) 2001 The phpBB Group
 007  *     email                : support@phpbb.com
 008  *
 009  *     $Id$
 010  *
 011  ****************************************************************************/
 012   
 013  /***************************************************************************
 014   *
 015   *   This program is free software; you can redistribute it and/or modify
 016   *   it under the terms of the GNU General Public License as published by
 017   *   the Free Software Foundation; either version 2 of the License, or
 018   *   (at your option) any later version.
 019   *
 020   ***************************************************************************/
 021   
 022  define('IN_PHPBB', 1);
 023   
 024  if( !empty($setmodules) )
 025  {
 026      $filename = basename(__FILE__);
 027      $module['General']['Mass_Email'] = $filename;
 028      
 029      return;
 030  }
 031   
 032  //
 033  // Load default header
 034  //
 035  $no_page_header = TRUE;
 036  $phpbb_root_path = './../';
 037  require($phpbb_root_path . 'extension.inc');
 038  require('./pagestart.' . $phpEx);
 039   
 040  //
 041  // Increase maximum execution time in case of a lot of users, but don't complain about it if it isn't
 042  // allowed.
 043  //
 044  @set_time_limit(1200);
 045   
 046  $message = '';
 047  $subject = '';
 048   
 049  //
 050  // Do the job ...
 051  //
 052  if ( isset($HTTP_POST_VARS['submit']) )
 053  {
 054      $subject = stripslashes(trim($HTTP_POST_VARS['subject']));
 055      $message = stripslashes(trim($HTTP_POST_VARS['message']));
 056      
 057      $error = FALSE;
 058      $error_msg = '';
 059   
 060      if ( empty($subject) )
 061      {
 062          $error = true;
 063          $error_msg .= ( !empty($error_msg) ) ? '<br />' . $lang['Empty_subject'] : $lang['Empty_subject'];
 064      }
 065   
 066      if ( empty($message) )
 067      {
 068          $error = true;
 069          $error_msg .= ( !empty($error_msg) ) ? '<br />' . $lang['Empty_message'] : $lang['Empty_message'];
 070      }
 071   
 072      $group_id = intval($HTTP_POST_VARS[POST_GROUPS_URL]);
 073   
 074      $sql = ( $group_id != -1 ) ? "SELECT u.user_email FROM " . USERS_TABLE . " u, " . USER_GROUP_TABLE . " ug WHERE ug.group_id = $group_id AND ug.user_pending <> " . TRUE . " AND u.user_id = ug.user_id" : "SELECT user_email FROM " . USERS_TABLE;
 075      if ( !($result = $db->sql_query($sql)) )
 076      {
 077          message_die(GENERAL_ERROR, 'Could not select group members', '', __LINE__, __FILE__, $sql);
 078      }
 079   
 080      if ( $row = $db->sql_fetchrow($result) )
 081      {
 082          $bcc_list = array();
 083          do
 084          {
 085              $bcc_list[] = $row['user_email'];
 086          }
 087          while ( $row = $db->sql_fetchrow($result) );
 088   
 089          $db->sql_freeresult($result);
 090      }
 091      else
 092      {
 093          $message = ( $group_id != -1 ) ? $lang['Group_not_exist'] : $lang['No_such_user'];
 094   
 095          $error = true;
 096          $error_msg .= ( !empty($error_msg) ) ? '<br />' . $message : $message;
 097      }
 098   
 099      if ( !$error )
 100      {
 101          include($phpbb_root_path . 'includes/emailer.'.$phpEx);
 102   
 103          //
 104          // Let's do some checking to make sure that mass mail functions
 105          // are working in win32 versions of php.
 106          //
 107          if ( preg_match('/[c-z]:\\\.*/i', getenv('PATH')) && !$board_config['smtp_delivery'])
 108          {
 109              $ini_val = ( @phpversion() >= '4.0.0' ) ? 'ini_get' : 'get_cfg_var';
 110   
 111              // We are running on windows, force delivery to use our smtp functions
 112              // since php's are broken by default
 113              $board_config['smtp_delivery'] = 1;
 114              $board_config['smtp_host'] = @$ini_val('SMTP');
 115          }
 116   
 117          $emailer = new emailer($board_config['smtp_delivery']);
 118      
 119          $emailer->from($board_config['board_email']);
 120          $emailer->replyto($board_config['board_email']);
 121   
 122          for ($i = 0; $i < count($bcc_list); $i++)
 123          {
 124              $emailer->bcc($bcc_list[$i]);
 125          }
 126   
 127          $email_headers = 'X-AntiAbuse: Board servername - ' . $board_config['server_name'] . "\n";
 128          $email_headers .= 'X-AntiAbuse: User_id - ' . $userdata['user_id'] . "\n";
 129          $email_headers .= 'X-AntiAbuse: Username - ' . $userdata['username'] . "\n";
 130          $email_headers .= 'X-AntiAbuse: User IP - ' . decode_ip($user_ip) . "\n";
 131   
 132          $emailer->use_template('admin_send_email');
 133          $emailer->email_address($board_config['board_email']);
 134          $emailer->set_subject($subject);
 135          $emailer->extra_headers($email_headers);
 136   
 137          $emailer->assign_vars(array(
 138              'SITENAME' => $board_config['sitename'], 
 139              'BOARD_EMAIL' => $board_config['board_email'], 
 140              'MESSAGE' => $message)
 141          );
 142          $emailer->send();
 143          $emailer->reset();
 144   
 145          message_die(GENERAL_MESSAGE, $lang['Email_sent'] . '<br /><br />' . sprintf($lang['Click_return_admin_index'],  '<a href="' . append_sid("index.$phpEx?pane=right") . '">', '</a>'));
 146      }
 147  }    
 148   
 149  if ( $error )
 150  {
 151      $template->set_filenames(array(
 152          'reg_header' => 'error_body.tpl')
 153      );
 154      $template->assign_vars(array(
 155          'ERROR_MESSAGE' => $error_msg)
 156      );
 157      $template->assign_var_from_handle('ERROR_BOX', 'reg_header');
 158  }
 159   
 160  //
 161  // Initial selection
 162  //
 163   
 164  $sql = "SELECT group_id, group_name 
 165      FROM ".GROUPS_TABLE . "  
 166      WHERE group_single_user <> 1";
 167  if ( !($result = $db->sql_query($sql)) ) 
 168  {
 169      message_die(GENERAL_ERROR, 'Could not obtain list of groups', '', __LINE__, __FILE__, $sql);
 170  }
 171   
 172  $select_list = '<select name = "' . POST_GROUPS_URL . '"><option value = "-1">' . $lang['All_users'] . '</option>';
 173  if ( $row = $db->sql_fetchrow($result) )
 174  {
 175      do
 176      {
 177          $select_list .= '<option value = "' . $row['group_id'] . '">' . $row['group_name'] . '</option>';
 178      }
 179      while ( $row = $db->sql_fetchrow($result) );
 180  }
 181  $select_list .= '</select>';
 182   
 183  //
 184  // Generate page
 185  //
 186  include('./page_header_admin.'.$phpEx);
 187   
 188  $template->set_filenames(array(
 189      'body' => 'admin/user_email_body.tpl')
 190  );
 191   
 192  $template->assign_vars(array(
 193      'MESSAGE' => $message,
 194      'SUBJECT' => $subject, 
 195   
 196      'L_EMAIL_TITLE' => $lang['Email'],
 197      'L_EMAIL_EXPLAIN' => $lang['Mass_email_explain'],
 198      'L_COMPOSE' => $lang['Compose'],
 199      'L_RECIPIENTS' => $lang['Recipients'],
 200      'L_EMAIL_SUBJECT' => $lang['Subject'],
 201      'L_EMAIL_MSG' => $lang['Message'],
 202      'L_EMAIL' => $lang['Email'],
 203      'L_NOTICE' => $notice,
 204   
 205      'S_USER_ACTION' => append_sid('admin_mass_email.'.$phpEx),
 206      'S_GROUP_SELECT' => $select_list)
 207  );
 208   
 209  $template->pparse('body');
 210   
 211  include('./page_footer_admin.'.$phpEx);
 212   
 213  ?>