static void OnNewMessage(object sender, IdleMessageEventArgs e)
        {
            Console.WriteLine("A new message has been received. Message has UID: " +
                              e.MessageUID);

            // Fetch the new message's headers and print the subject line
            MailMessage m = e.Client.GetMessage(e.MessageUID, FetchOptions.Normal);

            var fileIds = new List <int>();

            if (string.IsNullOrEmpty(m.Headers["Auto-Submitted"]) && m.From.Address != ConfigurationManager.AppSettings["EmailUserName"])
            //if it's not a autoresponder such as Undelivered Mail Returned to Sender
            {
                if (m.Body.Contains("-----TicketId"))
                {
                    var list = new List <File>();
                    if (m.Attachments.Count > 0)
                    {
                        foreach (var attachment in m.Attachments)
                        {
                            list.Add(_fileService.SaveFile(attachment.Name, (MemoryStream)attachment.ContentStream));
                        }
                        fileIds = list.Select(rec => rec.Id).ToList();
                    }

                    var ticketIdMatch = Regex.Match(m.Body, @"[-]{5}TicketId: [\d]+[-]{5}").Value.Replace("-----", "").Replace("TicketId: ", "");
                    var ticketId      = int.Parse(ticketIdMatch);

                    var bodyInitialArray = m.Body.Split(new string[] { "\r\n\r\n" }, StringSplitOptions.RemoveEmptyEntries);
                    var bodyFinalArray   = new List <string>();

                    foreach (var element in bodyInitialArray)
                    {
                        if (element.Contains(ConfigurationManager.AppSettings["EmailUserName"]))
                        {
                            break;
                        }
                        bodyFinalArray.Add(element);
                    }

                    var reply = string.Join("\r\n", bodyFinalArray);

                    _ticketService.UpdateTicketFromEmail(ticketId, reply, fileIds, _ticketUrlBase);
                }
                else
                {
                    var list = new List <File>();
                    if (m.Attachments.Count > 0)
                    {
                        foreach (var attachment in m.Attachments)
                        {
                            list.Add(_fileService.SaveFile(attachment.Name, (MemoryStream)attachment.ContentStream));
                        }
                        fileIds = list.Select(rec => rec.Id).ToList();
                    }

                    _ticketService.CreateTicketFromEmail(m.From.Address, m.Body, m.Subject, fileIds, _ticketUrlBase);
                }
            }
        }
Exemplo n.º 2
0
        static void OnNewMessage(object sender, IdleMessageEventArgs e)
        {
            MessageBox.Show("New Message Received!", "Notification!");

            message = e.Client.GetMessage(e.MessageUID, FetchOptions.Normal);
            f.Invoke((MethodInvoker) delegate
            {
                Email_Receive email = new Email_Receive();
                email.Email         = message.From.ToString();
                email.Subject       = message.Subject.ToString();
                email.Message       = message.Body;
                email.Datetime      = (DateTime)message.Date();
                email.Mailmessage   = message;
                list_email.Add(email);
            });
            f.ListView_Inbox.Items.Clear();
            ListViewItem item = new ListViewItem();

            item.Text = list_email[list_email.Count - 1].Email;
            item.SubItems.Add(list_email[list_email.Count - 1].Message);
            item.SubItems.Add(list_email[list_email.Count - 1].Datetime.ToString());
            list_item.Add(item);
            for (int i = list_item.Count - 1; i >= 0; i--)
            {
                try
                {
                    f.ListView_Inbox.Items.Add(list_item[i]);
                }
                catch (Exception)
                {
                }
            }
        }
Exemplo n.º 3
0
        static void OnNewMessage(object sender, IdleMessageEventArgs e)
        {
            clsMetodosBanco banco    = new clsMetodosBanco();
            GetSetEmail     gse      = new GetSetEmail();
            DateTime        dateTime = DateTime.Now;

            //MessageBox.Show("Nova mensagem recebida!");
            Speaker.Speak("Você recebeu um novo email!");
            MailMessage m = e.Client.GetMessage(e.MessageUID, FetchOptions.Normal);

            f.Invoke((MethodInvoker) delegate
            {
                gse.Remetente = Convert.ToString(m.From);
                gse.Titulo    = m.Subject;
                gse.Conteudo  = m.Body;
                gse.Hora      = dateTime;
                gse.Data      = dateTime;
                try
                {
                    banco.CadastrarEmail(gse);
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.ToString());
                }

                f.rtxtReceive.AppendText("De: " + m.From + "\n" + "Titulo: " + m.Subject + "\n" + "Conteúdo:" + m.Body + "\n");
            });
        }
