⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sendmail.aspx.cs

📁 内部邮件管理系统 &#61656 读者须安装好IIS和Microsoft Visual Stutio.NET相关开发环境
💻 CS
字号:
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using FreeTextBoxControls  ;
using MailAdmin.BLL ;
using MailAdmin.COMMON ;

namespace MailAdmin.USL
{
	/// <summary>
	/// SendMail 的摘要说明。
	/// </summary>
	public class SendMail : System.Web.UI.Page
	{
		protected System.Web.UI.WebControls.Label Label3;
		protected System.Web.UI.WebControls.Label Label8;
		protected System.Web.UI.WebControls.RequiredFieldValidator R1;
		protected System.Web.UI.WebControls.TextBox tb_Title;
		protected System.Web.UI.WebControls.TextBox tb_SendTo;
		protected System.Web.UI.WebControls.TextBox tb_CcTo;
		protected System.Web.UI.WebControls.TextBox tb_SecretTo;
		protected System.Web.UI.WebControls.DropDownList ddl_Important;
		protected FreeTextBoxControls.FreeTextBox ftb_Content;
		protected System.Web.UI.WebControls.ImageButton i_SendTo;
		protected System.Web.UI.WebControls.ImageButton i_CcTo;
		protected System.Web.UI.WebControls.ImageButton i_SecretTo;
		protected System.Web.UI.WebControls.ImageButton i_Att;
		protected System.Web.UI.WebControls.Button b_Send;
		protected System.Web.UI.WebControls.Button b_Save;
		protected System.Web.UI.HtmlControls.HtmlInputHidden h_MailID;
		protected System.Web.UI.HtmlControls.HtmlInputHidden h_SentToID;
		protected System.Web.UI.WebControls.TextBox tb_AttName;
		protected System.Web.UI.HtmlControls.HtmlInputHidden h_CcToID;
		protected System.Web.UI.HtmlControls.HtmlInputHidden h_SecretToID;
		protected System.Web.UI.HtmlControls.HtmlInputHidden h_AttUpName;
		protected System.Web.UI.WebControls.TextBox tb_Time;
		protected System.Web.UI.HtmlControls.HtmlImage Img1;
		protected System.Web.UI.HtmlControls.HtmlInputHidden h_Status;
		protected System.Web.UI.WebControls.Label Label1;
		private Usr usr = null ;
	
		private void Page_Load(object sender, System.EventArgs e)
		{
			//登录用户
			usr = MailAdminGlobals.LoginUsr ;			
			if(usr == null)
			{
				//页面重定向到登录页面
				string url="Login.aspx" ;
				Page.Response.Redirect(url) ;
				return ;
			}

			// 如果是从草稿箱打开此页面,界面显示草稿内容
			if(!IsPostBack)
			{
				//发送时间默认为当天
				this.tb_Time.Text = CommHandler.Today() ;
				//重要性下拉框
				CommHandler.DDL_Init(this.ddl_Important,"IMPORTANT",false) ;

				int mailID = CommHandler.StringToInt(CommHandler.GetRequest(Page,"MAILID") );
				if(mailID != 0)
				{
					//显示邮件信息
					MailInfo mi = new MailInfo() ;
					int ret = mi.GetMailInfo(mailID) ;
					if(ret == 0)
					{
						ShowMailInfo(mi) ;
					}
				}
			}
			
		}

		private void ShowMailInfo(MailInfo mi)
		{
			this.tb_AttName.Text = mi.AttName ;
			this.tb_CcTo.Text = mi.CcTo ;
			this.tb_SecretTo.Text = mi.SecretTo ;
			this.tb_SendTo.Text = mi.SendTo ;
			this.tb_Time.Text = CommHandler.DateTimeToString(mi.SendTime) ;
			this.tb_Title.Text = mi.Title ;
			this.h_AttUpName.Value = mi.AttUpName ;
			this.h_CcToID.Value = mi.CcToID ;
			this.h_MailID.Value = mi.MailID.ToString() ;
			this.h_SecretToID.Value = mi.SecretToID ;
			this.h_SentToID.Value = mi.SendToID ;
			this.h_Status.Value = mi.Status ;

			if(mi.Status =="1" || mi.Status == "3")
			{
				//垃圾箱的邮件不能保存
				this.b_Send.Enabled = false ;
				this.b_Save.Enabled = false ;
			}
		}

		#region Web 窗体设计器生成的代码
		override protected void OnInit(EventArgs e)
		{
			//
			// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
			//
			InitializeComponent();
			base.OnInit(e);
		}
		
		/// <summary>
		/// 设计器支持所需的方法 - 不要使用代码编辑器修改
		/// 此方法的内容。
		/// </summary>
		private void InitializeComponent()
		{    
			this.i_SendTo.Click += new System.Web.UI.ImageClickEventHandler(this.i_SendTo_Click);
			this.i_CcTo.Click += new System.Web.UI.ImageClickEventHandler(this.i_CcTo_Click);
			this.i_SecretTo.Click += new System.Web.UI.ImageClickEventHandler(this.i_SecretTo_Click);
			this.i_Att.Click += new System.Web.UI.ImageClickEventHandler(this.i_Att_Click);
			this.b_Send.Click += new System.EventHandler(this.b_Send_Click);
			this.b_Save.Click += new System.EventHandler(this.b_Save_Click);
			this.Load += new System.EventHandler(this.Page_Load);

		}
		#endregion

		#region 添加收件人
		private void i_SendTo_Click(object sender, System.Web.UI.ImageClickEventArgs e)
		{
			SendTo() ;		
		}

		private void SendTo()
		{
			//弹出模态对话框以添加权限
			string url = "SendTo.aspx" ;
			CommHandler.IFrame_PopUp(Page,url,"600","620") ;	
		}

