mailConfig.jsp 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394
  1. <%@ page contentType="text/html;charset=GBK"%>
  2. <%@ taglib uri="http://fzywtx.com/jsp/yw/select" prefix="l"%>
  3. <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
  4. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  5. <html>
  6. <head>
  7. <Title>邮件账号管理</Title>
  8. <script src="${pageContext.request.contextPath }/liger/lib/jquery/jquery-1.3.2.min.js" type="text/javascript"></script>
  9. <link href="${pageContext.request.contextPath }/liger/lib/ligerUI/skins/${sessionScope.css}/css/ligerui-all.css" rel="stylesheet" type="text/css" />
  10. <link href="main.css" rel="stylesheet" type="text/css" />
  11. <script src="${pageContext.request.contextPath }/liger/lib/ligerUI/js/core/base.js" type="text/javascript"></script>
  12. <script src="${pageContext.request.contextPath }/liger/lib/ligerUI/js/ligerui.all.js" type="text/javascript">
  13. <script type="text/javascript" src="/shares/js/constant.js"></script>
  14. <script type="text/javascript" src="/shares/js/common.js"></script>
  15. <script type="text/javascript" src="/shares/js/yw/oa/mailAutoComplete.js"></script>
  16. <script type="text/javascript" src="/shares/js/yw/master1_oa/mail/mail.js"></script>
  17. <!-- 邮箱自动提示的css -->
  18. <style type="text/css">
  19. .mailListBox{border:1px solid #ccc; background:#fff; font:12px/20px Tahoma;}
  20. .mailListDefault{border-bottom:1px solid #eee; padding:0 5px; cursor:pointer;}
  21. .mailListFocus{background:#f0f3f9;}
  22. .mailListHlignt{color:#c00;}
  23. #layout1{width:99.5%;margin:0; padding:0;}
  24. </style>
  25. <SCRIPT LANGUAGE="JavaScript">
  26. var configMsg = '${configMsg}';
  27. var tree;
  28. var data = [];
  29. var selNodeId = "";
  30. var in_port = {"pop":"110", "imap":"143", "pop_ssl":"995", "imap_ssl":"993"};
  31. var smtp_port = {"smtp":"25", "ssl":"465"};
  32. <c:forEach var="item" items="${configList}">
  33. data.push({ id: '${item.universalid }', pid: 0, text: '${item.user_name }@${item.domain_name }<c:if test="${item.is_default == '1' }"><font color="red">&nbsp;(默认)</font></c:if>',isDef:'${item.is_default}' });
  34. <c:if test="${item.is_default == '1' }">
  35. selNodeId = '${item.universalid }';
  36. </c:if>
  37. </c:forEach>
  38. $(function() {
  39. $("#layout1").ligerLayout({
  40. leftWidth : 250,
  41. height : '99%'
  42. });
  43. if ($("#smtpPort").val() == '') {
  44. $("#smtpPort").val(smtp_port.smtp);
  45. }
  46. changeServerType();
  47. // 邮件账号自动匹配域名
  48. $("#userName").mailAutoComplete({
  49. onChange:function(v){
  50. var site = v.replace(/.*@/, "");
  51. $("#inIp").val("mail." + site);
  52. $("#smtpIp").val("smtp." + site);
  53. }
  54. });
  55. tree = $("#treeUserMail").ligerTree({
  56. data:data,
  57. checkbox: false,
  58. onSelect: function(node){
  59. var disabled = node.data.isDef == '1' ? "disabled" : "";
  60. $("#btnSetDef").attr("disabled",disabled);
  61. editMailAccount(node.data.id);
  62. },
  63. });
  64. tree.selectNode(selNodeId);
  65. // 点击ssl复选框
  66. $(":checkbox").bind("click",function(){
  67. var id = this.id;
  68. var checked = this.checked;
  69. if(id == "smtpSSL"){
  70. $("#smtpPort").val(checked ? "465" : "25");
  71. }else if(id == "inSSL"){
  72. var serverType = $("select[name='mailUser.server']").val();
  73. var port = '';
  74. if("imap" == serverType){
  75. port = checked ? in_port.imap_ssl : in_port.imap;
  76. }else{
  77. port = checked ? in_port.pop_ssl : in_port.pop;
  78. }
  79. $("#inPort").val(port);
  80. }
  81. });
  82. });
  83. // 改变接收服务器类型时,改变端口号
  84. function changeServerType() {
  85. var serverType = $("select[name='mailUser.server']").val();
  86. $("#inSSL").attr("checked",false);
  87. $("#smtpSSL").attr("checked",false);
  88. if ("imap" == serverType) {
  89. $("#inPort").val(in_port.imap);
  90. }
  91. if ("pop3" == serverType) {
  92. $("#inPort").val(in_port.pop);
  93. }
  94. }
  95. function clearErrMsg(){
  96. $(".inputError").removeClass("inputError");
  97. $(".error_msg").empty();
  98. }
  99. function callBack(data) {
  100. clearErrMsg();
  101. $("#isEdit").val("1");
  102. $("#universalid").val(data[0].universalid);
  103. $("#userName").val(data[0].userName + "@" + data[0].domainName);
  104. $("#inCount").val(data[0].inCount);
  105. $("#userPassword").val(data[0].userPassword);
  106. // $("#isDefault").attr("checked","1" == data[0].isDefault);
  107. $("#inSSL").attr("checked","1" == data[0].inSSL);
  108. $("#smtpSSL").attr("checked","1" == data[0].smtpSSL);
  109. $("#smtpIp").val(data[0].smtpIp);
  110. $("#smtpPort").val(data[0].smtpPort);
  111. $("#inIp").val(data[0].inIp);
  112. $("#inPort").val(data[0].inPort);
  113. $("#server").val(data[0].server);
  114. }
  115. /*
  116. * 验证邮件账号是否存在
  117. */
  118. function checkUserName() {
  119. var userName = $("#userName").val();
  120. var name = userName.substring(0, userName.lastIndexOf("@"));
  121. var domain = userName.substring(userName.lastIndexOf("@") + 1,
  122. userName.length);
  123. var isEdit = $('#isEdit').val();
  124. var universalid = $('#universalid').val();
  125. var param = {
  126. "userName" : name,
  127. "domain" : domain,
  128. "isEdit" : isEdit,
  129. "universalid" : universalid
  130. };
  131. sendAjaxParam(param, "MTMailConfigAction.do?task=checkUserName&time="
  132. + new Date().getTime(), "json", userBack);
  133. }
  134. /*
  135. * 验证邮件账号是否存在回调函数
  136. */
  137. function userBack(data) {
  138. $("#checkUser").val(data);
  139. }
  140. /**
  141. * 提交表单
  142. */
  143. function submitForm() {
  144. clearErrMsg();
  145. var rs = $
  146. .validate({
  147. name : "userName",
  148. model : [
  149. {
  150. type : "require",
  151. msg : "请输入邮件账号!"
  152. },
  153. {
  154. type : "regex",
  155. regex : /^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/,
  156. msg : "请输入合法的邮箱地址!"
  157. } ]
  158. });
  159. rs = $.validate({
  160. name : "userPassword",
  161. model : [ {
  162. type : "require",
  163. msg : "请输入密码!"
  164. } ]
  165. }) && rs;
  166. rs = $.validate({
  167. name : "inIp",
  168. model : [ {
  169. type : "require",
  170. msg : "请输入接收邮件服务器!"
  171. } ]
  172. }) && rs;
  173. rs = $.validate({
  174. name : "inPort",
  175. model : [ {
  176. type : "require",
  177. msg : "请输入接收端口!"
  178. } ]
  179. }) && rs;
  180. rs = $.validate({
  181. name : "smtpIp",
  182. model : [ {
  183. type : "require",
  184. msg : "请输入发送服务器(SMTP)!"
  185. } ]
  186. }) && rs;
  187. rs = $.validate({
  188. name : "smtpPort",
  189. model : [ {
  190. type : "require",
  191. msg : "请输入正确的SMTP端口!"
  192. } ]
  193. }) && rs;
  194. rs = $.validate({
  195. name : "server",
  196. model : [ {
  197. type : "require",
  198. msg : "请选择接收服务器类型!"
  199. } ]
  200. }) && rs;
  201. if (rs) {
  202. checkUserName();
  203. if ($("#checkUser").val() == '1') {
  204. addFieldError("userName", "邮件账号已存在!");
  205. return;
  206. }else if ($("#checkUser").val() == '2') {
  207. addFieldError("userName", "该邮件账号已收件,不能修改!");
  208. return;
  209. }
  210. document.theForm.submit();
  211. }
  212. }
  213. /**
  214. * 新增邮箱账号
  215. */
  216. function addMailAccount() {
  217. clearErrMsg();
  218. $("#isEdit").val("");
  219. $("#universalid").val("");
  220. $("#userName").val("").focus();
  221. $("#inCount").val("10");
  222. $("#userPassword").val("");
  223. // $("[name = mailUser.isDefault]:checkbox").attr("checked", false);
  224. $("#smtpIp").val("");
  225. $("#server").val("pop3");
  226. $("#inIp").val("");
  227. changeServerType();
  228. }
  229. /**
  230. * 修改邮箱账号(回填)
  231. */
  232. function editMailAccount(id) {
  233. clearErrMsg();
  234. if (id == "") {
  235. $.ligerDialog.warn('请选择要修改的邮箱账号!');
  236. return;
  237. }
  238. var param = {
  239. "universalid" : id
  240. };
  241. sendAjaxParam(param, "MTMailConfigAction.do?task=toEdit&time="
  242. + new Date().getTime(), "json", callBack);
  243. }
  244. /**
  245. * 删除邮箱账号
  246. */
  247. function delMailAccount() {
  248. var universalid = $("#universalid").val();
  249. if (universalid == null || universalid == "") {
  250. $.ligerDialog.warn('请选择要删除的邮箱账号!');
  251. return;
  252. }
  253. var text = tree.getTextByID(universalid);
  254. $.ligerDialog.confirm("您是否要删除账号"+text+"?", function (yes) {
  255. if(yes){
  256. window.location.href = "${pageContext.request.contextPath }/MTMailConfigAction.do?task=del&universalid="
  257. + universalid;
  258. }
  259. });
  260. }
  261. /**
  262. * 设置 默认邮箱
  263. */
  264. function defaultMail(){
  265. var universalid = $("#universalid").val();
  266. if (universalid == null || universalid == "") {
  267. $.ligerDialog.warn('请选择邮箱账号!');
  268. return;
  269. }
  270. window.location.href = "${pageContext.request.contextPath }/MTMailConfigAction.do?task=defaultMail&universalid="
  271. + universalid;
  272. }
  273. </SCRIPT>
  274. </head>
  275. <Body>
  276. <div class="container-layout">
  277. <DIV id="btn_title" class="form-button">
  278. <input type="button" id="mail_save" onclick="toMailList()" class="l-button" style="width:100px;" value="返回邮件列表" />
  279. </DIV>
  280. <div class="forum-container">
  281. <div class="l-content">
  282. <div id="layout1">
  283. <div position="left" title="邮箱账号" class="user-tree-style">
  284. <div id="deptBtn">
  285. <input type="button" id="btnSetDef" value="设为默认" style="width: 70px;" class="l-button" onclick="defaultMail()" id="delProductTypeBtn" />&nbsp;
  286. <input type="button" value="新增" style="width: 50px;" class="l-button" onclick="addMailAccount()" id="addProductTypeBtn" />&nbsp;
  287. <input type="button" value="删除" style="width: 50px;" class="l-button" onclick="delMailAccount()" id="delProductTypeBtn" />
  288. </div>
  289. <ul id="treeUserMail"></ul>
  290. </div>
  291. <div position="center" id="centerDiv" title="账号明细">
  292. <div id="deptBtn" style="text-align: left;padding-left: 10px;">
  293. <input type="button" value="保存" class="l-button" onclick="submitForm();" />
  294. </div>
  295. <div style="overflow: hidden; clear: both;">
  296. <FORM method='POST' name="theForm" id="theForm"
  297. action="MTMailConfigAction.do?task=save">
  298. <input type="hidden" id="isEdit" name="isEdit" value="${isEdit}">
  299. <input type="hidden" id="universalid" name="universalid"
  300. value="${mailUser.universalid }">
  301. <input type="hidden"
  302. name="mailUser.inCount" id="inCount"
  303. value='${mailUser.inCount==null?10:mailUser.inCount }'
  304. style="width: 40px;" readonly="readonly" />
  305. <div class="forum-container">
  306. <Table border="0" cellspacing="1" cellpadding="0"
  307. class="l-table-edit line">
  308. <tr>
  309. <td class="l-table-edit-text">接收服务器类型 :</td>
  310. <td class="l-table-edit-td">
  311. <select name="mailUser.server" id="server" style="width:150px;" onchange="changeServerType();">
  312. <option value="pop3">POP3</option>
  313. <option value="imap">IMAP</option>
  314. </select>
  315. </td>
  316. </tr>
  317. <tr>
  318. <td class="l-table-edit-text">邮件账号:</td>
  319. <td class="l-table-edit-td"><input
  320. name="mailUser.userName" id="userName" AUTOCOMPLETE="off" type="text"
  321. value='${mailUser.userName }'> <input type="hidden"
  322. id="checkUser" name="checkUser" value=""></td>
  323. </tr>
  324. <tr>
  325. <td class="l-table-edit-text">密码:</td>
  326. <td class="l-table-edit-td"><input type="password"
  327. name="mailUser.userPassword" id="userPassword"
  328. value='${mailUser.userPassword }' /></td>
  329. </tr>
  330. <tr>
  331. <td class="l-table-edit-text">接收服务器:</td>
  332. <td class="l-table-edit-td"><input type="text"
  333. name="mailUser.inIp" id="inIp" value='${mailUser.inIp }' />
  334. &nbsp;&nbsp;<input type="checkbox" name="mailUser.inSSL"
  335. id="inSSL" <c:if test="mailUser.inSSL == '1'">checked="checked"</c:if>/>
  336. <label for="inSSL">SSL</label>
  337. &nbsp;&nbsp; 端口:<input type="text" name="mailUser.inPort"
  338. id="inPort" style="width:60px" value='${mailUser.inPort }' />
  339. </td>
  340. </tr>
  341. <tr>
  342. <td class="l-table-edit-text">发送服务器:</td>
  343. <td class="l-table-edit-td"><input type="text"
  344. name="mailUser.smtpIp" id="smtpIp" value='${mailUser.smtpIp }' />
  345. &nbsp;&nbsp;<input type="checkbox" name="mailUser.smtpSSL"
  346. id="smtpSSL" <c:if test="mailUser.smtpSSL == '1'">checked="checked"</c:if>/>
  347. <label for="smtpSSL">SSL</label>
  348. &nbsp;&nbsp; 端口:<input type="text" name="mailUser.smtpPort"
  349. id="smtpPort" style="width:60px" value='${mailUser.smtpPort }' />
  350. </td>
  351. </tr>
  352. <%--每次收取邮件数:
  353. <tr>
  354. <td class="l-table-edit-text" colspan="4">
  355. <%-- <input
  356. type="checkbox" name="mailUser.isDefault" id="isDefault"
  357. <c:if test="${mailUser.isDefault =='1'}">checked="checked"</c:if> />
  358. <label for="isDefault">默认收发账号</label>
  359. </td>
  360. </tr>
  361. --%>
  362. <tr>
  363. <td colspan="2">
  364. <p>&nbsp;</p><p>&nbsp;</p><p>&nbsp;</p>
  365. <br>
  366. </td>
  367. </tr>
  368. </TABLE>
  369. </div>
  370. </FORM>
  371. </div>
  372. </div>
  373. </div>
  374. </div>
  375. </div>
  376. </div>
  377. <%@ include file="/include/message.jsp"%>
  378. </BODY>
  379. </HTML>