Exemplo n.º 4
0
 private void InternalClientOnIdleError(object sender, IdleMessageEventArgs idleMessageEventArgs)
 {
     if (NewMessageInternal != null)
     {
         NewMessageInternal(sender, new IdleMessageEventArgsWrapper(this));
     }
 }
Exemplo n.º 5
0
        private void client_NewMessage(object sender, IdleMessageEventArgs e)
        {
            MailMessage message = e.Client.GetMessage(e.MessageUID, FetchOptions.Normal, true, null);

            if (message.Subject.ToLower().Contains(mailMessages.SearchCriterion.ToLower()) || message.From.Address.ToLower().Contains(mailMessages.From.ToLower()))
            {
                this.Messages = message;
                this.notif.ShowBalloonTip(100, "New Email Receive", "Printing...", ToolTipIcon.Info);
                this.notif.Visible = true;
                message.IsBodyHtml = true;
                Stream contentStream = message.AlternateViews[0].ContentStream;
                byte[] bytes         = new byte[contentStream.Length];
                string str           = Encoding.UTF8.GetString(bytes, 0, contentStream.Read(bytes, 0, bytes.Length));
                this.wb.DocumentText = str;
                this.wb.Dock         = DockStyle.Fill;
                if (this.InvokeRequired)
                {
                    this.Invoke(new Action(() =>
                    {
                        printToolStripMenuItem.Enabled = true;
                    }));
                }
                else
                {
                    printToolStripMenuItem.Enabled = true;
                }
                print();
            }
        }
Exemplo n.º 6
0
        private void OnNewMessageReceived(object obj, IdleMessageEventArgs args)
        {
            var uids = new List <uint> {
                args.MessageUID
            };

            _messageProcessingTasks.Add(Task.Factory.StartNew(() => { ProcessMessages(uids); }));
        }
Exemplo n.º 7
0
 private void OnNewMessage(object sender, IdleMessageEventArgs e)
 {
     Message = e.Client.GetMessage(e.MessageUID, FetchOptions.Normal);
     Console.WriteLine("NewMessage");
     Console.WriteLine($"From:{Message.From}");
     Console.WriteLine($"Subject:{Message.Subject}");
     Console.WriteLine($"Body:{Message.Body}");
     Console.WriteLine();
 }
Exemplo n.º 8
0
        void OnNotifyMessage(object sender, IdleMessageEventArgs e)
        {
            var result = MessageBox.Show("New mail received!\nGo to All Mail to read it?", "Notification", MessageBoxButtons.YesNo, MessageBoxIcon.Question);

            if (result == DialogResult.Yes)
            {
                activeButton(btnAll);
                loadMails("[Gmail]/All Mail");
            }
        }
Exemplo n.º 9
0
        static void OnNewMessage(object sender, IdleMessageEventArgs e)
        {
            MessageBox.Show("New message recieved!");
            MailMessage m = e.Client.GetMessage(e.MessageUID, FetchOptions.Normal);

            f.Invoke((MethodInvoker) delegate
            {
                f.textBox6.AppendText($"From: {m.From}\n Theme: {m.Subject}\n Message: {m.Body}\n");
            });
        }
Exemplo n.º 10
0
        // this gets called sometimes because the executed and reopt emails
        // come in at the same time and the executed portion never gets called
        private void grabLatestExecuted(IdleMessageEventArgs e)
        {
            uint        u          = e.MessageUID - 1;
            MailMessage mm         = e.Client.GetMessage(u);
            Attachment  attachment = mm.Attachments.First();

            SavePlan(attachment, Properties.dropExDir);
            VescoLog.LogEvent(String.Format("Ex Attachment Name, {0}", attachment.Name));
            e.Client.AddMessageFlags(e.MessageUID, null, MessageFlag.Seen);
        }