		private void i_CcTo_Click(object sender, System.Web.UI.ImageClickEventArgs e)
		{
			SendTo() ;		
		}

		private void i_SecretTo_Click(object sender, System.Web.UI.ImageClickEventArgs e)
		{
			SendTo() ;		
		}
		#endregion

		#region 添加附件
		private void i_Att_Click(object sender, System.Web.UI.ImageClickEventArgs e)
		{
			//弹出模态对话框以添加权限
			string url = "AddAtt.aspx?AttName="+this.tb_AttName.Text+"&UpName="+this.h_AttUpName.Value ;
			CommHandler.IFrame_PopUp(Page,url,"600","450") ;			
		}
		#endregion

		#region 发送邮件
		private void b_Send_Click(object sender, System.EventArgs e)
		{
			if(this.tb_CcTo.Text.Trim() == "" 
				&& this.tb_SendTo.Text.Trim() == "")
			{
				CommHandler.Alert(Page,"请至少选择一个收件人或抄送对象!") ;
				return ;
			}

			MailInfo mi = new MailInfo() ;
			//发送邮件 Status为0
			mi.Status = "0" ;
	
			int ret = Save(mi) ;
					
			
			if(ret > 0 )
			{				
				//保存后产生的ID
				mi.MailID = ret ;
				//保存邮件查看信息
				SaveRead(mi) ;

				CommHandler.Alert(Page,"邮件发送成功!") ;

				this.b_Send.Enabled = false ;
			}		
		}

		private void SaveRead(MailInfo mi)
		{
			string sendto = mi.SendToID+","+mi.CcToID+","+mi.SecretToID  ;
			if(sendto == "")
			{
				return ;
			}
			string readUsrID = "" ;
			
			string[] send = sendto.Split(new char[]{','}) ;
			ArrayList rsv = new ArrayList() ;

			for(int i=0;i<send.Length;i++)
			{
				if(send[i].StartsWith("G"))
				{
					//组
					int groupID = CommHandler.StringToInt(send[i].Substring(1)) ;
					DataTable grp = Usr.GetUserByGroup(groupID) ;
					for(int j=0;j<grp.Rows.Count;j++)
					{
						readUsrID = grp.Rows[j]["UserID"].ToString() ;
						if(readUsrID != "")
						{							
							//将用户添加进收件人的用户列表
							rsv.Add(readUsrID) ;
						}
					}
				
				}
				else if(send[i].StartsWith("U"))
				{
					//用户
					readUsrID = send[i].Substring(1) ;

					if(readUsrID != "")
					{						
						//将用户添加进收件人的用户列表
						rsv.Add(readUsrID) ;
					}
				}
			}
			for(int i=0;i<rsv.Count;i++)
			{
				//检查用户是否重复
				int uid = CommHandler.StringToInt(rsv[i].ToString()) ;
				if(uid != 0)
				{
					int re = 0 ;
					for(int j=0;j<i;j++)
					{
						int cp = CommHandler.StringToInt(rsv[j].ToString()) ;
						if(uid == cp)
						{
							re ++ ;
							break ;
						}
					}

					if(re==0)
					{
						//没有重复,保存数据进邮件查看表
						SaveIntoRead(mi,uid) ;
					}
				}
			}

		}

		private void SaveIntoRead(MailInfo mi,int readUsr)
		{
			//邮件查看信息对象
			MailRead mr = new MailRead() ;
			//绑定属性
			mr.Important = mi.Important ;
			mr.MailID = mi.MailID ;
			mr.ReadUsrID = readUsr ;
			mr.SendTime = mi.SendTime ;
			//添加
			mr.AddMailRead() ;
		}

		private void BindInfo(MailInfo mi)
		{
			mi.AttName = this.tb_AttName.Text ;
			mi.AttUpName = this.h_AttUpName.Value ;
			mi.CcTo = this.tb_CcTo.Text ;
			mi.CcToID = this.h_CcToID.Value ;
			mi.Content = this.ftb_Content.Text ;
			mi.Important = this.ddl_Important.SelectedValue ;
			mi.SecretTo = this.tb_SecretTo.Text ;
			mi.SecretToID = this.h_SecretToID.Value ; 
			mi.SendTo = this.tb_SendTo.Text ;
			mi.SendToID = this.h_SentToID.Value ;
			mi.Title = this.tb_Title.Text ;
			mi.UsrID = usr.UserID ;
			mi.SendTime = CommHandler.StringToDateTime(this.tb_Time.Text) ;
		}

		private int Save(MailInfo mi)
		{
			int ret = 0 ;  //保存结果

			int mailID = CommHandler.StringToInt(this.h_MailID.Value) ;			

			// 绑定邮件信息的其他属性
			BindInfo(mi) ;
			
			if(mailID != 0)
			{
				//草稿再发送,实为修改
				mi.MailID = mailID ;
				//调用修改函数
				ret = mi.ModifyMailInfo() ;			
			}
			else
			{
				//新邮件发送或存草稿
				ret = mi.AddMailInfo() ;
				h_MailID.Value = ret.ToString() ;
			}	

			return ret ;
		}
		#endregion

		#region 保存草稿
		private void b_Save_Click(object sender, System.EventArgs e)
		{
			//若邮件状态已经是发送,不能存为草稿
			if(h_Status.Value == "0")
			{
				CommHandler.Alert(Page,"邮件已经发送,不能存草稿!") ;
				return ;
			}
			MailInfo mi = new MailInfo() ;
			//发送邮件 Status为2
			mi.Status = "2" ;
			//调用保存函数存草稿
			Save(mi) ;		
		}
		#endregion
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -