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

📄 mail.cs

📁 除了具有传统OA的邮件、工作流、文档等功能外
💻 CS
📖 第 1 页 / 共 2 页
字号:
									   data.MakeInParam("@Username",  SqlDbType.NVarChar, 50, username),
									   data.MakeInParam("@Title",  SqlDbType.NVarChar , 30, title),
									   data.MakeInParam("@Email",  SqlDbType.NVarChar , 200, email),
									   data.MakeInParam("@SmtpAuth",  SqlDbType.Bit, 1, smtpauth),
									   data.MakeInParam("@SmtpServer",  SqlDbType.NVarChar,100, smtpserver),
									   data.MakeInParam("@SmtpUsername",  SqlDbType.NVarChar, 30, smtpusername),
									   data.MakeInParam("@SmtpPassword",  SqlDbType.NVarChar, 30, smtppassword),
									   data.MakeInParam("@SmtpPort",  SqlDbType.Int, 10, smtpport),
									   data.MakeInParam("@PopServer",  SqlDbType.NVarChar , 100, popserver),
									   data.MakeInParam("@PopUsername",  SqlDbType.NVarChar, 30, popusername),
									   data.MakeInParam("@PopPassword",  SqlDbType.NVarChar, 30, poppassword),
									   data.MakeInParam("@PopPort",  SqlDbType.Int, 10, popport),
									   data.MakeInParam("@IsDelAfterRead",  SqlDbType.Bit, 1, isdelafterread),
									   data.MakeInParam("@IsReceiveNew",  SqlDbType.Bit, 1, isreceivenew),
									   data.MakeInParam("@TimeOut",  SqlDbType.Int, 10, timeout),
									   data.MakeInParam("@OrderID",  SqlDbType.Int, 10, orderid)	 
								   };

			try 
			{
				data.RunProc("SP_MailExtSetAdd", prams);
				return true;
			}
			catch (Exception ex) 
			{
				Error.Log(ex.ToString());
				throw new Exception("外部邮件设置保存出错!",ex);
			}
			
		}
		#endregion

		#region 清空某用户外部邮件设置
		/// <summary>
		/// 清空某用户外部邮件设置
		/// </summary>
		/// <param name="Username">用户名</param>
		public bool ExtClearSettings(string Username)
		{
			Database data = new Database();
			SqlParameter[] prams = {
									   data.MakeInParam("@Username",   SqlDbType.NVarChar,50, Username),
								   };
			try
			{
				data.RunProc("SP_MailExtSetClear",prams);
				data = null;
				return true;
			}
			catch(Exception ex)
			{
				Error.Log(ex.ToString());
				return false;
			}

		}
		#endregion

		#region 获取设置的内容	
		/// <summary>
		/// 获取设置的内容	
		/// </summary>
		public SqlDataReader ExtGetSetting(string Username,int OrderID) 
		{
			// create data object and params
			SqlDataReader dataReader = null;
			Database data = new Database();
			SqlParameter[] prams = {
									   data.MakeInParam("@Username",      SqlDbType.NVarChar, 20, Username),
									   data.MakeInParam("@OrderID",      SqlDbType.Int, 1, OrderID)
								   };
			
   
			try 
			{
				// run the stored procedure
				data.RunProc("SP_MailExtGetSet",prams,out dataReader);
				return dataReader;
			}
			catch (Exception ex) 
			{
				Error.Log(ex.ToString());
				throw new Exception("获取设置的内容出错!",ex);
			}
		}
		#endregion

	    #region 获取可用到的设置的内容	
		/// <summary>
		/// 获取可用到的设置的内容	
		/// </summary>
		public SqlDataReader ExtGetAvaSetting(string Username) 
		{
			// create data object and params
			SqlDataReader dataReader = null;
			Database data = new Database();
			SqlParameter[] prams = {
									data.MakeInParam("@Username",      SqlDbType.NVarChar, 20, Username)
								};
				
	   
			try 
			{
				// run the stored procedure
				data.RunProc("SP_MailExtGetAvailabelSet",prams,out dataReader);
				return dataReader;
			}
			catch (Exception ex) 
			{
				Error.Log(ex.ToString());
				throw new Exception("获取可用到的设置的内容出错!",ex);
			}
		}
		#endregion

		#region	外部邮件主体保存
		/// <summary>
		/// 外部邮件主体保存
		/// </summary>
		/// <param name="mailbody">Mail类</param>
		public void SaveExtMail(jmail.Message JMsg,string Username,string Email,string MessageID) 
		{		
			
			// create data object and params
			Database data = new Database();	
			/*
			SqlParameter[] prams = {
									   data.MakeInParam("@MailID",  SqlDbType.NVarChar , 10, ""),
									   data.MakeInParam("@Username",  SqlDbType.NVarChar, 300, Username),
									   data.MakeInParam("@Email",  SqlDbType.NVarChar, 100,"" ),
									   data.MakeInParam("@ReadFlag",  SqlDbType.Bit,1, 0),
									   data.MakeInParam("@FolderID",  SqlDbType.Int, 20, 1),
									   data.MakeInParam("@HeadersText",  SqlDbType.NVarChar, 1000, Msg.Headers.ToString()),
									   data.MakeInParam("@Subject",  SqlDbType.NVarChar, 100, Msg.Subject.ToString()),
									   data.MakeInParam("@TextContent",  SqlDbType.NVarChar , 3000, Msg.Text.ToString()),
									   data.MakeInParam("@HtmlContent",  SqlDbType.NVarChar, 3000, Msg.HTMLBody.ToString()),
									   data.MakeInParam("@FromName",  SqlDbType.NVarChar, 300, Msg.FromName.ToString()),
									   data.MakeInParam("@FromEmail",  SqlDbType.NVarChar, 200, Msg.From.ToString()),
									   data.MakeInParam("@CcTo",  SqlDbType.NVarChar, 200,""),
									   data.MakeInParam("@BccTo",  SqlDbType.NVarChar, 200, ""),
									   data.MakeInParam("@Replyto",  SqlDbType.NVarChar, 200, Msg.ReplyTo.ToString()),
									   data.MakeInParam("@SendDate",  SqlDbType.DateTime, 30, DateTime.Now),
									   data.MakeInParam("@BodySize",  SqlDbType.NVarChar , 20, ""),
									   data.MakeInParam("@Size",  SqlDbType.Int, 5,12)
									 
								   };
			*/
			SqlParameter[] prams = {
									   data.MakeInParam("@MailID",    SqlDbType.NVarChar , 100, MessageID),
									   data.MakeInParam("@Username",  SqlDbType.NVarChar, 300, Username),
									   data.MakeInParam("@Email",     SqlDbType.NVarChar, 100,Email),
									   data.MakeInParam("@ReadFlag",  SqlDbType.Bit,1, 0),
									   data.MakeInParam("@FolderID",  SqlDbType.Int, 20, 1),
									   data.MakeInParam("@HeadersText",  SqlDbType.NVarChar, 1000, JMsg.Headers .ToString()),
									   data.MakeInParam("@Subject",   SqlDbType.NVarChar, 100, JMsg.Subject.ToString()),
									   data.MakeInParam("@TextContent",  SqlDbType.NVarChar , 3000, JMsg.Text.ToString()),
									   data.MakeInParam("@HtmlContent",  SqlDbType.NVarChar, 3000, JMsg.HTMLBody.ToString()),
									   data.MakeInParam("@FromName",  SqlDbType.NVarChar, 300, JMsg.FromName.ToString()),
									   data.MakeInParam("@FromEmail", SqlDbType.NVarChar, 200, ""),
									   data.MakeInParam("@CcTo",      SqlDbType.NVarChar, 200,""),
									   data.MakeInParam("@BccTo",     SqlDbType.NVarChar, 200, ""),
									   data.MakeInParam("@Replyto",   SqlDbType.NVarChar, 200, ""),
									   data.MakeInParam("@SendDate",  SqlDbType.DateTime, 30, DateTime.Parse(JMsg.Date.ToString())),
									   data.MakeInParam("@BodySize",  SqlDbType.NVarChar , 20, ""),
									   data.MakeInParam("@Size",      SqlDbType.Int, 5,12)
									 
								   };
			try 
			{
				data.RunProc("SP_MailExtMailAdd", prams);
				data = null;
			}
			catch (Exception ex) 
			{
				Error.Log(ex.ToString());
				throw new Exception("外部邮件保存出错!",ex);
			}
			
		}
		#endregion
		
		#region 接收外部邮件

		public void ReceiveMails(string Username,int OrderID)
		{
			jmail.Message Msg=new jmail.Message();
			jmail.POP3 jpop = new jmail.POP3();
			if(OrderID!=0)
			{
				SqlDataReader dataReader = this.ExtGetSetting(Username,OrderID);
				if(dataReader.Read())
				{
					if(dataReader["PopServer"].ToString()!=""&&dataReader["PopUsername"].ToString()!="")
					{
						jpop.Connect(dataReader["PopUsername"].ToString(),dataReader["PopPassword"].ToString(),dataReader["PopServer"].ToString(),Int32.Parse(dataReader["PopPort"].ToString()));
						for(int i=1;i<=jpop.Count;i++)
						{
							Msg = jpop.Messages[i];
							this.SaveExtMail(Msg,Username,dataReader["Email"].ToString(),jpop.GetMessageUID(i));
							
						}
						jpop.Disconnect();
					}
				}
			}
			
		}

		#endregion
    }
  
	public class MailMainBody
	{
		private int m_MailFolderType;
		private string m_MailReceiverStr;
		private int m_MailSendLevel;
		private string m_MailSendDate;
		private string m_MailReceiver;
		private string m_MailSender;
		private string m_MailSubject;
		private string m_MailBody;
		private string m_MailCcToAddr;
		private string m_MailBccToAddr;
		private int m_MailReadFlag;
		private int m_MailTypeFlag;
		private int m_MailClassID;
		private int m_MailImportance;
		//外部邮件用
		private string m_ExtHeadersText;
		private string m_ExtHtmlContent;
		private string m_ExtFromName;
		private string m_ExtFromEmail;
		private string m_ExtReplyTo;
		private string m_ExtMailID;


		public int MailFolderType
		{	
			//邮箱类型
			get { return m_MailFolderType; }
			set { m_MailFolderType = value; }
		}

		public string MailReceiverStr 
		{	
			//收件人字符串,用逗号隔开
			get { return m_MailReceiverStr; }
			set { m_MailReceiverStr = value; }
		}
		
		public string MailSendDate 
		{	
			//发送日期
			get { return m_MailSendDate; }
			set { m_MailSendDate = value; }
		}
		
		public int MailSendLevel 
		{	
			//发送级别
			get { return m_MailSendLevel; }
			set { m_MailSendLevel = value; }
		}

		public string MailSender 
		{	
			//发件人登陆名
			get { return m_MailSender; }
			set { m_MailSender = value; }
		}

		public string MailReceiver
		{	
			//收件件人登陆名
			get { return m_MailReceiver; }
			set { m_MailReceiver = value; }
		}
		
		public string MailSubject 
		{	
			//邮件主题
			get { return m_MailSubject; }
			set { m_MailSubject = value; }
		}
	
		public string MailBody 
		{	
			//邮件主体
			get { return m_MailBody; }
			set { m_MailBody = value; }
		}
				
		public string MailCcToAddr 
		{	
			//抄送地址
			get { return m_MailCcToAddr; }
			set { m_MailCcToAddr = value; }
		}

		public string MailBccToAddr 
		{	
			//秘密抄送地址
			get { return m_MailBccToAddr; }
			set { m_MailBccToAddr = value; }
		}

		public int MailReadFlag 
		{	
			//是否已读标志 0 未读 1已读
			get { return m_MailReadFlag; }
			set { m_MailReadFlag = value; }
		}

		public int MailTypeFlag 
		{	
			//邮件类型 0 为内部 1为外部
			get { return m_MailTypeFlag; }
			set { m_MailTypeFlag = value; }
		}

		public int MailClassID
		{	
			//所属项目ID
			get { return m_MailClassID; }
			set { m_MailClassID = value; }
		}

		public int MailImportance
		{	
			//邮件重要性 
			get { return m_MailImportance; }
			set { m_MailImportance = value; }
		}

		public string ExtHeadersText 
		{	
			//邮件头信息
			get { return m_ExtHeadersText; }
			set { m_ExtHeadersText = value; }
		}

		public string ExtHtmlContent 
		{	
			//Html格式邮件内容
			get { return m_ExtHtmlContent; }
			set { m_ExtHtmlContent = value; }
		}

		public string ExtFromName 
		{	
			//发送人姓名
			get { return m_ExtFromName; }
			set { m_ExtFromName = value; }
		}

		public string ExtFromEmail 
		{	
			//发送人Email
			get { return m_ExtFromEmail; }
			set { m_ExtFromEmail = value; }
		}

		public string ExtReplyTo 
		{	
			//回复至
			get { return m_ExtReplyTo; }
			set { m_ExtReplyTo = value; }
		}

		public string ExtMailID 
		{	
			//邮件的唯一标识
			get { return m_ExtMailID; }
			set { m_ExtMailID = value; }
		}

	}

	public class MailAttachFile
	{
		private int m_FileID;
		private int m_DocID;
		private string m_FileName;
		private int m_FileSize;
		private int m_FileAttribute;
		private string m_FileVisualPath;
		private string m_FileAuthor;
		private string m_FileCatlog;
		
		public int FileID 
		{	
			//文件ID
			get { return m_FileID; }
			set { m_FileID = value; }
		}

		public int DocID 
		{	
			//文档ID
			get { return m_DocID; }
			set { m_DocID = value; }
		}

		public string FileName 
		{	
			//文件名
			get { return m_FileName; }
			set { m_FileName = value; }
		}

		public int FileSize 
		{	
			//文件大小
			get { return m_FileSize; }
			set { m_FileSize = value; }
		}

		public int FileAttribute 
		{	
			//文件属性
			get { return m_FileAttribute; }
			set { m_FileAttribute = value; }
		}

		public string FileVisualPath
		{	
			//文件虚拟路径
			get { return m_FileVisualPath; }
			set { m_FileVisualPath = value; }
		}

		public string FileAuthor
		{	
			//文件作者
			get { return m_FileAuthor; }
			set { m_FileAuthor = value; }
		}

		public string FileCatlog 
		{	
			//文件类别
			get { return m_FileCatlog; }
			set { m_FileCatlog = value; }
		}
	}
}

⌨️ 快捷键说明

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