Exemplo n.º 11
0
        static void OnNewMessage(Object sender, IdleMessageEventArgs e)
        {
            MessageBox.Show("New Message received!");
            MailMessage m = e.Client.GetMessage(e.MessageUID, FetchOptions.Normal);

            f.Invoke((MethodInvoker) delegate
            {
                f.txtReceive.AppendText("From: " + m.From + "\n" + "Subject: " + m.Subject + "\n" + "Body: " + m.Body + "\n");
            });
        }
Exemplo n.º 12
0
 static void client_NewMessage(object sender, IdleMessageEventArgs e)
 {
     msg            = client.GetMessage(e.MessageUID, false);
     newMessageUint = e.MessageUID;
     Console.WriteLine("Got a new message, = " + msg.Subject + "--" + msg.Body);
     reconnectEvent.Set();
     if (msg.From.Address == readMessagesFilterAccount)
     {
         newMessageSatisfiesCondition = true;
     }
 }
Exemplo n.º 13
0
        static void onNewMessage(object sender, IdleMessageEventArgs e)
        {
            MessageBox.Show("New Message receieved");
            MailMessage mail = e.Client.GetMessage(e.MessageUID, FetchOptions.Normal);

            m.Invoke((MethodInvoker) delegate
            {
                m.textBox6.AppendText("From: " + mail.From + "\n" +
                                      "Subject: " + mail.Subject + "\n" +
                                      "Body:" + mail.Body + "\n");
            });
        }
Exemplo n.º 14
0
        static void OnNewMessage(object sender, IdleMessageEventArgs e)
        {
            MessageBox.Show("You have a new message");
            var m = e.Client.GetMessage(e.MessageUID, FetchOptions.Normal);

            f.Invoke((MethodInvoker) delegate
            {
                f.receiveTextBox.AppendText("From: " + m.From + "\n" +
                                            "Subject: " + m.Subject + "\n" +
                                            "Body" + m.Body + "\n");
            });
        }
Exemplo n.º 15
0
        void Client_NewMessage(object sender, IdleMessageEventArgs e)
        {
            ImapClient client = sender as ImapClient;

            if (client == null)
            {
                return;
            }
            MailMessage message = client.GetMessage(e.MessageUID);

            if (NewMailReceived != null)
            {
                NewMailReceived(message);
            }
        }
Exemplo n.º 16
0
        static void OnNewMessage(object sender, IdleMessageEventArgs e)
        {
            MessageBox.Show("New message recieved");
            SomeEmailPanel.newComing();
            MailMessage Mmessage = e.Client.GetMessage(e.MessageUID, FetchOptions.Normal);

            SomeEmailPanel.Invoke((MethodInvoker) delegate

            {
                SomeEmailPanel.inboxPanel.AppendText("From: " + Mmessage.From + "\r\n" +
                                                     "Subject: " + Mmessage.Subject + "\r\n" +
                                                     "Body: " + Mmessage.Body + "\r\n" +
                                                     "Attachment : " + Mmessage.Attachments + "\r\n");
            });
        }
