PageRenderTime 45ms CodeModel.GetById 14ms RepoModel.GetById 0ms app.codeStats 0ms

/BaliEnterpriseSystems/BaliEnterpriseSystems/UtilEMail.cs

https://github.com/sirivedula/BEST
C# | 149 lines | 134 code | 15 blank | 0 comment | 0 complexity | ff20246b7675cdc7aebd6b0a10bac412 MD5 | raw file
  1. using System;
  2. using System.Data;
  3. using System.Configuration;
  4. using System.Linq;
  5. using System.Web;
  6. using System.Web.Security;
  7. using System.Web.UI;
  8. using System.Web.UI.HtmlControls;
  9. using System.Web.UI.WebControls;
  10. using System.Web.UI.WebControls.WebParts;
  11. using System.Xml.Linq;
  12. using System.Net;
  13. using System.Net.Mail;
  14. using BaliEnterpriseSystems.BestObjects;
  15. using System.Data.OleDb;
  16. using System.Text;
  17. using System.Collections.Specialized;
  18. using System.Collections.Generic;
  19. namespace BaliEnterpriseSystems
  20. {
  21. public class UtilEMail
  22. {
  23. private string smtpHost;
  24. private string fromemail;
  25. private string frompwd;
  26. private string port;
  27. public string lastError;
  28. private string fromName;
  29. private bool enableSSL;
  30. public UtilEMail()
  31. {
  32. smtpHost = ConfigurationManager.AppSettings["SMTPHost"];
  33. fromemail = ConfigurationManager.AppSettings["FromEMail"];
  34. frompwd = ConfigurationManager.AppSettings["FromPassowrd"];
  35. port = ConfigurationManager.AppSettings["Port"];
  36. fromName = ConfigurationManager.AppSettings["FromName"];
  37. enableSSL = ConfigurationManager.AppSettings["enableSSL"].Equals("1");
  38. }
  39. public string ToAddress
  40. {
  41. get;
  42. set;
  43. }
  44. public bool Send(string toaddress, string subject, string body, string ToName)
  45. {
  46. var fromAddress = new MailAddress(this.fromemail, fromName);
  47. var toAddress = new MailAddress(toaddress, ToName);
  48. string fromPassword = this.frompwd;
  49. int iPort;
  50. int.TryParse(this.port, out iPort);
  51. var smtp = new SmtpClient
  52. {
  53. Host = this.smtpHost,
  54. Port = iPort,
  55. EnableSsl = enableSSL,
  56. DeliveryMethod = SmtpDeliveryMethod.Network,
  57. Credentials = new NetworkCredential(fromAddress.Address, fromPassword),
  58. Timeout = 20000
  59. };
  60. bool result = true;
  61. BestTable tbl = new BestTable();
  62. OleDbCommand myCmd = tbl.dbCmd;
  63. myCmd.CommandText = "insert into BestLogs (message) values (?)";
  64. OleDbParameter p1 = new OleDbParameter("msg", OleDbType.VarChar, 9999999);
  65. try
  66. {
  67. using (var message = new MailMessage(fromAddress, toAddress)
  68. {
  69. IsBodyHtml = true,
  70. Subject = subject,
  71. Body = body
  72. })
  73. {
  74. p1.Value = "From:" + fromAddress.DisplayName + " To:" + toaddress + " Subject:" + subject + " Body:" + body;
  75. myCmd.Parameters.Add(p1);
  76. myCmd.ExecuteNonQuery();
  77. smtp.Send(message);
  78. }
  79. }
  80. catch (Exception ex)
  81. {
  82. result = false;
  83. lastError = ex.Message;
  84. myCmd.Parameters[0].Value = ex.ToString();
  85. myCmd.ExecuteNonQuery();
  86. }
  87. return result;
  88. }
  89. public bool SendMultiple(NameValueCollection ToAddrs, string subject, string body)
  90. {
  91. bool result = true;
  92. MailMessage mailMsg = new MailMessage();
  93. mailMsg.From = new MailAddress(this.fromemail, this.fromName);
  94. foreach(string key in ToAddrs.AllKeys)
  95. {
  96. mailMsg.To.Add( new MailAddress(key, ToAddrs[key]));
  97. }
  98. mailMsg.Subject = subject;
  99. mailMsg.Body = body;
  100. int iPort;
  101. int.TryParse(this.port, out iPort);
  102. var fromAddress = new MailAddress(this.fromemail, fromName);
  103. string fromPassword = this.frompwd;
  104. BestTable tbl = new BestTable();
  105. var smtp = new SmtpClient
  106. {
  107. Host = this.smtpHost,
  108. Port = iPort,
  109. EnableSsl = enableSSL,
  110. DeliveryMethod = SmtpDeliveryMethod.Network,
  111. Credentials = new NetworkCredential(fromAddress.Address, fromPassword),
  112. Timeout = 20000
  113. };
  114. OleDbCommand myCmd = tbl.dbCmd;
  115. myCmd.CommandText = "insert into BestLogs (message) values (?)";
  116. OleDbParameter p1 = new OleDbParameter("msg", OleDbType.VarChar, 9999999);
  117. try
  118. {
  119. p1.Value = "From:" + fromAddress.DisplayName + " To:" + mailMsg.To.ToString() + " Subject:" + subject + " Body:" + body;
  120. myCmd.Parameters.Add(p1);
  121. myCmd.ExecuteNonQuery();
  122. smtp.Send(mailMsg);
  123. }
  124. catch (Exception ex)
  125. {
  126. result = false;
  127. lastError = ex.Message;
  128. myCmd.Parameters[0].Value = ex.ToString();
  129. myCmd.ExecuteNonQuery();
  130. }
  131. return result;
  132. }
  133. }
  134. }