protected virtual void OnMessageReceived(MessageEventArgs e)
 {
     if (MessageReceived != null)
         MessageReceived(this, e);
 }
 void processor_MessageReceived(object sender, MessageEventArgs e)
 {
     messageCounter++;
     string rec = "";
     bool isBounced = false;
     foreach (EmailAddress recipient in e.Message.ToAddresses)
     {
         string bounced = "";
         BounceUser user = this.bouncedUsers.FirstOrDefault(u => u.EmailAddress.Equals(recipient.Address, StringComparison.CurrentCultureIgnoreCase));
         if (user != null)
         {
             isBounced = true;
             bounced = " (bounced)";
             bounceCounter++;
             bouncedMessages.Add(new BounceMessage(e.Message.Data, user.BounceError.Code));
         }
         rec += ((rec == "") ? "" : ", ") + recipient.Address + bounced;
     }
     recipients.Add(rec);
     //this.messagesReceived.Add(new UserMessage() { MessageSource = e.Message.Data, Recipient = e.Message.ToAddresses.First().Address,  IsOpened = false });
     UpdateStatistics();
     if (isInTray)
     {
         if (!messagesReceptionTimer.Enabled)
         {
             notifyIcon.ShowBalloonTip(1000, CurrentVersion, "Hmmmm... I'm receiving some messages...", ToolTipIcon.Info);
             notifyIcon.Text = CurrentVersion + ": Receving messages...";
             messagesReceptionTimer.Start();
         }
     }
 }