Пример #1
0
        public ContentTransferEncodingPattern()
        {
            IPattern mechanismPattern = PatternFactory.GetInstance().Get(typeof(MechanismPattern));

            m_TextPattern = "(?i)Content-Transfer-Encoding(?i):[ ]*" + mechanismPattern.TextPattern;
            m_Regex       = new Regex(m_TextPattern, RegexOptions.Compiled);
        }
Пример #2
0
        public QuotedDateTimePattern()
        {
            IPattern datetimePattern = PatternFactory.GetInstance().Get(typeof(RFC822.Pattern.DateTimePattern));

            m_TextPattern = "\"" + datetimePattern.TextPattern + "\"";
            m_Regex       = new Regex(m_TextPattern, RegexOptions.Compiled);
        }
Пример #3
0
        public MailReader()
        {
            m_FieldParser = new FieldParser();
            m_FieldParser.CompilePattern();

            m_UnfoldPattern = PatternFactory.GetInstance().Get(typeof(Pattern.UnfoldPattern));
        }
Пример #4
0
        public DatePattern()
        {
            IPattern monthPattern = PatternFactory.GetInstance().Get(typeof(MonthPattern));

            m_TextPattern = "([0-9]{2,2}\x5C\x73" + monthPattern.TextPattern + "\x5C\x73[0-9]{2,4}){1,1}";
            m_Regex       = new Regex(m_TextPattern);
        }
Пример #5
0
        public MIMEVersionPattern()
        {
            IPattern commentPattern = PatternFactory.GetInstance().Get(typeof(RFC822.Pattern.CommentPattern));

            m_TextPattern = "(?i)MIME-Version:(?-i)([0-9]{1,1}|\\x2E{1,1}|" + commentPattern.TextPattern + ")*";
            m_Regex       = new Regex(m_TextPattern);
        }
Пример #6
0
        public DispositionTypePattern()
        {
            IPattern xtokenPattern = PatternFactory.GetInstance().Get(typeof(XTokenPattern));

            m_TextPattern = "(?i)(inline|Attachment|" + xtokenPattern.TextPattern + ")(?i)";
            m_Regex       = new Regex(m_TextPattern, RegexOptions.Compiled);
        }
Пример #7
0
        public CreationDateParmPattern()
        {
            IPattern quotedDatetimePattern = PatternFactory.GetInstance().Get(typeof(QuotedDateTimePattern));

            m_TextPattern = "creation-date=" + quotedDatetimePattern.TextPattern;
            m_Regex       = new Regex(m_TextPattern, RegexOptions.Compiled);
        }
Пример #8
0
        public XTokenPattern()
        {
            IPattern tokenPattern = PatternFactory.GetInstance().Get(typeof(MIMER.RFC822.Pattern.TokenPattern));

            m_TextPattern = "(X-|x-)" + tokenPattern.TextPattern;
            m_Regex       = new Regex(m_TextPattern);
        }
Пример #9
0
        public CharsetPattern()
        {
            IPattern tokenPattern = PatternFactory.GetInstance().Get(typeof(RFC822.Pattern.TokenPattern));

            m_TextPattern = "(?<==\x5C?)" + tokenPattern.TextPattern + "(?=\x5C?)";
            m_Regex       = new Regex(m_TextPattern, RegexOptions.Compiled);
        }
Пример #10
0
        public PhrasePattern()
        {
            IPattern wordPattern = PatternFactory.GetInstance().Get(typeof(WordPattern));

            m_TextPattern = wordPattern.TextPattern;
            m_Regex       = new Regex(m_TextPattern, RegexOptions.Compiled);
        }
Пример #11
0
        public DomainPattern()
        {
            IPattern subDomainPattern = PatternFactory.GetInstance().Get(typeof(SubDomainPattern));

            m_TextPattern = "(" + subDomainPattern.TextPattern + "(?:\x5C\x2E" + subDomainPattern.TextPattern + ")*)";
            m_Regex       = new Regex(m_TextPattern, RegexOptions.Compiled);
        }
Пример #12
0
        public static MailAddressCollection GetAddresses(Field field)
        {
            IPattern addrSpecPattern =
                PatternFactory.GetInstance().Get(typeof(RFC822.Pattern.AddrSpecPattern));
            MailAddressCollection addresses = null;

            if (addrSpecPattern.RegularExpression.IsMatch(field.Body))
            {
                //TODO: Make supprt for multiple addresses with names
                addresses = new MailAddressCollection();
                try
                {
                    MailAddress address = new MailAddress(field.Body);
                    addresses.Add(address);
                }
                catch (FormatException)
                {
                    MatchCollection matches = addrSpecPattern.RegularExpression.Matches(field.Body);
                    foreach (Match match in matches)
                    {
                        addresses.Add(match.Value);
                    }
                }
            }
            return(addresses);
        }
