SMTPMessagePart.cs
上传用户:wdhx888
上传日期:2017-06-08
资源大小:112k
文件大小:2k
源码类别:

WEB邮件程序

开发平台:

C#

  1. using System;
  2. using System.Collections;
  3. using System.Text;
  4. using EricDaugherty.CSES.Common;
  5. using System.Text.RegularExpressions;
  6. namespace EricDaugherty.CSES.SmtpServer
  7. {
  8. /// <summary>
  9. /// Stores a single part of a multipart message.
  10. /// </summary>
  11. public class SMTPMessagePart
  12. {
  13. #region Constants
  14. private static readonly string DOUBLE_NEWLINE = Environment.NewLine + Environment.NewLine;
  15. #endregion
  16. #region Variables
  17. private Hashtable headerFields = null;
  18. private string headerData = String.Empty;
  19. private string bodyData = String.Empty;
  20. #endregion
  21. #region Constructors
  22. /// <summary>
  23. /// Creates a new message part.  The input string should be the body of 
  24. /// the attachment, without the "------=_NextPart" separator strings.
  25. /// The last 4 characters of the data will be "rnrn".
  26. /// </summary>
  27. public SMTPMessagePart( string data )
  28. {
  29. string[] parts = Regex.Split( data, DOUBLE_NEWLINE );
  30. headerData = parts[0] + DOUBLE_NEWLINE;
  31. bodyData = parts[1] + DOUBLE_NEWLINE;
  32. }
  33. #endregion
  34. #region Properies
  35. /// <summary>
  36. /// A hash table of all the Headers in the email message.  They keys
  37. /// are the header names, and the values are the assoicated values, including
  38. /// any sub key/value pairs is the header.
  39. /// </summary>
  40. public Hashtable Headers
  41. {
  42. get
  43. {
  44. if( headerFields == null )
  45. {
  46. headerFields = SMTPMessage.ParseHeaders( headerData );
  47. }
  48. return headerFields;
  49. }
  50. }
  51. /// <summary>
  52. /// The raw text that represents the header of the mime part.
  53. /// </summary>
  54. public string HeaderData
  55. {
  56. get { return headerData; }
  57. }
  58. /// <summary>
  59. /// The raw text that represents the actual mime part.
  60. /// </summary>
  61. public string BodyData
  62. {
  63. get { return bodyData; }
  64. }
  65. #endregion
  66. }
  67. }