📄 sendmail.aspx.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 + -