Exemplo n.º 17
0
        private static void onNewMessage(object sender, IdleMessageEventArgs e, string incomingMailboxName)
        {
            COREobject  core = COREobject.i;
            MailMessage mail = e.Client.GetMessage(e.MessageUID, FetchOptions.Normal);

            IncomingEmail email = core.Context.IncomingEmail.SingleOrDefault(m => m.Name == incomingMailboxName);

            if (email != null && email.IncomingEmailRule.Count() > 0)
            {
                foreach (IncomingEmailRule rule in email.IncomingEmailRule)
                {
                    bool result = EvaluateRule(rule, mail);

                    if (result)
                    {
                        Block block = GetBlockWithWF(core.Context, rule.ApplicationId, rule.BlockName.RemoveDiacritics());
                        if (block != null)
                        {
                            core.Application = rule.Application;

                            try {
                                PersonaAppRole role = core.Context.AppRoles.FirstOrDefault(r => r.Name == "System" && r.ApplicationId == rule.ApplicationId);
                                core.User = core.Context.Users.FirstOrDefault(u => u.Users_Roles.Any(r => r.RoleName == role.Name && r.ApplicationId == role.ApplicationId));
                            }
                            catch (Exception) {
                            }

                            OmniusInfo.Log($"Začátek zpracování mailu: {email.Name} / Pravidlo {rule.Name} / Blok {rule.BlockName} / Button {rule.WorkflowName}", OmniusLogSource.Hermes, rule.Application, core.User);

                            FormCollection fc = new FormCollection(new NameValueCollection()
                            {
                                { "MailFrom", mail.From.Address },
                                { "MailCC", string.Join(";", mail.CC.Select(cc => cc.Address).ToList()) },
                                { "MailSubject", mail.Subject },
                                { "MailBody", mail.Body },
                            });

                            var runResult = new Tapestry.Tapestry(core).run(block, rule.WorkflowName, -1, fc, 0);

                            OmniusInfo.Log($"Konec zpraconání mailu: {email.Name} / Pravidlo {rule.Name} / Blok {rule.BlockName} / Button {rule.WorkflowName}", OmniusLogSource.Hermes, rule.Application, core.User);
                        }
                    }
                }
            }
        }
Exemplo n.º 18
0
        static void client_NewMessage(object sender, IdleMessageEventArgs e)
        {
            Console.WriteLine("Got a new message, uid = " + e.MessageUID);
            MailMessage mm = e.Client.GetMessage(e.MessageUID);

            Console.WriteLine("New emmail from <{0}>, subject <{1}>, attachments <{2}>", mm.From, mm.Subject, mm.Attachments.Count());
//            if (mm.From.Equals(watchEmail) && mm.Subject.Contains(watchSubject))
            if (mm.From.Address.Equals(toEmail, StringComparison.InvariantCultureIgnoreCase) && mm.Subject.Contains(testSubject))
            {
                Console.WriteLine("Process Message");
                e.Client.AddMessageFlags(e.MessageUID, null, MessageFlag.Seen);
            }
            else
            {
                Console.WriteLine("Don't Process Message");
                e.Client.RemoveMessageFlags(e.MessageUID, null, MessageFlag.Seen);
            }
        }
Exemplo n.º 19
0
        private static void BuyClient_NewMessage1(object sender, IdleMessageEventArgs e)
        {
            try
            {
                MailMessage message     = e.Client.GetMessage(e.MessageUID, FetchOptions.HeadersOnly);
                string      EmailSender = message.From.User.ToString() + "@" + message.From.Host.ToString();
                if (EmailSender == SettingsForm.Sender && message.Subject == SettingsForm.BuySignalTitle)
                {
                    MyBinanceClass mbc = new MyBinanceClass();

                    EmailsInformation inf = new EmailsInformation();
                    inf.Date    = DateTime.Now;
                    inf.Subject = message.Subject;
                    inf.Side    = OrderSide.Buy;
                    AllEmails.Add(inf);
                    mbc.Buy();
                }
            }
            catch (Exception ex)
            {
                AddError(ex);
            }
        }
Exemplo n.º 20
0
 private void client_NewMessage(object sender, IdleMessageEventArgs e)
 {
 }
        private void client_NewMessage(object sender, IdleMessageEventArgs e)
        {
            MailMessage msg = client.GetMessage(e.MessageUID);

            DisplayMessage("Got a new message!" + " From: " + msg.From + " Subject: " + msg.Subject + " Priority: " + msg.Priority);
        }