Пример #13
0
        public TimePattern()
        {
            IPattern hourPattern = PatternFactory.GetInstance().Get(typeof(HourPattern));
            IPattern zonePattern = PatternFactory.GetInstance().Get(typeof(ZonePattern));

            m_TextPattern = hourPattern.TextPattern + zonePattern.TextPattern;
            m_Regex       = new Regex(m_TextPattern);
        }
Пример #14
0
        public AddrSpecPattern()
        {
            IPattern localPartPattern = PatternFactory.GetInstance().Get(typeof(LocalPartPattern));
            IPattern domainPattern    = PatternFactory.GetInstance().Get(typeof(DomainPattern));

            m_TextPattern = "(" + localPartPattern.TextPattern + "@" + domainPattern.TextPattern + ")";
            m_Regex       = new Regex(m_TextPattern, RegexOptions.Compiled);
        }
Пример #15
0
        public EncodedWordPattern()
        {
            IPattern tokenPattern = PatternFactory.GetInstance().Get(typeof(RFC822.Pattern.TokenPattern));

            m_TextPattern = "=\x5C?" + tokenPattern.TextPattern + "\x5C?" + tokenPattern.TextPattern +
                            "\x5C?[^\x3F\x20]+\x5C?=";
            m_Regex = new Regex(m_TextPattern, RegexOptions.Compiled);
        }
Пример #16
0
 public FieldParser()
 {
     m_UnfoldPattern     = PatternFactory.GetInstance().Get(typeof(UnfoldPattern));
     m_FieldPattern      = PatternFactory.GetInstance().Get(typeof(FieldPattern));
     m_HeaderNamePattern = PatternFactory.GetInstance().Get(typeof(FieldNamePattern));
     m_HeaderBodyPattern = PatternFactory.GetInstance().Get(typeof(FieldBodyPattern));
     m_DataReader        = new DataReader();
 }
Пример #17
0
        public ParameterPattern()
        {
            IPattern tokenPattern = PatternFactory.GetInstance().Get(typeof(RFC822.Pattern.TokenPattern));
            IPattern valuePattern = PatternFactory.GetInstance().Get(typeof(ValuePattern));

            m_TextPattern = tokenPattern.TextPattern + "=" + valuePattern.TextPattern;
            m_Regex       = new Regex(m_TextPattern);
        }
Пример #18
0
        public SubDomainPattern()
        {
            IPattern domainRefPattern     = PatternFactory.GetInstance().Get(typeof(DomainRefPattern));
            IPattern domainLiteralPattern = PatternFactory.GetInstance().Get(typeof(DomainLiteralPattern));

            m_TextPattern = "(?:(" + domainRefPattern.TextPattern + "|" + domainLiteralPattern.TextPattern + "))";
            m_Regex       = new Regex(m_TextPattern);
        }
Пример #19
0
        public WordPattern()
        {
            IPattern atomPattern         = PatternFactory.GetInstance().Get(typeof(AtomPattern));
            IPattern quotedStringPattern = PatternFactory.GetInstance().Get(typeof(QuotedStringPattern));

            m_TextPattern = "(" + atomPattern.TextPattern + "|" + quotedStringPattern.TextPattern + ")";
            m_Regex       = new Regex(m_TextPattern);
        }
Пример #20
0
        public LocalPartPattern()
        {
            IPattern wordPattern = PatternFactory.GetInstance().Get(typeof(WordPattern));

            m_TextPattern = "(" + wordPattern.TextPattern + "(?:\x5C\x2E" +
                            wordPattern.TextPattern + ")*)";
            m_Regex = new Regex(m_TextPattern);
        }
Пример #21
0
        public MechanismPattern()
        {
            IPattern xtokenPattern = PatternFactory.GetInstance().Get(typeof(XTokenPattern));

            m_TextPattern = "(?i)(7bit|8bit|binary|quoted-printable|base64|" +
                            xtokenPattern.TextPattern + ")(?i)"; //or ief-token
            m_Regex = new Regex(m_TextPattern, RegexOptions.Compiled);
        }
Пример #22
0
        public TypePattern()
        {
            IPattern descritePattern  = PatternFactory.GetInstance().Get(typeof(DiscreteTypePattern));
            IPattern compositePattern = PatternFactory.GetInstance().Get(typeof(CompositeTypePattern));

            m_TextPattern = "(" + descritePattern.TextPattern + "|" + compositePattern.TextPattern + ")";
            m_Regex       = new Regex(m_TextPattern, RegexOptions.Compiled | RegexOptions.IgnoreCase);
        }
