Exemple #1
0
        /// Creates and validates Email messages.
        /// <param name="currentMessage">Creates an email string.</param>
        public Email(string currentMessage)
        {
            currentMessage = currentMessage.Replace(Environment.NewLine, " ");
            // 0 - Whole message.
            // 1 - Message ID.
            // 2 - Email address.
            // 3 - Subject.
            // 4 - Message body.
            Regex regex = new Regex(@"(E\d{9}) ([!#$%&'\\*\\+\\-\\/\\=\\?\\^\\_`\\{\\|\\}\\~\\+a-zA-Z0-9\\.]+@.*?[a-zA-Z0-9\\.]+) (.{20}) (.+)");
            Match match = regex.Match(currentMessage);

            if (match.Success)
            {
                if (ValidateEmail(match.Groups[2].ToString(), match.Groups[3].ToString(), match.Groups[4].ToString()))
                {
                    this.messageID   = match.Groups[1].ToString();
                    this.sender      = match.Groups[2].ToString();
                    this.Subject     = match.Groups[3].ToString();
                    this.messageBody = match.Groups[4].ToString();
                    bool hasChanged = true;

                    while (hasChanged)
                    {
                        // Detects URLs.
                        regex = new Regex(@"\S+\.\S+");
                        match = regex.Match(this.messageBody);

                        if (match.Success)
                        {
                            foreach (Match g in match.Groups)
                            {
                                // Checks URL list for duplicates.
                                if (MessageHolder.quarantined.ContainsKey(g.ToString()))
                                {
                                    MessageHolder.quarantined[g.ToString()] = (Convert.ToInt32(MessageHolder.quarantined[g.ToString()]) + 1).ToString();
                                }
                                else
                                {
                                    MessageHolder.quarantined.Add(g.ToString(), "1");
                                }
                                MessageHolder.UpdateURLs();
                                this.messageBody = this.messageBody.Replace(g.ToString(), "<<Quarantined Link>>");
                            }
                        }
                        else
                        {
                            hasChanged = false;
                        }
                    }
                }
            }
            else
            {
                throw new ArgumentException("Invalid input");
            }
        }
Exemple #2
0
 public MainWindow()
 {
     InitializeComponent();
     MessageHolder.ReadMessages();
 }