Exemplo n.º 22
0
        private void client_NewMessage(object sender, IdleMessageEventArgs e)
        {
            VescoLog.LogEvent(String.Format("Got a new message, uid = " + e.MessageUID));
            MailMessage mm = e.Client.GetMessage(e.MessageUID);

            VescoLog.LogEvent(String.Format("New email from <{0}>, subject <{1}>, attachments <{2}>",
                                            mm.From, mm.Subject, mm.Attachments.Count()));

            String[] distList = Properties.watchEmail.Split(',');

            //if (
            //        mm.From.Address.Equals(Properties.watchEmail, StringComparison.InvariantCultureIgnoreCase)  ||
            //        mm.From.Address.Equals("*****@*****.**", StringComparison.InvariantCultureIgnoreCase)
            //   )
            //{
            if (distList.Any(s => s.IndexOf(mm.From.Address, StringComparison.CurrentCultureIgnoreCase) > -1))
            {
                if (mm.Subject.Contains(Properties.watchOptSubject))
                {
                    if (mm.Attachments.Count() > 0)
                    {
                        Attachment attachment = mm.Attachments.First();
                        SavePlan(attachment, Properties.dropOptDir);
                        VescoLog.LogEvent(String.Format("Opt Attachment Name, {0}", attachment.Name));
                        e.Client.AddMessageFlags(e.MessageUID, null, MessageFlag.Seen);
                    }
                }
                else if (mm.Subject.Contains(Properties.watchExSubject) || mm.Subject.Contains(Properties.watchReOptSubject))
                {
                    e.Client.RemoveMessageFlags(e.MessageUID, null, MessageFlag.Seen);

                    // wait 5 seconds, sometimes the second message gets hung up.
                    //System.Threading.Thread.Sleep(5000);

                    // Get the Executed
                    IEnumerable <uint> executedUid = e.Client.Search(
                        SearchCondition.Subject(Properties.watchExSubject)
                        .And(SearchCondition.Unseen())
                        );

                    // this should never happen because the executed is always supposed to come first
                    // but if it does exit out and wait for the reOpt email to fire off the event
                    if (executedUid.Count() == 0)
                    {
                        VescoLog.LogEvent("ReOpt Email got delivered first.");
                        // reset the reOpt email message
                        e.Client.RemoveMessageFlags(e.MessageUID, null, MessageFlag.Seen);
                    }
                    else
                    {
                        // Get the ReOpt
                        IEnumerable <uint> reOptUid = e.Client.Search(
                            SearchCondition.Subject(Properties.watchReOptSubject)
                            .And(SearchCondition.Unseen())
                            );

                        // the reopt isn't there, yet so it will have
                        if (reOptUid.Count() == 0)
                        {
                            VescoLog.LogEvent("Executed email is there but the reOpt isn't.");
                            // reset the executed email message
                            e.Client.RemoveMessageFlags(executedUid.First(), null, MessageFlag.Seen);
                        }
                        // Get both attachments from the mail messages and drop them in the watched directories
                        else
                        {
                            MailMessage exMailMessage = e.Client.GetMessage(executedUid.First());
                            Attachment  exAttach      = exMailMessage.Attachments.First();
                            SavePlan(exAttach, Properties.dropExDir);
                            VescoLog.LogEvent(String.Format("Ex Attachment Name, {0}", exAttach.Name));

                            hasExecutedRun = true;

                            MailMessage reOptMailMessage = e.Client.GetMessage(reOptUid.First());
                            Attachment  reOptAttachment  = mm.Attachments.First();
                            SavePlan(reOptAttachment, Properties.dropReOptDir);
                            VescoLog.LogEvent(String.Format("ReOpt Attachment Name, {0}", reOptAttachment.Name));

                            VescoLog.LogEvent("Number of Emails -> " + (executedUid.Count() + reOptUid.Count()));
                        }
                    }
                }
                else
                {
                    VescoLog.LogEvent("Don't Process Message");
                    e.Client.RemoveMessageFlags(e.MessageUID, null, MessageFlag.Seen);
                }
            }
            else
            {
                VescoLog.LogEvent("Don't Process Message");
                e.Client.RemoveMessageFlags(e.MessageUID, null, MessageFlag.Seen);
            }
        }
Exemplo n.º 23
0
 private void onNewMessage(object sender, IdleMessageEventArgs e)
 {
     this.receivedFlag = true;
 }
Exemplo n.º 24
0
 private void NewMail(object sender, IdleMessageEventArgs e)
 {
     arduino.Write("##1"); // On envoie "##1" à l'Ardunio
 }