Пример #23
0
        public ContentDispositionPattern()
        {
            IPattern dispositionTypePattern = PatternFactory.GetInstance().Get(typeof(DispositionTypePattern));
            IPattern dispostionParmPattern  = PatternFactory.GetInstance().Get(typeof(DispositionParmPattern));

            m_TextPattern = "Content-Disposition:\x5C\x73" + dispositionTypePattern.TextPattern +
                            "(;\x5C\x73" + dispostionParmPattern.TextPattern + ")*";
            m_Regex = new Regex(m_TextPattern, RegexOptions.Compiled);
        }
Пример #24
0
        public ValuePattern()
        {
            IPattern tokenPattern        = PatternFactory.GetInstance().Get(typeof(MIMER.RFC822.Pattern.TokenPattern));
            IPattern qoutedStringPattern =
                PatternFactory.GetInstance().Get(typeof(MIMER.RFC822.Pattern.QuotedStringPattern));

            m_TextPattern = "(" + tokenPattern.TextPattern + "|" + qoutedStringPattern.TextPattern + ")";
            m_Regex       = new Regex(m_TextPattern);
        }
Пример #25
0
        public void GetTest()
        {
            IPattern pattern = PatternFactory.GetInstance().Get(typeof(MIMER.RFC822.Pattern.TokenPattern));

            Assert.IsInstanceOfType(typeof(MIMER.RFC822.Pattern.TokenPattern), pattern);
            IPattern pattern2 = PatternFactory.GetInstance().Get(typeof(MIMER.RFC822.Pattern.TokenPattern));

            Assert.AreSame(pattern, pattern2);
        }
Пример #26
0
        public DomainLiteralPattern()
        {
            IPattern dtextPattern      = PatternFactory.GetInstance().Get(typeof(DtextPattern));
            IPattern quotedPairPattern = PatternFactory.GetInstance().Get(typeof(QuotedPairPattern));

            m_TextPattern = "(\x5C\x5B(?:" + dtextPattern.TextPattern +
                            "|" + quotedPairPattern.TextPattern + ")*\x5C\x5D)";
            m_Regex = new Regex(m_TextPattern);
        }
Пример #27
0
        public CommentPattern()
        {
            IPattern ctextPattern      = PatternFactory.GetInstance().Get(typeof(CtextPattern));
            IPattern quotedPairPattern = PatternFactory.GetInstance().Get(typeof(QuotedPairPattern));

            m_TextPattern = "(?:[(]{1,1} *(" + ctextPattern.TextPattern +
                            "|" + quotedPairPattern.TextPattern + ")[)]{1,1})";
            m_Regex = new Regex(m_TextPattern);
        }
Пример #28
0
 public ContentTypeFieldParser(FieldParser original) : base(original)
 {
     m_TokenPattern     = PatternFactory.GetInstance().Get(typeof(RFC822.Pattern.TokenPattern));
     m_ContentPattern   = PatternFactory.GetInstance().Get(typeof(Pattern.ContentTypePattern));
     m_TypePattern      = PatternFactory.GetInstance().Get(typeof(Pattern.TypePattern));
     SubTypePattern     = PatternFactory.GetInstance().Get(typeof(Pattern.SubTypePattern));
     m_ParameterPattern = PatternFactory.GetInstance().Get(typeof(Pattern.ParameterPattern));
     m_ValuePattern     = PatternFactory.GetInstance().Get(typeof(Pattern.ValuePattern));
 }
Пример #29
0
        public DateTimePattern()
        {
            IPattern dayPattern  = PatternFactory.GetInstance().Get(typeof(DayPattern));
            IPattern datePattern = PatternFactory.GetInstance().Get(typeof(DatePattern));
            IPattern timePattern = PatternFactory.GetInstance().Get(typeof(TimePattern));

            m_TextPattern = "(" + dayPattern.TextPattern + ", )" +
                            datePattern.TextPattern + " " + timePattern.TextPattern;
            m_Regex = new Regex(m_TextPattern);
        }
Пример #30
0
 public SubTypePattern()
 {
     m_MultipartSubTypePattern = PatternFactory.GetInstance().Get(typeof(MultipartSubTypePattern));
     m_TextSubTypePattern      = PatternFactory.GetInstance().Get(typeof(TextSubTypePattern));
     m_ImageSubTypePattern     = PatternFactory.GetInstance().Get(typeof(ImageSubTypePattern));
     ApplicationSubTypePattern = PatternFactory.GetInstance().Get(typeof(ApplicationSubTypePatern));
     m_MessageSubTypePattern   = PatternFactory.GetInstance().Get(typeof(MessageSubTypePattern));
     m_AudioSubTypePattern     = PatternFactory.GetInstance().Get(typeof(AudioSubTypePattern));
     Compile();
 }