Mail.cs
上传用户:simon2hong
上传日期:2021-11-18
资源大小:16746k
文件大小:14k
源码类别:

OA系统

开发平台:

C#

  1. using System;
  2. using System.Data;
  3. using System.Configuration;
  4. using System.Web;
  5. using System.Web.Security;
  6. using System.Web.UI;
  7. using System.Web.UI.WebControls;
  8. using System.Web.UI.WebControls.WebParts;
  9. using System.Web.UI.HtmlControls;
  10. using System.Data.SqlClient;
  11. using System.Net.Mail;
  12. public class WebMailProfile
  13. {
  14. public string UserName;
  15. public string AliasName;
  16. public string Email;
  17. public string MailServerIP;
  18. public int MailServerPort;
  19. }
  20. public interface IMail
  21. {
  22. /// <summary>
  23. /// 获取系统配置信息
  24. /// </summary>
  25. /// <returns></returns>
  26. SqlDataReader GetWebMailProfile();
  27. /// <summary>
  28. /// 修改系统的配置信息
  29. /// </summary>
  30. /// <param name="sUserName"></param>
  31. /// <param name="sAliasName"></param>
  32. /// <param name="sEmail"></param>
  33. /// <param name="sMailServerIP"></param>
  34. /// <param name="nMailServerPort"></param>
  35. /// <returns></returns>
  36. int WebMailProfile(string sUserName,string sAliasName,string sEmail,string sMailServerIP,
  37. int nMailServerPort);
  38. /// <summary>
  39. /// 获取所有邮件
  40. /// </summary>
  41. /// <returns></returns>
  42. SqlDataReader GetMails();
  43. /// <summary>
  44. /// 获取某个邮箱的邮件
  45. /// </summary>
  46. /// <param name="nFolderID"></param>
  47. /// <returns></returns>
  48. SqlDataReader GetMailsByFloder(int nFolderID);
  49. /// <summary>
  50. /// 获取单个邮件的记录
  51. /// </summary>
  52. /// <param name="nMailID"></param>
  53. /// <returns></returns>
  54. SqlDataReader GetSingleMail(int nMailID);
  55. /// <summary>
  56. /// 发送邮件
  57. /// </summary>
  58. /// <returns></returns>
  59. int SenderMail(MailMessage mail);
  60. /// <summary>
  61. /// 添加发送的邮件到邮件箱中
  62. /// </summary>
  63. /// <param name="sName"></param>
  64. /// <param name="sBody"></param>
  65. /// <param name="sFrom"></param>
  66. /// <param name="sTo"></param>
  67. /// <param name="sCC"></param>
  68. /// <param name="bHtmlFormat"></param>
  69. /// <param name="nContain"></param>
  70. /// <param name="bAttachmentFlag"></param>
  71. /// <returns></returns>
  72. int SaveAsMail(string sName,string sBody,string sFrom,string sTo,
  73. string sCC,bool bHtmlFormat,int nContain,bool bAttachmentFlag);
  74. /// <summary>
  75. /// 添加邮件的附件
  76. /// </summary>
  77. /// <param name="sName"></param>
  78. /// <param name="sUrl"></param>
  79. /// <param name="sType"></param>
  80. /// <param name="nContain"></param>
  81. /// <param name="MailID"></param>
  82. /// <returns></returns>
  83. int SaveAsMailAttachment(string sName,string sUrl,string sType,
  84. int nContain,int nMailID);
  85. /// <summary>
  86. /// 移动邮件
  87. /// </summary>
  88. /// <param name="nMailID"></param>
  89. /// <param name="nFolderID"></param>
  90. /// <returns></returns>
  91. int MoveMail(int nMailID,int nFolderID);
  92. /// <summary>
  93. /// 删除邮件
  94. /// </summary>
  95. /// <param name="nMailID"></param>
  96. /// <returns></returns>
  97. int DeleteMail(int nMailID);
  98. /// <summary>
  99. /// 获取邮件的附件
  100. /// </summary>
  101. /// <param name="nMailID"></param>
  102. /// <returns></returns>
  103. SqlDataReader GetAttachmentsByMail(int nMailID);
  104. }
  105. /// <summary>
  106. /// Mail 的摘要说明
  107. /// </summary>
  108. public class Mail:IMail
  109. {
  110. #region IMail 成员
  111. public SqlDataReader GetWebMailProfile()
  112. {
  113. ///创建链接
  114. SqlConnection myConnection = new SqlConnection(
  115.             ConfigurationManager.ConnectionStrings["DB"].ConnectionString);
  116. ///定义SQL语句
  117. string cmdText = "SELECT * FROM WebMailProfile WHERE WebMailID = 1";
  118. ///创建Command
  119. SqlCommand myCommand = new SqlCommand(cmdText,myConnection);
  120. ///定义DataReader
  121. SqlDataReader dr = null;
  122. try
  123. {
  124. ///打开链接
  125. myConnection.Open();
  126. ///读取数据
  127. dr = myCommand.ExecuteReader(CommandBehavior.CloseConnection);
  128. }
  129. catch(SqlException ex)
  130. {
  131. ///抛出异常
  132. throw new Exception(ex.Message,ex);
  133. }
  134. ///返回DataReader
  135. return dr;
  136. }
  137. public int WebMailProfile(string sUserName,string sAliasName,string sEmail,string sMailServerIP,
  138. int nMailServerPort)
  139. {
  140. ///创建链接
  141. SqlConnection myConnection = new SqlConnection(
  142. ConfigurationManager.ConnectionStrings["DB"].ConnectionString);
  143. ///定义SQL语句
  144. string cmdText = "UPDATE WebMailProfile SET"
  145. + " UserName='" + sUserName + "',"
  146. + " AliasName='" + sAliasName + "',"
  147. + " Email='" + sEmail + "',"
  148. + " MailServerIP='" + sMailServerIP + "',"
  149. + " MailServerPort='" + nMailServerPort.ToString() + "'"
  150. + " WHERE WebMailID=1 ";
  151. ///创建Command
  152. SqlCommand myCommand = new SqlCommand(cmdText,myConnection);
  153. ///定义返回值
  154. int nResult = -1;
  155. try
  156. {
  157. ///打开链接
  158. myConnection.Open();
  159. ///执行SQL语句
  160. nResult = myCommand.ExecuteNonQuery();
  161. }
  162. catch(SqlException ex)
  163. {
  164. ///抛出异常
  165. throw new Exception(ex.Message,ex);
  166. }
  167. finally
  168. {   ///关闭链接
  169. myConnection.Close();
  170. }
  171. ///返回nResult
  172. return nResult;
  173. }
  174. public SqlDataReader GetMails()
  175. {
  176. ///创建链接
  177. SqlConnection myConnection = new SqlConnection(
  178. ConfigurationManager.ConnectionStrings["DB"].ConnectionString);
  179. ///定义SQL语句
  180. string cmdText = "SELECT * FROM Mails";
  181. ///创建Command
  182. SqlCommand myCommand = new SqlCommand(cmdText,myConnection);
  183. ///定义DataReader
  184. SqlDataReader dr = null;
  185. try
  186. {
  187. ///打开链接
  188. myConnection.Open();
  189. ///读取数据
  190. dr = myCommand.ExecuteReader(CommandBehavior.CloseConnection);
  191. }
  192. catch(SqlException ex)
  193. {
  194. ///抛出异常
  195. throw new Exception(ex.Message,ex);
  196. }
  197. ///返回DataReader
  198. return dr;
  199. }
  200. public SqlDataReader GetMailsByFloder(int nFolderID)
  201. {
  202. ///创建链接
  203. SqlConnection myConnection = new SqlConnection(
  204. ConfigurationManager.ConnectionStrings["DB"].ConnectionString);
  205.         string TiaoJian = "";
  206.         if (nFolderID == 1)//收件
  207.         {
  208.             TiaoJian = "and (ToAddress='" + SessionInclude.SessionId + "')";
  209.         }
  210.         if (nFolderID == 2)//发件
  211.         {
  212.             TiaoJian = "and FromAddress='" + SessionInclude.SessionId + "'";
  213.         }
  214.         //if (nFolderID == 3)//草槁
  215.         //{
  216.         //    TiaoJian = "ToAddress='" + SessionInclude.SessionId + "'";
  217.         //}
  218. ///定义SQL语句
  219.         string cmdText = "SELECT Mails.* FROM Mails WHERE FolderID='" + nFolderID.ToString() +"' " + TiaoJian;// "' and (ToAddress='" + SessionInclude.SessionId + "' or CCAddress='" + SessionInclude.SessionId + "' or FromAddress='" + SessionInclude.SessionId + "')";
  220. ///创建Command
  221. SqlCommand myCommand = new SqlCommand(cmdText,myConnection);
  222. ///定义DataReader
  223. SqlDataReader dr = null;
  224. try
  225. {
  226. ///打开链接
  227. myConnection.Open();
  228. ///读取数据
  229. dr = myCommand.ExecuteReader(CommandBehavior.CloseConnection);
  230. }
  231. catch(SqlException ex)
  232. {
  233. ///抛出异常
  234. throw new Exception(ex.Message,ex);
  235. }
  236. ///返回DataReader
  237. return dr;
  238. }
  239. public SqlDataReader GetSingleMail(int nMailID)
  240. {
  241. ///创建链接
  242. SqlConnection myConnection = new SqlConnection(
  243. ConfigurationManager.ConnectionStrings["DB"].ConnectionString);
  244. ///定义SQL语句
  245. string cmdText = "SELECT * FROM Mails WHERE MailID='" + nMailID.ToString() + "'";
  246. ///创建Command
  247. SqlCommand myCommand = new SqlCommand(cmdText,myConnection);
  248. ///定义DataReader
  249. SqlDataReader dr = null;
  250. try
  251. {
  252. ///打开链接
  253. myConnection.Open();
  254. ///读取数据
  255. dr = myCommand.ExecuteReader(CommandBehavior.CloseConnection);
  256. }
  257. catch(SqlException ex)
  258. {
  259. ///抛出异常
  260. throw new Exception(ex.Message,ex);
  261. }
  262. ///返回DataReader
  263. return dr;
  264. }
  265. public int SenderMail(MailMessage mail)
  266. {
  267. ///定义发送邮件的Client
  268. SmtpClient client = new SmtpClient();
  269. ///设置邮件服务器主机的IP地址
  270. client.Host = ((WebMailProfile)HttpContext.Current.Application["WebMailProfile"]).MailServerIP;
  271. ///设置邮件服务器的端口
  272. client.Port = ((WebMailProfile)HttpContext.Current.Application["WebMailProfile"]).MailServerPort;
  273. ///配置发送邮件的属性
  274. client.DeliveryMethod = SmtpDeliveryMethod.Network;
  275. client.UseDefaultCredentials = false;
  276. ///发送邮件
  277. client.Send(mail);
  278. return (0);
  279. }
  280. public int SaveAsMail(string sTitle,string sBody,string sFrom,string sTo,
  281. string sCC,bool bHtmlFormat,int nContain,bool bAttachmentFlag)
  282. {
  283. ///创建链接
  284. SqlConnection myConnection = new SqlConnection(
  285. ConfigurationManager.ConnectionStrings["DB"].ConnectionString);
  286. SqlCommand myCommand = new SqlCommand("Pr_SaveAsMail",myConnection);
  287. myCommand.CommandType = CommandType.StoredProcedure;
  288. ///添加存储过程的参数
  289. SqlParameter pTitle = new SqlParameter("@Title",SqlDbType.VarChar,200);
  290. pTitle.Value = sTitle;
  291. myCommand.Parameters.Add(pTitle);
  292. SqlParameter pBody = new SqlParameter("@Body",SqlDbType.Text,2147483647);
  293. pBody.Value = sBody;
  294. myCommand.Parameters.Add(pBody);
  295. SqlParameter pFrom = new SqlParameter("@FromAddress",SqlDbType.Text,2147483647);
  296. pFrom.Value = sFrom;
  297. myCommand.Parameters.Add(pFrom);
  298. SqlParameter pTo = new SqlParameter("@ToAddress",SqlDbType.Text,2147483647);
  299. pTo.Value = sTo;
  300. myCommand.Parameters.Add(pTo);
  301. SqlParameter pCC = new SqlParameter("@CCAddress",SqlDbType.Text,2147483647);
  302. pCC.Value = sCC;
  303. myCommand.Parameters.Add(pCC);
  304. SqlParameter pHtmlFormat = new SqlParameter("@HtmlFormat",SqlDbType.Bit,1);
  305. pHtmlFormat.Value = bHtmlFormat.ToString();
  306. myCommand.Parameters.Add(pHtmlFormat);
  307. SqlParameter pContain = new SqlParameter("@Contain",SqlDbType.Int,4);
  308. pContain.Value = nContain;
  309. myCommand.Parameters.Add(pContain);
  310. SqlParameter pAttachmentFlag = new SqlParameter("@AttachmentFlag",SqlDbType.Bit,1);
  311. pAttachmentFlag.Value = bAttachmentFlag.ToString();
  312. myCommand.Parameters.Add(pAttachmentFlag);
  313. SqlParameter pMailID = new SqlParameter("@MailID",SqlDbType.Int,4);
  314. pMailID.Direction = ParameterDirection.ReturnValue;
  315. myCommand.Parameters.Add(pMailID);
  316. ///定义返回值
  317. int nResult = -1;
  318. try
  319. {
  320. ///打开链接
  321. myConnection.Open();
  322. ///执行SQL语句
  323. nResult = myCommand.ExecuteNonQuery();
  324. }
  325. catch(SqlException ex)
  326. {
  327. ///抛出异常
  328. throw new Exception(ex.Message,ex);
  329. }
  330. finally
  331. {   ///关闭链接
  332. myConnection.Close();
  333. }
  334. ///返回nResult
  335. return(int)myCommand.Parameters[8].Value;
  336. }
  337. public int SaveAsMailAttachment(string sName,string sUrl,string sType,
  338. int nContain,int nMailID)
  339. {
  340. ///创建链接
  341. SqlConnection myConnection = new SqlConnection(
  342. ConfigurationManager.ConnectionStrings["DB"].ConnectionString);
  343. ///定义SQL语句
  344. string cmdText = "INSERT INTO Attachments (Name,Url,Type,Contain,MailID)VALUES("
  345. + "'" + sName + "',"
  346. + "'" + sUrl + "',"
  347. + "'" + sType + "',"
  348. + "'" + nContain.ToString() + "',"
  349. + "'" + nMailID.ToString() + "'"
  350. + ")";
  351. ///创建Command
  352. SqlCommand myCommand = new SqlCommand(cmdText,myConnection);
  353. ///定义返回值
  354. int nResult = -1;
  355. try
  356. {
  357. ///打开链接
  358. myConnection.Open();
  359. ///执行SQL语句
  360. nResult = myCommand.ExecuteNonQuery();
  361. }
  362. catch(SqlException ex)
  363. {
  364. ///抛出异常
  365. throw new Exception(ex.Message,ex);
  366. }
  367. finally
  368. {   ///关闭链接
  369. myConnection.Close();
  370. }
  371. ///返回nResult
  372. return nResult;
  373. }
  374. public int MoveMail(int nMailID,int nFolderID)
  375. {
  376. ///创建链接
  377. SqlConnection myConnection = new SqlConnection(
  378. ConfigurationManager.ConnectionStrings["DB"].ConnectionString);
  379. SqlCommand myCommand = new SqlCommand("Pr_MoveMail",myConnection);
  380. myCommand.CommandType = CommandType.StoredProcedure;
  381. ///添加存储过程的参数
  382. SqlParameter pMailID = new SqlParameter("@MailID",SqlDbType.Int,4);
  383. pMailID.Value = nMailID;
  384. myCommand.Parameters.Add(pMailID);
  385. SqlParameter pFolderID = new SqlParameter("@FolderID",SqlDbType.Int,4);
  386. pFolderID.Value = nFolderID;
  387. myCommand.Parameters.Add(pFolderID);
  388. ///定义返回值
  389. int nResult = -1;
  390. try
  391. {
  392. ///打开链接
  393. myConnection.Open();
  394. ///执行SQL语句
  395. nResult = myCommand.ExecuteNonQuery();
  396. }
  397. catch(SqlException ex)
  398. {
  399. ///抛出异常
  400. throw new Exception(ex.Message,ex);
  401. }
  402. finally
  403. {   ///关闭链接
  404. myConnection.Close();
  405. }
  406. ///返回nResult
  407. return nResult;
  408. }
  409. public int DeleteMail(int nMailID)
  410. {
  411. ///创建链接
  412. SqlConnection myConnection = new SqlConnection(
  413. ConfigurationManager.ConnectionStrings["DB"].ConnectionString);
  414. SqlCommand myCommand = new SqlCommand("Pr_DeleteMail",myConnection);
  415. myCommand.CommandType = CommandType.StoredProcedure;
  416. ///添加存储过程的参数
  417. SqlParameter pMailID = new SqlParameter("@MailID",SqlDbType.Int,4);
  418. pMailID.Value = nMailID;
  419. myCommand.Parameters.Add(pMailID);
  420. ///定义返回值
  421. int nResult = -1;
  422. try
  423. {
  424. ///打开链接
  425. myConnection.Open();
  426. ///执行SQL语句
  427. nResult = myCommand.ExecuteNonQuery();
  428. }
  429. catch(SqlException ex)
  430. {
  431. ///抛出异常
  432. throw new Exception(ex.Message,ex);
  433. }
  434. finally
  435. {   ///关闭链接
  436. myConnection.Close();
  437. }
  438. ///返回nResult
  439. return nResult;
  440. }
  441. public SqlDataReader GetAttachmentsByMail(int nMailID)
  442. {
  443. ///创建链接
  444. SqlConnection myConnection = new SqlConnection(
  445. ConfigurationManager.ConnectionStrings["DB"].ConnectionString);
  446. ///定义SQL语句
  447. string cmdText = "SELECT * FROM Attachments WHERE MailID='" + nMailID.ToString() + "'";
  448. ///创建Command
  449. SqlCommand myCommand = new SqlCommand(cmdText,myConnection);
  450. ///定义DataReader
  451. SqlDataReader dr = null;
  452. try
  453. {
  454. ///打开链接
  455. myConnection.Open();
  456. ///读取数据
  457. dr = myCommand.ExecuteReader(CommandBehavior.CloseConnection);
  458. }
  459. catch(SqlException ex)
  460. {
  461. ///抛出异常
  462. throw new Exception(ex.Message,ex);
  463. }
  464. ///返回DataReader
  465. return dr;
  466. }
  467. #endregion
  468. }