欢迎访问 licqi IT技术
我们一直在努力

Jquery+Ajax+asp.net+sqlserver-编写的通用邮件管理(源码)

开始

邮件管理通常用在各个内部系统中,为了方便快捷的使用现有的代码开发一个邮件管理系统而诞生的。

准备条件

这是我的设计表结构,大家一看就懂了

  1. --邮件接收表  
  2. CREATE TABLE [dbo].[TAB_MAILSENDRESERVED](  
  3.     [FID] [nvarchar](36) NULL,  
  4.     [MAILGUID] [nvarchar](36) NULL,  
  5.     [SENDUSERID] [nvarchar](36) NULL,--发送人  
  6.     [RESERVEDUSERID] [nvarchar](36) NULL,--接收人  
  7.     [SENDTIME] [datetime] NULL,  
  8.     [sorttime] [int] identity(1,1) ,  
  9.     [ISBACKMSG] [int] DEFAULT ((0)) ,  
  10.     [STATUE] [int] DEFAULT ((0)),  
  11.     [ISDELETE] [int] DEFAULT ((0)),  
  12.     [SENDUSERNAME] [nvarchar](200) NULL,  
  13.     [RESERVEDNAME] [nvarchar](200) NULL  
  14. )  
  15.  
  16.  
  17.  
  18.    
  19. --邮件主题表  
  20. CREATE TABLE [dbo].[TAB_MAIL](  
  21.     [ID] [nvarchar](36) NULL,  
  22.     [TITLE] [nvarchar](300) NULL,  
  23.     [CONTENT] [text][/text] NULL,  
  24.     [ISATTACHFILE] [intdefault(0) ,  
  25.     [USINGCOUNT] [int] NULL  
  26. )  
  27.  
  28.  
  29.    
  30. --邮件附件表  
  31. CREATE TABLE [dbo].[TAB_MAILFILES](  
  32.     [FILEID] [nvarchar](36) NULL,  
  33.     [FILEPATH] [nvarchar](100) NULL,  
  34.     [FILETYPE] [nvarchar](10) NULL,  
  35.     [FILESIZE] [nvarchar](10) NULL,  
  36.     [USINGCOUNT] [intdefault(0) ,--这个很重要(判断当前多少用户使用该附件,最后一个删除邮件主体数据的才能物理删除该附件)  
  37.     [FILENAMES] [nvarchar](200) NULL  

现在只需要一个用户表中一个ID字段或者UserID字段。

截图:

 

地址在这里:http://10086bank.com/  里面的”邮件“

界面截图:(写新邮件,收件箱,发件箱,回收站之间可以拖动顺序) 界面打开默认获取收件箱数据。 如图:

支持自己给自己发邮件,定时发送邮件。

前端JS

  1. var userid = 1002; //test demo using value  
  2.         var filepath = []; //路径  
  3.         var filename = []; //名称  
  4.         var filesize = []; //大小  
  5.         var ckidlist = []; //判断是否存在  
  6.         var pagesizeindex = "", persize = 5;  
  7.         var gettype = 0; //0收件箱/1发件箱/2回收站  
  8.  
  9.         $(function () {  
  10.             $("#WNewEmail").hide(); //新邮件框隐藏  
  11.             $("#divsysmsg").hide(); //提示框  
  12.             $("myModalA").hide(); //选择人list  
  13.             $("#DivViewDT").hide(); //邮件详情  
  14.  
  15.             jQuery("#divall").validationEngine(); //验证  
  16.             jQuery("#divpeoplelistitle").validationEngine(); //验证  
  17.  
  18.             //写新邮件  
  19.             $("#newemialdiv").click(function () {  
  20.                 $("#WNewEmail").show();  
  21.                 $("#divshow").hide(); //关闭列表  
  22.                 $("#DivViewDT").hide();  
  23.  
  24.                 $("#inputSendobj").val(""); //选人id  
  25.                 $("#inputSendobjName").val(""); //选人name  
  26.                 $("#date01").val(""); //标题  
  27.                 $("#textarea2").val("")//内容  
  28.                 $("#lablefile").html(""); //显示附件名称  
  29.  
  30.  
  31.                 filename = [];  
  32.                 filepath = [];  
  33.                 filesize = [];  
  34.  
  35.                 $("#FilelistTbody").html(""); //clear files  
  36.                 $("#MailFileList2").hide();  
  37.  
  38.  
  39.                 $("body[style='margin:4px; font:10pt Arial,Verdana; cursor:text']").html("<br _moz_editor_bogus_node='TRUE'></br>");  
  40.  
  41.             });  
  42.             //取消写新邮件  
  43.             $("#btnclosedffsdfla").click(function () {  
  44.                 $("#WNewEmail").hide();  
  45.                 $("#divmaillist").show();  
  46.             });  
  47.             //关闭写新邮件  
  48.             $("#btncanceldiv").click(function () {  
  49.                 $("#WNewEmail").hide();  
  50.                 $("#divmaillist").show();  
  51.             });  
  52.             //关闭列表  
  53.             $("#close").click(function () {  
  54.                 $("#divshow").hide();  
  55.             });  
  56.             //modal show   选择发送人员  
  57.             $("#inputSendobjName").click(function () {  
  58.                 $("#myModalA").modal("show");  
  59.                 scname = "scname";  
  60.                 GetOrgName($("#searchpeopletxt").val());  
  61.             });  
  62.             //文本框查找机构  
  63.             $("#searchpeopletxt").keyup(function () {  
  64.                 GetOrgName($("#searchpeopletxt").val());  
  65.             });  
  66.             //关闭详细 显示列表  
  67.             $("#A4close").click(function () {  
  68.                 $("#DivViewDT").hide();  
  69.                 $("#divmaillist").show();  
  70.             });  
  71.             //check 选择人员提交  
  72.             $("#lasure").click(function () {  
  73.  
  74.                 var inputSendobjName = "";  
  75.                 ckidlist = [];  
  76.  
  77.                 $("#inputSendobj").val("");  
  78.                 var ob = $("input[name='checkboxA']");  
  79.                 $(ob).each(function () {  
  80.                     if ($(this).attr("checked") == "checked") {  
  81.                         $("#inputSendobj").val($("#inputSendobj").val() + $(this).attr("id") + ",");  
  82.  
  83.                         ckidlist.push($(this).attr("id"));  
  84.  
  85.                         inputSendobjName = inputSendobjName + $(this).attr("myname") + ",";  
  86.                     }  
  87.                 });  
  88.                 if ($("#inputSendobj").val() != "") {  
  89.                     $("#inputSendobj").val($("#inputSendobj").val().substr(0, $("#inputSendobj").val().length - 1));  
  90.                     inputSendobjName = inputSendobjName.substr(0, inputSendobjName.length - 1);  
  91.                 }  
  92.                 $("#inputSendobjName").val(inputSendobjName);  
  93.                 $("#Checkboxall").attr("checked"false);  
  94.             });  
  95.             //全选  
  96.             $("#Checkboxall").click(function () {  
  97.                 if ($("#Checkboxall").attr("checked") == "checked") {  
  98.                     var objall = $("input[name = 'checkboxA']");  
  99.                     $(objall).each(function () {  
  100.                         $(this).attr("checked"true);  
  101.                     })  
  102.                     return;  
  103.                 }  
  104.                 else {  
  105.                     var objall = $("input[name = 'checkboxA']");  
  106.                     $(objall).each(function () {  
  107.                         $(this).attr("checked"false);  
  108.                     })  
  109.                     return;  
  110.                 }  
  111.             });  
  112.             //反选  
  113.             $("#Checkboxback").click(function () {  
  114.                 if ($("#Checkboxback").attr("checked") == "checked") {  
  115.                     var objall = $("input[name = 'checkboxA']");  
  116.                     $(objall).each(function () {  
  117.                         if ($(this).attr("checked") == "checked")  
  118.                             $(this).attr("checked"false);  
  119.                     })  
  120.                     return;  
  121.                 }  
  122.                 else {  
  123.                     var objall = $("input[name = 'checkboxA']");  
  124.                     $(objall).each(function () {  
  125.                         if ($(this).attr("checked") == false)  
  126.                             $(this).attr("checked"true);  
  127.                     })  
  128.                     return;  
  129.                 }  
  130.             });  
  131.             //提交新邮件  
  132.             $("#btnsavedata").click(function () {  
  133.  
  134.                 if (!jQuery('#divall').validationEngine('validate')) {  
  135.                     return;  
  136.                 }  
  137.  
  138.                 if ($("#inputSendobj").val() == "") { alert("请选择收件人"); return false; }  
  139.  
  140.                 var para = {  
  141.                     "topeople": $("#inputSendobj").val(),  
  142.                     "title": $("#date01").val(),  
  143.                     "content": encodeURIComponent($("#textarea2").val()),  
  144.                     "filepath": filepath.toString(),  
  145.                     "filename": filename.toString(),  
  146.                     "filesize": filesize.toString(),  
  147.                     "type""addmsg",  
  148.                     "ttime": $("#txtsendtime").val() + " " + $("#txthour").val() + ":" + $("#txtmini").val() + ":00",  
  149.                     "userid": userid  
  150.                 };  
  151.  
  152.                 $.post("userajax/Mail.aspx", para, function (data) {  
  153.                     $("#inputSendobj").val(""); //选人  
  154.                     $("#date01").val(""); //标题  
  155.                     $("#textarea2").val("")//内容  
  156.                     $("#lablefile").html(""); //显示附件名称  
  157.  
  158.                     filename = [];  
  159.                     filepath = [];  
  160.                     filesize = [];  
  161.  
  162.                     pagesizeindex = "";  
  163.                     GetSendBox();  
  164.                 })  
  165.  
  166.             });  
  167.             $("#btnmore").click(function () {  
  168.                 if (gettype == 0)  
  169.                     GetResBox();  
  170.                 else if (gettype == 1)  
  171.                     GetSendBox();  
  172.                 else if (gettype == 2)  
  173.                     GetRebBox();  
  174.             })  
  175.  
  176.             //发  
  177.             $("#A1").click(function () {  
  178.                 pagesizeindex = "";  
  179.                 GetSendBox();  
  180.             });  
  181.             //收  
  182.             $("#A2").click(function () {  
  183.                 pagesizeindex = "";  
  184.                 GetResBox();  
  185.             });  
  186.             //回  
  187.             $("#A3").click(function () {  
  188.                 pagesizeindex = "";  
  189.                 GetRebBox();  
  190.             });  
  191.  
  192.             //发  
  193.             function GetSendBox() {  
  194.                 $("#thlable009").html("收件人");  
  195.                 gettype = 1;  
  196.                 $("#DivViewDT").hide();  
  197.                 $("#divmaillist").show();  
  198.  
  199.                 if (pagesizeindex == "")  
  200.                     $("#datalist").html("");  
  201.  
  202.                 $("#WNewEmail").hide();  
  203.                 $("#divshow").show();  
  204.                 $("#hlistname").html("<i class='icon-user'></i>发件箱");  
  205.  
  206.                 $.post("userajax/Mail.aspx", { "type""getmysenddata""userid": userid, "searchtype""1""pagesizeindex": pagesizeindex }, function (data) {  
  207.                     if (data == "-999") { alert("登录失效.请重新登录!"); return false; }  
  208.                     if (data == null || data == "no" || data == "") { $("#datainfoa").html("无数据!"); $("#btnmore").hide(); return; }  
  209.                     $("#datainfoa").html("");  
  210.  
  211.                     var objresult = $.parseJSON(data);  
  212.  
  213.                     if (objresult == null) {  
  214.                         $("#btnmore").hide();  
  215.                         return;  
  216.                     }  
  217.  
  218.                     pagesizeindex = objresult[objresult.length - 1].sorttime;  
  219.  
  220.                     if (objresult.length < persize)  
  221.                         $("#btnmore").hide();  
  222.                     else 
  223.                         $("#btnmore").show();  
  224.  
  225.  
  226.                     for (var i = 0; i < objresult.length; i++) {  
  227.                         $("#datalist").append("<tr id='TRList" + objresult[i].sorttime + "'><td>" + objresult[i].RESERVEDNAME + "</td><td class='center'>" + objresult[i].SENDTIME + "</td><td class='center'>" + objresult[i].TITLE + "</td><td class='center'><span class='label label-important'>" + "已发送" + "</span></td><td>" + (objresult[i].ISATTACHFILE == '1' ? "<span class='icon32 icon-color icon-link' title='.icon32  .icon-color  .icon-link ' onclick=maildo('file','" + objresult[i].ID + "," + objresult[i].FID + "','" + objresult[i].sorttime + "')></span>" : " ") + "</td><td class='center'><table border='0'><tr border='0'><td><a class='btn btn-success'    onclick=maildo('view','" + objresult[i].ID + "," + objresult[i].FID + "','" + objresult[i].sorttime + "')><i class='icon-zoom-in icon-white'></i> 查看</a></td><td><a class='btn btn-info'    onclick=maildo('forw','" + objresult[i].ID + "," + objresult[i].FID + "','" + objresult[i].sorttime + "')><i class='icon-edit icon-white'></i> 转发</a></td><td><a class='btn btn-danger'    onclick=maildo('deleteoutbox','" + objresult[i].ID + "," + objresult[i].FID + "','" + objresult[i].sorttime + "')><i class='icon-trash icon-white'></i>   删除</a></td></tr></table></td></tr>");  
  228.                     }  
  229.                 })  
  230.             }  
  231.  
  232.             //收  
  233.             function GetResBox() {  
  234.                 $("#thlable009").html("发件人");  
  235.                 gettype = 0;  
  236.                 $("#DivViewDT").hide();  
  237.                 $("#divmaillist").show();  
  238.  
  239.  
  240.                 if (pagesizeindex == "")  
  241.                     $("#datalist").html("");  
  242.  
  243.                 $("#WNewEmail").hide();  
  244.                 $("#divshow").show();  
  245.                 $("#hlistname").html("<i class='icon-user'></i>收件箱");  
  246.  
  247.                 $.post("userajax/Mail.aspx", { "type""getmysenddata""userid": userid, "searchtype""0""pagesizeindex": pagesizeindex }, function (data) {  
  248.                     if (data == "-999") { alert("登录失效.请重新登录!"); return false; }  
  249.                     if (data == null || data == "no" || data == "") { $("#datainfoa").html("无数据!"); $("#btnmore").hide(); return; }  
  250.                     $("#datainfoa").html("");  
  251.                     var objresult = $.parseJSON(data);  
  252.  
  253.                     if (objresult == null) {  
  254.                         $("#btnmore").hide();  
  255.                         return;  
  256.                     }  
  257.  
  258.                     pagesizeindex = objresult[objresult.length - 1].sorttime;  
  259.  
  260.                     if (objresult.length < persize)  
  261.                         $("#btnmore").hide();  
  262.                     else 
  263.                         $("#btnmore").show();  
  264.  
  265.                     for (var i = 0; i < objresult.length; i++) {  
  266.                         $("#datalist").append("<tr id='TRList" + objresult[i].sorttime + "'><td>" + objresult[i].SENDUSERNAME + "</td><td class='center'>" + objresult[i].SENDTIME + "</td><td class='center'>" + objresult[i].TITLE + "</td><td class='center'>" + (objresult[i].STATUE == "0" || objresult[i].STATUE == 0 ? "<span class='label label-important'>" : "<span class='label'>") + "" + (objresult[i].STATUE == "0" || objresult[i].STATUE == 0 ? "新邮件" : "已读") + "</span></td><td>" + (objresult[i].ISATTACHFILE == '1' ? "<span class='icon32 icon-color icon-link' title='.icon32  .icon-color  .icon-link ' onclick=maildo('file','" + objresult[i].ID + "," + objresult[i].FID + "','" + objresult[i].sorttime + "')></span>" : " ") + "</td><td class='center'><table border='0'><tr border='0'><td><a class='btn btn-success'    onclick=maildo('view','" + objresult[i].ID + "," + objresult[i].FID + "','" + objresult[i].sorttime + "')><i class='icon-zoom-in icon-white'></i> 查看</a></td><td><a class='btn btn-info'    onclick=maildo('forw','" + objresult[i].ID + "," + objresult[i].FID + "','" + objresult[i].sorttime + "')><i class='icon-edit icon-white'></i> 转发</a></td><td><a class='btn btn-danger'    onclick=maildo('deleteinbox','" + objresult[i].ID + "," + objresult[i].FID + "','" + objresult[i].sorttime + "')><i class='icon-trash icon-white'></i>   删除</a></td></tr></table></td></tr>");  
  267.                     }  
  268.                 })  
  269.             }  
  270.  
  271.             //回  
  272.             function GetRebBox() {  
  273.                 $("#thlable009").html("收件人");  
  274.                 gettype = 2;  
  275.                 $("#DivViewDT").hide();  
  276.                 $("#divmaillist").show();  
  277.  
  278.                 if (pagesizeindex == "")  
  279.                     $("#datalist").html("");  
  280.  
  281.                 $("#WNewEmail").hide();  
  282.                 $("#divshow").show();  
  283.                 $("#hlistname").html("<i class='icon-user'></i>回收站");  
  284.  
  285.                 $.post("userajax/Mail.aspx", { "type""getmysenddata""userid": userid, "searchtype""2""pagesizeindex": pagesizeindex }, function (data) {  
  286.  
  287.                     if (data == "-999") { alert("登录失效.请重新登录!"); return false; }  
  288.  
  289.                     if (data == null || data == "no" || data == "") { $("#datainfoa").html("无数据!"); $("#btnmore").hide(); return; }  
  290.  
  291.                     $("#datainfoa").html("");  
  292.                     var objresult = $.parseJSON(data);  
  293.  
  294.                     if (objresult == null) {  
  295.                         $("#btnmore").hide();  
  296.                         return;  
  297.                     }  
  298.  
  299.                     pagesizeindex = objresult[objresult.length - 1].sorttime;  
  300.  
  301.                     if (objresult.length < persize)  
  302.                         $("#btnmore").hide();  
  303.                     else 
  304.                         $("#btnmore").show();  
  305.  
  306.                     for (var i = 0; i < objresult.length; i++) {  
  307.                         $("#datalist").append("<tr id='TRList" + objresult[i].sorttime + "'><td>" + objresult[i].RESERVEDNAME + "</td><td class='center'>" + objresult[i].SENDTIME + "</td><td class='center'>" + objresult[i].TITLE + "</td><td class='center'><span class='label'>已进回收站</span></td><td>" + (objresult[i].ISATTACHFILE == '1' ? "<span class='icon32 icon-color icon-link' title='.icon32  .icon-color  .icon-link ' onclick=maildo('filedelete','" + objresult[i].ID + "," + objresult[i].FID + "','" + objresult[i].sorttime + "')></span>" : " ") + "</td><td class='center'><table border='0'><tr border='0'><td><a class='btn btn-success'    onclick=maildo('backview','" + objresult[i].ID + "," + objresult[i].FID + "','" + objresult[i].sorttime + "')><i class='icon-zoom-in icon-white'></i> 还原</a></td><td><a class='btn btn-danger'    onclick=maildo('deleteon','" + objresult[i].ID + "," + objresult[i].FID + "','" + objresult[i].sorttime + "')><i class='icon-trash icon-white'></i>   彻底删除</a></td></tr></table></td></tr>");  
  308.                     }  
  309.                 })  
  310.             }  
  311.  
  312.             load();  
  313.  
  314.             //页面加载 默认显示收件箱  
  315.             function load() {  
  316.                 GetResBox();  
  317.             }  
  318.  
  319.             //删除附件(多个)  
  320.             $("#spdelete").click(function () {  
  321.                 if (confirm("确定删除吗?") == falsereturn;  
  322.  
  323.                 if (ismyupload == 0) { filename = []; filepath = []; filesize = []; $("#spdelete").hide(); $("#lablefile").html(""); return; }  
  324.                 $.post("userajax/Mail.aspx", { "type""deletefile""pathlist": filepath.toString() }, function (data) {  
  325.                     if (data == "-999") { alert("登录失效.请重新登录!"); return false; }  
  326.                     if (data == "1")  
  327.                         $("#spdelete").hide();  
  328.                     $("#lablefile").html("");  
  329.                 })  
  330.             })  
  331.  
  332.             /*  
  333.             // 文件上传 ------------------------- begin(华丽的分隔符) ---------------------------  
  334.             var button = $('#adlaimgFile'), interval;  
  335.             new AjaxUpload(button, {  
  336.             action: 'userajax/FileMail.ashx',  
  337.             name: 'imgFile',  
  338.             onSubmit: function (file, ext) {  
  339.             this.disable();  
  340.             interval = window.setInterval(function () {  
  341.             var text = button.text();  
  342.             }, 200);  
  343.             },  
  344.             onComplete: function (file, response) {  
  345.             window.clearInterval(interval);  
  346.             this.enable();  
  347.             response = response.replace(/<pre>/ig, "").replace(/<\/pre>/ig, ""); //过滤  
  348.             var obj = $.parseJSON(response);  
  349.             if (obj[0].filetruename == "ferror") { alert("该文件类型不允许上传!"); return false; }  
  350.             if (obj[0].filetruename == "big") { alert("文件过大!"); return false; }  
  351.             filename.push(obj[0].filetruename);  
  352.             filepath.push(obj[0].filepath);  
  353.             filesize.push(obj[0].filesize);  
  354.  
  355.             LoadJSFile();  
  356.             }  
  357.             });  
  358.             */ 
  359.  
  360.             // window.onload = load(); //默认加载收件箱数据  
  361.         })  
  362.         //dom end  
  363.  
  364.         //标识是否为自己上传变量  
  365.         var ismyupload = 1;  
  366.  
  367.         //加载列表  
  368.         function LoadJSFile() {  
  369.             $("#FilelistTbody").html("");  
  370.  
  371.             if (filename.length > 0) {  
  372.                 $("#MailFileList2").show();  
  373.             }  
  374.             else {  
  375.                 $("#MailFileList2").hide();  
  376.                 return;  
  377.             }  
  378.             for (var i = 0; i < filename.length; i++)  
  379.                 $("#FilelistTbody").append("<tr id='trf" + i + "'><td>" + filename[i] + "</td><td class='center'>" + filesize[i] + "k </td><td class='center'>" + filename[i].substr(filename[i].lastIndexOf(".") + 1) + "</td><td class='center'><span class='icon icon-color icon-close'  onclick=deleteBypath('" + encodeURIComponent(filepath[i]) + "','" + i + "')> </span></td></tr>");  
  380.         }  
  381.  
  382.  
  383.         //删除单个附件  
  384.         function deleteBypath(id, i) {  
  385.            if(confirm("确定删除吗?")==false)return;  
  386.           
  387.             //不能删除邮件转发的附件  
  388.             if (ismyupload == 0) {  
  389.                 filename.pop(i);  
  390.                 filepath.pop(i);  
  391.                 filesize.pop(i);  
  392.                 $("#trf" + i).remove();  
  393.                 if (filename.length < 1)  
  394.                     $("#MailFileList2").hide();  
  395.                 else 
  396.                     $("#MailFileList2").show();  
  397.                 return;  
  398.             }  
  399.             //物理删除  
  400.             $.post("userajax/Mail.aspx", { "type""deletefileone""pathlist": id }, function (data) {  
  401.                 if(data=="-999"){alert("登录失效.请重新登录!");return false;}  
  402.                 if (data == "1")  
  403.                     $("#trf" + i).remove();  
  404.                 filename.pop(i);  
  405.                 filepath.pop(i);  
  406.                 filesize.pop(i);  
  407.                 if (filename.length < 1)  
  408.                     $("#MailFileList2").hide();  
  409.                 else 
  410.                     $("#MailFileList2").show();  
  411.             })  
  412.         }  
  413.  
  414.         //function for button  
  415.         function maildo(type, id,num) {  
  416.             //收件箱删除 伪删除  
  417.             if (type == "deleteinbox") {  
  418.                 if (confirm("确定删除吗?") == falsereturn;  
  419.                 $.post("userajax/Mail.aspx", { "type""deleteinbox""userid": userid, "idlist": id }, function (data) {  
  420.                     if (data == "-999") { alert("登录失效.请重新登录!"); return false; }  
  421.                     $("#TRList" + num).remove();  
  422.                     MSG();  
  423.                     //pagesizeindex = "";  
  424.                     //GetResBox();  
  425.                 });  
  426.             }  
  427.             //发件箱删除 伪删除  
  428.             else if (type == "deleteoutbox") {  
  429.                 if (confirm("确定删除吗?") == falsereturn;  
  430.                 $.post("userajax/Mail.aspx", { "type""deleteoutbox""userid": userid, "idlist": id }, function (data) {  
  431.                     if (data == "-999") { alert("登录失效.请重新登录!"); return false; }  
  432.                     $("#TRList" + num).remove();  
  433.                     MSG();  
  434.                     //pagesizeindex = "";  
  435.                     //GetSendBox();  
  436.                 });  
  437.             }  
  438.             //回收站返回  
  439.             else if (type == "backview") {  
  440.                 $.post("userajax/Mail.aspx", { "type""backview""userid": userid, "idlist": id }, function (data) {  
  441.                     if (data == "-999") { alert("登录失效.请重新登录!"); return false; }  
  442.                     $("#TRList" + num).remove();  
  443.                     MSG();  
  444.                     //pagesizeindex = "";  
  445.                     //GetRebBox();  
  446.                 });  
  447.             }  
  448.             //回收站彻底删除  
  449.             else if (type == "deleteon") {  
  450.                 if (confirm("确定删除吗?") == falsereturn;  
  451.                 $.post("userajax/Mail.aspx", { "type""deleteon""userid": userid, "idlist": id }, function (data) {  
  452.                     if (data == "-999") { alert("登录失效.请重新登录!"); return false; }  
  453.                     $("#TRList" + num).remove();  
  454.                     MSG();  
  455.                     //pagesizeindex = "";  
  456.                     //GetRebBox();  
  457.                 });  
  458.             }  
  459.             //查看邮件  
  460.             else if (type == "view") {  
  461.                 $("#DivViewDT").show();  
  462.                 $.post("userajax/Mail.aspx", { "type""view""userid": userid, "idlist": id }, function (data) {  
  463.                     if (data == "-999") { alert("登录失效.请重新登录!"); return false; }  
  464.  
  465.                     // if ($("#TRList" + id).html().toString().indexOf('新邮件') > -1)  
  466.                     // $("#TRList" + id).html($("#TRList" + id).html().replace("label label-important", "label").replace("新邮件", "已读"));  
  467.  
  468.                     $("#divmaillist").hide();  
  469.                     $("#DivViewDT").show();  
  470.  
  471.                     var obj = $.parseJSON(data);  
  472.  
  473.                     $("#ViewTitle").html("邮件主题:" + obj[0].TITLE);  
  474.                     $("#sendlable").html("发送人:" + obj[0].SENDUSERNAME);  
  475.                     $("#reserveduname").html("接收人:" + obj[0].RESERVEDNAME);  
  476.                     $("#sendtime").html("发送时间:" + obj[0].SENDTIME);  
  477.  
  478.                     $("#contentlable").html(decodeURIComponent(obj[0].CONTENT));  
  479.                     MSG();  
  480.  
  481.                 });  
  482.                 //附件  
  483.                 $("#Tbodyfilelistview").html("");  
  484.                 $.post("userajax/Mail.aspx", { "type""file""id": id }, function (data) {  
  485.                     if (data == "-999") { alert("登录失效.请重新登录!"); return false; }  
  486.                     if (data == null || data == "no" || data == "") { $("#Afileresult").html("无附件!"); $("#tablefilelist").hide(); return; }  
  487.                     $("#Afileresult").html("");  
  488.                     $("#tablefilelist").show();  
  489.                     var obj = $.parseJSON(data);  
  490.                     for (var i = 0; i < obj.length; i++) {  
  491.                         $("#Tbodyfilelistview").append("<tr><td><a target='_blank' href='Ajax/" + obj[i].FILEPATH + "'>" + obj[i].FILENAME + "</a></td><td class='center'>" + obj[i].FILESIZE + "k </td><td class='center'>" + obj[i].FILETYPE + "</td><td class='center'><span class='label label-success'> <i class='icon-download' onclick=downloadfile('" + obj[i].FILEPATH + "')></i>  </span></td></tr>");  
  492.                     }  
  493.                 })  
  494.             }  
  495.             //转发  
  496.             else if (type == "forw") {  
  497.                 $("#divmaillist").hide();  
  498.                 $("#WNewEmail").show();  
  499.  
  500.                 $("#inputSendobj").val("");  
  501.                 ismyupload = 0; //控制不能删除别人附件  
  502.                 filename = []; filepath = []; filesize = [];  
  503.  
  504.                 //转发带附件的邮件  
  505.                 $.post("userajax/Mail.aspx", { "type""file""id": id }, function (data) {  
  506.                     if (data == "-999") { alert("登录失效.请重新登录!"); return false; }  
  507.                     if (data == null || data == "no" || data == "") { $("#lablefile").html(""); return; }  
  508.                     $("#lablefile").html("");  
  509.                     var obj = $.parseJSON(data);  
  510.                     for (var i = 0; i < obj.length; i++) {  
  511.                         filename.push(obj[i].FILENAME);  
  512.                         filepath.push(obj[i].FILEPATH);  
  513.                         filesize.push(obj[i].FILESIZE);  
  514.                     }  
  515.                     LoadJSFile();  
  516.                 })  
  517.  
  518.                 $.post("userajax/Mail.aspx", { "type""view""userid": userid, "idlist": id }, function (data) {  
  519.                     if (data == "-999") { alert("登录失效.请重新登录!"); return false; }  
  520.  
  521.  
  522.                     // if ($("#TRList" + id).html().toString().indexOf('新邮件') > -1)  
  523.                     // $("#TRList" + id).html($("#TRList" + id).html().replace("label label-important", "label").replace("新邮件", "已读"));  
  524.  
  525.                     var obj = $.parseJSON(data);  
  526.  
  527.                     $("#date01").val(obj[0].TITLE);  
  528.  
  529.                     $("#textarea2").val(decodeURIComponent(obj[0].CONTENT));  
  530.  
  531.                     MSG();  
  532.                 })  
  533.             }  
  534.             //附件  
  535.             else if (type == "filedelete" || type == "file") {  
  536.                 if (type == "filedelete") { alert("回收站中无法查看附件!"); return; }  
  537.                 $("#DivFiles").modal("show");  
  538.                 $("#FileListdata").html("");  
  539.                 $.post("userajax/Mail.aspx", { "type""file""id": id }, function (data) {  
  540.                     if (data == "-999") { alert("登录失效.请重新登录!"); return false; }  
  541.                     if (data == null || data == "no" || data == "") { $("#fileinfoa").html("无数据!"); return; }  
  542.                     $("#fileinfoa").html("");  
  543.                     var obj = $.parseJSON(data);  
  544.                     for (var i = 0; i < obj.length; i++) {  
  545.                         $("#FileListdata").append("<tr><td><a target='_blank' href='Ajax/" + obj[i].FILEPATH + "'>" + obj[i].FILENAME + "</a></td><td class='center'>" + obj[i].FILESIZE + "k </td><td class='center'>" + obj[i].FILETYPE + "</td><td class='center'><span class='label label-success'> <i class='icon-download' onclick=downloadfile('" + obj[i].FILEPATH + "')></i>  </span></td></tr>");  
  546.                     }  
  547.                 })  
  548.             }  
  549.         }  
  550.           
  551.         //下载  
  552.         function downloadfile(fpath) {  
  553.             $.post("Ajax/Floor.aspx", { "type""existsfile""filep": fpath }, function (data) {  
  554.                 if (data == "noyes") {  
  555.                     alert("文件不存在!");  
  556.                     return;  
  557.                 }  
  558.                 else 
  559.                     window.open("Ajax/" + fpath);  
  560.                 //location.href = "Ajax/" + fpath;  
  561.             });  
  562.         }  
  563.  
  564.         //消息提示框  
  565.         function MSG() {  
  566.             $("#divsysmsg").show();  
  567.             setInterval("$('#divsysmsg').hide();", 2000);  
  568.         }  
  569.         //获取名称  
  570.         var scname="scname";  
  571.         function GetOrgName(name) {  
  572.           
  573.             if(scname==name){return;}  
  574.             scname=name;  
  575.               
  576.             if (name == "'" || name == "," || name == "!" || name == '"') { $("#acount").html("非法字符!"); return; } //过滤字符  
  577.             $("#divchecklist").html("");  
  578.             $("#imgprogress").show();  
  579.             $("#acount").html("");  
  580.  
  581.             $.ajax({  
  582.                 url: "userajax/Mail.aspx",  
  583.                 data: { "type""getorgname""searchval": name },  
  584.                 type: "POST",  
  585.                 beforsend: function () {  
  586.  
  587.                 },  
  588.                 success: function (a) {  
  589.                     setInterval("$('#imgprogress').hide();", 1500);  
  590.                     if (a == "-999") { alert("登录失效.请重新登录!"); return false; }  
  591.                     if (a == "no") { $("#acount").html("0条结果"); return false; } //无数据  
  592.                     var obj = $.parseJSON(a);  
  593.                     $("#acount").html(obj.length + "条结果"); //get counts number  
  594.                     for (var i = 0; i < obj.length; i++) {  
  595.  
  596.                         if (exists(obj[i].USERID) == true)  
  597.                             $("#divchecklist").append("<p><input  checked='checked'  type='checkbox' myname='" + obj[i].MYUSERNAME + "' name='checkboxA' id='" + obj[i].USERID + "' />" + obj[i].MYUSERNAME + "</p>");  
  598.                         else 
  599.                             $("#divchecklist").append("<p><input type='checkbox'  myname='" + obj[i].MYUSERNAME + "' name='checkboxA' id='" + obj[i].USERID + "' />" + obj[i].MYUSERNAME + "</p>");  
  600.                     }  
  601.                 }  
  602.             })  
  603.         }  
  604.           
  605.         //判断是否选中该数据  
  606.         function exists(id) {  
  607.             for (var i = 0; i < ckidlist.length; i++) {  
  608.                 if (ckidlist[i] == id)  
  609.                     return true;  
  610.             }  
  611.             return false;  
  612.         }  
  613.  
  614.         //发  
  615.         function GetSendBox() {  
  616.             $("#thlable009").html("收件人");  
  617.             gettype = 1;  
  618.             $("#DivViewDT").hide();  
  619.             $("#divmaillist").show();  
  620.  
  621.             if (pagesizeindex == "")  
  622.                 $("#datalist").html("");  
  623.  
  624.             $("#WNewEmail").hide();  
  625.             $("#divshow").show();  
  626.             $("#hlistname").html("<i class='icon-user'></i>发件箱");  
  627.  
  628.             $.post("userajax/Mail.aspx", { "type""getmysenddata""userid": userid, "searchtype""1""pagesizeindex": pagesizeindex }, function (data) {  
  629.                 if (data == "-999") { alert("登录失效.请重新登录!"); return false; }  
  630.                 if (data == null || data == "no" || data == "") { $("#datainfoa").html("无数据!"); $("#btnmore").hide(); return; }  
  631.                 $("#datainfoa").html("");  
  632.  
  633.                 var objresult = $.parseJSON(data);  
  634.  
  635.                 if (objresult == null) {  
  636.                     $("#btnmore").hide();  
  637.                     return;  
  638.                 }  
  639.  
  640.                 pagesizeindex = objresult[objresult.length - 1].sorttime;  
  641.  
  642.                 if (objresult.length < persize)  
  643.                     $("#btnmore").hide();  
  644.                 else 
  645.                     $("#btnmore").show();  
  646.  
  647.  
  648.                 for (var i = 0; i < objresult.length; i++) {  
  649.                     $("#datalist").append("<tr id='TRList" + objresult[i].sorttime + "'><td>" + objresult[i].RESERVEDNAME + "</td><td class='center'>" + objresult[i].SENDTIME + "</td><td class='center'>" + objresult[i].TITLE + "</td><td class='center'><span class='label label-important'>" + "已发送" + "</span></td><td>" + (objresult[i].ISATTACHFILE == '1' ? "<span class='icon32 icon-color icon-link' title='.icon32  .icon-color  .icon-link ' onclick=maildo('file','" + objresult[i].ID + "," + objresult[i].FID + "','" + objresult[i].sorttime + "')></span>" : " ") + "</td><td class='center'><table border='0'><tr border='0'><td><a class='btn btn-success'    onclick=maildo('view','" + objresult[i].ID + "," + objresult[i].FID + "','" + objresult[i].sorttime + "')><i class='icon-zoom-in icon-white'></i> 查看</a></td><td><a class='btn btn-info'    onclick=maildo('forw','" + objresult[i].ID + "," + objresult[i].FID + "','" + objresult[i].sorttime + "')><i class='icon-edit icon-white'></i> 转发</a></td><td><a class='btn btn-danger'    onclick=maildo('deleteoutbox','" + objresult[i].ID + "," + objresult[i].FID + "','" + objresult[i].sorttime + "')><i class='icon-trash icon-white'></i>   删除</a></td></tr></table></td></tr>");  
  650.                 }  
  651.             })  
  652.         }  
  653.  
  654.         //收  
  655.         function GetResBox() {  
  656.             $("#thlable009").html("发件人");  
  657.             gettype = 0;  
  658.             $("#DivViewDT").hide();  
  659.             $("#divmaillist").show();  
  660.  
  661.  
  662.             if (pagesizeindex == "")  
  663.                 $("#datalist").html("");  
  664.  
  665.             $("#WNewEmail").hide();  
  666.             $("#divshow").show();  
  667.             $("#hlistname").html("<i class='icon-user'></i>收件箱");  
  668.  
  669.             $.post("userajax/Mail.aspx", { "type""getmysenddata""userid": userid, "searchtype""0""pagesizeindex": pagesizeindex }, function (data) {  
  670.                 if (data == "-999") { alert("登录失效.请重新登录!"); return false; }  
  671.                 if (data == null || data == "no" || data == "") { $("#datainfoa").html("无数据!"); $("#btnmore").hide(); return; }  
  672.                 $("#datainfoa").html("");  
  673.                 var objresult = $.parseJSON(data);  
  674.  
  675.                 if (objresult == null) {  
  676.                     $("#btnmore").hide();  
  677.                     return;  
  678.                 }  
  679.  
  680.                 pagesizeindex = objresult[objresult.length - 1].sorttime;  
  681.  
  682.                 if (objresult.length < persize)  
  683.                     $("#btnmore").hide();  
  684.                 else 
  685.                     $("#btnmore").show();  
  686.  
  687.                 for (var i = 0; i < objresult.length; i++) {  
  688.                     $("#datalist").append("<tr id='TRList" + objresult[i].sorttime + "'><td>" + objresult[i].SENDUSERNAME + "</td><td class='center'>" + objresult[i].SENDTIME + "</td><td class='center'>" + objresult[i].TITLE + "</td><td class='center'>" + (objresult[i].STATUE == "0" || objresult[i].STATUE == 0 ? "<span class='label label-important'>" : "<span class='label'>") + "" + (objresult[i].STATUE == "0" || objresult[i].STATUE == 0 ? "新邮件" : "已读") + "</span></td><td>" + (objresult[i].ISATTACHFILE == '1' ? "<span class='icon32 icon-color icon-link' title='.icon32  .icon-color  .icon-link ' onclick=maildo('file','" + objresult[i].ID + "," + objresult[i].FID + "','" + objresult[i].sorttime + "')></span>" : " ") + "</td><td class='center'><table border='0'><tr border='0'><td><a class='btn btn-success'    onclick=maildo('view','" + objresult[i].ID + "," + objresult[i].FID + "','" + objresult[i].sorttime + "')><i class='icon-zoom-in icon-white'></i> 查看</a></td><td><a class='btn btn-info'    onclick=maildo('forw','" + objresult[i].ID + "," + objresult[i].FID + "','" + objresult[i].sorttime + "')><i class='icon-edit icon-white'></i> 转发</a></td><td><a class='btn btn-danger'    onclick=maildo('deleteinbox','" + objresult[i].ID + "," + objresult[i].FID + "','" + objresult[i].sorttime + "')><i class='icon-trash icon-white'></i>   删除</a></td></tr></table></td></tr>");  
  689.                 }  
  690.             })  
  691.         }  
  692.  
  693.         //回  
  694.         function GetRebBox() {  
  695.             $("#thlable009").html("收件人");  
  696.             gettype = 2;  
  697.             $("#DivViewDT").hide();  
  698.             $("#divmaillist").show();  
  699.  
  700.  
  701.             if (pagesizeindex == "")  
  702.                 $("#datalist").html("");  
  703.  
  704.             $("#WNewEmail").hide();  
  705.             $("#divshow").show();  
  706.             $("#hlistname").html("<i class='icon-user'></i>回收站");  
  707.  
  708.             $.post("userajax/Mail.aspx", { "type""getmysenddata""userid": userid, "searchtype""2""pagesizeindex": pagesizeindex }, function (data) {  
  709.  
  710.                 if (data == "-999") { alert("登录失效.请重新登录!"); return false; }  
  711.  
  712.                 if (data == null || data == "no" || data == "") { $("#datainfoa").html("无数据!"); $("#btnmore").hide(); return; }  
  713.  
  714.                 $("#datainfoa").html("");  
  715.                 var objresult = $.parseJSON(data);  
  716.  
  717.                 if (objresult == null) {  
  718.                     $("#btnmore").hide();  
  719.                     return;  
  720.                 }  
  721.  
  722.                 pagesizeindex = objresult[objresult.length - 1].sorttime;  
  723.  
  724.                 if (objresult.length < persize)  
  725.                     $("#btnmore").hide();  
  726.                 else 
  727.                     $("#btnmore").show();  
  728.  
  729.                 for (var i = 0; i < objresult.length; i++) {  
  730.                     $("#datalist").append("<tr id='TRList" + objresult[i].sorttime + "'><td>" + objresult[i].RESERVEDNAME + "</td><td class='center'>" + objresult[i].SENDTIME + "</td><td class='center'>" + objresult[i].TITLE + "</td><td class='center'><span class='label'>已进回收站</span></td><td>" + (objresult[i].ISATTACHFILE == '1' ? "<span class='icon32 icon-color icon-link' title='.icon32  .icon-color  .icon-link ' onclick=maildo('filedelete','" + objresult[i].ID + "," + objresult[i].FID + "','" + objresult[i].sorttime + "')></span>" : " ") + "</td><td class='center'><table border='0'><tr border='0'><td><a class='btn btn-success'    onclick=maildo('backview','" + objresult[i].ID + "," + objresult[i].FID + "','" + objresult[i].sorttime + "')><i class='icon-zoom-in icon-white'></i> 还原</a></td><td><a class='btn btn-danger'    onclick=maildo('deleteon','" + objresult[i].ID + "," + objresult[i].FID + "','" + objresult[i].sorttime + "')><i class='icon-trash icon-white'></i>   彻底删除</a></td></tr></table></td></tr>");  
  731.                 }  
  732.             })  
  733.         } 

底层实现

(分条数获取数据)

  1. object obj = Request.Form.Get("type");  
  2.  
  3.         if (obj == null || obj.ToString() == "") { Response.Write("error"); Response.End(); }  
  4.  
  5.         //收件箱 发件箱 回收站  
  6.         if (obj.ToString() == "getmysenddata")  
  7.             Response.Write(getmysenddata(Common.GetUserCode(), int.Parse(Request.Form.Get("searchtype")), Request.Form.Get("pagesizeindex")));  
  8.         //收件箱删除  
  9.         else if (obj.ToString() == "deleteinbox")  
  10.             Response.Write(deletevirtual(Common.GetUserCode(), Request.Form.Get("idlist")).ToString());  
  11.         //发件箱删除  
  12.         else if (obj.ToString() == "deleteoutbox")  
  13.             Response.Write(deletevirtual(Common.GetUserCode(), Request.Form.Get("idlist"), 2).ToString());  
  14.         //还原  
  15.         else if (obj.ToString() == "backview")  
  16.             Response.Write(UpdateToBackBox(Request.Form.Get("idlist")).ToString());  
  17.         //彻底删除  
  18.         else if (obj.ToString() == "deleteon")  
  19.             Response.Write(deleteon(Request.Form.Get("idlist")).ToString());  
  20.         //查看  
  21.         else if (obj.ToString() == "view")  
  22.             Response.Write(UpdateNumStatue(Request.Form.Get("idlist")));  
  23.         //发送新邮件  
  24.         else if (obj.ToString() == "addmsg")  
  25.             Response.Write(AddMsg() + "");  
  26.         //查看附件  
  27.         else if (obj.ToString() == "file")  
  28.             Response.Write(GetOneMailFiles(Request.Form.Get("id")));  
  29.         //删除自己上传的附件  
  30.         else if (obj.ToString() == "deletefile")  
  31.             Response.Write(DeleteFileByMyself(Request.Form.Get("pathlist")).ToString());  
  32.         //删除自己上传的附件  
  33.         else if (obj.ToString() == "deletefileone")  
  34.             Response.Write(DeleteFileByMyself(Request.Form.Get("pathlist"), 1).ToString());  
  35.         //获取机构名称  
  36.         else if (obj.ToString() == "getorgname")  
  37.             Response.Write(GetOrganizationName());  
  38.         //查询用户消息  
  39.         else if (obj.ToString() == "getusernews")  
  40.             Response.Write(GetNewsByNotRead(Common.GetUserCode())); 

最后

需要源码的进入:http://10086bank.com/   点击邮件进入底部下载即可。

人一辈子不会因为你做了什么而后悔,只会因为你没做什么而后悔。

2014年,不平凡的一年。

END

原文链接:http://www.cnblogs.com/chinhi/p/opencodefor10086bank.html

【编辑推荐】

  1. 30个jQuery & CSS3加载动画和进度栏插件
  2. 整合jQuery Mobile+AngularJs 经验谈
  3. Web最佳实践:JQuery高性能优化
  4. 让网站动起来!12款优秀的 jQuery 动画插件推荐
  5. PHP 还是 ASP.NET:我做了正确选择么?

赞(0) 打赏
未经允许不得转载:licqi IT技术 » Jquery+Ajax+asp.net+sqlserver-编写的通用邮件管理(源码)
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!

 

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