home *** CD-ROM | disk | FTP | other *** search
/ Chip 1998 February / CHIP_2_98.iso / software / pelne / optionp / ims.cab / smmes.asp < prev    next >
Text File  |  1997-10-18  |  14KB  |  503 lines

  1. <%
  2. '----------------------------------------------------------------------------
  3. '
  4. '
  5. '   File: smnes.asp
  6. '
  7. '   Description: Messages Properties page
  8. '
  9. '   Copyright (C) 1997 Microsoft Corporation
  10. '
  11. '------------------------------------------------------------------------------
  12. %>
  13. <% Response.Expires = 0 %>
  14.  
  15. <%
  16. REM LOCALIZATION
  17.  
  18. L_PAGETITLE_TEXT             = "Microsoft SMTP Server Administration"
  19. L_MESSAGEPROP_TEXT            = "Message Properties for: "
  20. L_LIMITMESSAGES_TEXT        = "Limit Messages"
  21. L_MAXMESSAGESIZE_TEXT        = "Maximum Message Size:"
  22. L_MAXSESSIONSIZE_TEXT        = "Maximum Session Size:"
  23. L_KILOBYTES_TEXT            = "Kilobytes"
  24. L_LIMITMESRECIPIENTS_TEXT    = "Maximum Recipients per Message:"
  25. L_SENDNDR_TEXT                = "Send a Copy of Non-delivery Report to:"
  26. L_SENDBADMAIL_TEXT            = "Send a Copy of Badmail to:"
  27. L_BADMAILDIR_TEXT            = "Badmail Directory:"
  28. L_LIMITMESCONNECTIONS_TEXT    = "Limit Messages per Connection:"
  29. L_YES_TEXT                    = "Yes"
  30. L_NO_TEXT                    = "No"
  31. L_PATH_SYNTAX_INCORR_TEXT    = "The Path syntax is incorrect."
  32. L_ENTER_INT_BETWEEN_TEXT    = "Please enter an integer between "
  33. L_AND_TEXT                    = " and "
  34. L_BOGUSPATH_TEXT            = "BadMail Directory must have a value."
  35.  
  36. MAXKILO_VALUE                    = 2097151
  37. MAX_VALUE                        = 2000000000
  38.  
  39. REM END LOCALIZATION
  40. %>
  41. <% REM Messages Page %> 
  42.  
  43. <% REM Get variables %>
  44. <% REM svr = Server name %>
  45.  
  46. <% 
  47. svr = Session("svr")
  48.  
  49.  
  50.  
  51. %>
  52.  
  53. <HTML>
  54. <HEAD>
  55. <TITLE><% = L_PAGETITLE_TEXT %></TITLE>
  56. </HEAD>
  57.  
  58. <SCRIPT LANGUAGE="javascript">
  59.  
  60.  
  61. <% REM Create uForm object and methods %>
  62.  
  63.     uForm = new Object();
  64.     uForm.writeForm = writeForm;
  65.     uForm.readCache = readCache; 
  66.     var iCount = 0;
  67.  
  68. <% REM Javascript function readCache loads fields from hiddenform in sidebar %>
  69.  
  70. function readCache()
  71. {
  72.     hform = top.menu.document.hiddenform;
  73.     uform = document.userform;
  74.     if (hform != null)
  75.     {
  76.     
  77.         uform.txtMaxMessageSize.value             = hform.txtMaxMessageSize.value;
  78.         uform.hdnMaxMessageSize.value            = hform.txtMaxMessageSize.value;
  79.         uform.txtMaxSessionSize.value             = hform.txtMaxSessionSize.value;
  80.         uform.hdnMaxSessionSize.value            = hform.txtMaxSessionSize.value;
  81.         uform.txtMaxMessageRecipients.value        = hform.txtMaxMessageRecipients.value;
  82.         uform.txtSendNDRTo.value                 = hform.txtSendNDRTo.value;
  83.         uform.txtBadMailDir.value                = hform.txtBadMailDir.value;
  84.         uform.hdnDescription.value                = hform.txtDescription.value;
  85.         uform.hdnLimitMessages.value            = hform.txtLimitMessages.value;
  86.         uform.hdntxtLimitMessPerConnection.value    = hform.txtBatchMessageLimit.value
  87.         uform.txtLimitMessPerConnection.value        = hform.txtBatchMessageLimit.value;
  88.         uform.hdnLimitMessPerConnection.value        = hform.txtBatchMessages.value;
  89.         Initialize()
  90.  
  91.     }
  92.  
  93. }
  94.  
  95. <% REM Javascript function writeForm sets values in hiddenform %>
  96.  
  97. function writeForm()
  98. {
  99.     hform = top.menu.document.hiddenform;
  100.     uform = document.userform;
  101.  
  102.     var lRc = boundsChecking();
  103.  
  104.      if((lRc) == true) 
  105.      { 
  106.     
  107.         hform.txtMaxMessageRecipients.value        = uform.txtMaxMessageRecipients.value;
  108.         hform.txtSendNDRTo.value                = uform.txtSendNDRTo.value;
  109.         hform.txtBadMailDir.value                = uform.txtBadMailDir.value;
  110.         hform.txtLimitMessages.value            = uform.hdnLimitMessages.value;
  111.         hform.txtBatchMessageLimit.value        = uform.txtLimitMessPerConnection.value;
  112.         hform.txtBatchMessages.value            = chkToTxt(uform.chkLimitMessPerConnection);
  113.  
  114.         if(uform.chkLimitMessPerConnection.checked != true)
  115.         {
  116.             hform.txtBatchMessageLimit.value = "0";
  117.         }
  118.  
  119.  
  120.         if(uform.chkLimitMessages.checked != true)
  121.         {
  122.             uform.txtMaxMessageSize.value = "0";
  123.             uform.txtMaxSessionSize.value = "0";
  124.         }
  125.  
  126.         hform.txtMaxMessageSize.value            = uform.txtMaxMessageSize.value;
  127.         hform.txtMaxSessionSize.value            = uform.txtMaxSessionSize.value;
  128.     }
  129.  
  130. }
  131.  
  132.  
  133.  
  134. function Initialize()
  135. {
  136.  
  137.     uform = document.userform;
  138.     if((uform.hdnMaxMessageSize.value == "0" || uform.hdnMaxMessageSize.value == "") && (uform.hdnMaxSessionSize.value == "0" || uform.hdnMaxSessionSize.value == ""))
  139.     {
  140.         uform.chkLimitMessages.checked = false;
  141.         uform.txtMaxMessageSize.value = "";
  142.         uform.txtMaxSessionSize.value = "";
  143.     }
  144.     else
  145.     {
  146.         uform.chkLimitMessages.checked = true;
  147.         uform.txtMaxMessageSize.value = uform.hdnMaxMessageSize.value;
  148.         uform.txtMaxSessionSize.value = uform.hdnMaxSessionSize.value;
  149.     }
  150.  
  151.     if(uform.hdntxtLimitMessPerConnection.value == "0" || uform.hdntxtLimitMessPerConnection.value == "")
  152.     {
  153.         uform.chkLimitMessPerConnection.checked = false;
  154.         uform.txtLimitMessPerConnection.value = "";
  155.     }
  156.     else
  157.     {
  158.         uform.chkLimitMessPerConnection.checked = true;
  159.         if(uform.hdntxtLimitMessPerConnection.value == "0" || uform.hdntxtLimitMessPerConnection.value == "")
  160.         {
  161.             uform.txtLimitMessPerConnection.value = "20";
  162.             uform.hdntxtLimitMessPerConnection.value = "20";
  163.         }
  164.         else
  165.         {
  166.  
  167.             uform.txtLimitMessPerConnection.value = uform.hdntxtLimitMessPerConnection.value;
  168.         }
  169.     }
  170.  
  171. }
  172.  
  173. <% REM Javascript function chkChar %>
  174.         
  175. function chkDir(txtfield) 
  176. {
  177.     txtvalue = txtfield.value
  178.     if(txtvalue != "")
  179.     {
  180.         i = (txtvalue.indexOf("'") + txtvalue.indexOf('"'));
  181.         i = (i + txtvalue.indexOf("<") + txtvalue.indexOf('>') + txtvalue.indexOf('%'));
  182.         i = (i + txtvalue.indexOf("&") + txtvalue.indexOf("#") + txtvalue.indexOf("("));
  183.         i = (i + txtvalue.indexOf("+") + txtvalue.indexOf(")") + txtvalue.indexOf("@"));
  184.         i = (i + txtvalue.indexOf("~") + txtvalue.indexOf("`") + txtvalue.indexOf("!"));
  185.         i = (i + txtvalue.indexOf("^") + txtvalue.indexOf("*") + txtvalue.indexOf("="));
  186.         i = (i + txtvalue.indexOf("|") + txtvalue.indexOf(";"));
  187.         i = (i + txtvalue.indexOf(",") + txtvalue.indexOf("?"));
  188.         if (i != -21) 
  189.         {
  190.             alert("<%= L_PATH_SYNTAX_INCORR_TEXT %>");
  191.             txtfield.value = "";
  192.             txtfield.focus();
  193.             return false;
  194.         }
  195.     }
  196.     else
  197.     {
  198.         if (iCount == 0)
  199.         {
  200.             alert("<% = L_BOGUSPATH_TEXT %>");
  201.             iCount++;
  202.         }
  203.         uform = document.userform;
  204.         top.menu.document.hiddenform.updated.value = "false";
  205.         uform.submit();
  206.         return false;
  207.     }
  208.     return true;
  209. }
  210.  
  211.  
  212. <% REM Javascript function setUpdated sets "updated" flag in hiddenform when a field is changed %>
  213.  
  214. function setUpdated()
  215. {
  216.     hform = top.menu.document.hiddenform;
  217.     uform = document.userform;
  218.  
  219.     if (hform.txtMaxMessageRecipients.value == uform.txtMaxMessageRecipients.value)
  220.     {
  221.         if (hform.txtSendNDRTo.value == uform.txtSendNDRTo.value)
  222.         {
  223.             if (hform.txtBadMailDir.value == uform.txtBadMailDir.value)
  224.             {
  225.                 if (hform.txtLimitMessages.value == uform.hdnLimitMessages.value)
  226.                 {
  227.                     if (hform.txtBatchMessageLimit.value == uform.txtLimitMessPerConnection.value)
  228.                     {
  229.                         if (hform.txtBatchMessages.value == chkToTxt(uform.chkLimitMessPerConnection))
  230.                         {
  231.                             if (hform.txtMaxMessageSize.value == uform.txtMaxMessageSize.value)
  232.                             {
  233.                                 if (hform.txtMaxSessionSize.value == uform.txtMaxSessionSize.value)
  234.                                 {
  235.                                     if((uform.txtBadMailDir.value == "") || (uform.txtBadMailDir.value == null))
  236.                                     {
  237.                                         top.menu.document.hiddenform.updated.value = "false";
  238.                                         return;
  239.                                     }
  240.                                 }
  241.                             }
  242.                         }
  243.                     }
  244.                 }
  245.             }
  246.         }
  247.     }
  248.  
  249.     
  250.     top.menu.document.hiddenform.updated.value = "true";    
  251. }    
  252.  
  253.  
  254. <% REM Javascript function switchInfo() exchanges info from the hidden controls on the form and the non-hidden controls %>
  255. <% REM 6/12/97 Randy Slape %>
  256.  
  257. function txtTochk(thisControl)
  258. {
  259.     if(thisControl.value == "")
  260.     {
  261.         return false;
  262.     }
  263.     else if(thisControl.value == "0")
  264.     {
  265.         return false;
  266.     }
  267.     else
  268.     {
  269.         return true;
  270.     }
  271. }
  272.                 
  273. function chkToTxt(chkControl) 
  274. {
  275.     if (chkControl.checked) 
  276.     {
  277.         return "1";
  278.     }
  279.     else 
  280.     {
  281.         return "0";
  282.     }
  283. }
  284.  
  285. function cacheData()
  286. {
  287.     uform = document.userform;
  288.     if(uform.txtMaxMessageSize.value != "")
  289.     {
  290.         uform.hdnMaxMessageSize.value = uform.txtMaxMessageSize.value;
  291.     }
  292.     if(uform.txtMaxSessionSize.value != "")
  293.     {
  294.         uform.hdnMaxSessionSize.value = uform.txtMaxSessionSize.value;
  295.     }
  296. }
  297.     
  298. function infoSwitch()
  299. {
  300.     uform = document.userform;
  301.     if(uform.chkLimitMessages.checked)
  302.     {
  303.         uform.txtMaxMessageSize.value = uform.hdnMaxMessageSize.value;
  304.         uform.txtMaxSessionSize.value = uform.hdnMaxSessionSize.value;
  305.     }
  306.     else
  307.     {
  308.         uform.hdnMaxMessageSize.value = uform.txtMaxMessageSize.value;
  309.         uform.hdnMaxSessionSize.value = uform.txtMaxSessionSize.value;
  310.         uform.txtMaxMessageSize.value = "";
  311.         uform.txtMaxSessionSize.value = "";
  312.     }
  313.  
  314. }
  315.  
  316. <% REM Javascript function checkRange checks values between 0 and specified range %>
  317.  
  318. function checkRange(thisControl, low, high)
  319. {
  320.     if (isFull(thisControl.value) && isNum(thisControl.value))
  321.     {
  322.         if ((thisControl.value > high) || (thisControl.value < low))
  323.         {
  324.             alert("<%= L_ENTER_INT_BETWEEN_TEXT %>" + low + "<%= L_AND_TEXT %>" + high + ".");
  325.             thisControl.value = low;
  326.             thisControl.focus();
  327.             return false;
  328.         }
  329.         else
  330.         {
  331.             return true;
  332.         }
  333.     }
  334.     else
  335.     {
  336.         thisControl.value = low;
  337.         thisControl.focus();
  338.         return false;
  339.     }
  340.  
  341.  
  342. }
  343.  
  344. function loadToolBar()
  345. {
  346.     top.frames[3].location = "srtb.asp?pg=smmes&svr=<% = svr %>";
  347. }
  348.  
  349. function limitperconn(chkControl)
  350. {
  351.     uform = document.userform;
  352.     if(chkControl.checked)
  353.     {
  354.         if ((uform.hdntxtLimitMessPerConnection.value == "0") || (uform.hdntxtLimitMessPerConnection.value == ""))
  355.         {
  356.             uform.hdntxtLimitMessPerConnection.value = "20";
  357.         }
  358.         uform.txtLimitMessPerConnection.value = uform.hdntxtLimitMessPerConnection.value;
  359.  
  360.     }
  361.     else
  362.     {
  363.         uform.hdntxtLimitMessPerConnection.value = uform.txtLimitMessPerConnection.value;
  364.         uform.txtLimitMessPerConnection.value = "";
  365.     }
  366. }
  367.  
  368.  
  369. function boundsChecking()
  370. {
  371.     uform = document.userform;
  372.     
  373.     
  374.     if(uform.chkLimitMessages.checked)
  375.     {
  376.         if(!(checkRange(uform.txtMaxMessageSize, 0, <% = MAXKILO_VALUE %>)))
  377.         {
  378.             return false;
  379.         }
  380.  
  381.         if(!(checkRange(uform.txtMaxSessionSize, 0, <% = MAXKILO_VALUE %>)))
  382.         {
  383.             return false;
  384.         }
  385.     }
  386.  
  387.     if(uform.chkLimitMessPerConnection.checked)
  388.     {
  389.         if(!(checkRange(uform.txtLimitMessPerConnection, 1, <% = MAX_VALUE %>)))
  390.         {
  391.             return false;
  392.         }
  393.     }
  394.  
  395.     if(!(checkRange(uform.txtMaxMessageRecipients, 100, <% = MAX_VALUE %>)))
  396.     {
  397.         return false;
  398.     }
  399.  
  400.     if(!(chkDir(uform.txtBadMailDir)))
  401.     {
  402.         return false;
  403.     }
  404.  
  405.     return true;
  406.  
  407. }
  408.  
  409.  
  410. <% REM Generic Javascript functions %>
  411. </script>
  412. <!--#include file="smisnum.htm" -->
  413. <!--#include file="smisfull.htm" -->
  414. <!--#include file="smchklen.htm" -->
  415.  
  416.  
  417. <BODY BGCOLOR="#CCCCCC" TEXT="#000000" TOPMARGIN="10" OnLoad="loadToolBar();">
  418.  
  419. <FORM NAME="userform" Action="smmes.asp" Method="post">
  420. <INPUT NAME="hdnDescription" TYPE="hidden" VALUE="">
  421. <P><IMG SRC="images/gnicttl.gif" ALIGN="textmiddle" HEIGHT=10 WIDTH=10> <FONT SIZE=2 FACE="Arial"><B><% = L_MESSAGEPROP_TEXT %>  </B></FONT><FONT FACE="Times New Roman" SIZE=3><I><% = svr %> 
  422. <script language="javascript">
  423.     uform = document.userform;
  424.     hform = top.menu.document.hiddenform;
  425.     uform.hdnDescription.value = hform.txtDescription.value;
  426.     document.write(uform.hdnDescription.value);
  427. </script>
  428. </I></FONT>
  429.  
  430. <FONT FACE="Arial" SIZE=2>
  431.  
  432. <P>    
  433. <p>
  434. <blockquote>
  435. <TABLE border=1 width=475>
  436.     <tr><td>
  437.     <table border=0 width=100%>
  438.     <tr>
  439.         <TD colspan=2>
  440.             <FONT SIZE=2 FACE="Arial">
  441.             <INPUT NAME="chkLimitMessages" TYPE="checkbox" VALUE="Limit Messages" OnClick="infoSwitch();setUpdated();"><% = L_LIMITMESSAGES_TEXT %>
  442.             </FONT>
  443.             <INPUT NAME="hdnLimitMessages" TYPE="hidden" VALUE="">
  444.         </td>
  445.     </tr><tr>
  446.         <td><FONT SIZE=2 FACE="Arial"><% = L_MAXMESSAGESIZE_TEXT %></FONT></td>
  447.         <td>
  448.             <INPUT NAME="txtMaxMessageSize" TYPE="text" VALUE="" OnBlur="cacheData();setUpdated();" OnChange="cacheData();setUpdated();" SIZE=10>
  449.              <FONT SIZE=2 FACE="Arial"><% = L_KILOBYTES_TEXT %></font>
  450.             <INPUT NAME="hdnMaxMessageSize" TYPE="hidden" VALUE="">
  451.         </td>
  452.     </tr><tr>
  453.         <td><FONT SIZE=2 FACE="Arial"><%= L_MAXSESSIONSIZE_TEXT %></FONT></td>
  454.         <td>
  455.             <INPUT NAME="txtMaxSessionSize" TYPE="text" VALUE="" OnBlur="cacheData();setUpdated();" OnChange="cacheData();setUpdated();" SIZE=10>
  456.              <FONT SIZE=2 FACE="Arial"><% = L_KILOBYTES_TEXT %></font>
  457.             <INPUT NAME="hdnMaxSessionSize" TYPE="hidden" VALUE="">
  458.         </td>
  459.  
  460.     </tr>
  461.     </table>
  462.     </td></tr>
  463. </table>
  464. <table border="0" width=475>
  465.     <TR>
  466.         <td width="220">
  467.             <FONT SIZE=2 FACE="Arial">
  468.             <input name="chkLimitMessPerConnection" type="checkbox" value="Limit Messages Per Connection" OnClick="limitperconn(this);setUpdated();"> <% = L_LIMITMESCONNECTIONS_TEXT %>            
  469.             </font>
  470.             <input name="hdnLimitMessPerConnection" type="hidden" value="">
  471.         </td>
  472.         <td width=220>
  473.             <input name="txtLimitMessPerConnection" type="text" value="" OnBlur="setUpdated();" OnChange="setUpdated();" size="10">
  474.             <input name="hdntxtLimitMessPerConnection" type="hidden" value="">
  475.         </td>
  476.     </tr><tr>
  477.         <td width=220><FONT SIZE=2 FACE="Arial"><%= L_LIMITMESRECIPIENTS_TEXT %></font></td>
  478.         <td>
  479.             <INPUT NAME="txtMaxMessageRecipients" TYPE="text" VALUE="" OnBlur="setUpdated();" OnChange="setUpdated();" SIZE=10>
  480.         </td>
  481.     </tr><tr>
  482.         <td width=220><FONT SIZE=2 FACE="Arial"><%= L_SENDNDR_TEXT %></font></td>
  483.         <td>
  484.             <INPUT NAME="txtSendNDRTo" TYPE="text" VALUE="" OnBlur="checkLength(this);setUpdated();" OnChange="setUpdated();" SIZE=25>
  485.         </td>
  486.     </tr><tr>
  487.         <td width=220><FONT SIZE=2 FACE="Arial"><%= L_BADMAILDIR_TEXT %></font></td>
  488.         <td>
  489.             <INPUT NAME="txtBadMailDir" TYPE="text" VALUE="" OnBlur="checkLength(this);setUpdated();" OnChange="setUpdated();" SIZE=25>
  490.         </td>
  491.     </tr>
  492. </table>
  493.  
  494. </BLOCKQUOTE>
  495. </FORM> 
  496. <script language="javascript">
  497.     readCache();
  498. </script>
  499.  
  500. </BODY>
  501. </HTML>
  502.  
  503.