email.php
上传用户:gzy2002
上传日期:2010-02-11
资源大小:1785k
文件大小:9k
源码类别:

电子政务应用

开发平台:

Java

  1. <?php
  2. // +-------------------------------------------------------------+
  3. // | DeskPRO v [2.0.1 Production]
  4. // | Copyright (C) 2001 - 2004 Headstart Solutions Limited
  5. // | Supplied by WTN-WDYL
  6. // | Nullified by WTN-WDYL
  7. // | Distribution via WebForum, ForumRU and associated file dumps
  8. // +-------------------------------------------------------------+
  9. // | DESKPRO IS NOT FREE SOFTWARE
  10. // +-------------------------------------------------------------+
  11. // | License ID : Full Enterprise License =) ...
  12. // | License Owner : WTN-WDYL Team
  13. // +-------------------------------------------------------------+
  14. // | $RCSfile: email.php,v $
  15. // | $Date: 2004/02/11 01:28:14 $
  16. // | $Revision: 1.28 $
  17. // +-------------------------------------------------------------+
  18. // | File Details:
  19. // | - E-mail gateway settings and account maintenance
  20. // |   (administration interface)
  21. // +-------------------------------------------------------------+
  22. error_reporting(E_ALL & ~E_NOTICE);
  23. require_once('./global.php');
  24. //Nullify WTN-WDYL Team
  25. // default do
  26. $_REQUEST['do'] = trim($_REQUEST['do']);
  27. if (!isset($_REQUEST['do']) or $_REQUEST['do'] == "") {
  28. $_REQUEST['do'] = "list";
  29. }
  30. // globalise variables
  31. $global = array (
  32. array('id', 'number')
  33. );
  34. rg($global);
  35. include('./settings_include.php');
  36. ############################### UPDATE THE SETTINGS ###############################
  37. if ($_REQUEST['do'] == "update") {
  38. if ($_REQUEST[settings][use_email] == 1) {
  39. $db->query("SELECT id FROM gateway_accounts");
  40. if ($db->num_rows() < 1) {
  41. mistake("You can not enable the email gateway until you have created a gateway <a href="email.php?do=add">account</a>");
  42. unset($_REQUEST[settings][use_email]);
  43. }
  44. }
  45. update_settings();
  46. $_REQUEST['do'] = "list";
  47. }
  48. ############################### DISPLAY SETTINGS ###############################
  49. if ($_REQUEST['do'] == "list") {
  50. admin_header('Email Gateway', 'View Settings');
  51. show_settings('email.php', array('Gateway Autoresponder Settings', 'Email Gateway', 'Tech Email Gateway'), false);
  52. }
  53. ############################### CREATE ACCOUNT ###############################
  54. if ($_REQUEST['do'] == "add2") {
  55. // we need an email address at least
  56. if (!validate_email($_REQUEST['email'])) {
  57. alert('You must enter a valid email address');
  58. $repeat = 1;
  59. $_REQUEST['do'] = 'add';
  60. } else {
  61. // make account default if it is the first one
  62. $db->query("SELECT id FROM gateway_accounts");
  63. if (!$db->num_rows()) {
  64. $_REQUEST['is_default'] = 1;
  65. update_settings('new_gateway', $_REQUEST['email']);
  66. }
  67. // only want one default accounts
  68. if ($_REQUEST['is_default'] == 1) {
  69. $db->query("UPDATE gateway_accounts SET is_default = 0");
  70. }
  71. $db->query("INSERT INTO gateway_accounts SET
  72. category = '" . mysql_escape_string($_REQUEST[category]) . "',
  73. priority = '" . mysql_escape_string($_REQUEST[priority]) . "',
  74. email = '" . mysql_escape_string($_REQUEST[email]) . "',
  75. tech = '" . mysql_escape_string($_REQUEST[tech]) . "',
  76. auto_new = '" . mysql_escape_string($_REQUEST[auto_new]) . "',
  77. auto_reply = '" . mysql_escape_string($_REQUEST[auto_reply]) . "',
  78. is_default = '" . mysql_escape_string($_REQUEST[is_default]) .  "'
  79. ");
  80. $id = $db->last_id();
  81. jump("email.php?do=edit&id=$id", 'Gateway account created');
  82. }
  83. }
  84. ############################### EDIT ACCOUNT (2) ###############################
  85. if ($_REQUEST['do'] == "edit2") {
  86. // we need an email address at least
  87. if (!validate_email($_REQUEST['email'])) {
  88. alert('You must enter a valid email address');
  89. $repeat = 1;
  90. $_REQUEST['do'] = 'edit';
  91. } else {
  92. // make account default if there is no other default
  93. $db->query("SELECT id FROM gateway_accounts WHERE id != '$id' AND is_default = 1");
  94. if (!$db->num_rows()) {
  95. $_REQUEST['is_default'] = 1;
  96. update_settings('new_gateway', $_REQUEST['email']);
  97. }
  98. // only want one default accounts
  99. if ($_REQUEST['is_default']) {
  100. $db->query("UPDATE gateway_accounts SET is_default = 0 WHERE id != '$id'");
  101. }
  102. $db->query("
  103. UPDATE gateway_accounts SET
  104. category = '" . mysql_escape_string($_REQUEST[category]) . "',
  105. priority = '" . mysql_escape_string($_REQUEST[priority]) . "',
  106. email = '" . mysql_escape_string($_REQUEST[email]) . "',
  107. tech = '" . mysql_escape_string($_REQUEST[tech]) . "',
  108. auto_new = '" . mysql_escape_string($_REQUEST[auto_new]) . "',
  109. auto_reply = '" . mysql_escape_string($_REQUEST[auto_reply]) . "',
  110. is_default = '" . mysql_escape_string($_REQUEST[is_default]) .  "'
  111. WHERE id = '$id'
  112. ");
  113. jump('email.php?do=view', 'Gateway account updated');
  114. }
  115. }
  116. ############################### DELETE ACCOUNT ###############################
  117. if ($_REQUEST['do'] == "delete") {
  118. $result = $db->query_return("SELECT is_default FROM gateway_accounts WHERE id = '$id'");
  119. if ($result['is_default'] == 1) {
  120. mistake('You can not delete the default gateway account');
  121. } else {
  122. $db->query("DELETE FROM gateway_accounts WHERE id = '$id'");
  123. $_REQUEST['do'] = "view";
  124. }
  125. }
  126. ############################### LIST ACCOUNTS ###############################
  127. if ($_REQUEST['do'] == "view") {
  128. admin_header('Email Gateway', 'List Accounts');
  129. $db->query("SELECT * FROM gateway_accounts");
  130. while ($result = $db->row_array()) {
  131. $g[$result[id]] = $result[email];
  132. }
  133. $db->query("SELECT gateway_accounts.*, ticket_cat.name AS category, ticket_pri.name AS priority, tech.username AS tech
  134. FROM gateway_accounts
  135. LEFT JOIN ticket_cat ON (gateway_accounts.category = ticket_cat.id)
  136. LEFT JOIN ticket_pri ON (gateway_accounts.priority = ticket_pri.id)
  137. LEFT JOIN tech ON (gateway_accounts.tech = tech.id)
  138. ORDER BY is_default DESC
  139. ");
  140. while ($gateway = $db->row_array()) {
  141. if ($gateway[is_default]) {
  142. $table[] = table_midheader('The Default Account');
  143. } else {
  144. if (!$x) {
  145. $table[] = table_midheader('Your Accounts');
  146. $x = 1;
  147. }
  148. }
  149. $table[] = array(
  150. $gateway[email], 
  151. ifynb($gateway[is_default]),
  152. $gateway[category], 
  153. iff($gateway[priority]), 
  154. iff($gateway[tech]), 
  155. ifynb($gateway[auto_new]), 
  156. ifynb($gateway[auto_reply]),
  157. iff($gateway[is_default], 'n/a', "<a href="email.php?do=delete&id=$gateway[id]">delete</a>"),
  158. "<a href="email.php?do=edit&id=$gateway[id]">edit</a>"
  159. );
  160. }
  161. $cols = array('Email Address', 'Default', 'Category', 'Priority', 'Technician', 'Auto New', 'Auto Reply', 'Delete', 'Edit');
  162. table_header("Gateway Accounts");
  163. table_content($cols, $table);
  164. table_footer();
  165. // if email gateway is set to Off we should alert the user to turn it on
  166. if (!$settings['use_email']) {
  167. echo table_border("Currently the email interface is turned off. If you wish to use it, you should activate it <a href="./email.php">here</a>");
  168. }
  169. }
  170. ############################### CREATE / VIEW ACCOUNT ###############################
  171. if ($_REQUEST['do'] == "add" OR $_REQUEST['do'] == "edit") {
  172. if ($repeat) {
  173. $gateway = $_REQUEST;
  174. }
  175. if ($_REQUEST['do'] == "add") {
  176. admin_header('Email Gateway', 'Add Account');
  177. } else {
  178. admin_header('Email Gateway', 'Edit Account');
  179. $gateway = $db->query_return("SELECT * FROM gateway_accounts WHERE id = $id");
  180. if (!$db->num_rows()) {
  181. mistake('The specified gateway account is not defined.');
  182. }
  183. }
  184. $categories[0] = '--- None ---';
  185. // get category data
  186. $db->query("SELECT * from ticket_cat");
  187. while ($cat = $db->row_array()) {
  188. $categories[$cat[id]] = $cat[name];
  189. }
  190. $priority[0] = '--- None ---';
  191. // get priority data
  192. $db->query("SELECT * from ticket_pri ORDER by pri_order");
  193. while ($pri = $db->row_array()) {
  194. $priority[$pri[id]] = $pri[name];
  195. }
  196. $tech[0] = '--- None ---';
  197. // get technician data
  198. $db->query("SELECT id, username from tech");
  199. while ($tech_name = $db->row_array()) {
  200. $tech[$tech_name[id]] = $tech_name[username];
  201. }
  202. $bit = form_input('email', $gateway[email]);
  203. $table[] = array('<b>Email</b><br />The email address for this account', $bit);
  204. $bit = form_radio_yn('is_default', NULL, $gateway['is_default']);
  205. $table[] = array('<b>Default Account</b><br />Set this account as default', $bit);
  206. $bit = form_select(category, $categories, '', $gateway[category]);
  207. $table[] = array('<b>Category</b><br />Category to associate emails with', $bit);
  208. $bit = form_select('priority', $priority, '', $gateway[priority]);
  209. $table[] = array('<b>Priority</b><br />Priority to associate emails with', $bit);
  210. $bit = form_select('tech', $tech,'', $gateway[technician]);
  211. $table[] = array('<b>Tech Name</b><br />Associate email with a specific user?', $bit);
  212. $bit = form_radio_yn('auto_new', '', $gateway[auto_new]);
  213. $table[] = array('<b>New Ticket Autoresponder</b><br />Send new ticket autoresponder messages?', $bit);
  214. $bit = form_radio_yn('auto_reply', '', $gateway[auto_reply]);
  215. $table[] = array('<b>New Reply Autoresponder</b><br />Send new reply autoresponder messages?', $bit);
  216. if ($_REQUEST['do'] == 'add') {
  217. table_header('Create Gateway Account', 'email.php', array('do' => 'add2'));
  218. table_content('', $table);
  219. table_footer('Create Account');
  220. } else {
  221. table_header('Update Gateway Account', 'email.php', array('do' => 'edit2', 'id' => $gateway['id']));
  222. table_content('', $table);
  223. table_footer('Update Account');
  224. }
  225. }
  226. ?>