SMTP_Cmd_Validator.cs
上传用户:horngjaan
上传日期:2009-12-12
资源大小:2882k
文件大小:2k
源码类别:

Email服务器

开发平台:

C#

  1. using System;
  2. namespace LumiSoft.MailServer.SMTP
  3. {
  4. /// <summary>
  5. /// SMTP command order validator.
  6. /// </summary>
  7. internal class SMTP_Cmd_Validator
  8. {
  9. private bool m_Helo_ok       = false;
  10. private bool m_Authenticated = false;
  11. private bool m_MailFrom_ok   = false;
  12. private bool m_RcptTo_ok     = false;
  13. /// <summary>
  14. /// Default constructor.
  15. /// </summary>
  16. public SMTP_Cmd_Validator()
  17. {
  18. }
  19. #region function Reset
  20. /// <summary>
  21. /// Resets state.
  22. /// </summary>
  23. public void Reset()
  24. {
  25. m_Helo_ok       = false;
  26. m_Authenticated = false;
  27. m_MailFrom_ok   = false;
  28. m_RcptTo_ok     = false;
  29. }
  30. #endregion
  31. #region Properties Implementation
  32. /// <summary>
  33. /// Gets if may handle MAIL command.
  34. /// </summary>
  35. public bool MayHandle_MAIL
  36. {
  37. get{ return m_Helo_ok && !MailFrom_ok; }
  38. }
  39. /// <summary>
  40. /// Gets if may handle RCPT coomand.
  41. /// </summary>
  42. public bool MayHandle_RCPT
  43. {
  44. get{ return MailFrom_ok; }
  45. }
  46. /// <summary>
  47. /// Gets if may handle DATA coomand.
  48. /// </summary>
  49. public bool MayHandle_DATA
  50. {
  51. get{ return RcptTo_ok; }
  52. }
  53. /// <summary>
  54. /// Gets if may handle AUTH coomand.
  55. /// </summary>
  56. public bool MayHandle_AUTH
  57. {
  58. get{ return !m_Authenticated; }
  59. }
  60. /// <summary>
  61. /// Gest or sets if HELO command handled.
  62. /// </summary>
  63. public bool Helo_ok
  64. {
  65. get{ return m_Helo_ok; }
  66. set{ m_Helo_ok = value; }
  67. }
  68. /// <summary>
  69. /// Gest or sets if AUTH command handled.
  70. /// </summary>
  71. public bool Authenticated
  72. {
  73. get{ return m_Authenticated; }
  74. set{ m_Authenticated = value; }
  75. }
  76. /// <summary>
  77. /// Gest or sets if MAIL command handled.
  78. /// </summary>
  79. public bool MailFrom_ok
  80. {
  81. get{ return m_MailFrom_ok; }
  82. set{ m_MailFrom_ok = value; }
  83. }
  84. /// <summary>
  85. /// Gest or sets if RCPT command handled.
  86. /// </summary>
  87. public bool RcptTo_ok
  88. {
  89. get{ return m_RcptTo_ok; }
  90. set{ m_RcptTo_ok = value; }
  91. }
  92. #endregion
  93. }
  94. }